JAGURSの計算のための設定ファイルを作る（福島第一原発編

##目的
JAGURSで福島第一原発を襲った津波を再現する

Jagursについて　：  [津波のシミュレーション計算を手軽？にやる方法](https://qiita.com/iowanman/items/6c44621869774b143ac1)
Jagursの計算環境　　：　[JagursをWin10で実行する環境を作る](https://qiita.com/iowanman/items/53ca2ba94d3561702721)
海底地形について　　： [内閣府 中央防災会議が作った海底地形データを読めるようにしてGMTで可視化する](https://qiita.com/iowanman/items/55574fea8d62d1270a60)
波源モデルについて　　： [津波波源モデルをJagursで使えるようにする](https://qiita.com/iowanman/items/897fd543f287b5f5ca28)

の続き

##海底地形ファイルの変換
JAGURSに入力する地形ファイルの解像度ですが、root以外は**３で割ると余り１**になるようにする必要があります。中央防災会議のデータを基にすると、ファイルは３の倍数で作られています。
このように、異なる解像度にまたがる計算では、３の倍数+1をよくやるそうです。（理由はしらない）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/32a93417-8f36-3d26-3963-5cee5b27c1f9.png)
でないと、このようなエラーを貰って頭を抱えることになります。

というわけで、僕は海底地形の東と南に1マスだけコピーして作りました。

次に海底地形をJagursが読める形式に変換します。ちゃんとマニュアルにはcfだよって書いてあります。
かつての僕はJAGURSが地形データが読まなーいと言ってくっそ悩みました。そしてこの記事を書いてる時にも悩みました。
ちゃんとマニュアルは上から下まで読みましょう。つまみぐいいくない！
-Gで出力ファイル名を指定するときに=cfをつけましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/df7d9be1-d4eb-4ec6-9c9a-e83d5c5286ce.png)

gmtのxyz2grdを使うためのスクリプトを出すためのプログラム例を示します。

```fortran
      implicit none
      integer i,j,k
      character(len=200) fname,ofname
      integer dxdy,x0,y0,ix,iy
      integer fnum
      integer iosnum
      open(21,file='bathylist.csv',status='old')
      open(31,file='sh_convert_grd.sh')
      write(31,*) "#!/bin/bash"
      do
        read(21,*,iostat=iosnum)fname,dxdy,x0,y0,ix,iy
        if(iosnum < 0)then
          exit
        end if
        write(31,'("gmt xyz2grd depth_",A,"_xyz.dat -Gdepth_",A,
     c "_xyz.grd=cf -V  -R",i8.8,"/",i8.8,"/",i8.8,"/",i8.8," -I",i8.8)')
     c trim(fname),trim(fname),
     c x0,x0+dxdy*(ix),y0-dxdy*iy,y0,dxdy
      end do
      stop
      end
```
こんな感じのファイルが出力されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/2c5fa43f-a16a-775a-8bd6-5c41168703c0.png)


以下で実行しましょう。

```bash
bash sh_convert_grd.sh
```

##設定ファイル
ファイル名ではサンプルに入っているものに従います。

##gridfile
中央防災会議が作ったドキュメントより作成
福島第一原発らへんを計算するのに必要な場所（ファイル名）を抽出して使います。
こんな感じのファイルになるはず。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/4d563afb-378e-91e4-bee4-0307551e659a.png)

##faultlist.txt
断層破壊？伝播？モデルの時系列なリスト 30秒毎  tau=30
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/6b55b49e-6e2a-574f-d6c9-b42c83830ce4.png)


##tsun.par
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/e4487b07-44da-3871-0c88-40380e336618.png)


###dt決める
マニュアルの9ページに書いてるのをみて計算
1秒で余裕らしいので、デフォ値の0.02
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/3676c31b-3808-3a76-f007-30403cf336c9.png)

###そのほか
init_disp_fault=1   **テンプレートには含まれてないから注意**
user_linear=0　　　　　**テンプレートには含まれてないから注意**
tau=30    断層設定ファイルの間隔秒数が30秒だから
tend=10800   3時間（3600*3)秒間の計算
itmap=200   dt*itmap=10秒間隔で計算結果を出力
multrupt=1　　fault.txtを指定したから
with_abc=1    たぶん指定したほうが安定する？
!procx=4
!procy=2　　　MPI並列は使わないのでコメントアウト

###Makefileの変更点
WindowsでWSLでgfortranでコンパイルするのは、[このへん](https://qiita.com/iowanman/items/53ca2ba94d3561702721)を参考にどうぞ。
gitからcloneしてきたサンプルは緯度経度座標系で直交座標系ではないので

```
CARTEAIAN=ON
``` 
にする必要があります。
コンパイルし直したら、設定ファイルがあるところに移動して

```bash
mpirun -n 1 ../src/jagurs par=tsun.par.template
```
したら計算がはじまるはず。

##途中結果
地震発生から300秒（5分後）の津波のスナップショット
1350ｍメッシュ
![image.png](https://qiita-image-store.s3.amazonaws.com/0/180426/137c6d0d-5695-e9df-6085-f752d334cab8.png)