Tôi chỉ muốn sửa đổi một phần nhỏ của một chương trình rất cũ và tôi không thể cho cuộc sống của tôi tìm ra những gì tôi đã làm để tức giận các vị thần Fortran.Lỗi cú pháp, tìm thấy .và. và .or.
Mã ban đầu có dòng sau:
if (r.gt.rstep) xappad = xappad*fakm
mà tôi đã sửa đổi để:
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
nào mang lại cho tôi những lỗi:
sp-co-2- MODIFIED.for (785): lỗi # 5082: Lỗi cú pháp, được tìm thấy '.OR'. khi chờ đợi một trong số: BLOCK BLOCKDATA CHƯƠNG TRÌNH PHẦN LOẠI 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): lỗi # 6090: Một mảng có giá trị toán hạng được yêu cầu trong ngữ cảnh này.
: .and. r.lt.2.92*rstep) xappad = xappad*fakm
------^
sp-co-2-MODIFIED.for (786): lỗi # 6087: Một câu lệnh gán mảng là cần thiết trong bối cảnh này.
: .and. r.lt.2.92*rstep) xappad = xappad*fakm
-------------------------------------------^
Tôi đã không được mã hóa trong FORTRAN cho gần 25 năm, nhưng nếu tôi nhớ lại chính xác, bạn cần một cặp dấu ngoặc đơn xung quanh toàn bộ biểu thức có điều kiện. – dasblinkenlight