震源ファイルを読み込みます。
function source_read( src_file, grid_i, grid_j, grid_k, region, pth, dth, rth,
am0, timeshift, iswstf, funcparams, iswdc
) result(status)
パラメータ
character(len=*), intent(in) :: src_file
震源ファイルの名前を指定します。
integer, intent(out) :: grid_i(:), grid_j(:), grid_k(:)
震源座標のi,j,k成分配列が代入されます。
integer, intent(out) :: region(:)
震源の領域番号配列が代入されます。
real, intent(out) :: pth(:)
震源メカニズムのstrike成分配列が代入されます。角度は度単位です。
real, intent(out) :: dth(:)
震源メカニズムのdip成分配列が代入されます。角度は度単位です。
real, intent(out) :: rth(:)
震源メカニズムのrake成分配列が代入されます。角度は度単位です。
real, intent(out) :: am0(:)
震源のモーメント配列が代入されます。単位は[N*m]です。
real, intent(out) :: timeshift(:)
震源時間関数の時間シフト量配列が代入されます。単位は秒です。
integer, intent(out) :: iswstf(:)
震源時間関数番号配列が代入されます。
real, intent(out) :: funcparams(:,:)
震源時間関数のパラメータ配列が代入されます。
integer, intent(out) :: iswdc
震源のダブルカップル・シングルフォースのスイッチ配列が代入されます。1のときダブルカップル、0のときシングルフォースです。
戻り値
関数が成功すると0が返ります。関数が失敗すると、エラーが返ります。返されるエラー値は次の通りです。
値 |
説明 |
-1 |
ファイルオープンに失敗しました。 |
-2 |
HDF5データセットのオープンに失敗しました。 |
-4 |
FdmToolIDに不整合があります。 |
-5 |
HDF5データセットの読み込み処理でエラーが発生しました。 |
-7 |
配列の数がそろっていません。 |
-8 |
HDF5データタイプエラーが発生しました。 |
-15 |
メモリアロケーション処理でエラーが発生しました。 |
解説
震源ファイルから震源情報を読み込みます。引数として渡す1次元配列変数は、source_sizeを使用して震源の個数を取得しておき、震源の個数のサイズでアロケートしておく必要があります。また、funcparamsは<震源の個数>×<震源時間関数パラメータ個数>でアロケートしておく必要があります。
参照