use netcdftype(NC_ERROR):: error
! type(NC_ERROR) 型の処理
if (.error. error) ... ! 論理型でエラーの有無を得る write(*, *) char(Message(error)) ! 文字型メッセージを得る call Assert(error) ! エラーがあれば終了
! エラー保存機能
integer:: netcdf_status character(len = 適当な値):: where, cause type(VARYING_STRING):: cause_string
subroutine NetcdfSaveError(error) subroutine NetcdfSaveError(netcdf_status, where, cause) subroutine NetcdfSaveError(netcdf_status, where, cause_string)
type(NC_ERROR) function NetcdfLastError()
subroutine NetcdfAssert()
! エラー型の生成
type(NC_ERROR) function NC_ERR(netcdf_status, where, cause) type(NC_ERROR) function NC_ERR(netcdf_status, where, cause_string)
netcdf モジュールを通じて提供される NC_ERROR 構造型は netcdf モジュールで発生するエラーの抽象化です。
モジュール netcdf で定義される多くの手続は type(NC_ERROR) 型を返すか真偽値でエラーの発生を通知します。 ユーザは以下に紹介する手続を用いてエラーを処理すべきです。 プログラムが停止してはならないという理由がなければ type(NC_ERROR) 型の返却値に関しては Assert(error) サブルーチンを呼び出すのがもっとも簡便です。 また、真偽値でエラーの存在が通知された場合は NetcdfAssert() サブルーチンを呼び出すのが最も簡便です。
type(NC_ERROR) 型のとる値にはエラーとみなされるものと そうでないものがあります。 論理形を返す単項演算子 .error. nc_error はエラーの場合真を返します。
関数 Message(nc_error) は可変長文字列型 type(VARYING_STRING) でエラーメッセージを返します。 可変長文字列については iso_varying_string(3f) を参照してください。
サブルーチン Assert(nc_error) はエラーでない場合は何もせず終了し、 エラーの場合は外部装置 "*" に エラーメッセージを印字したあと終了します。