这就是我要运行的内容:
if (z.le.zstart) then
if (y.ge.((6.95*wg_y2)/5)).and.(y.le.((12.55*wg_y2)/5)) then
indexmedia=nd
end if
end if
对于上下文,
zstart
是常数y
的任意行。
wg_y2 = 5e-6
由于某种原因,它不喜欢(y.ge.((6.95*wg_y2)/5))
位,因为(1)放在该位的末尾。
我怀疑它不喜欢if语句中不是整数的任何东西,但是我将6.95更改为7,将12.55更改为13,但它仍然不喜欢它。也许它最终需要解析为整数?
我需要这些参数才能结束
6.95 是否有解决方法?
答案 0 :(得分:2)
在编译代码时(不好,因为我没有声明变量!但是这不是问题,所以我放弃了以使其变小):
program tst
if (z.le.zstart) then
if (y.ge.((6.95*wg_y2)/5)).and.(y.le.((12.55*wg_y2)/5)) then
indexmedia=nd
end if
end if
end
一个错误:
aa.f90:3:29:
if (y.ge.((6.95*wg_y2)/5)).and.(y.le.((12.55*wg_y2)/5)) then
1
Error: Cannot assign to a named constant at (1)
aa.f90:6:3:
end if
1
Error: Expecting END PROGRAM statement at (1)
这是由于该行中缺少一对圆括号:
if (y.ge.((6.95*wg_y2)/5)).and.(y.le.((12.55*wg_y2)/5)) then
应阅读
if ((y.ge.((6.95*wg_y2)/5)).and.(y.le.((12.55*wg_y2)/5))) then