=begin JA
= f90tohtml を使ってみての感想
# * 森川 靖大
# * 2006/07/11 (森川 靖大) 作成
これは, Fortran 90 ソースコードを HTML 化する
Perl プログラム (())
を使ってみての感想である.
ちなみに, この他にも, Fortran 90 ソースコードからからドキュメントを自
動生成するツールとして,
(()) や
((<"RDoc Fortran 90/95 ソースコード解析機能強化版"|URL:http://www.gfd-dennou.org/library/dcmodel/rdoc-f95>))
といったものがある.
(())
などというものもあるので参照していただきたい.
== 公開 URL
(())にて
公開されている.
特にライセンスは明示されていない.
== 使ってみての感想
=== ダウンロード, インストール
ダウンロードして展開すること自体は (まあ当然ながら), 簡単でし
た. あまりシステムへのインストール, ということは考えられてないよ
うです. (まあ手動でやってね, という感じです).
=== とりあえず使う
「まずサクッと使ってみよう」には少し手間取りました. rdoc のようにとり
あえず起動するとカレントディレクトリ + サブディレクトリ以下を探査する,
というのではなく, ちゃんと「ソースファイルのリスト」を書いたファイルが
要り, しかもそのソースファイルのリストファイルがどこにあるのかを記述し
た設定ファイルも必要なため, まずはその構造を理解するのに少し時間が必要
でした. (サンプルもあるんだけど, 結局これが理解できないと動かせなかっ
た...)
ソースコードの解釈自体は (()) みたいにい
ろいろ凝ったプログラムに関してもサクサクやってくれました. エラーも出ず
にちゃんと HTML 出力してくれました.
=== 見た目
ソースコードブラウザとしてはかなり便利なのではないかと. コメントに関し
ても (()) 的に subroutine
など定義文直下に記述するようにすると, いい感じにその文書も読めます.
(もちろん本当に「コメント」としてですけど).
簡単に特徴を述べると,
* ソースコード内の, use 文のモジュールと call 文のサブルーチンが
該当するモジュール, サブルーチンのリンクとして表示される.
* 関数は無理 (まあこれやるのは大変だわなぁ)
* 呼び出されるモジュール, サブルーチンの回数も表示してくれる.
* 回数だけではなく, 「どこで呼ばれているか」ということも
リンクで飛べるようになっている.
* ちゃんと cgi を用意すれば検索も出来る (らしい).
ってとこでしょうか. (実際に以下の ((<サンプル>)) を参照すると良いでしょう.)
ただ, いちゃもん付けるとすると以下の通りでしょうか.
* 構造体は完全に無視されてるように見える.
* もちろんソースコード自体が表示されるので, 構造体定義部分も
出力はされます. ただプログラムの要素の一つとは見てくれない
ようです. (無論, 利用者定義演算や利用者定義代入は完全に無視なの
だろうなぁ...)
* interface 文は一見ちゃんと解釈されてるようで, 「compilation
warnings」なリストに, 「Create (総称名)」が競合してるで, など
と文句言われる.
* (これはまあそもそも難しいかもしれないけど), 総称名称サブルーチン
のリンク先が正しくない. (これは実際にやろうとするとそれなりに
面倒で, use 文を見なければいけないし, 多段 use (造語) される場合は
その先にまで検索を行なわなければならないのでかなり大変).
* 関数の総称名は完全に無視.
(())
のようにいろいろ関数を凝って作っているプログラム的にはこれがツライ.
* PRIVATE, PUBLIC は完全に無視.
ライブラリなりモジュールなりを利用する第三者が読むマニュアルを
自動生成, というわけにはいかないみたい.
* 利用者定義演算, 利用者定義代入は無視.
=== 総評 (ってほどでもないけど)
凝って f90 でオブジェクト指向的に書こう, なんぞと思わなければまあ普通
に使えると思う. (ってことは普通「使える」っていうのだろうなぁ... ^^;)
でもまあ「リファレンスマニュアル」はやっぱり別途書きたくなりそうだけど.
(ソースコードをだら〜っと全部読ませる, というのは, 多分第三者が利用す
るものとしては冗長すぎる, というんですかね. もちろん, ちゃんとコメン
ト書くようにすれば無いより全然ましなものですけど).
== サンプル
(())にて配布される Fortran 90
データ I/O ライブラリ gt4f90io の f90tothml 製ドキュメント.
* (())
== f90tohtml を利用している気象モデル
f90tohtml のホームページでは,
``the University of Oklahoma's ARPS model, the PSU/UCAR MM5, the NCEP
Regional Spectral Model, the Navy's COAMPS model, and the new
community WRF model.'' と記載されている.
以下, 実際に探してみて見つかった f90tohtml を利用している気象モデルのリスト.
* 米国国立大気研究センター NCAR の The Community Atmosphere Model
(CAM; (()))
* f90tohtml によるソースコードブラウズページ
((()))
* 米国大気科学研究センター (NCAR) とペンシルベニア州立大学 (PSU)
との共同開発によるメソスケールモデル MM5
((()))
* f90tohtml によるソースコードブラウズページは見つからず.
* 米国オクラホマ大学 (OU) のストーム解析予測センター (CAPS) で開発さ
れているメソスケールモデル ARPS
((()))
* f90tohtml によるソースコードブラウズページ
((()),
ARPS ホームから ⇒ Documentation ⇒ ARPS Online Resources
⇒ ARPS source code online ⇒ ARPS source code contains detailed
online documentation. ⇒ ARPS HTML'ed Code converted using F90toHTML)
* 米国で共同開発中の WRF ((()))
* f90tohtml によるソースコードブラウズページ
((()))
=== 上記のものを調べるにあたって参考にした Web サイト
* ((<世界の気象モデル|URL:http://www.mets.dyndns.org/misc/models.html>))
* 様々なモデルに関する一言メモと, 米国の研究機関の日本語読み
* ((<国際研究計画・機関情報データベース|URL:http://www-cger.nies.go.jp/cger-j/db/info/>))
* 近場の研究機関の概要と正しい日本語読み
=end JA