Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Fortran Compiler for SAD in future
Date: 2008/02/28(Thu) 00:59:00
ContributorAkio 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文