Subject | : Fortran Compiler for SAD in future |
Date | : 2008/02/28(Thu) 00:59:00 |
Contributor | : Akio Morita |
Fortran77+αで書かれているSADの将来に関しての問題提起 現在、KEKBで主に保守されている SAD環境(=SADの開発・動作検証環境)は、 私の記憶が確かなら o Tru64/alpha + Compaq Fortran(DEC Fortran) x3 o Linux/i386 + GCC 3.4.6 x1 o MacOSX/ppc + GCC 3.4.6 x8 o MacOSX/i386 + GCC 4.2.2 x2 で、現状 GCC 3.4.6が事実上の標準コンパイラになっているわけですが、 現在後続機種として MacPro中心に導入が行われているので下記の 事情も有り次第に GCC 4.xがSADの標準コンパイラに成っていくと思われます o Tru64 & alphaプロセッサの開発が止まっているので メンテナンスが切れたら次第にフェードアウトする o Linux/i386環境も後続機の導入予定が無い&アクティブな メンテナが居ない状態なので、故障したらおそらく計算ノード としての復活はない o MacProノード追加は現在も進行している o GCC 3.4.6を最後に GCC3.xの開発は終了しているので、 バグフィックスや言語仕様の改定への追従はあまり期待できない (OSのアップデート対応、新規のOSサポートも同様) # 現に、GCC 3.4.6付属の G77は MacOSX/i386をサポートしない GCC 3系列から GCC 4系列への移行に際して、Fortranコンパイラ実装が Fortran77規格ベースの g77から Fortran95ベースの gfortranへ移行することになります。 現在最新の Fortran規格は Fortran2003(Fortran9xからのメジャーアップデート)で、 そのマイナーアップデートとして Fortran2008の規格化作業が進んでいると聞き及びます。 Fortran90以降の規格では、Fortran77まで言語仕様の幾つかが廃止ないしは廃止予定に 挙げられており、SADの Fortranコードもこうした廃止予定と抵触しています こうした状況下で、 Q. g77サポートの終了時期 # 一部のコードは、新しい規格ではベンダー拡張を使わずに記述可能です(移植性の向上) Q. 今後のコード開発・保守のありかた # 寄贈されたコードが、Fortran90/95で書かれており g77でコンパイルできないため # 修正を要したことも有りました。(g77は Fortran77をベースに 一部のFortran90/95構文を # 受け入れますが Fortran90/95準拠ではありません) は、どうすべきでしょうか識者の方々のご意見をお待ちします 例えば、こんなのが廃止予定に入っているそうです * 算術IF文 * DO構文での端末文の共有及びEND DO文でもCONTINUE文でもない端末文 * 選択戻り * 計算形GO TO文 (table dispatchで使っている) * 文関数 * 実行文の間のDATA文 * 文字長引継ぎ文字関数 * 固定形式 (基本的にこれで書かれています) * CHARACTER*の形の文字型宣言 (たくさん使われています) ほかには、こんなのが非推奨とされているそうです * EQUIVALENCE文 * ENTRY文