Fortran Coder

查看: 1563|回复: 7
打印 上一主题 下一主题

[求助] 这个报错该怎么改呢,急求解答

[复制链接]

13

帖子

8

主题

0

精华

入门

F 币
55 元
贡献
33 点
跳转到指定楼层
楼主
发表于 2023-5-11 17:10:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2023-5-11 19:01:05 | 只看该作者
本帖最后由 楚香饭 于 2023-5-11 19:02 编辑

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

13

帖子

8

主题

0

精华

入门

F 币
55 元
贡献
33 点
板凳
 楼主| 发表于 2023-5-11 19:55:40 | 只看该作者
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问题呀

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 2023-5-12 08:31:25 | 只看该作者
有必要的话,把定义部分代码给出来。甚至全屏截图

250

帖子

2

主题

0

精华

宗师

F 币
1730 元
贡献
872 点

规矩勋章

5#
发表于 2023-5-12 14:26:42 | 只看该作者
在循环内的if语句前面输出看看
write(*,*)NUTRINH(j,i,k)

13

帖子

8

主题

0

精华

入门

F 币
55 元
贡献
33 点
6#
 楼主| 发表于 2023-5-13 17:23:57 | 只看该作者
时光深处 发表于 2023-5-11 19:55
从定义上看是没什么问题的,NUTRINH定义的话是实测值,肯定不可能小于0,eps的定义是1.e-8,这样看没什么问 ...

C:\Users\谷芳芳\Pictures\Screenshots\屏幕截图 2023-05-13 172112.png

13

帖子

8

主题

0

精华

入门

F 币
55 元
贡献
33 点
7#
 楼主| 发表于 2023-5-13 17:25:46 | 只看该作者
本帖最后由 时光深处 于 2023-5-13 17:44 编辑
楚香饭 发表于 2023-5-12 08:31
有必要的话,把定义部分代码给出来。甚至全屏截图

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


712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

8#
发表于 2023-5-13 18:00:45 | 只看该作者
请检查 eps 的定义,我是说他的类型,是否是数组,而不是他的值是 1.e-8

如有必要,可上传 Mod_WQM_NC.f 文件(压缩后上传)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-26 06:39

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表