[ English | Japanese ] [ 地球流体電脳倶楽部 / 惑星大気モデル DCPAM ] [ dcpam4 リファレンスマニュアル ]

dcpam4 インストールガイド


  1. 動作環境
  2. 必要なソフトウェア
  3. ビルドの手引き
  4. サンプルプログラム実行の手順

動作環境

このプログラムは以下のコンパイラでの動作を確認しています。

必要なソフトウェア

dcpam4 を利用するためには以下のソフトウエアを 事前にインストールしておく必要があります.

netCDF (バージョン 3.6.2 以上)

Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合

ソースからビルドする場合

gt4f90io (バージョン 20070729 以上)

Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合

ソースからビルドする場合

ISPACK (バージョン 0.71)

Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合

ソースからビルドする場合

spmodel (バージョン 0.4.1)

Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合

ソースからビルドする場合

開発者にとって必要なソフトウェア

ソースコードを編集したり, ドキュメントを生成するためには以下の ソフトウェアを事前にインストールしておく必要があります. (tar.gz パッケージには既にドキュメントが同梱しています)

ビルドの手引き

TGZ パッケージの展開

適当な作業ディレクトリで以下のようにソースアーカイブを展開します. ソースは dcpam4-バージョン というディレクトリに展開されます.

$ tar xvzf dcpam4_current.tgz

または

$ zcat dcpam4_current.tar.gz | tar -xvf -

Fortran コンパイラの指定

環境変数 FC に使用する Fortran コンパイラを指定してください. 以下は, 利用するコンパイラが frt の場合です.

最適化やデバッグのためのオプションは環境変数 FFLAGS に設定してください. 以下は frt の高速化と 並列化のためのオプションです.

Config.mk の作成

展開されたディレクトリに移動し, ./configure を実行します. コンパイルに必要なライブラリでインストールした各ライブラリを 以下のオプションに指定する必要があります.

--with-ispack=ARG
ispack ライブラリ (*.a) のファイル名
--with-netcdf=ARG
netcdf ライブラリ (*.a) のファイル名
--with-gt4f90io=ARG
gt4f90io ライブラリ (*.a) のファイル名
--with-spml=ARG
spmodel ライブラリ (*.a) のファイル名

例えば以下のように指定します. このコマンドによって Config.mk ファイルが生成されます.

$ ./configure --with-ispack=/usr/local/lib/libisp.a \
              --with-netcdf=/usr/local/lib/libnetcdf.a \
              --with-gt4f90io=/usr/local/lib/gt4f90io/lib/libgt4f90io.a \
              --with-spml=/usr/local/lib/spml/lib/libspml.a \

ビルドには GNU make が必要となるため, configure は PATH 内から 自動で GNU make を探査しようとしますが, もし見つからない場合, エラーを返します. その場合には環境変数 MAKE に GNU make コマンドを指定して再度 configure を実行してください.

インストール先などを変更したい場合は, 以下のように --help オプ ションをつけることで, 指定可能なオプションリストが表示されます.

$ ./configure --help

主なオプションに関しての説明です.

--prefix=ARG
ARG にライブラリやモジュール, 実行ファイルのインストール先の ディレクトリのプレフィックスを指定します. デフォルトは /usr/local/dcpam4 です.
--libdir=ARG
ARG にライブラリのインストール先のディレクトリを指定します. デフォルトは /usr/local/dcpam4/lib です.
--includedir=ARG
ARG にモジュール情報ファイルのインストール先のディレクトリ を指定します. デフォルトは /usr/local/dcpam4/include です.
--bindir=ARG
ARG に実行ファイルのインストール先のディレクトリを指定します. デフォルトは /usr/local/dcpam4/bin です.
--with-docdir=ARG
ARG にドキュメントファイルのインストール先を指定します. デフォルトは /usr/local/dcpam4/doc です.
--with-dcpam_lib_name=ARG
ARG に dcpam4 のライブラリ名を指定します. ライブラリ名は lib<ARG>.a となります. デフォルトは dcpam4 であり, その際のライブラリ名は libdcpam4.a となります.
--with-dcpam_suffix=ARG
ARG にはインストールディレクトリ, ライブラリ名, 実行ファイルの末尾につける接尾語を指定します. 例えば, 他が全てデフォルトの設定で ffc5 と指定すると, インストール先のディレクトリのプレフィックスが /usr/local/dcpam4-ffc5 , ライブラリ名が libdcpam4-ffc5.a 等のようになります.
--with-lang_conform_check=ARG
ARG に言語規格を指定することで, コンパイル時に言語規格の チェックを行うよう, オプションを追加します. 現在 "95" のみ指定可能です. コンパイラによっては指定できません.
--enable-debug
このオプションを指定することで, コンパイル時や実行時にデバッグメッセージ を出力するオプションを追加します. コンパイラによっては指定できません.
--config-cache または -C

Config.mk ファイルが生成されると同時に, config.cache ファイルが作成され, ./configure の引数に指定された netCDF ライブラリの位置などの情報が保持されます.

再度 ./configure を実行する際にもこのオプションを指定することで, config.cache が読み込まれ, 前回指定したオプション等が引き継がれます. 既に存在する config.cache を無視する場合はこのオプションを 指定せずに ./configure を実行してください.

例えば下記のように ./configure を実行するとします.

$ ./configure -C  --enable-debug \
              --with-ispack=/usr/local/lib/libisp.a \
              --with-netcdf=/usr/local/lib/libnetcdf.a \
              --with-gt4f90io=/usr/local/lib/gt4f90io/lib/libgt4f90io.a \
              --with-spml=/usr/local/lib/spml/lib/libspml.a \

すると次回以降, 下記のように ./configure を実行することで netCDF ライブラリ等の位置や, デバッグオプションを付加する情報が 引き継がれます.

$ ./configure -C

Debian GNU/Linux で Fujitsu Fortran を利用している場合には, Config.cache.debian-ffc* を config.cache に移動して ./configure コマンドを実行するだけで自動的に ライブラリの位置が設定されます.

$ cp Config.cache.debian-ffc5 config.cache
$ ./configure -C

Config.mk の編集

上記の ./configure だけで設定できなかった部分に関しては, Config.mk を手動で編集して設定して下さい.

以下に主要な設定項目を挙げます. 詳しくは Config.mk を見てください.

FC
Fortran コンパイラ
SYSFFLAGS
コンパイル時・リンク時に必要なフラグ (Fortran コンパイラ実行時に必要なオプション)
SYSLDFLAGS
リンク時に必要なフラグ
SYSLDLIBS
リンク時に必要なライブラリ
DCPAMDIR
Config.mk が置いてあるディレクトリ
prefix
dcpam4 のライブラリ, モジュール, 実行ファイル, ドキュメントのインストールディレクトリ
MODEXT
モジュール情報ファイルの拡張子
CLEAN_MODS
make clean 時に使用するモジュール情報ファイル指定
MAKE
GNU make コマンド
AR
アーカイブコマンド
ARFLAGS
アーカイブ時に必要なフラグ
RANLIB
アーカイブのインデックスを作成するコマンド

ソースコードのコンパイル

ビルドには必ず GNU make を使用してください. 他の "make" プログラムを使 用すると, 正しくビルドが行われません. 以降 GNU make のコマンド名を "make" と表記しますが, これらはシステムの GNU make コマンドの名前に置き換えてください.

./configure を実行すると, 以下のように GNU make のコマンド名が 表示されます. このメッセージに従って GNU make を実行してください.

Execute GNU make in the current directory, as follows.

  /usr/bin/make

ドキュメントの生成

マニュアルとコードリファレンスのコンパイルはカレントディレクトリ において, 以下のコマンドを実行してください. dcpam4 の TGZ パッケージ から入手する場合には既に生成済みです.

$ make doc

サンプルプログラム実行の手順

※ 書きかけです. 以下は, 「dcpam4 ごくらくチュートリアル」へと移動される予定です.

Held and Suarez (1994) のベンチマーク実験

サンプルとして Held and Suarez (1994) のベンチマーク実験を 行う方法を説明します.

practice ディレクトリに移動してください.

$ cd practice

そのディレクトリ内で, make コマンドを実行してください. いくつか質問がありますが, とりあえずそのまま Enter キーを入力してください.

$ make

****** Setup a directory for a experiment ******

  Enter directory name [testXX]:
  Directory in which executable files are prepared
    [/home/dcpam/work/dcpam4/src/main]:
  Directory in which NAMELIST files are prepared
    [/home/dcpam/work/dcpam4/src/main]:
  Save F90/95 source code files? [Y/n]:
  Directory in which source code files are prepared
    [/home/dcpam/work/dcpam4/src]:

                :

*** Setup of "testXX" is complete ***

testXX というディレクトリが作成され, その中に 実行ファイルや NAMELIST ファイル, ソースコードがコピーされます. testXX ディレクトリ内に移動してください.

$ cd testXX

実行ファイルとして dcpam_hs94, init_sample などが用意されている はずです. 以下のように dcpam_hs94 を実行してください.

$ ./dcpam_hs94

 *** MESSAGE [dcpam_hs94] ***  History files are created.
 *** MESSAGE [dcpam_hs94] ***  Restart file "dcpam_hs94_restart.nc" is created.
 *** MESSAGE [dcpam_hs94] ***  History data (time=0.125 days) is output.
 *** MESSAGE [dcpam_hs94] ***  Restart data (time=1440. minute - 20. minute,
 and 1440. minute) is output to "dcpam_hs94_restart.nc"

 ########## PREDICTION OF CALCULATION ###########
 Start Date             2007-07-30T17:25:25+09:00
 Current Date           2007-07-30T17:25:35+09:00
 Progress     14.29%  [***                      ]
 Remaining CPU TIME      0.580000E+02
 Completion Date        2007-07-30T17:26:33+09:00

                   :

 ############## CPU TIME SUMMARY ################
 Setup                  0.223517E-09            
 HistoryGet             0.223517E-09            
 HistoryPut             0.679995E+00            
 Dynamics               0.133000E+02            
 Phyisics               0.342000E+01            
 TimeFilter             0.209997E+00            
 ------------------------------------------------
        TOTAL TIME =    0.176100E+02            

とりあえず 7 日分の計算が行われ, 結果が U.nc や Temp.nc として 出力されます. また, リスタートファイルが dcpam_hs94_restart.nc として出力されます. これらは gtool4 NetCDF 規約 に基づく NetCDF ファイルです. 可視化や解析には 電脳 Ruby プロジェクト において開発されているツールを使用してください.

計算設定を変更するには NAMELIST ファイルを使用してください. サンプルとして dcpam_hs94_T10L12.nml や dcpam_hs94_T21L12.nml を用意しています. これらのファイルの中身を変更し, 以下のように実行 ファイルのオプション -N (または --namelist) において指定してください.

$ ./dcpam_hs94 -N=dcpam_hs94_T10L12.nml

 *** MESSAGE [dcpam_hs94] ***  NAMELIST group "dcpam_hs94_grid_nml"
 is loaded from "dcpam_hs94_T10L12.nml".
 &DCPAM_HS94_GRID_NML
 NMAX    =          10,
 IMAX    =          32,
 JMAX    =          16,
 KMAX    =          12
 /
 *** MESSAGE [dcpam_hs94] ***  NAMELIST group "dcpam_hs94_time_nml"
 is loaded from "dcpam_hs94_T10L12.nml".
 &DCPAM_HS94_TIME_NML
 START_TIME_VALUE        =  0.000000000000000E+000,
 START_TIME_UNIT = sec                             ,
 DELTA_TIME_VALUE        =   20.0000000000000     ,
 DELTA_TIME_UNIT = minute                          ,
 TOTAL_TIME_VALUE        =   7.00000000000000     ,
 TOTAL_TIME_UNIT = day                             ,
 PREDICT_SHOW_INTERVAL_VALUE     =   1.00000000000000     ,
 PREDICT_SHOW_INTERVAL_UNIT      = days
 /
            :

NAMELIST ファイルを読み込む場合, 上記のように NAMELIST 変数群の読み込み に関する情報が出力されます.


$Id: INSTALL,v 1.7 2007/07/31 09:06:23 morikawa Exp $
DCPAM Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org