fortran - 语法错误,发现 .and。和.或。

标签 fortran

我只是想修改一个非常旧的程序的一小部分,我一生都无法弄清楚我做了什么激怒了 Fortran 众神。

原始代码有以下几行:

  if (r.gt.rstep) xappad = xappad*fakm

我已修改为:
  if (r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep 
 : .and. r.lt.2.92*rstep) xappad = xappad*fakm

这给了我错误:

sp-co-2-MODIFIED.for(785): error #5082: Syntax error, found '.OR.' when expecting one of: BLOCK BLOCKDATA PROGRAM MODULE TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...


      if (r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep 
-------------------------------------------------------------------------^

sp-co-2-MODIFIED.for(786):错误 #6090:在此上下文中需要数组值操作数。
     : .and. r.lt.2.92*rstep) xappad = xappad*fakm
------^

sp-co-2-MODIFIED.for(786): error #6087: An array assignment statement is required in this context.


     : .and. r.lt.2.92*rstep) xappad = xappad*fakm
-------------------------------------------^

最佳答案

我真的不太了解 FORTRAN,但在我看来,您在条件周围缺少一对括号:

if ((r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep .and. r.lt.2.92*rstep)) xappad = xappad*fakm

关于fortran - 语法错误,发现 .and。和.或。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994117/

相关文章:

python - 如何将 numpy 数组顺序强制为 Fortran 样式?

struct - Fortran - 可分配派生类型的可分配数组

warnings - 如果取消未使用的变量警告,保持所有其他变量不变

c - 阅读封闭的命名管道 block

eclipse - 在 Eclipse-Photran 中为 Windows 上的 fortran 编译器配置 LAPACK

fortran - Fortran 中的实数同时使用科学记数法和下划线类型说明符

fortran - fortran 中的并行错误

c - 在 C 中使用 Fortran 函数会导致启动时出现段错误

loops - OPENMP F90/95 嵌套 DO 循环 - 在串行实现上得到改进的问题

fortran - 现代 Fortran 等效于嵌套 DO 和 GO TO 共享的操作语句