2012-04-03 23 views
5

私はちょうど非常に古いプログラムの小さな部分を修正したいと思っていました。私はFortranの神を怒らせるために何をしたのか分かりません。構文エラーが見つかりました。および。

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

私が変更した:

SP - コ-2-:

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 

私にエラーが発生します

元のコードは、次の行を持っていますMODIFIED.for(785):エラー#5082:構文エラー。「.OR」が見つかりました。 1の期待:...

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

SP-CO-2-MODIFIED.for(786)BLOCK BLOCKDATAプログラムモジュール型錯体 バイト文字DOUBLE DOUBLECOMPLEXを:エラー#6090:配列値をこの文脈ではオペランドが必要です。

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

SP-CO-2-MODIFIED.for(786):エラー#6087:配列代入文 は、この文脈で必要とされます。

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

私はFORTRANでコード化されていませんほぼ25年ですが、私が正しくそれを思い出すと、条件式全体に括弧が必要です。 – dasblinkenlight

答えて

15

私は本当に多くの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 
+0

ああ、私は大規模なばかだと分かっていた。それはそれをしたようです、ありがとう。 –

関連する問題