我一直在网上寻找,但我还没有找到任何解决方案。
我正在尝试从 .neu(中性格式)文件中读取,该文件是 Gambit 软件生成的一种文件类型,包含有关 CFD 计算中使用的网格的信息。
该文件是这样的:
CONTROL INFO 2.4.6
** GAMBIT NEUTRAL FILE
S1
PROGRAM: Gambit VERSION: 2.4.6
NUMNP NELEM NGRPS NBSETS NDFCD NDFVL
120847 240234 1 1 2 2
ENDOFSECTION
NODAL COORDINATES 2.4.6
1 0.00000000000e+000 2.50000000000e+001
2 0.00000000000e+000 0.00000000000e+000
3 0.00000000000e+000 2.49000000000e+001
4 0.00000000000e+000 2.48000000000e+001
...
我正在尝试阅读以下行:
120847 240234 1 1 2 2
这是我的代码:
PROGRAM readGAMBIT
INTEGER, DIMENSION(6) :: mdata
LOGICAL :: lexist
INTEGER :: i
INQUIRE (FILE="mesh.neu", EXIST=lexist)
IF (.not.lexist) THEN
STOP "**** mesh.neu does not exist ****"
ENDIF
OPEN(77,file="mesh.neu")
DO i = 1, 6
READ(1,*) ! Ignores the 1st 6 lines
ENDDO
READ(1,*) mdata(1), mdata(2), mdata(3), mdata(4), mdata(5), mdata(6)
PRINT*, mdata(1)
CLOSE(77)
END PROGRAM readGAMBIT
但是,当我运行此代码时,我得到 "Fortran runtime error: End of file" 。然而,该文件仅在几千行后结束。
我究竟做错了什么?为什么程序认为文件只在第一行结束?