Solo quería modificar una pequeña parte de un programa muy antiguo y no puedo por mi propia vida descubrir qué he hecho para enojar a los dioses de Fortran.Error de sintaxis, encontrado .and. y .or.
El código original tiene la siguiente línea:
if (r.gt.rstep) xappad = xappad*fakm
que he modificado para:
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
Lo que me da los errores:
sp-co-2- MODIFIED.for (785): error # 5082: error de sintaxis, encontrado '.OR' cuando se espera uno de: BLOCK BLOCKDATA módulo de programa tipo complejo BYTE doble carácter 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): error # 6090: Una matriz-valorado operando es requerido en este contexto.
: .and. r.lt.2.92*rstep) xappad = xappad*fakm
------^
sp-co-2-MODIFIED.for (786): error # 6087: Se requiere una instrucción de asignación array en este contexto.
: .and. r.lt.2.92*rstep) xappad = xappad*fakm
-------------------------------------------^
no he codificado en FORTRAN para casi 25 años, pero si lo recuerdo correctamente, necesitas un par de paréntesis alrededor de toda la expresión condicional. – dasblinkenlight