现代Fortran:没有标签的输出格式

时间:2015-04-25 17:44:45

标签: fortran

我正在寻找一种不使用标签来指定输出格式的方法。

用标签来理解我的意思:

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?

2 个答案:

答案 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是通常的字符串,因此它也可以存储为模块 例如,变量,类型组件或作为子例程参数传递。