Fortran 用于阵列打印的格式描述符
我试图在Fortran(95)中打印一个维度为Fortran 用于阵列打印的格式描述符,fortran,Fortran,我试图在Fortran(95)中打印一个维度为(n,m)的整数数组。当我使用以下技术格式化输出时,它是有效的: write(*,”(nIw)”数组 不知何故,它会自动地将每一行移到下一行,对每一行使用相同的格式描述符。(?) 但在这种情况下,为什么它不起作用 write(*,100)数组 100格式('nIw') 这两种方法有什么不同?您的格式100编写不正确:您试图打印字符串“nIw”,而不是数字。看看这个例子: program print_integer implicit n
(n,m)
的整数数组。当我使用以下技术格式化输出时,它是有效的:
write(*,”(nIw)”数组
不知何故,它会自动地将每一行移到下一行,对每一行使用相同的格式描述符。(?)
但在这种情况下,为什么它不起作用
write(*,100)数组
100格式('nIw')
这两种方法有什么不同?您的
格式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
您的
格式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
您认为编辑描述符nIw的作用是什么?请显示实际代码以及编译器生成的代码的实际输出。你的两种方法完全相同。在此之前,我将投票决定关闭“不可复制”。@HighPerformanceMark抱歉,那将是
array
。我在复制代码时出错。我在解释编辑描述符是如何以格式
语句编写时出错@费德里科·佩里尼的回答解决了我的问题。谢谢。请理解,如果您显示实际输入,可能会有人立即发现问题。您认为编辑描述符nIw的作用是什么?请显示实际代码以及编译器生成的代码的实际输出。你的两种方法完全相同。在此之前,我将投票决定关闭“不可复制”。@HighPerformanceMark抱歉,那将是array
。我在复制代码时出错。我在解释编辑描述符是如何以格式
语句编写时出错@费德里科·佩里尼的回答解决了我的问题。谢谢。请理解,如果您显示实际输入,可能会有人立即发现问题。谢谢,我太傻了,我把书中的说明解释错了。谢谢,我太傻了,我把书中的说明解释错了。