JAGURS テスト計算

GitHubから clone したものを前提としています.

コンパイル

src/ にある Makefile をコンパイル.
各コンパイラ用の Makefile.XXX があるので, Makefile としてシンボリックリンクを貼るか, make -f でファイル指定する. 並列計算をしない場合は Makefile を編集して MPI を off にする.
Makefile の中で変更すべき箇所は, PROJ,FFTW,NetCDF4 のパス.
nf-config のパスが通っていれば,NETCDF の定義は

# NETCDF: Specify the path to NetCDF library.
NETCDF=$(shell nf-config --prefix)

でOK.

テスト計算の実行

並列計算なし

計算実行は

./jagurs par=XXX.par

というようにパラメータを設定したファイルを実行ファイルのあとに指定する.
input/ の中にテスト用として tsun.par というファイルが入っており,

./jagurs par=tsun.par

とすると計算が開始された.
tend=120 とあり,この計算では最初の2分間だけ計算する.公式docに各パラメータについての説明が書いてある.
XXX.par のファイルの中身は Fortran の namelist 形式なので,容易に編集可能.
(MPI並列計算をしない)シリアル版の場合は,並列ノード指定部分を

!procx=2      !for Parallel version
!procy=2      !for Parallel version

のようにコメントを入れる.
OpenMP 並列については簡単で,環境変数 OMP_NUM_THREADS で数を指定するだけ.

MPI 並列計算あり

mpirun がつくだけ.

mpirun -np 4 ./jagurs par=tsun.par # 2 x 2 の場合

公式doc には, OpemMP と MPI のハイブリッドジョブの実行例が書いてある.

可視化

計算結果の出力の grd ファイルは GMT で直接描けるようになっている.
平面分布の描画を適当にワンライナーで全部書くとすれば下記のような感じ.

# GMT 6
for f in SD*.grd; do echo $f; gmt begin "${f//\.grd/}" png; gmt makecpt -Cpolar -D ;gmt grdimage -JX10 -Baf -B+t$f -R$f -C $f ; gmt end;  done
# GMT 5
for f in SD*.grd; do gmt grdimage -JX10 -Baf -B+t$f -R$f -Cpolar -P $f > "${f//\.grd/\.ps}" ; done

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2023-10-05 (Thu) 16:59:06 (204d)