您可以使用隐式 DO 循环将值写入单个记录。比较以下两个例子:
integer :: i
do i=1,10
write(*,'(2I4)') i, 2*i
end do
它生产:
1 2
2 4
3 6
...
使用隐含的 DO 循环,它可以重写为:
integer :: i
write(*, '(10(2I4))') (i, 2*i, i=1,10)
这个产生:
1 2 2 4 3 6 ...
如果元素的数量在编译时不固定,您可以使用<n>
扩展(不支持gfortran
):
write(*, '(<n>(2I4))') (i, 2*i, i=1,n)
需要重复的次数(2I4)
根据变量值编辑描述符n
。在 GNU Fortran 中,您可以首先使用内部文件创建适当的编辑描述符:
character(len=20) :: myfmt
write(myfmt, '("(",I0,"(2I4))")') n
write(*, fmt=myfmt) (i, 2*i, i=1,n)
当然,它也适用于列表定向输出(即格式为*
):
write(*, *) (i, 2*i, i=1,10)