概要
※本記事の内容に従った結果生じた損害については責任を負いません。
一般的なLinuxマシン上でのgfotranコンパイラとOpenMPI環境での実行手順です。CPU数などにもよりますが、このような環境では論文に使うような設定(高解像度なSCALEの多メンバーアンサンブル予測)の実行は困難です。あくまでデバッグ・お試し用途と想定しています。
5.5.5-v2で動作確認しています。
テストした環境
OS
NAME="Rocky Linux"
VERSION="9.7 (Blue Onyx)"
CPU
Intel(R) Xeon(R) Gold 5318S CPU @ 2.10GHz
gfortran
$ gfortran --version
GNU Fortran (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
OpenMPI
$ mpiexec --version
mpiexec (OpenRTE) 4.1.1
Report bugs to http://www.open-mpi.org/community/help/
NetCDF
netCDF 4.9.2
NetCDF-fortran
netCDF-Fortran 4.6.1
HDF5
Version 1.14.5
環境変数設定とconfigファイル
export SCALE_SYS=Linux64-gnu-ompi
としてSCALE、LETKFの順でコンパイルします。
テストにはrun/config/72km_Japanを使います。
cd scale/run
ln -sf config/72km_Japan/config.* .
ln -sf config.main.Linux64-gnu-ompi config.main
この設定では、72-km meshのSCALE1メンバーあたりに4 MPIプロセスが必要です。
config.mainでは
PRESET='Linux64-gnu-ompi'
と設定します。
ジョブの実行
予報は
nohup ./fcst_run.sh > log&
データ同化サイクルは
nohup ./cycle_run.sh > log&
で実行できます。デフォルトでは4 MPIプロセスで実行されます。
デフォルト設定の場合、ジョブの実行ファイル(fcst_job.shやcycle_job.sh)は../tmp/72km_Japanに作成され、ジョブスケジューラなどを使わずに直接実行されます。
実行の経過は../tmp/72km_Japan/run_progressに書き出されます。
初期アンサンブルを作成しspin-up予報を実行する場合はconfig.mainでBDY_ENS=1(アンサンブル境界値が必要)、config.fcstでMAKEINIT=1で実行します。実行後に$OUTDIR/$STIME/fcstを$OUTDIR/[予報終了時刻のディレクトリ]/analへリンクを貼ります。その後、データ同化サイクルを実行します。