早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

F90_my_rule

個人的記入ルール (Fortran90/95)

 基本方針

  • 気象庁/気象研の 標準コーディングルール をベース
  • 一部に個人ルールも併用 (というか,結果的に混在してしまったと言うべき)
  • モジュール化を進めるが,コードは多少汚くてもよい.
    • 「汚くても」の意味は,「計算効率が最適でなくても」の意.
    • 「維持管理しやすいように,プログラマ(少なくとも自分)にとって可読性が高い書き方」 を優先する.他者が読みやすいかどうか... プログラムを配布するのが商売じゃないんだから,私にとって優先度低い. 万人に読みやすいモノを書くのは,そもそもムリだろう.
  • コード内にマルチバイト文字(要するに日本語)は使用しない

 ローカルルール

気象庁標準コーディングルールとの違いは?

ローカルルールの基本 (Fortran文法関連)

  • Fortra90/95 の宣言文・制御文・組込み関数などは大文字表記
    • これは気象庁ルールとは異なる.特に積極的な理由は無く,個人的趣味の問題.
  • PROGRAM, MODULE などのコードの冒頭・末尾の宣言文は,左寄せ
    • 上記を除き,全てインデント.インデント幅は 2-byte ずつ

ちょっと基準があいまいなルール

ローカルルールの例外

  • 緯度方向の配列は,南極から北極方向(SP2NP)を default とする(FY2011の途中から変更). FY2011以前は北極から南極をデフォルトにしてた(NP2SP)が,緯度方向の差分計算する時に うっかりミスで何度も間違えた.
    • GRIB-1 はNP2SPがデフォルトなので,データ読み出し時には注意
    • GRIB-2 はSP2NPがデフォルト.GRIB-1 と反対向きなので注意.
  • 自分専用 F90 モジュール(ライブラリ)の作成.作成場所は,$HOME/fort/10personal_module/ 以下.
    • モジュール内の subroutine/function には,複雑な機能を持たせない事. 原則として,ひとつの subroutine/function には,ただ一つだけの機能とする.
    • Debug 等の目的のため,一部でプリプロセッサ機能を使う. そのため,拡張子は *.F90 とする
    • モジュールは可能な限り他のモジュールに依存しないようにする. 依存関係があると,メンテナンスが困難になる. どうせ個人用途なので,ライブラリが肥大化しても大勢に影響無し.
    • 自分専用 Fortran 90 のモジュール作りは,遅くとも2008年4月10日以後には開始.
    • 自分が研究で使う計算コード・ファイル操作ユーティリティなどをモジュール化. 自分の研究スタイルでは,データの種類は変わっても,計算するモノはあまり変わらない. だから,入出力部分だけ差し替えれば,大抵の Fortran code は流用できる.

更新履歴

Date Changes
2016-02-27 ページ内の参照用IDを付け替え. 番号付けのルールは, Linux tips (hysk) # 自分専用ルール・HTML に従う.
2010-01-07 多分,この日に記載開始.