2009-08-17

コーディングルールupdate

気象庁はもちろんバイブルなわけだが、
それに追加というか。


まず気象庁コーディングルールの元となったと思われるページ:
http://www.mri-jma.go.jp/Project/mrinpd/eurostand.html

保坂さん(たぶん気象庁の中の人)による翻訳がされている。
特に、interface block についての記述が興味深かった。


次。有志による?GFD (geoなんとか流体力学=地球流体力学)のページ
http://www.gfd-dennou.org/library/dcmodel/coding-rules/dcmodel-coding-rules.htm

気象庁をさらに発展させた感じ。

> public 属性は明示的に与える
ですよね

> 必ず only を用いる
ですよね

> use により参照した他のモジュールの要素を public で公開する場合には「孫引き」であることを明示する
例:
public :: base1, base2  ! Cascaded
なるほど!これは即採用。

ほかに、変数の命名規則とかも参考になるかも。
というか Ruby によるリファレンス自動生成とかなんかすごいよこのサイト。
もっと早く見つけるべきだった。


ラスト。牛島先生の「数値計算のためのFortran90/95プログラミング入門」と、
上記保坂さんの訳で話題になっていたことだけれど、
「全部moduleにする」 vs. 「interface blockを使う(外部サブルーチンは古い書き方で残して、wrapする)」
この二つのどっちがいいのか。
おれだけが書くんだったら前者だけど、構造連成考えたら後者かなぁ(あるいは、混在型)・・・
とも思ったんだけど、実際問題として、気象庁は前者で押し通してるんだよね?
おれらレベル(2, 3人(笑))よりは遥かに大規模な開発はずなのに。
ってことで、おれも何も悩まず「interfaceとか死ねばいいよ」ってアティチュードでいこうと思います。
use と only で生きていきます。
まる。

ちなみに dcmodel のページにはこのレベルのことは書いてないが、
・気象庁のを踏襲する
とある一方で、
・コード例には interface の使用形跡がある
ので、実際のコード(公開されてるっぽい)を見ないとわからないな。



あ、ところで細かいんですが、変数の宣言の仕方って、
各行に毎回 real(8) :: って書いたほうが(つまり & でつなげない方が)いいんですかねー。
& と , があると変数の増減があるたびに書いたり消したりが微妙にうざいんだよね。



No comments: