我正在寻找一种不使用标签来指定输出格式的方法。
用标签来理解我的意思:
write(*,1001) icount, x, y
1001 format (i5,f5.2,e12.3)
没有标签应该是我把format (i5,f5.2,e12.3)
放在write语句的某处,比如write(*,format(i5,f5.2,e12.3)) icount, x, y
我想我最近在某个地方看到了这个,但不幸的是我再也找不到了。如果它存在,它是较新的Fortran版本的功能。也许Fortran 90?也许Fortran 2008?
答案 0 :(得分:3)
尝试
write(*,'(i5,f5.2,e12.3)') icount, x, y
答案 1 :(得分:1)
正如@Jeff Irwin建议的那样,可以将格式保存在字符串中 传递它写或打印。
character(*), parameter :: fmt1 = "(i5,f5.2,e12.3)"
!! character(100) :: fmt1 = ... !! to use a non-constant string
write(*,fmt1) icount, x, y
write(*,fmt=fmt1) i2, x2, y2 !! fmt= may be attached for clarity
由于fmt1是通常的字符串,因此它也可以存储为模块 例如,变量,类型组件或作为子例程参数传递。