如果文件没有可变性,您几乎不需要解析它。假设您已为文件中所有感兴趣的数据项声明了变量,并且这些变量的名称显示在文件的行上。例如
INTEGER :: nq , nt, nm, irel
REAL:: scf_mix, scf_tol ! '-' not allowed in Fortran names
CHARACTER(len=48) :: label, text
LOGICAL :: semicore, lloyd
! Complete this as you wish
然后写一段这样的代码
OPEN(12,file="FeRh.pot_new",status="old")
READ(12,*) ! Not interested in the 1st line
READ(12,*) label, nq
READ(12,*) label, nt
READ(12,*) label, nm
READ(12,*) label, irel
READ(12,*) ! Not interested in this line
READ(12,*) label, bext
READ(12,*) label, semicore
! Other lines to write
CLOSE(12)
福尔特兰语言的列表导向输入理解行中的空白来分隔值。它不会将这些空格读取为字符变量的一部分。这种行为可以改变,但在你的情况下你不需要这样做。请注意,它也会理解该字符F
意思是.false.
当读入逻辑变量时。
我的代码片段只是忽略了标签和解释行。如果你性格紧张,你可以处理它们,也许
IF (label/='NE') STOP
或者任何你想要的。