我如何强制fortran在二维数组的每一行写入四个元素?

时间:2017-09-21 15:00:06

标签: fortran fortran77

请考虑以下代码。它一次写入“n”个元素。对于intel编译器,“n”为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标准的答案。

1 个答案:

答案 0 :(得分:1)

您可以用'(4(E13.6,1X))'(包括引号)替换*。这利用了名为format reversion的Fortran功能。

我会注意到你的代码已经不符合Fortran 77,所以我不确定你为什么担心它。