0

Fortran g77 を使用していて、次の問題が発生しました。

c this program calculates runoff and sediment
  1 2
 Unrecognized statement name at (1) and invalid form for assignment or statement-function definition at (2)

また、コンパイラは.forファイル拡張子のみを認識し、.f.

誰が知っていますか、どこに問題がありますか? http://www.cse.yorku.ca/~roumani/fortran/ftn.htmからダウンロードしました。

4

3 に答える 3

1

私はあなたがこのコンパイラに固執したいと思うと思います。

上記のように、F2EXEバッチファイルを使用することで発生する問題はあまり役に立ちません。最初にファイル名に「.for」が自動的に追加されるため、「。f」ファイルをコンパイルできません。自由形式の構文。これは、Fortran 77でプログラミングする場合には珍しいことです(Fortran 90が必要な場合は、別のコンパイラーを見つけてください。他の回答からリンクが得られます)。


ここで、プログラムmyprogram.fを作成し、そのプログラムが存在するのと同じディレクトリにあるWindowsコマンドラインを使用しているとします(たとえば、「cdC:\ mydirectory」を使用して変更します)。

でコンパイルします

g77 myprogram.f

SLATECを使用する場合は、

g77 myprogram.f -lslatec

.exeファイル(デフォルトはa.exe)の名前を指定する場合は、次のように記述します。

g77 myprogram.f -o myprogram.exe

他にも便利なオプションがあります

g77 -O2 myprogram.f     to optimize (within g77 2.95 limitations)
g77 -Wall myprogram.f   to enable all compiler warnings, very useful
                          to find errors in your code
g77 -c myprogram.f      to only compile (you get a .o file), this is
                          useful to compile functions and subroutines, to
                          later build a static library (.a file), like
                          libslatec.a which is given with the compiler

そして、ar.exeを使用してライブラリを構築するには:

ar cru mylib.a myfunc1.o myfnuc2.o ...

その後、使用することができます

g77 myprogram.f mylib.a

G77は、Windowsのコマンドラインで実行されます。あなたはテキストエディタでプログラムを書きます。Notepad ++はかなり優れており、無料です。http://notepad-plus-plus.org/を参照してください

コンパイルに問題がある場合は、環境変数が原因である可能性があるため、ここにいくつかの精度があります。G77コンパイラ(g77.exe)の場所をWindowsに指示する必要があります。

ダウンロードしたサイトの指示に従って、Windowsの環境変数PATHおよびLIBRARY_PATHを変更できます。コンパイラをC:\ Fディレクトリにインストールする必要があります。つまり、C:\ F \ G77\binなどがあります。

そのページの説明を少し変更します。

  • PATHC:\ F \ G77\binに設定する必要があります
  • そして、LIBRARY_PATHからC:\ F \ G77 \ lib; C:\ F \ SLATEC \ lib

このLIBRARY_PATHの変更により、上記のように「-lslatec」を使用してSLATECでコンパイルできるようになります。


コンパイラについてのメモ。これはG77で、GNUFortran77としても知られています。GCC 3.4.6までよく知られているGCCスイートと統合された古いコンパイラ(現在はGCC 4.7.2にあります)。また、ダウンロードしたコンパイラはバージョンGCC2.95用です。

これは優れたFortran77コンパイラですが、あまり最適化されておらず、もちろん、IntelSSEなどの新しいプロセッサ機能はサポートされていません。

最新のFortranコンパイラーは、Fortran 77のすべてではないにしてもほとんどを理解でき、さらに、Fortran90のすべての新しい機能と非常に便利な新しい標準を理解できます。

ページが破壊された場合に備えて、同じコンパイラをダウンロードする別の場所があることを知っておくことも興味深いかもしれません(SLATECがない場合を除く): http://www.mbr-pwrc.usgs.gov/software/g77。 html

于 2012-10-03T15:00:44.307 に答える
1

コンパイラは、そのステートメントをコメントとして認識していません。コメントとして、行を無視する必要がありますが、解析しようとしています。「C」が最初の列にあることは確かですか?

なぜg77を使っているのですか?何年もサポートされていません。gfortran は、現在の GNU Fortran コンパイラです。FORTRAN 77、Fortran 90、95、および 2003 と 2008 の一部をコンパイルできます。

編集:おそらく大文字の「C」が必要です。

于 2012-09-27T06:02:17.870 に答える
1

リンク先のページには、f2exeラッパーが-ffree-formコンパイラに渡すことが記載されています。

コンパイル コマンド

上記のコマンドは、「実際の」コンパイル コマンドでf2exeある を呼び出す単なるバッチ ファイルです。g77コマンド:

g77 -ffree-form prog.for -oprog.exe

コンパイラにファイルをコンパイルするように指示しprog.for、出力をファイルに保存しますprog.exe。スイッチはフリーフォーム スタイルを示します(-ffree-form古いスタイルを使用している場合は削除してください)。

自由形式の Fortran で許可されているコメント形式は、 で始まる行の形式のみです!。実際のところ、これは同じページの上記のテキストのすぐ下にも書かれています。

コメント

フリーフォーム スタイルでは!、フルライン コメントとインライン コメントの両方に使用します。古いスタイルでは、列 1 に「C」を使用します。

提供されたf2exeラッパーを使用していない場合は-ffree-form、固定形式の FORTRAN 77 コードをコンパイルするときにオプションを渡さないでください。

于 2012-09-27T08:57:38.340 に答える