If statement “Fortran”;无法在(1)处赋值给命名常量;in-if语句

If statement “Fortran”;无法在(1)处赋值给命名常量;in-if语句,if-statement,fortran,If Statement,Fortran,以下是我试图运行的内容: 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改为

以下是我试图运行的内容:

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 有解决方法吗?

在编译代码时(不太好,因为我没有声明变量!但这不是问题所在,所以我不使用它,以保持它的小规模):

其中一个错误是:

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)
这是因为该行中缺少一对圆括号:

如果(y.ge.((6.95*wg_y2)/5))和(y.le.((12.55*wg_y2)/5))那么

应该读哪个

如果((y.ge.((6.95*wg_y2)/5))和(y.le.((12.55*wg_y2)/5)),那么在编译代码时(不太好,因为我没有声明变量,但这不是问题所在,所以我放弃它以保持它的小):

其中一个错误是:

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)
这是因为该行中缺少一对圆括号:

如果(y.ge.((6.95*wg_y2)/5))和(y.le.((12.55*wg_y2)/5))那么

应该读哪个

if((y.ge.((6.95*wg_y2)/5))和(y.le.((12.55*wg_y2)/5)))则