Fortran Coder

标题: 这个报错该怎么改呢,急求解答 [打印本页]

作者: 时光深处    时间: 2023-5-11 17:10
标题: 这个报错该怎么改呢,急求解答
Do J=1,ILO
       Do 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.   [NUTRINH]
            if (NUTRINH(j,i,k) .le. 0.) NUTRINH(j,i,k)=eps




作者: 楚香饭    时间: 2023-5-11 19:01
本帖最后由 楚香饭 于 2023-5-11 19:02 编辑

请注意 NUTRINH 和 eps 的定义,.le. 运算符两边的数组维度必须一致。
= 运算符左边的维度不能小于右边的维度。

作者: 时光深处    时间: 2023-5-11 19:55
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问题呀

作者: 楚香饭    时间: 2023-5-12 08:31
有必要的话,把定义部分代码给出来。甚至全屏截图
作者: necrohan    时间: 2023-5-12 14:26
在循环内的if语句前面输出看看
write(*,*)NUTRINH(j,i,k)
作者: 时光深处    时间: 2023-5-13 17:23
时光深处 发表于 2023-5-11 19:55
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问 ...

C:\Users\谷芳芳\Pictures\Screenshots\屏幕截图 2023-05-13 172112.png
作者: 时光深处    时间: 2023-5-13 17:25
本帖最后由 时光深处 于 2023-5-13 17:44 编辑
楚香饭 发表于 2023-5-12 08:31
有必要的话,把定义部分代码给出来。甚至全屏截图

C:\Users\谷芳芳\Pictures\Screenshots\屏幕截图 2023-05-13 172112.png 我还想再请教下,这个报错下面有个三角,这个到底是什么作用呢?



作者: 楚香饭    时间: 2023-5-13 18:00
请检查 eps 的定义,我是说他的类型,是否是数组,而不是他的值是 1.e-8

如有必要,可上传 Mod_WQM_NC.f 文件(压缩后上传)




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2