エラー処理の記述¶
格子生成条件に問題があった場合のエラー処理を記述します。
エラー処理を追記したソースコードを リスト 22 に示します。太字で示したのが追記した部分です。追記した部分により、格子の格子点数が 100000 を超えるような imax, jmax を指定した時は、エラーが発生するようにしました。
コンパイルしたら、 格子の出力処理の記述 の時と同様の手順で格子を生成し、imax x jmax が 100000より大きくなる条件の時には、 図 38 に示すようなダイアログが表示されることを確認してください。例えば、 IMax, JMax にそれぞれ 10000 を指定してみてください。
エラー処理に使う関数の詳細については エラーコードの出力 を参照してください。
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! (後略)