私は有限要素解析プログラムのFortranサブルーチンを使用しています。私は共通のブロックを使用しているので、2つのサブルーチン間で変数を共有する必要があります(EDIT:モジュールが優れています)。問題は、一部の変数だけが別のサブルーチンに渡され、他のサブルーチンは渡されないということです。 まずサブルーチン:Fortranで共通ブロックを使用する問題
real knom, krot
COMMON /kVAR/ kmom, krot
SAVE /kVAR/
私は同じ構文を使用して第二のサブルーチン
私のコードは次のようです。私はtxtファイルに各サブルーチン内kmomとkrot値を書き込むことにより、その結果を制御しています:
write(6,*) 'I am in URDFIL', or 'I am in UFIELD'
1 KINC, kmom, krot
結果は以下のとおりです。だから、krotの値が失われ
I am in URDFIL 1 -16700 -2.3857285E-03
I am in UFIELD 2 -16700 -1155769886
。どんな助言も大歓迎です。
ジョアン
は解決:
module shared_var
implicit none
real*8 kmom, krot
save
end module shared_var
そして、各サブルーチン内:
use shared_var
「common」ではなく「module」を使用して、_one_宣言だけが必要なのはなぜでしょうか。 – ja72
はい、ありがとうございます! – jpcgandre