这个报错该怎么改呢,急求解答
Do J=1,ILODo I=M,1,-1
Do K=1,N
LDONO = JC(J,I,K)
DO LDO = 1,LDONO
if (NUTRINH(j,i,k) .le. 0.) NUTRINH(j,i,k)=eps
if (NUTRINO3(j,i,k) .le. 0.) NUTRINO3(j,i,k)=eps
if (NUTRIP(j,i,k) .le. 0.) NUTRIP(j,i,k)=eps
if (DON(j,i,k) .le. 0.) DON(j,i,k)=eps
if (DOP(j,i,k) .le. 0.) DOP(j,i,k)=eps
if (PHYTOS(j,i,k) .le. 0.) PHYTOS(j,i,k)=eps
if (PHYTOL(j,i,k) .le. 0.) PHYTOL(j,i,k)=eps
if (ZOOS(j,i,k) .le. 0.) ZOOS(j,i,k)=eps
if (ZOOL(j,i,k) .le. 0.) ZOOL(j,i,k)=eps
if (POP(j,i,k) .le. 0.) POP(j,i,k)=eps
if (PON(j,i,k) .le. 0.) PON(j,i,k)=eps
if (bSi(j,i,k) .le. 0.) bSi(j,i,k)=eps
if (BAC(j,i,k) .le. 0.) BAC(j,i,k)=eps
if (cod1(j,i,k) .le. 0.) cod1(j,i,k)=eps !2.0
if (cod2(j,i,k) .le. 0.) cod2(j,i,k)=eps !2.0
if (cod3(j,i,k) .le. 0.) cod3(j,i,k)=eps !2.0
if (codm(j,i,k) .le. 0.) codm(j,i,k)=eps
这几个的报错都是这样的,实在不知道问题出在哪了
Error: The shapes of the array expressions do not conform.
if (NUTRINH(j,i,k) .le. 0.) NUTRINH(j,i,k)=eps
本帖最后由 楚香饭 于 2023-5-11 19:02 编辑
请注意 NUTRINH 和 eps 的定义,.le. 运算符两边的数组维度必须一致。
= 运算符左边的维度不能小于右边的维度。
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问题呀
有必要的话,把定义部分代码给出来。甚至全屏截图 在循环内的if语句前面输出看看
write(*,*)NUTRINH(j,i,k) 时光深处 发表于 2023-5-11 19:55
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问 ...
C:\Users\谷芳芳\Pictures\Screenshots\屏幕截图 2023-05-13 172112.png 本帖最后由 时光深处 于 2023-5-13 17:44 编辑
楚香饭 发表于 2023-5-12 08:31
有必要的话,把定义部分代码给出来。甚至全屏截图
C:\Users\谷芳芳\Pictures\Screenshots\屏幕截图 2023-05-13 172112.png我还想再请教下,这个报错下面有个三角,这个到底是什么作用呢?
请检查 eps 的定义,我是说他的类型,是否是数组,而不是他的值是 1.e-8
如有必要,可上传 Mod_WQM_NC.f 文件(压缩后上传)
页:
[1]