4

私は、FortranIVプログラムをFortran77に更新するコンサルティングの割り当てを受けました。問題は、Fortranでコーディングしたことがないことです。私がFortranを学ぶことができる場所と、FortranIVと77の違いについてのヒントを教えてください。

編集

更新されるプログラムは、MODCOMP 9250で実行されています(ここの写真を参照)。プログラムは、元のコンパイラで開発されました。コンパイラーは1990年頃にFortran77に更新されました。私のクライアントはアプリケーションにいくつかの変更を加えたいと考えており、この機会にコードを最新のコンパイラーに更新したいと考えています。

4

4 に答える 4

6

これは本当に奇妙な課題のようです...プログラミング言語が何十年にもわたって改善されてきたことを教える目的はありますか? もしそうなら、Fortran 95 などの現代的な言語に翻訳してみませんか?

レガシーな FORTRAN 77 コードに出くわすことはありますが、真の FORTRAN IV を使用してからかなり時間が経ちました。違いを思い出すのは困難です。一番大きいのは IF 文の改善で、より明確なコードを書きやすくなったと思います。変更のリストは、http://en.wikipedia.org/wiki/Fortranにあります。

gfortran を使用している場合、次のオプションは FORTRAN 77 プログラムをコンパイルする必要があります。

gfortran -ffixed-form  -ffixed-line-length-none  -W  -Wall -pedantic -o my_prog.exe   my_prog.for
于 2011-02-07T16:18:03.950 に答える
4

この 2 つの違いを確認するには、Fortran 標準のドラフトを確認するのが最適です (最新のドラフトは、公開されている標準と実質的に同じですが、無料でダウンロードできます)。

たとえば、f77 標準

ただし、問題は、fIV の時代には標準があまり守られておらず、ほとんどすべて (すべてと言っても過言ではありません)のコンパイラにさまざまなベンダー拡張機能が含まれており、そのうちのいくつかは確かにプログラムにも含まれていました。ですから、コンパイラのマニュアルがあれば、それも持っていきましょう。

「f77 に更新する」プロセス (Gawd、「f77 に更新する」と言うとは思いもしませんでした) は、ある意味で最善の方法です。
a) どこかで Fortran の短いチュートリアルを受講します (インターネット上にたくさんあります)。fortran がどのように見えるかを見るためだけに
b) プログラムの要素と構造を認識し始めたら、それを翻訳し始めることができます。多くの TYPE (依存) を WRITE または PRINT に変換し、いくつかの IF ステートメントを変更し、いくつかのファイル入出力操作を変更する必要がある可能性があります。問題、... いずれにせよ、試してみて、行き詰まったらここに投稿してください。

あなたの任務はどれくらいですか?

ps 上記のコメントで述べたように、翻訳しているプログラムは実際には fIV ではなく、fIV、f66/77、おそらく f90 のいくつかの要素の混合物である可能性がありますが、あなたの教授/担当者はそうではありません違いを意識。古いデータテープからコピーしただけでない限り。私はそのような例をいつも見ていました。

于 2011-02-07T20:08:03.020 に答える
3

Fortran IV のほとんどは有効な Fortran 77 です。g77 (古い GNU Fortran 77 コンパイラ) がインストールされたプラットフォームを見つけ、標準準拠モードをオンにして、警告やエラーなしでコンパイルできれば、完了です。教授がそれでは不十分だと言うなら、彼は自分が何を望んでいるのかをもっと具体的にする必要があります.

Fortran 95 コンパイラに、Fortran 77 への準拠をチェックできるオプションがあるかどうかはわかりません。

于 2011-02-07T21:37:40.057 に答える
1

「fortran 77 チュートリアル」をグーグルで検索すると、Fortran 77 プログラムの構造と構文の合理的な紹介のように見えるかなりの数のヒットが表示されます (昔大学で学んだので、個人的な経験からは何もお勧めできません) -私にとってのトップヒットは、どのイントロよりも優れているように見えます。

http://www-teaching.physics.ox.ac.uk/Unix+Prog/hargrove/tutorial_77/

コードをコンパイルするための正しいコマンドラインを見つけるためだけに、おそらく、使用するコンパイラに関する特定の詳細を調べる必要があるでしょう (gfortran は、最近の Linux の標準的なコンパイラのようです)。

より現代的な言語の背景から来ている場合、知っておくべき重要なポイントは次のとおりです。

  • 標準の Fortran 77 は自由形式の言語ではありません
  • 手続き型であり、オブジェクト指向をサポートしていません (ただし、これは言語の後のリビジョンで利用可能です)

ただし、通常の基本的なプログラミング構造 (if/else、ループなど) はサポートしています。

これが役に立てば幸いです-頑張ってください!

于 2011-02-07T11:20:14.663 に答える