このプログラムは以下のコンパイラでの動作を確認しています。
dcpam4 を利用するためには以下のソフトウエアを 事前にインストールしておく必要があります.
Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合
debian パッケージ [Fujitsu ver5 | Intel ver9.0 | G95]
上記 deb パッケージの他に netCDF の Development kit (netcdf-bin パッケージ) もインストールする必要があります .
ソースからビルドする場合
Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合
ソースからビルドする場合
Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合
ソースからビルドする場合
インストールの際は, 上記 tar.gz を展開して README を参照してください.
Debian GNU/Linux を使用しており, バイナリパッケージを利用する場合
ソースからビルドする場合
ソースコードを編集したり, ドキュメントを生成するためには以下の ソフトウェアを事前にインストールしておく必要があります. (tar.gz パッケージには既にドキュメントが同梱しています)
適当な作業ディレクトリで以下のようにソースアーカイブを展開します. ソースは dcpam4-バージョン というディレクトリに展開されます.
$ tar xvzf dcpam4_current.tgz
または
$ zcat dcpam4_current.tar.gz | tar -xvf -
環境変数 FC に使用する Fortran コンパイラを指定してください. 以下は, 利用するコンパイラが frt の場合です.
sh, bash の場合
$ FC=frt ; export FC
csh, tcsh の場合
$ setenv FC frt
最適化やデバッグのためのオプションは環境変数 FFLAGS に設定してください. 以下は frt の高速化と 並列化のためのオプションです.
sh, bash の場合
$ FFLAGS="-Kfast,parallel" ; export FFLAGS
csh, tcsh の場合
$ setenv FFLAGS "-Kfast,parallel"
展開されたディレクトリに移動し,  ./configure を実行します.
コンパイルに必要なライブラリでインストールした各ライブラリを
以下のオプションに指定する必要があります.
--with-ispack=ARG--with-netcdf=ARG--with-gt4f90io=ARG--with-spml=ARG例えば以下のように指定します.
このコマンドによって  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 /usr/local/dcpam4  です.
--libdir=ARG /usr/local/dcpam4/lib  です.
--includedir=ARG /usr/local/dcpam4/include  です.
--bindir=ARG /usr/local/dcpam4/bin  です.
--with-docdir=ARG /usr/local/dcpam4/doc  です.
--with-dcpam_lib_name=ARGlib<ARG>.a となります.
デフォルトは  dcpam4  であり, その際のライブラリ名は
 libdcpam4.a  となります.
--with-dcpam_suffix=ARG ffc5  と指定すると,
インストール先のディレクトリのプレフィックスが
 /usr/local/dcpam4-ffc5 , ライブラリ名が
 libdcpam4-ffc5.a 等のようになります.
--with-lang_conform_check=ARG95"
のみ指定可能です. コンパイラによっては指定できません.
--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
上記の ./configure だけで設定できなかった部分に関しては,
 Config.mk  を手動で編集して設定して下さい.
以下に主要な設定項目を挙げます. 詳しくは  Config.mk 
を見てください.
Config.mk が置いてあるディレクトリ
ビルドには必ず 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) のベンチマーク実験を 行う方法を説明します.
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 変数群の読み込み に関する情報が出力されます.
