|
与 status = 'old' 无关。
file not found 是你把 in.dat 放错了位置。
如果通过编译环境上的运行按钮运行程序,则应该放在工程文件夹。
如果通过双击debug文件夹下的exe运行,则应该放在debug文件夹。
end-of-file during read 的原因是:
in.dat 文件内容不够。
不够是相对的。
第一次循环,从第一行开始读。当最终到 GOTO 10 的时候,虽然代码里从头开始执行了,但是读取位置还是文件的末端,此时再要读,就读不了了。(因为文件里只有一次的数据)
你是否应该有一个 rewind 语句?
另外,我发现你的数据读取也有问题
主程序中,80 READ(5,*)NF,NP,此时读到的是 8,0,我假设到此为止是正确的。
那么第81行:IF(NF.GT.0)CALL PF(NF,NP,NT,NWP,C(N4),IA(M2),C(N5))
进入到 PF 函数里
SUBROUTINE PF(NF,NP,NT,NWP,F,MF,ZF)
DIMENSION MF(2,NF),ZF(NF),F(NT)
READ(5,*)((MF(I,L),I=1,2),L=1,NF),(ZF(L),L=1,NF)
此处又在读取in.dat,而此时文件里的数据是:
1,1,-3.750
8,1,-7.500
15,1,-7.500
22,1,-7.500
29,1,-7.500
36,1,-7.500
43,1,-7.500
50,1,-7.500
57,1,-7.500
64,1,-7.500
71,1,-7.500
78,1,-7.500
85,1,-3.750
被读入到 PF 函数里的 MF 和 ZF 数组里。看起来是错位了。因为 MF 是整型,2*8 的大小,而 ZF 是 8 的大小。
这一段数字是 13*3 的。 |
|