エラー処理の記述¶
格子生成条件に問題があった場合のエラー処理を記述します。
エラー処理を追記したソースコードを リスト 22 に示します。太字で示したのが追記した部分です。追記した部分により、格子の格子点数が 100000 を超えるような imax, jmax を指定した時は、エラーが発生するようにしました。
コンパイルしたら、 格子の出力処理の記述 の時と同様の手順で格子を生成し、imax x jmax が 100000より大きくなる条件の時には、 図 38 に示すようなダイアログが表示されることを確認してください。例えば、 IMax, JMax にそれぞれ 10000 を指定してみてください。
エラー処理に使う関数の詳細については エラーコードの出力 を参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ! (前略) ! 格子生成条件の読み込み ! 簡潔に記述するため、エラー処理は行っていない call cg_iric_read_integer(fin, "imax", imax, ier) call cg_iric_read_integer(fin, "jmax", jmax, ier) call cg_iric_read_integer(fin, "elev_on", elev_on, ier) call cg_iric_read_real(fin, "elev_value", elev_value, ier) ! エラー処理 if (imax * jmax > 100000 ) then ! 100000 より大きい格子は生成できない call cg_iric_write_errorcode(fin, 1, ier) cg_iric_close(fin, ier) stop endif ! 格子生成用のメモリを確保 allocate(grid_x(imax,jmax), grid_y(imax,jmax) allocate(elevation(imax,jmax)) ! (後略) |