質問

私は最近の維持に大量の科学技術計算集約型のFORTRANコードです。んなに応じた個別アドバイスを受けての、微妙なニュアンスの四歳の言語でもgoogleマークの入門レベルです。このコードは<日本語仮抄訳>欧州連合(eu)と"性能向上の改善".いてのガイドや実践的なアドバイス de-最適化FORTRANへのCS101ょうか。なものについて知識がどのようFORTRANコード最適化の運?はありま典型的なFORTRAN'gotchas'ることにならないかもしれないJava/C++/.NET上の開発者たFORTRAN77/90コードベース?

役に立ちましたか?

解決

きのとってください"感じる"ために何かプログラマーなければいけなかったのです。大多数のコードについて、それより古いもので私がした機械とした"新"時の私の両親は高校生の時。

共通FORTRAN-ismsい、傷つ読みやすさは:

  • 共通ブロック
  • 暗黙変数
  • いループとの共同を継続計
  • 後藤のDOループ
  • 算術演算の場合諸表
  • 計算後藤
  • 同等性リアル/INTEGER/その他一部の共通ブロック

戦略解決される:

  1. Spag/plusFORT, あのお金で解決でなく自動的に、あるいはバグフ(tm)
  2. 移動Fortran90の場合できない場合には移動の自由書式Fortran77
  3. 追加暗黙的な各型を固定毎にコンパイルエラー時間がかかるが、最終的に必要なプログラムもあることができます自動的に(またはできるスクリプトなし)
  4. 移動すべてに共通ブロックモジュール、低掛け、成果あり
  5. 変換演算の場合諸表の場合は..モ..ELSEブロック
  6. 変換算GOTOsの選択の場合ブロック
  7. に変換すべてのDOループの新しいF90の構文

    myloop: do ii = 1, nloops
        ! do something
    enddo myloop
    
  8. 変換equivalenced共通ブロック会員のいずれかALLOCATABLEメモリ割り当てモジュール、又はそれらの正常であればHollerith格納されるようになっている実

場合がありますので、特定の問題をどうやって達成するかも読みやすさのタスク日本語訳を見てもわかりません。私は、コードベースの数百万のFortranしたら40年という責任、ゲームとしては初めての人々の"問題"であります。

他のヒント

レガシィFortran Soapbox

私の維持-向上にレガシィFortranコードをベースとはなかったのでしょうか?との考え sixlettervariables にあります。その助言のものが、技術;元の行の鍬での実施"優良事例".

  • の確立に必要なコーディングスタイルやコーディングガイドライン
  • 要するコードレビュー(以外にもメリカ-サンフランシスコ!) あのドラインをサポートしています。(バージョン管理に縛られます。)
  • ル、ユニットテストを実行;数理計算上の差異の処理のベンチマークまたは回帰。

このような明らかなこの日、そのリスクの一般化、請求項になるFortranコードショップにて文化が根強、始まる前に、"ソフトウェア工学"にも存在しており、その時に何を占めは"しします。(このはなFortranショップの参考になればうれしいです。)

包Gotchas

もうすでに存在しない、grotty旧レガシーコードマネタリーベースとしたのか同意するジョエルSpolskyに書き換え、 .しかし、私の意見 sixlettervariables はポイントの許容例外: 利用のソフトウェアツールの移行によりFortranを構築します. 多くの場合、できることが制限されて訂正コード分析装置(FORCHECK)コrewriters(plusFORT).まだ、手でいただくには、喫緊の理由です。(いった手への参照番号のソフトウェアのバグすることができる固定ソフトウェアのバグ、ボランティアが来るのを感謝.と考えていいような統計であ 専門家のCプログラミング.)

最も優れた攻撃を獲得するなど、ゲームのFortran gotchasは最高の防御値:知の言語ります。さらに、おすすめ---ます。

Fortran死ツリー図書館

また緩やかな成功"としてQA nag"が、思った教育では、一部に回ってしまうことになる最も影響力のあるものである参考図書は、誰か一人がりました。好きお勧めし

Fortran90/95のための科学者や技術者, により、スティーブンJ.チャップマン

本書はいたFortran77によることを特定し、構築するべきでない使用により良いる。しかし、実際に教科書での蒸気頃までには知りたい、肝心のFortran95がんにお

Fortran90/95の説明, により、マイケル-Metcalf&ジョン-K.レイド

とによって参照(sic)のためのFortran95.ることを警告されませんの明快な書きのルームウェアリフトが好を最大限に生かすためのFortran95特徴です。

のための問題に着目したからFortran77にはFortran90っ

移Fortran90, により、Jim Kerrigan

ものが現在のスクリプトが含まれます。(かわからないオの利用 サファリ, で、なぜか毎の一つとして長年活躍し続ける書籍を利用できますか?)

最後に、代に、素晴らしい素晴らしいクラシック ソフトウェアツール, 私は推薦

古典FORTRAN, により、マイケル-Kupferschmid

この本であるだけではなく、何一つできない"だけ"Fortran77もって、微妙な問題(例えば、すべきで何をすべきなの対外宣言)この本のない正確にカバーと同じスペース"ソフトウェアツールの"ものFortranプロの図書うにタグとして"楽しさ"....(こちらの第三).

その他の助言に適用される ほとんど 毎Fortranコンパイラ

  • がコンパイラオプション制と暗黙的な行動に使用する特定の問題のルーチンを修正することなく、暗黙的な宣言します。このアドバイスをしないように有意義後までに初めてビルド爆弾では暗黙的なコマンド挿入されレガシィ。(か?コードレビューな漁す。;-)
  • がコンパイラオプションのための配列での範囲チェックできる時に役立つデバッグFortran77コードです。
  • Fortran90のコンパイラでコンパイルをほぼすべてのFortran77ーコードともFortranコードです。く報告のためのオプションにおFortran90に、コンパイラ、お客様のレガシーコードによって開基の構文チェックしている。一部の商業Fortran77コンパイラでコンパイル、実はFortran90のコンパイラるFortran77モードで、これは比較的自明なオプションtwiddling何構築のスクリプトです。

が、そのよう注意す。というのコードは<日本語仮抄訳>欧州連合(eu)と"性能向上の改善".以来、Fortranの問題のが一般的ですが、科学的-数学自然、前の書面による許諾無く、これはこれらの技があるのを改善します。あるんじゃないでしょうかいされたものの翻訳であります。Fortranのソリューションはあまり約効率化、コードそのものの基礎数学解決の問題です。の技を集計遅くなり、もの作りの論理表示の乱れが、意図の解決になります。なければどうなのかを知っているのか、なぜ、います。

も簡単なリファクタリングのように変化するダムを見できるのは、変数に大きな落とし穴.歴史的に標準数学の方程式で与えられたフィールド科学のまま使用し、特定の簡略表現でのマクスウェル.い列の名前B(:)電子情報通信学会技術うすべてのEmag技術者などは問題を解決します。変わることで自体が危うさをはらんでいます。道徳的であるためには、知の標準名称の科学の前にした。

としての"健康経営"とは、アメリカの両方のFORTRAN(77味していますがら用いを真剣に受け止め)とC/C++の商品を見るとすぐにジャンプを思い浮かべるかもしれarrays.FORTRAN配列の開始"をクリック1の代わりに0としていC/C++/Java.また、メモリの配置が逆になっています。でincrementing最初のインデックスで順次メモリです。

妻といってFORTRAN定期的にはC++のコードを要求仕事を今思いを彼女です。としての問題の間に彼女の変換も試してみようと思いる点んで頂きたいと思います。かれるよう、お手伝いいたします。

について教えてください。るだけ維持のコードについて教えてください。だって変更のコードについて教えてください。場合に逃げることができる修正のインターフェースとコードの代わりにコードされる立場でもありますが最高です。

固有の問題を取り扱う場合には、大きな学術コードだけでなFORTRAN)は、下位の数学および実施においても複雑です。ほとんどはデフォルトの実施 コードが含まれており、最適化を動かすためには、合理的な期間内に枠がつきます。この複このコードをこのフィールドを作成した科学者-技術者が専門分野においソフトウェア開発です。してみましょうという"わかりやすく"のいずれかを優先していったので、まだ学習するよりよいソフトウェア開発者).

により生じる可能性が高いので使わないは思えない一般的な質問と答えは十分にご提供いただきました。ていただきたいポストシリーズの特定の質問コードスニペットは付属します。そのときの最安。

またFortranの'66版1967年(IBM7090と32kの言葉をいたしました。その後、使用PL/1時間、その後に帰Fortran95のであるのに適してのマトリクス/複数の問題にしています。付け加えたいと思い、考え方を巻き込み構造では、古い方のコードは単純により、少量のメモリ、強制などのようなものを再利用し、数行のコードによ算や割り当て GOTOs.その他の問題は最適化を定義する補助変数毎に繰り返しsubexpression-コンパイラでコンパイルでなかった最適です。また、不可書 DO i=1,n+1;また書 n1=n+1; DO i=1,n1.その結果旧コードに圧倒されない不要な変数です。が無事に卒業できた私は、しばらくのコードは,Fortran95,10%の変数が生き残った。したい場合には、コードの読みや、お探しの変数を提供することが期待できます。

もうひとつなのかに言及するとともに多くの複雑な演算および多次元配列した高度効率が悪い。うまくコードを書き換えない複雑な計算のみを使用しリアル変数は、行列を取って一直線。

でも、ある意味では、くつろげる色調の落ち着ける雰囲気がFortranできてないからだと思うの微妙な流れの制御を構築しまたは継承に関する。ので、こんな本当に素晴らしいgotchasのように、arithmetically計算支店を数値ラベルも、黙示的に型変数を必要としない宣言で、真のキーワード

わからないの性能向上の改善".いらっしゃるかと思いが多くなり、数十年のコンパイラ技術も窺わせる不要です。残念ながら、きょういくいくようになっておりませんが、計画を大量に書き換え.

とにかく、コア科学計算コードはかなり易い。他のプログラミング言語を使用infix演算が良い準備を読Fortranの算数と割り当てます。

好きだったFORTRANを使って教えるコードです。<url> <url> <url> <url> <url> <url> <url> <url> <url> <url>げることです。なタッチです。
私としては、どのくらいのですか?COBOLが移住してきたのはFORTRANってる感じでしたから解放されます。すべては相対的なあ?私の第二のかと言われている以上のことを、認識することは手続き上の言語のないsubteltiesなっていると考えていきます。
そらく足を引っ張す。

いるFortran IV(WATFIV)をパンチカードは、最初の勤務年VS FORTRAN v1(IBM、Fortran77ます。多くの良いアドバイスをこのスレッド.

思いと区別するもの取得を行い獣ので、とう"最適化"のコードに対するも読みやすくするために、保守性.今でも覚えてい対応VAXオーバーレイしようとする取得DOEシミュレーションコードをIBMと仮想メモリも削除されると全体が一住所)。

遅くなっても安心して帰ることがより丁寧に再編FORTRAN IV制御構造の少なくともFORTRAN77、適切にインデントとの比較)を除くプリミティブ制御機構のように割り当ておよび計算後藤演算の場合、もちろん、多くのGOTOsしています(利用の場合-その他-ENDIF).坂道が多いので、車かタクシーで暗黙的なべてのルーチンを強きを適切に宣言すべての変数(なしに、ipodを繋げられるよう多くのバグで採取したもので、他の人のコード--誤字の変数名表記)。注"時期尚早の最適化"といようにコンパイラを扱う。

このコードを押し続けることであり、それにはライブや維持、私が自分自身や自分の後継者で読み、理解できなければならない。 できるのかを確認することができま変更する際に、コード! FORTRANだった独特の構築に向上できる旅行うから、Cのプログラミングの世界です。覚えよFORTRAN日の後には"50代があったかもしれませんが科学としての言語やコンパイラの設計、 アドホック ハッキングといっ博士B!).

いつものようにというのはビット思います。に取り組んでいるときは、FORTRANのコードだくにはスキップでは、すべて当初の列あります。また、ってのみコードを取得しますインデント五つの空間となる。一見すると思うので大丈夫でしっとこのすべてのラインから列6ではなくカラム7.

"誰も知らないFORTRAN、最初の5カラムのための行番号(=ラベル)、6列に続く文字をする場合にはライン以上80文字だけを入れてから、コンパイラを知ることがで実際に一部の前で、コードは、常にカラム7.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top