Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
现代Fortran:无标签输出格式_Fortran - Fatal编程技术网

现代Fortran:无标签输出格式

现代Fortran:无标签输出格式,fortran,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?

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

要理解我的意思,请使用标签:

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?

试试看

write(*,'(i5,f5.2,e12.3)') icount, x, y

正如@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是一个常用的字符串,所以它也可以存储为模块
例如,变量、类型组件或作为子例程参数传递。

要在多个位置重复使用同一格式,还可以将格式保存为字符串。通过为格式字符串选择名称
fmt
,可以将
write
语句编写为
write(*,fmt=fmt)
。我将留给读者来决定这是好事还是坏事。@HighPerformanceMark是的,为了避免Fortran关键字的歧义,为了清晰起见,最好使用不同的变量名。因此,我相应地改变了答案。因为Fortran允许使用关键字名作为变量名,所以我更喜欢在程序中使用“fmt”。