如何强制 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 标准,所以我不确定您为什么担心这一点。