小编Wat*_*All的帖子

从Intel移植到GNU gfortran时的可变格式语句

假设我正在尝试写出如下所示的CSV文件头:

STRING1     2001,     2002,     2003,     2004,
Run Code Online (Sandbox Code Playgroud)

一些可变格式的Fortran90代码可以做到这一点

INTEGER X<Y
X=2001
Y=2004
WRITE(6,'(A,(999(5X,I4,",")))') ' STRING1',(y,y=X,Y)
Run Code Online (Sandbox Code Playgroud)

“ 999”重复完成所需的次数(5X,I4,“,”)格式次数(至少达到999次)。假设X和Y可能会发生变化,因此循环迭代次数也可能会发生变化。

但是,如果我希望标题看起来像这样,在序列的末尾添加一个附加字符串,例如

STRING1     2001,     2002,     2003,     2004, STRING2
Run Code Online (Sandbox Code Playgroud)

...我尝试在格式字符串的末尾添加另一个A,但是这种重复的变量格式结构显然不知道在整数完成后需要“转义”,因此会出错。

我可以通过在格式字符串中包含'ADVANCE =“ no”'并使用新的WRITE语句打印第二个字符串来获得我从根本上想要的东西来解决此问题,但是有一种方法可以用单个格式结构来完成所有操作?

[注意:请不要用尖括号括起来;这是针对GNU gfortran的,它不支持该扩展名]

fortran gfortran fortran90

2
推荐指数
1
解决办法
378
查看次数

标签 统计

fortran ×1

fortran90 ×1

gfortran ×1