現在オープンソースのCode Saturneというものを利用して流体の数値計算を行っています。
その中でオープンソースでのGUIでは設定できないことに関して、CまたはFortranでサブルーチンファイルが必要になってきます。今悩んでいる数値計算の境界条件の設定のためのサブルーチンファイルはFotranで実装しています。
このオープンソースでは、数値計算での1stepごとに、特定のフォルダに置いてあるサブルーチンファイル(.f90)を読み込んで境界条件というものが設定されるという仕組みになっています。現状、そのサブルーチンファイルの中身は常に一定という状態で数値計算をしているのですが、将来的には、そのf.90のファイルが読み込まれる(サブルーチンがcallされる)度に、そのファイル内の値を一つ変えようと思っています。
そこで質問なのですが、プログラミングにおいて、その「サブルーチンがcallされる度に~~をする」というコードは可能でしょうか?
プログラミング内でその特定のファイルが読み込まれる度に、ということをどのようにコードに定義することができるのでしょうか。
過去に
Fortranに関しては完全にやったことがありません。
これまでpythonとC(読むだけのために勉強しました)に関しては経験があります。
読み込んで変更されるファイルの中身は下記です
boundary_condition.f90
call getfbr('inlet', nlelt, lstelt) do ilelt = 1, nlelt ifac = lstelt(ilelt) itypfb(ifac) = ientre !Dirichlet B.C for pressure: icodcl(ifac,ipr) = 1 rcodcl(ifac,ipr,1) = 101325.633 !Neumann B.C for velocity: icodcl(ifac,iu)= 3 icodcl(ifac,iv)= 3 icodcl(ifac,iw)= 3 enddo
この中の「101325.633」という数値を、このサブルーチンが呼び出される度に変更できれば良いです。
これは単なるif文などで可能でしょうか?
「if ~~サブルーチンがcallされたら」などで可能でしょうか?