11

gfortran が f90 または f95 をコンパイルできることを理解していますか? コンパイルしているものをどのように知るのですか? また、f77 コードをコンパイルできますか? ubuntu にはすでに fortran コンパイラがありますか、それとも gfortran をダウンロードする必要がありますか?

4

2 に答える 2

20

gfortranは、ファイル拡張子から特定のことを推測できます。ファイルの拡張子が.f、.f90、f95、.f03、または.f08の場合、適切な標準の固定(.f)形式またはフリー形式と見なされます。ただし、オプション-std = f2003を使用して、(たとえば)fortran2003コードを強制的にコンパイルすることができます。たとえば、ドキュメントから、

-std=std

プログラムが準拠することが期待される標準を指定します。これは、、、、、、、またはのf95いずれかf2003です。stdのデフォルト値はです。これは、GNU Fortranでサポートされているすべての拡張機能を含む最新のFortran標準のスーパーセットを指定しますが、新しいコードでの使用が推奨されていない廃止された拡張機能については警告が表示されます。値は同等ですが、廃止された拡張機能に関する警告はなく、古い非標準プログラムに役立つ場合があります。、、、、および_ _f2008f2018gnulegacygnulegacyf95f2003f2008f2018値は、Fortran 95、Fortran 2003、Fortran 2008、およびFortran2018標準への厳密な準拠をそれぞれ指定します。関連する言語標準を超えるすべての拡張機能に対してエラーが発生し、許可されているが後の標準では廃止されているFortran77機能に対して警告が表示されます。-std=f2008tsこれにより、FortranとCのさらなる相互運用性に関する技術仕様(TS)29113およびFortranの追加の並列機能に関するTS18508の追加を含むFortran2008標準が可能になります。

いくつかの例外を除いて、Fortran標準は高度に後方互換性があるため、多くの「優れた」標準準拠のFortran-77コードもFortran2003コードで有効であることに注意してください。それに関する主な問題は、80年代以前の多くのFortranコードが、「優れた」ものでも標準に準拠したものでもないということです。

于 2012-06-04T16:10:38.780 に答える
10

はい、gfortranはFORTRAN77やFortran90,95などをコンパイルできます。2003年と2008年の多くの機能が実装されています。Fortran 90/95/2003/2008コードの場合、使用するのに適した拡張子は.f90です。他の一部のコンパイラは.f95、.f2003などを認識しません。そして、新しい標準が出たときにファイルの名前を本当に変更したいですか?FORTRAN 77には.fまたは.forを使用します。主な違いは、コンパイラーが期待するソースレイアウトです。.f90の場合は自由形式、.fまたは.forの場合は固定形式です。(大文字のファイルタイプを使用すると、プリプロセッサが実行されます。)オプション-ffixed-form -ffixed-line-length-noneを使用して、固定形式のレイアウトを強制できます。

于 2012-06-04T17:45:38.090 に答える