私は有限要素解析プログラムのFortranサブルーチンを使用しています。2つのサブルーチン間で変数を共有する必要があるため、COMMONブロックを使用しています(編集:モジュールの方が優れています)。問題は、一部の変数のみが他のサブルーチンに渡され、他の変数は渡されないことです。
私のコードは次のようなものです:最初のサブルーチン:
real knom, krot
COMMON /kVAR/ kmom, krot
SAVE /kVAR/
2番目のサブルーチン私は同じ構文を使用します。各サブルーチンのkmom値とkrot値をtxtファイルに書き込むことで結果を制御しています。
write(6,*) 'I am in URDFIL', or 'I am in UFIELD'
1 KINC, kmom, krot
結果は次のとおりです。
I am in URDFIL 1 -16700 -2.3857285E-03
I am in UFIELD 2 -16700 -1155769886
したがって、krotの値は失われます。どんなアドバイスでも大歓迎です。
João
解決済み:
module shared_var
implicit none
real*8 kmom, krot
save
end module shared_var
そして、各サブルーチンで:
use shared_var