fortran中调用程序出现invalid integer错误,哪位帮忙解决一下

来源:百度知道 编辑:UC知道 时间:2024/06/24 23:53:21
fortran90
我的输入程序是这样的:
OPEN(5,FILE='STR.DAT')
OPEN(5,FILE='STR.DAT')
OPEN(6,FILE='STW.DAT')
READ(5,*)NJ,NE,NS,NPJ
READ(5,*)(X(I),Y(I),Z(I),I=0,NJ)
READ(5,*)((JE(I,J),J=1,NE),I=1,2)
READ(5,*)((JS(I,J),J=1,NS),I=1,4)
READ(5,*)((PJ(I,J),J=1,NPJ),I=3,3)
READ(5,*)(A(I),E(I),I=1,NE)
输入文件中是这样的:
4,3,3,1
0.0,0.0,4.0,0.0
-2.0,2.0,0.0,0.0
0.0,0.0,0.0,-3.0
1,1,1
2,3,4
1,2,4
1,1,1
1,1,1
1,1,1
0.0,0.0,-3.0
0.16,2.0E07
0.16,2.0E07
0.16,2.0E07
运行程序后出现“F6101:READ()-invalid integer”错误,高手帮帮忙解决一下

1.
OPEN(5,FILE='STR.DAT')
OPEN(5,FILE='STR.DAT')
这里重复了。open一次就行了

2,READ(5,*)(X(I),Y(I),Z(I),I=0,NJ)
这句中,你确定i是从0开始的吗?你的x,y,z三个数组的下标能否等于0?你再看看定义。

3
对于你的数据
0.0,0.0,4.0,0.0
-2.0,2.0,0.0,0.0
0.0,0.0,0.0,-3.0
这里是一行四个数据,而你的
READ(5,*)((JE(I,J),J=1,NE),I=1,2)
中相当于
READ(5,*)((JE(I,J),J=1,3),I=1,2)
就是要读6个数据,它会读掉一行半,就是读掉0.0,0.0,4.0,0.0 和-2.0,2.0,然后扔掉后面两个数据,0.0,0.0

同样地,
READ(5,*)((JS(I,J),J=1,NS),I=1,4)读12个数据,分别是
0.0,0.0,0.0,-3.0
1,1,1
2,3,4
1,2
后面的4被扔掉

READ(5,*)((PJ(I,J),J=1,NPJ),I=3,3) 仅读1个数据,即1给PJ(3,1),后面的1,1 扔掉了

READ(5,*)(A(I),E(I),I=1,NE)读6个数据

1,1,1
1,1,1

后面的数据是不是多的?
你的read语句跟你的数据根本不搭调。

乱七八糟……