惑星表面が全て水であるような条件 (水惑星) で実験を行う方法を説明します.
この計算には以下の物理過程を用いています.
本実験では, 海表面温度のデータが必要です. したがって, 実験の実行は以下の 4 つのステップで行います.
dcpam5 の数値実験はソースツリー内部では行わず ソースツリーとは別の外部ディレクトリにて行うことを推奨いたします.
まず dcpam5 ソースのトップディレクトリ(以下の例では dcapm5 とする)に移動してください. 以下では dcpam5 ソースディレクトリの隣に ../dcpma5-exp/ape-exp ディレクトリを作成し, そこで実験を行うことにします. 次のように ../dcpam5-exp/ape-exp ディレクトリを作成し, 移動してください.
$ mkdir -p ../dcpa5-exp/ape-exp $ cd ../dcpa5-exp/ape-exp
次に, このディレクトリに実行ファイルと設定ファイル置き場を作成します.
$ mkdir bin $ mkdir conf
最後に作成したディレクトリに実行ファイルと設定ファイルをコピーします.
$ cp ../../dcpam5/src/main/dcpam_main bin $ cp ../../dcpam5/src/main/init_data bin $ cp ../../dcpam5/src/main/sst_data bin $ cp ../../dcpam5/exp_setup_files/*.conf conf
なお, このディレクトリ内以外でも, 実行ファイル, 設定ファイル (namelist ファイル) があれば計算を行うことはできます.
init_data と init_data_T21L16.conf を用いて初期値ファイル init_T21L16.nc を作成します.
$ ./bin/init_data -N=./conf/init_data_T21L16.conf : *** MESSAGE [restart_file_io] *** ----- Initialization Messages ----- *** MESSAGE [restart_file_io] *** Input:: *** MESSAGE [restart_file_io] *** InputFile = *** MESSAGE [restart_file_io] *** Output:: *** MESSAGE [restart_file_io] *** OutputFile = init_T21L16.nc *** MESSAGE [restart_file_io] *** IntTime = 1. [day] *** MESSAGE [HistoryCreate3] *** "init_T21L16.nc" is created (origin=0. [day]) *** MESSAGE [initial_data] *** NAMELIST group "initial_data_nml" is loaded from "./conf/init_data_T21L16.conf". *** MESSAGE [initial_data] *** NAMELIST group "initial_data_nml" is loaded from "./conf/init_data_T21L16.conf". *** MESSAGE [initial_data] *** ----- Initialization Messages ----- *** MESSAGE [initial_data] *** Pattern = Small Disturbance of Temperature *** MESSAGE [initial_data] *** TempAvr = 280. *** MESSAGE [initial_data] *** PsAvr = 100000. *** MESSAGE [initial_data] *** QVapAvr = 0.1E-09 *** MESSAGE [HistoryClose] *** "init_T21L16.nc" is closed
次に, sst_data と sst_data_T21.conf を用いて, 海水面データ sst_T21.nc を作成します.
$ ./bin/sst_data -N=./conf/sst_data_T21.conf : *** MESSAGE [restart_surftemp_io] *** ----- Initialization Messages ----- *** MESSAGE [restart_surftemp_io] *** Input:: *** MESSAGE [restart_surftemp_io] *** InputFile = *** MESSAGE [restart_surftemp_io] *** InputName = SurfTemp *** MESSAGE [restart_surftemp_io] *** Output:: *** MESSAGE [restart_surftemp_io] *** OutputFile = sst_T21.nc *** MESSAGE [restart_surftemp_io] *** IntTime = 1. [day] *** MESSAGE [HistoryCreate3] *** "sst_T21.nc" is created (origin=0. [day]) *** MESSAGE [surface_data] *** NAMELIST group "surface_data_nml" is loaded from "./conf/sst_data_T21.conf". *** MESSAGE [surface_data] *** NAMELIST group "surface_data_nml" is loaded from "./conf/sst_data_T21.conf". *** MESSAGE [surface_data] *** ----- Initialization Messages ----- *** MESSAGE [surface_data] *** Pattern = Hosaka et al. (1998) *** MESSAGE [surface_data] *** SurfTemp = 302. *** MESSAGE [surface_data] *** Albedo = 0.15 *** MESSAGE [surface_data] *** HumidCoeff = 1. *** MESSAGE [surface_data] *** RoughLength = 0.1E-03 *** MESSAGE [surface_data] *** HeatCapacity = 0. *** MESSAGE [surface_data] *** TempFlux = 0. *** MESSAGE [surface_data] *** SurfCond = 0 *** MESSAGE [HistoryClose] *** "sst_T21.nc" is closed
最後に dcpam_main, dcpam_ape_T21L16.conf を用いて実験を実施します. 解像度 T21L16, 時間ステップ 20 分で 10 日分計算を行います. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.
$ ./bin/dcpam_main -N=./conf/dcpam_ape_T21L16.conf | tee ape.log
初期値データ, 地表面データ, 実験設定を変更する場合には, 上記の実行に際して, init_data_T21L16.conf, sst_data_T21.conf, dcpam_ape_T21L16.conf を変更してください.
上記の初期値データを元に, 1000 日分の計算を行った際のリスタートデータを 以下に用意してあります. このデータを用いてリスタートを行ってみましょう.
上記のページから "ape-T21L16-rst.nc" と "ape-T21L16-rst-rad.nc" をダウンロードしてください. そして, "./conf/dcpam_ape_T21L16.conf" の ×et_nml, &restart_file_io, &radiation_band_nml を以下のように変更してください.
×et_nml RestartTimeValue = 1000.0, ! 計算開始時刻. ! Start time of calculation RestartTimeUnit = 'day', ! 計算開始時刻の単位. ! Unit of start time of calculation IntegPeriodValue = 10.0, ! 計算終了時刻. ! End time of calculation IntegPeriodUnit = 'day', ! 計算開始時刻の単位. ! Unit of end time of calculation : &restart_file_io_nml InputFile = 'ape-T21L16-rst.nc', ! 入力するリスタートデータのファイル名 ! filename of input restart data : &radiation_band_nml RstInputFile = 'ape-T21L16-rst-rad.nc', ! 入力するリスタートデータのファイル名 ! Filename of input restart data
以下のコマンドで実行を行ってください.
$ ./bin/dcpam_main -N=./conf/dcpam_ape_T21L16.nml | tee ape.log