惑星表面が全て水であるような条件 (水惑星) で実験を行う方法を説明します.
この計算には以下の物理過程を用いています.
本実験では, 海表面温度のデータが必要です. したがって, 実験の実行は以下の 4 つのステップで行います.
practice ディレクトリに移動してください.
$ cd practice
そのディレクトリ内で, make コマンドを実行してください. 自動的に実行ファイルや NAMELIST ファイルがコピーされます. make コマンド入力後, まずディレクトリ名を適宜入力してください. (下記の例では ape-exp としています). それ以降の質問はとりあえずそのまま Enter キーを入力してください.
$ make
****** Setup a directory for a experiment ******
Enter directory name [testXX]: ape-exp
Directory in which executable files are prepared
[../src/main]:
:
そしてそのディレクトリに移動します.
$ cd ape-exp
なお, このディレクトリ内以外でも, 実行ファイル, 設定ファイル (namelist ファイル) があれば計算を行うことはできます.
init_data と init_data_T21L16.nml を用いて初期値ファイル init_T21L16.nc を作成します.
$ ./init_data -N=init_data_T21L16.nml
:
*** 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 "init_data_T21L16.nml".
*** MESSAGE [initial_data] *** NAMELIST group "initial_data_nml" is loaded from "init_data_T21L16.nml".
*** 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.nml を用いて, 海水面データ sst_T21.nc を作成します.
$ ./sst_data -N=sst_data_T21.nml
:
*** 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 "sst_data_T21.nml".
*** MESSAGE [surface_data] *** NAMELIST group "surface_data_nml" is loaded from "sst_data_T21.nml".
*** 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.nml を用いて実験を実施します. 解像度 T21L16, 時間ステップ 20 分で 10 日分計算を行います. リスタートデータ, 地表面リスタートデータといくつかのヒストリデータ ファイルが出力されます.
$ ./dcpam_main -N=dcpam_ape_T21L16.nml | tee ape.log
初期値データ, 地表面データ, 実験設定を変更する場合には, 上記の実行に際して, init_data_T21L16.nml, sst_data_T21.nml, dcpam_ape_T21L16.nml を変更してください.
上記の初期値データを元に, 1000 日分の計算を行った際のリスタートデータを 以下に用意してあります. このデータを用いてリスタートを行ってみましょう.
上記のページから "ape-T21L16-rst.nc" と "ape-T21L16-rst-rad.nc" をダウンロードしてください. そして, "dcpam_ape_T21L16.nml" の ×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
以下のコマンドで実行を行ってください.
$ ./dcpam_main -N=dcpam_ape_T21L16.nml | tee ape.log
この結果得られる Vor.nc の変数 Vor を GAVE で開くと 以下のような渦度の分布が表示されます.
