教訓:
「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 に移した。
そんだけ。
これだけで、ポロポロとエラーがでてきた...
寒気がする。
「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:
Post a Comment