2009-06-02

main で private 変数を定義してはいけない件について

教訓:

「main のプログラム(program foo ってやつ)では、
private 変数を定義してはいけない」


おそらく contains にしなければいいのだろうが、
contains を使っていると、
下位の subr. でもこれらが定義済みと扱われてしまう(implicit none にしていても!)。
これでは implicit none の意味が無い。


というか、なにも定義しないのが一番だな。

というわけで、

include 'common.f90'
program main
use common
implicit none
! ここで private 変数を定義してはいけない!
call main_part
stop
contains
subroutine main_part
subroutine ...
subroutine ...
subroutine ...
endprogram

として、ぜんぶ subr. main_part に移した。
そんだけ。
これだけで、ポロポロとエラーがでてきた...
寒気がする。

No comments: