如何强制 Fortran 在二维数组的每行中写入四个元素?
How do I force fortran to write four elements per line of a two dimensional array?
考虑以下代码。它一次写入 "n" 个元素。 "n" 对于 intel 编译器是 5,对于 pgi
"n" 是 4
icels=128
jcels=128
imat=2 ! just for example
write(ounit,*)
x ((real(pr(i,j,imat)),i=1,icels),j=1,jcels)
其中 "x" 是续行符。我希望两个编译器的输出格式相同。一个例子:
6.2500001E-03 7.0312498E-03 7.8125000E-03 8.5937502E-03
9.3750004E-03 1.0156250E-02 1.0937500E-02 1.1718750E-02
.....
.....
如何将 * 替换为正确的格式?更喜欢符合 fortran77 的答案。
您可以将 * 替换为“(4(E13.6,1X))”(包括引号)。这利用了称为 format reversion.
的 Fortran 功能
我会注意到您的代码已经不符合 Fortran 77 标准,所以我不确定您为什么担心这一点。
考虑以下代码。它一次写入 "n" 个元素。 "n" 对于 intel 编译器是 5,对于 pgi
"n" 是 4 icels=128
jcels=128
imat=2 ! just for example
write(ounit,*)
x ((real(pr(i,j,imat)),i=1,icels),j=1,jcels)
其中 "x" 是续行符。我希望两个编译器的输出格式相同。一个例子:
6.2500001E-03 7.0312498E-03 7.8125000E-03 8.5937502E-03
9.3750004E-03 1.0156250E-02 1.0937500E-02 1.1718750E-02
.....
.....
如何将 * 替换为正确的格式?更喜欢符合 fortran77 的答案。
您可以将 * 替换为“(4(E13.6,1X))”(包括引号)。这利用了称为 format reversion.
的 Fortran 功能我会注意到您的代码已经不符合 Fortran 77 标准,所以我不确定您为什么担心这一点。