我在阅读声明时遇到问题。我更喜欢Fortran90,但如果它有帮助,其他版本可能是可能的。我在文件中有一堆数据,可以描述为:
以下是一个例子:
maxele/OS1_HC_LF_A_0001_004_maxele.63 4.22E-03 9.00E-01 1.00E-06 1 -999 -999 -999
maxele/OS1_Inl_A_0001_005_maxele.63 2.11E-03 9.00E-01 1.00E-06 3 -999 -999 -999
maxele/OS1_HC_LF_C_0001_009_maxele.63 1.56E-03 9.00E-01 1.00E-06 2 58.77 -82.82 28.91
maxele/OS1_TS_B_0001_006_maxele.63 3.90E-03 9.00E-01 1.00E-06 1 -999 -999 -999
我已经了解到如果遇到无格式读取的斜杠(/)字符,Fortran将停止读取语句,因此我必须使用格式说明符。并且由于字符串长度未知,我不确定如何确保字符串读取在第一个空格处停止。我相信它可以在整行中阅读,然后再进行解析,但这看起来很复杂。有没有办法强迫它将数据视为空格分隔?提前致谢。
答案 0 :(得分:5)
你确实需要阅读整行和解析,在这种情况下它不是那么糟糕,因为你只需要解析第一个字符串,内部列表可以读取其余字符串。
read(unit,'(a)')string !declared long enough for a whole line
iblnk=index(string,' ')
read(string(iblnk:),*)seven_reals