Reading format in Fortran 90

人盡茶涼 提交于 2019-12-07 07:14:57

问题


I have a huge file to read whose structure is:

 [...]
 (0,0,0,0,0): 5.00634e-33, 5.59393e-33, 6.24691e-33, 7.29338e-33,
 (0,0,0,0,4): 7.77607e-33, 8.95879e-33, 9.65316e-33, 1.07434e-32,
 (0,0,0,0,8): 1.20824e-32, 1.34983e-32, 1.49877e-32, 1.73061e-32,
 (0,0,0,0,12): 1.919e-32, 2.15391e-32, 2.3996e-32, 2.67899e-32,
 [...]

I'm interested in reading the value after ":", which format should I use in the read statement if I use Fortran90?

I've tried with

 read(1,'("(",I6,",",I6,",",I6,",",I6,",",I6,"):",F10.4,F10.4,F10.4,F10.4)')idx1,idx2,idx3,idx4,idx5,dummy1,dummy2,dummy3,dummy4

But I got a forrtl: severe (64): input conversion error


回答1:


Since it appears that the items don't line up in columns this is tricky to do with formats. I'd approach it this way:

read (55, '(A)')  string
colon_pos = index (string, ":")
read (string (colon_pos+1:len_string), * ) real1, real2, real3, real4

read each line into a string, locate the colon, then use list-directed IO to process the numeric values in the string after the colon.



来源:https://stackoverflow.com/questions/12354503/reading-format-in-fortran-90

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!