NETCDF_ERROR(3F)

Date: TOYODA Eizi
Source: 2000-04-19

名前

netcdf_error - netcdf モジュールで発生するエラーの抽象化

書式

use netcdf

type(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) はエラーでない場合は何もせず終了し、 エラーの場合は外部装置 "*" に エラーメッセージを印字したあと終了します。

エラー保存機能

エラー状態以外の情報を返す手続はエラーの有無を NetcdfSaveError サブルーチンを使って保存します。 保存されたエラー情報は NetcdfLastError 関数によって取得できます。 call Assert(NetcdfLastError()) のかわりに call NetcdfAssert という省略記法を用いることができます。

備考

NC_ERROR 構造体は netcdf_error モジュールで定義されています。 しかし通常は netcdf モジュールを呼び出すべきです。

作者

豊田英司 toyoda(at)gfd-dennou.org

参照

dc_string(3f), netcdf_file(3f), netcdf_dimension(3f), netcdf_variable(3f), netcdf_v3(3f) netcdf(3f),

バグ

Assert という名称は assert(3) に由来しますが、引数を取らない版は意味不明です。
HTML generated using htroff at 30 May 2000 10:16:46.