ついでに動的にフォーマット生成もする。
INTRINSIC :: RESHAPE
が入ったのは、ファイル名を RESHAPE.F90 にしたため object 名がかぶってしまい必要になりました。本来的には不要。
ソースコード
PROGRAM test INTEGER, ALLOCATABLE :: m(:, :) INTEGER :: i, j, n INTRINSIC :: RESHAPE CHARACTER(LEN = 10) :: fmt = '' PRINT *, 'Input Matrix size' READ *, n ALLOCATE( m(n, n) ) m = RESHAPE( [(1, (0, i = 1, n), j = 1, n - 1), 1], [n, n] ) WRITE(fmt, '(a, i2, a)') '(', n, 'i4)' PRINT fmt, m STOP END PROGRAM test