24小时热门版块排行榜    

查看: 657  |  回复: 3

arsc

金虫 (小有名气)

[求助] FORTRAN Scientific Notation的問題

各位好!我現有一個FORTRAN的問題,就是我有一個純文字的檔案,格式如下:
0.685397409669     -0.037711621465      0.190884331269      0.027385476901      0.325064094772      0.462804401917
-0.117353976805     -0.023869972050     -0.038835320256      0.586564862921     -0.010441895361     -0.065817733455
-0.097512750785     -0.033862209379      0.191761907414     -0.059808823557     -0.167301876690     -0.257048149005
-0.028249982206      0.186605198910      0.588005709144     -0.006263460893      0.000034661655     -0.016796615840
-0.210188539799     -0.020770985491     -0.045579498778      0.502021118626     -0.009096699792      0.000508641947
0.007159775177     -0.015591466453     -0.063408579382     -0.021999152151      0.017394056689      0.466199912996
-0.034585463573     -0.005729707727     -0.008617777786     -0.042525494546     -0.014796702670     -0.102485949978
0.026701970270     -0.032481390131      0.616372608337     -0.198352441955      0.107762270210      0.100955565583

(原本是一行6個數值)
我是剛剛接觸FORTRAN, 嘗試寫一個程式?戆鸭兾淖謾n案中的數值以SCIENTIFIC NOTATION?盹@示,而不是以上的小數。我知道在FORTRAN中的FORMAT有一倨ES的功能是?鞦ORMAT 數字做SCIENTIFIC NOTATION,以下是我的CODE,但是我做不到我想要的效果,多謝指教!

      program testhess
      REAL*8 hess(6,12)
      NLINES=40
      NFIELDS=6
      OPEN(1,FILE='hessian.txt')
      DO 10 I=1,NLINES
      READ(1, 100, END=15)(hess(I,J),J=1,NFIELDS)
  100 FORMAT (6(5x, F15.12))
   10 CONTINUE
   15 close(1)
      DO 20 I=1,NLINES
      WRITE(6, 200)(hess(I,J),J=1,NFIELDS)
200  FORMAT (6(5x, F15.12))
   20 CONTINUE
      STOP
      END
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guoyt

木虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-12-30 01:59:40
arsc: 金币+8, ★★★★★最佳答案, 多謝你,你怎知道要?�15改為20的? 2012-12-30 08:22:27
200  FORMAT (6(5x, F15.12))
改为

200  FORMAT (6(5x, E20.12))

应该可以
2楼2012-12-29 23:32:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chembetsey

木虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-12-30 01:59:48
arsc: 金币+2, ★有帮助, 導師叫我學FORTRAN 77, 所以我不懂其他寫法,可否詳細講解一下,萬分感激! 2012-12-30 08:19:58
建议采取新的写法,不要再用77的写法。
读数据的时候不要用带格式的读。
3楼2012-12-30 01:15:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chembetsey

木虫 (小有名气)

program testhess
      REAL*8 hess(6,12) !不要用固定的数字
      NLINES=40
      NFIELDS=6
      OPEN(1,FILE='hessian.txt')
      DO 10 I=1,NLINES
      READ(1, 100, END=15)(hess(I,J),J=1,NFIELDS)
  100 FORMAT (6(5x, F15.12))
   10 CONTINUE
   15 close(1)
!既然只是要读进来,一句就可以了:read(1, *) (hess(i,j),j=1, Nfields), i=1, Nlines)

      DO 20 I=1,NLINES
      WRITE(6, 200)(hess(I,J),J=1,NFIELDS)
200  FORMAT (6(5x, F15.12))
   20 CONTINUE
!写出来也一样:write(6, '(E15.12)') (hess(i,j),j=1, Nfields), i=1, Nlines)

      STOP
      END
4楼2012-12-30 08:37:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 arsc 的主题更新
信息提示
请填处理意见