波動場の3次元ダンプファイルを出力します。
function dump3d( region0, region1,
dim00, dim01, dim02, dim10, dim11, dim12,
x00, x01, xs0, y00, y01, ys0, z00, z01, zs0,
x10, x11, xs1, y10, y11, ys1, z10, z11, zs1,
dt, step, phydim, ch, xmrgn, ymrgn, zmrgn
) result(status)
パラメータ
integer, intent(in) :: xmrgn, ymrgn, zmrgn
波動場の3次元データのマージンの大きさを指定します。
real, intent(in), target :: region0(1-xmrgn:,1-ymrgn:,1-zmrgn:)
波動場の第1領域です。
real, intent(in), target :: region1(1-xmrgn:,1-ymrgn:,1-zmrgn:)
波動場の第2領域です。
real, intent(in), target :: dim00(1-vec_margin:)
格子間隔ベクトルの第1領域、X方向です。
real, intent(in), target :: dim01(1-vec_margin:)
格子間隔ベクトルの第1領域、Y方向です。
real, intent(in), target :: dim02(1-vec_margin:)
格子間隔ベクトルの第1領域、Z方向です。
real, intent(in), target :: dim10(1-vec_margin:)
格子間隔ベクトルの第2領域、X方向です。
real, intent(in), target :: dim11(1-vec_margin:)
格子間隔ベクトルの第2領域、Y方向です。
real, intent(in), target :: dim12(1-vec_margin:)
格子間隔ベクトルの第2領域、Z方向です。
integer, intent(in) :: x00, x01, xs0
第1領域のハイパースラブ情報のX方向です。
x00が出力し始める位置、x01が出力し終える位置、xs0がステップです。
integer, intent(in) :: y00, y01, ys0
第1領域のハイパースラブ情報のY方向です。
integer, intent(in) :: z00, z01, zs0
第1領域のハイパースラブ情報のZ方向です。
integer, intent(in) :: x10, x11, xs1
第2領域のハイパースラブ情報のX方向です。
integer, intent(in) :: y10, y11, ys1
第2領域のハイパースラブ情報のY方向です。
integer, intent(in) :: z10, z11, zs1
第2領域のハイパースラブ情報のZ方向です。
real, intent(in) :: dt
時間差分間隔です。
integer, intent(in) :: step
出力する波動場の差分ステップを指定します。
integer, intent(in) :: ch
出力する波動場のチャンネルを指定します。
character(len=16), intent(in) :: phydim
単位名を16文字以内の文字列で指定します。
戻り値
関数が成功すると0が返ります。関数が失敗すると、エラーが返ります。返されるエラー値は次の通りです。
値 |
説明 |
-1 |
ファイル作成に失敗しました。 |
-2 |
グループオブジェクトの作成に失敗しました。 |
-3 |
データセットオブジェクトの作成に失敗しました。 |
-4 |
データスペースオブジェクトの作成に失敗しました。 |
-5 |
データタイプの異常です。 |
-6 |
アトリビュートオブジェクトの作成に失敗しました。 |
-7 |
プロパティーオブジェクトの作成に失敗しました。 |
-8 |
データセットの書き込みに失敗しました。 |
-9 |
アトリビュートの書き込みに失敗しました。 |
-10 |
出力チャンネルの指定が間違っています。 |
-11 |
出力グリッドの指定が間違っています。 |
-12 |
データセットの延長エラー |
-13 |
ハイパースラブのエラー |
-14 |
領域指定のエラー |
解説
出力される3次元ダンプファイルのフォーマットはGMS3次元ダンプファイルを参照してください。ファイル名は、vx3d????????.h5などとなります。????????の中にはstepで指定した8桁のステップ数が入ります。
また、データの生成に使われた震源、観測点、構造ファイルのFdmToolIDが付加されます。
なお、空間を分割して並列化したプログラムで使用する場合には、ハイパースラブ情報のみを修正して使用します。
参照
dump3d_all, gms_dump3d_write_region, gms_dump3d_make_filename