エラー処理の記述

格子生成条件に問題があった場合のエラー処理を記述します。

エラー処理を追記したソースコードを リスト 22 に示します。太字で示したのが追記した部分です。追記した部分により、格子の格子点数が 100000 を超えるような imax, jmax を指定した時は、エラーが発生するようにしました。

コンパイルしたら、 格子の出力処理の記述 の時と同様の手順で格子を生成し、imax x jmax が 100000より大きくなる条件の時には、 図 38 に示すようなダイアログが表示されることを確認してください。例えば、 IMax, JMax にそれぞれ 10000 を指定してみてください。

エラー処理に使う関数の詳細については エラーコードの出力 を参照してください。

リスト 22 エラー処理を追記したソースコード (抜粋)
 1! (前略)
 2
 3  ! 格子生成条件の読み込み
 4  ! 簡潔に記述するため、エラー処理は行っていない
 5  call cg_iric_read_integer(fin, "imax", imax, ier)
 6  call cg_iric_read_integer(fin, "jmax", jmax, ier)
 7  call cg_iric_read_integer(fin, "elev_on", elev_on, ier)
 8  call cg_iric_read_real(fin, "elev_value", elev_value, ier)
 9
10  ! エラー処理
11  if (imax * jmax > 100000 ) then
12    ! 100000 より大きい格子は生成できない
13    call cg_iric_write_errorcode(fin, 1, ier)
14    cg_iric_close(fin, ier)
15    stop
16  endif
17
18  ! 格子生成用のメモリを確保
19  allocate(grid_x(imax,jmax), grid_y(imax,jmax)
20  allocate(elevation(imax,jmax))
21
22! (後略)
../_images/gridgenerator_error_dialog.png

図 38 格子生成エラーダイアログ 表示例