Fortran Coder

查看: 9727|回复: 4
打印 上一主题 下一主题

[流程控制] fortran 调试时如何处理条件语句

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
9 点
跳转到指定楼层
楼主
发表于 2015-6-20 11:57:20 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
integer dim
parameter (dim=2)
double precision  dvx(dim), x, y, z

if(dim .eq. 1) then
    x=2.0+dvx(1)
elseif(dim.eq.2) then
    x=2.0+dvx(1)
    y=2.0+dvx(2)
else
    x=2.0+dvx(1)
    y=2.0+dvx(2)
    z=2.0+dvx(3)
endif

stop
end

debug下提示错误:
I:\visual studio 2010\test\test\Source1.f90(13): error #5560: Subscript #1 of the array DVX has value 3 which is greater than the upper bound of 2
但release运行无错误
求高人指教,用得是ivf编译器1. 程序可以处理3维问题,但我这里只用于解决2维问题,所以dim设为2,“z=2.0+dvx(3)
”应该不执行的呀
2. 在cvf下可以顺利通过调试
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
9 点
沙发
 楼主| 发表于 2015-6-22 16:35:20 | 显示全部楼层
也不是错误,cvf下就不会错误,主要是编译时不会判断,if的两条语句都运行就出现错误了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-15 12:14

Powered by Tencent X3.4

© 2013-2024 Tencent

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