私はいくつかのレガシーFortranコードを維持するという任務を負っていますが、gfortranでコンパイルするのに問題があります。私はかなりの量のFortran95を作成しましたが、これはFortran 77での初めての経験です。このコードスニペットは、問題のあるものです。
CHARACTER*22 IFILE, OFILE
IFILE='TEST.IN'
OFILE='TEST.OUT'
OPEN(5,FILE=IFILE,STATUS='NEW')
OPEN(6,FILE=OFILE,STATUS='NEW')
common/pabcde/nfghi
でコンパイルすると、ステートメントでgfortran file.FOR
始まるすべての行がエラーになります(たとえば、25エラー制限に達するまでの後続の各行)。でコンパイルしましたが、警告を修正してもこの問題は修正されませんでした。common
Error: Unexpected COMMON statement at (1)
-Wall -pedantic
クレイジーなことは、で始まる4行すべてをコメントアウトするとIF='TEST.IN'
、プログラムは期待どおりにコンパイルおよび動作しますが、すべてコメントアウトする必要があるということです。それらのいずれかをコメント化しないままにしておくと、common
ステートメントから始まる同じエラーが発生します。ステートメントをコメントアウトするcommon
と、次の行から始めて同じエラーが発生します。
私はOSXLeopard(Snow Leopardではない)を使用してgfortran
います。私はこのシステムをgfortran
Fortran95プログラムを作成するために広範囲に使用したので、理論的にはコンパイラー自体は正気です。このコードで何が起こっているのでしょうか?
編集:g77でコンパイルすると:
test.FOR: In program `MAIN__':
test.FOR:154:
IFILE='TEST.IN'
1
test.FOR:158: (continued):
common/pabcde/nfghi
2
Statement at (2) invalid in context established by statement at (1)
えーと、(1)でどのような文脈が確立されていますか?