数组打印的格式描述符

Format descriptors for array printing

我试图在 Fortran (95) 中打印维度 (n, m) 的整数数组。当我使用以下技术格式化输出时,它起作用了:

write (*, '(nIw)') array

不知何故,它自动将每一行移动到下一行,每一行都使用相同的格式描述符。 (?)

但在这种情况下,为什么不起作用?

    write (*, 100) array
100 FORMAT('nIw')

这两种方法有什么不同?

您的 FORMAT 100 写得不正确:您试图打印一个字符串“nIw”,而不是一个数字。看看这个例子:

program print_integer
      implicit none

      character(*), parameter :: fmt_int = '(10I3)'

      integer :: j,array(10) = [(j,j=1,10)]


      write(*,fmt_int) array
      write(*,'(10I3)') array
      write(*,    100) array
      write(*,    200) array   ! WRONG FORMAT


      100 format(10I3)
      200 format('10I3')

end program print_integer