2017-10-21 9 views
0

ワトコムFortranからgfortranに作業コードを移行しようとしています。私はオープンステートメントを持っています:Watcom Fortranからgfortranに移行し、このエラーを理解できません

OPEN (UNIT = oufile, 
*  FILE = OUPATH, 
*  ACTION = 'WRITE', 
*  ACCESS = 'SEQUENTIAL', 
*  STATUS = 'UNKNOWN', 
*  CARRIAGECONTROL = 'YES', 
*  BLOCKSIZE = 80, 
*  FORM = 'FORMATTED', 
*  IOSTAT = OPERR, 
*  ERR  = 400) 

はい、それはF77スタイルです。これは恐竜です。 *は継続文字です。 gfortranでコンパイルしてこのエラーが発生した場合:

 *  STATUS = 'UNKNOWN', 
           1 
Error: Syntax error in OPEN statement at (1) 
.f(158,32): error : Syntax error in OPEN statement. 

なぜカンタでバーフィングされているのですか?私はどんな助けにも感謝します。

+0

古いデータファイルとの互換性が必要ですか? –

答えて

3

CARRIAGECONTROLはOPENの標準キーワードではなく、BLOCKSIZEもありません。それらの両方を取り除き、あなたが得るものを見てください。適切な置換があるかどうかを確認するためにgfortranのドキュメントを読んでください。あなたはおそらく何もせずにブロックすることができます - 私は、フォートランの伝統的なキャリッジコントロール(特にそれが削除された機能なので)をどのように処理するのかはわかりません。

+1

最近のgfortranは、コンパイラオプション-fdec – tim18

+1

でのcarryagecontrolのサポートを追加しました。CARRIAGECONTROLとBLOCKSIZEは両方とも、DEC-heritageコンパイラ(DEC/Compaq/Intel(ただし 'YES'はCARRIAGECONTROLで受け付ける値ではありません。 FORTRAN 'に@tm18というオプションが付いているのですが、gfortranが苦情を申し立てたのはコンマではなく、それに従ったものではないことに気付いていたはずです –

+0

出力ファイルを消費するソフトウェアを知っていれば確かにCARRIAGECONTROLが必要でした。そのBLOCKSIZEもいくつかばかげた理由でも問題になるでしょう。ありがとう、@ tim18コンパイラオプションです。 –

関連する問題