10/04/09 01:05:56
>>31
そう多くないなら1行づつが基本だと思う。
でも一応、
INTEGER.PARAMETER :: iunits(3) = (/10, 31, 6/)
DO i = 1, SIZE(iunits)
WRITE(iunits(i), 101) ....
END DO
とか、あるいは内部サブルーチンにして
CALL wr_info( (/31, 10, 6/) )
......
CONTAINS
SUBROUTINE wr_info(iunits)
INTEGER, INTENT(IN) :: iunits(:)
DO i = 1, SIZE(iunits)
WRITE(iunits(i), 101) ....
END DO
RETURN
END SUBROUTINE wr_info
内部サブルーチンなら、変数は共通。 (/ /) は配列生成子で、これを使えば引数でファイル番号を
並べて指定すればよく、わざわざ配列をメインルーチンで用意する必要がなくなる。
6番は歴史的理由でコンソールになっている(はず)。