月曜日, 3月 12, 2007

Interface文

以前書いたFortran90のInterface文、

Interface
subroutine abc(da,is,ie)
real*8, dimension(:), intent(inout) :: da
integer :: is,ie
end subroutine abc
end Interface

...
call abc(ro,1,i0)
...

受け渡し側は上記のようでいいとして、
(i0はroの配列数であり、commonモジュール
で共有しているものとする)
受け取り側で、

real*8, dimension(1:i0), intent(inout) :: da
integer :: is,ie

配列数を明示していた。三鷹のスパコンだと
これで問題なかったが、IntelのFortranコンパイラー
だとエラーが出て止まってしまった。
正しくは

real*8, dimension(:), intent(inout) :: da
integer :: is,ie

のように配列数を明示しなくてよい。

0 件のコメント: