2017-09-21 82 views
0

請考慮以下代碼。它一次寫入「n」個元素。對於intel編譯器,「n」是5,對於pgi,「n」是4如何強制Fortran在二維數組的每行中寫入四個元素?

  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

您可以用'(4(E13.6,1X))'(包括引號)替換*。這利用了名爲format reversion的Fortran功能。

我會注意到你的代碼已經不符合Fortran 77,所以我不確定你爲什麼關心這個。

+0

謝謝。我在intel論壇上關注了您的幾篇文章。無論如何,我提前提出這個問題。自己解決 – wander95

相關問題