2013-11-02 13 views
8

私はFortranで血まみれの初心者です。Fortran:fとFの内線の違い

私は、.f.FのFortranファイルの拡張機能の違いは何ですか?私はそれほど知っています:fは自由でFは固定です。

フリーで固定されていることは実際にはどういう意味ですか、なぜコンパイルプロセスが完全に失敗するのでしょうか? (私はgfortranifortを使用しています)。

私はグーグルのfとFの内線番号の違い。私は結果に満足していなかったので、私はstackoverflowに向いています。

この記事を読むにあたって参考になることができれば、とてもうれしく思います。

答えて

9

私が知る限り、.f.FはどちらもFORTRAN 77固定フォーマットに関連する拡張機能です。固定フォーマットは72列に制限されており、最初の6列は特殊な用途に使用されます。例えば。位置6の&は、前の行からの行の継続を示します。

フリーフォームはFortran 90で導入され、通常は.f90.F90で示されます。自由形式の場合は、最大132の列を使用でき、特別な列は存在しません。行の継続は、行末にアンパサンドで示されます。

ファイル拡張子の大文字は、通常、プリプロセッサをオンにします。

これらは、ほとんどのコンパイラのコンパイルオプションで上書きできる規則です。

6

これはコンパイラに依存しており、依存していない可能性があります。通常、大文字の接尾辞は、前処理が使用されるべきであることを示します。フリーフォーマットと固定フォーマットとの区別は、通常、.f90(無料)と.f(固定)で行われます。

これはコンパイラに依存するため、良いドキュメントはコンパイラのものです。 gfortranを使用した場合は、optionspreprocessingのセクションをご覧ください。 gfortranで

+1

でない場合、私は* *受け入れ答えとして、両方の答えをマークすることはできません。答えはまた非常に便利です。ありがとう! – seb

0

は、フリーフォーム(colsの7のための特別な意味は、72)は、コンパイラスイッチ-ffreeフォームによって設定され、.Fまたは.Fファイルの拡張子とは何の関係もありません。 .fと.Fの違いは、後者がプリプロセッサを経由することであり、その最も一般的な使用法はCのような#define文を許可することです。例えば:それは.Fであれば

#define MAXN 100 
program example 
integer N(MAXN) 
end 

がコンパイルされますが、それは残念ながら.F

+0

gfortranは確かに ".fは固定、.f90は自由"という慣習を認識します。 – agentp

関連する問題