エラー処理用モジュール More...
Data Types | |
| interface | dumperror |
| 手続引用仕様. いずれ差し替えられるように外部関数にしておく。 More... | |
Functions/Subroutines | |
| integer function, public | errorcode () |
| subroutine, public | geterrormessage (msg) |
| subroutine, public | storeerror (number, where, err, cause_c, cause_i) |
Variables | |
| integer, parameter, public | dc_noerr = 0 |
| エラー等を保持 | |
| integer, parameter, public | gt_efake = -100 |
| 正のエラー番号は libc システムエラーメッセージのために あけてある。システム依存性が大きく、非常に大きな数値も 用いられるので空き領域を確保するのは困難である。 | |
| integer, parameter, public | gt_enomoredims = -101 |
| -101 以下: データ構造のエラー | |
| integer, parameter, public | gt_edimnodim = -102 |
| integer, parameter, public | gt_edimmultidim = -103 |
| integer, parameter, public | gt_edimotherdim = -104 |
| integer, parameter, public | gt_ebaddimname = -105 |
| integer, parameter, public | gt_enotvar = -106 |
| integer, parameter, public | gt_enomem = -107 |
| integer, parameter, public | gt_eotherfile = -108 |
| integer, parameter, public | gt_eargsizemismatch = -109 |
| integer, parameter, public | gt_enomatchdim = -110 |
| integer, parameter, public | gt_elimited = -111 |
| integer, parameter, public | gt_ebadvar = -112 |
| integer, parameter, public | gt_echarshort = -113 |
| integer, parameter, public | gt_enounlimitdim = -114 |
| integer, parameter, public | gt_ebadattrname = -115 |
| integer, parameter, public | gt_ebadhistory = -116 |
| integer, parameter, public | gt_ebadallocatesize = -117 |
| integer, parameter, public | gt_erankmismatch = -118 |
| integer, parameter, public | gt_enoturl = -119 |
| integer, parameter, public | gt_ebadgt4commagraphy = -120 |
| integer, parameter, public | gr_enotgr = -300 |
| -300 以下: GrADS 入出力のエラー | |
| integer, parameter, public | dc_enotinit = -400 |
| -400 以下: dc ユーティリティのエラー | |
| integer, parameter, public | dc_ealreadyinit = -401 |
| integer, parameter, public | dc_ebadunit = -402 |
| integer, parameter, public | dc_ebadcaltype = -403 |
| integer, parameter, public | dc_ebadtimezone = -404 |
| integer, parameter, public | dc_efilenameempty = -405 |
| integer, parameter, public | dc_ebadfileopmode = -406 |
| integer, parameter, public | dc_enounitnum = -407 |
| integer, parameter, public | dc_enofileexist = -408 |
| integer, parameter, public | dc_enofileread = -409 |
| integer, parameter, public | dc_enofilewrite = -410 |
| integer, parameter, public | dc_enegative = -411 |
| integer, parameter, public | dc_earglack = -412 |
| integer, parameter, public | dc_enoassoc = -413 |
| integer, parameter, public | dc_enoentry = -414 |
| integer, parameter, public | dc_enodimtime = -415 |
| integer, parameter, public | dc_edimtime = -416 |
| integer, parameter, public | dc_etoolargetime = -417 |
| integer, parameter, public | dc_ebaddate = -418 |
| integer, parameter, public | dc_einconsistcaldate = -419 |
| integer, parameter, public | hst_enotindefine = -500 |
| -500 以下: データ入出力層のエラー | |
| integer, parameter, public | hst_eindefine = -501 |
| integer, parameter, public | hst_eintfile = -502 |
| integer, parameter, public | hst_ebadname = -503 |
| integer, parameter, public | hst_enottermgthist = -504 |
| integer, parameter, public | hst_enodependtime = -505 |
| integer, parameter, public | hst_ebadvarname = -506 |
| integer, parameter, public | hst_enotimedim = -507 |
| integer, parameter, public | hst_enoaxisname = -508 |
| integer, parameter, public | hst_evarinuse = -509 |
| integer, parameter, public | hst_ealreadyregvarfix = -510 |
| integer, parameter, public | hst_ebadslice = -511 |
| integer, parameter, public | hst_ebadnewfileint = -512 |
| integer, parameter, public | hst_emaxdimsdepended = -513 |
| integer, parameter, public | hst_eindivisible = -514 |
| integer, parameter, public | hst_ebadterminus = -515 |
| integer, parameter, public | hst_ebadorigin = -516 |
| integer, parameter, public | hst_empinoaxisdata = -517 |
| integer, parameter, public | usr_errno = -1000 |
| -1000 以下: ユーザー定義 | |
エラー処理用モジュール
| integer function, public dc_error::errorcode |
現在設定されているエラーコードを返します。
Definition at line 606 of file dc_error.f90.
| subroutine, public dc_error::geterrormessage | ( | character(len = *), intent(out) | msg | ) |
現在設定されているエラーコードから対応するメッセージを返します。
| [out] | msg | 現在のエラーコードに対応するエラーメッセージ文字列 |
Definition at line 618 of file dc_error.f90.
References dc_ealreadyinit, dc_earglack, dc_ebadcaltype, dc_ebaddate, dc_ebadfileopmode, dc_ebadtimezone, dc_ebadunit, dc_edimtime, dc_efilenameempty, dc_einconsistcaldate, dc_enegative, dc_enoassoc, dc_enodimtime, dc_enoentry, dc_enofileexist, dc_enofileread, dc_enofilewrite, dc_enotinit, dc_enounitnum, dc_etoolargetime, gr_enotgr, gt_eargsizemismatch, gt_ebadallocatesize, gt_ebadattrname, gt_ebaddimname, gt_ebadgt4commagraphy, gt_ebadvar, gt_echarshort, gt_edimmultidim, gt_edimnodim, gt_edimotherdim, gt_efake, gt_elimited, gt_enomatchdim, gt_enomem, gt_enomoredims, gt_enoturl, gt_enotvar, gt_enounlimitdim, gt_eotherfile, gt_erankmismatch, hst_ealreadyregvarfix, hst_ebadname, hst_ebadnewfileint, hst_ebadorigin, hst_ebadslice, hst_ebadterminus, hst_ebadvarname, hst_eindefine, hst_eindivisible, hst_eintfile, hst_emaxdimsdepended, hst_empinoaxisdata, hst_enoaxisname, hst_enodependtime, hst_enotimedim, hst_enotindefine, hst_enottermgthist, hst_evarinuse, and usr_errno.
| subroutine, public dc_error::storeerror | ( | integer, intent(in) | number, |
| character(len = *), intent(in) | where, | ||
| logical, intent(out), optional | err, | ||
| character(len = *), intent(in), optional | cause_c, | ||
| integer, intent(in), optional | cause_i | ||
| ) |
典型的ライブラリ手続のために作られたエラー処理サブルーチン
必要な引数は2つであり、第1引数 number には整数型のエラーコード、 第2引数 where には文字型でエラーの発生した手続名を与えます。 デフォルトでは以下の形式の文字列が標準出力に表示されてプログラム は終了します。 エラーメッセージ error_message はエラーコードから自動的に決まります。 対応表がエラーコード一覧にあるので参照してください。
*** ERROR (Code number) [where] *** error_message *** ERROR (Code number) [where(cause_c)] *** error_message
なお、gtool5 のライブラリ外からユーザがエラー処理用ツール として StoreError を用いることを想定し、USR_ERRNO 番より小さいエラーコードは空けてあります。USR_ERRNO より小さい値をエラーコードに与えると, StoreError は以下の形式の文字列を標準出力に出力してプログラムを 終了させます。より安易に使えるメッセージ出力およびエラー発生の ためのモジュールとして dc_message も用意してあるので そちらも参照してください。
*** ERROR (Code number) [where] *** cause_c *** ERROR (Code number) [where] *** cause_c (cause_i)
| [in] | number | エラーコード |
| [in] | where | エラー発生個所 |
| [out] | err | 例外処理用フラグ。デフォルトでは、number に非エラーコード 以外の値が与えられた場合、エラーメッセージを 表示してプログラムは強制終了します。 引数 err が与えられる場合、 プログラムは強制終了せず、代わりに err に .true. が代入されます。 |
| [in] | cause_c | 文字型メッセージ |
| [in] | cause_i | 整数型メッセージ |
Definition at line 890 of file dc_error.f90.
References sysdep::abortprogram(), dc_noerr, geterrormessage(), and dc_types::string.
| integer, parameter, public dc_error::dc_ealreadyinit = -401 |
Definition at line 535 of file dc_error.f90.
| integer, parameter, public dc_error::dc_earglack = -412 |
Definition at line 546 of file dc_error.f90.
| integer, parameter, public dc_error::dc_ebadcaltype = -403 |
Definition at line 537 of file dc_error.f90.
| integer, parameter, public dc_error::dc_ebaddate = -418 |
Definition at line 552 of file dc_error.f90.
| integer, parameter, public dc_error::dc_ebadfileopmode = -406 |
Definition at line 540 of file dc_error.f90.
| integer, parameter, public dc_error::dc_ebadtimezone = -404 |
Definition at line 538 of file dc_error.f90.
| integer, parameter, public dc_error::dc_ebadunit = -402 |
Definition at line 536 of file dc_error.f90.
| integer, parameter, public dc_error::dc_edimtime = -416 |
Definition at line 550 of file dc_error.f90.
| integer, parameter, public dc_error::dc_efilenameempty = -405 |
Definition at line 539 of file dc_error.f90.
| integer, parameter, public dc_error::dc_einconsistcaldate = -419 |
Definition at line 553 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enegative = -411 |
Definition at line 545 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enoassoc = -413 |
Definition at line 547 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enodimtime = -415 |
Definition at line 549 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enoentry = -414 |
Definition at line 548 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enofileexist = -408 |
Definition at line 542 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enofileread = -409 |
Definition at line 543 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enofilewrite = -410 |
Definition at line 544 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enotinit = -400 |
-400 以下: dc ユーティリティのエラー
Definition at line 534 of file dc_error.f90.
| integer, parameter, public dc_error::dc_enounitnum = -407 |
Definition at line 541 of file dc_error.f90.
| integer, parameter, public dc_error::dc_etoolargetime = -417 |
Definition at line 551 of file dc_error.f90.
| dc_error::dc_noerr = 0 |
エラー等を保持
非エラーコード (エラーなし)
Definition at line 468 of file dc_error.f90.
| integer, parameter, public dc_error::gr_enotgr = -300 |
-300 以下: GrADS 入出力のエラー
Definition at line 530 of file dc_error.f90.
| integer, parameter, public dc_error::gt_eargsizemismatch = -109 |
Definition at line 515 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebadallocatesize = -117 |
Definition at line 523 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebadattrname = -115 |
Definition at line 521 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebaddimname = -105 |
Definition at line 511 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebadgt4commagraphy = -120 |
Definition at line 526 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebadhistory = -116 |
Definition at line 522 of file dc_error.f90.
| integer, parameter, public dc_error::gt_ebadvar = -112 |
Definition at line 518 of file dc_error.f90.
| integer, parameter, public dc_error::gt_echarshort = -113 |
Definition at line 519 of file dc_error.f90.
| integer, parameter, public dc_error::gt_edimmultidim = -103 |
Definition at line 509 of file dc_error.f90.
| integer, parameter, public dc_error::gt_edimnodim = -102 |
Definition at line 508 of file dc_error.f90.
| integer, parameter, public dc_error::gt_edimotherdim = -104 |
Definition at line 510 of file dc_error.f90.
| integer, parameter, public dc_error::gt_efake = -100 |
正のエラー番号は libc システムエラーメッセージのために あけてある。システム依存性が大きく、非常に大きな数値も 用いられるので空き領域を確保するのは困難である。
負のエラー番号は netCDF が使っている。少々の拡張も見込んで、 -99 までは使わないで置く。
Definition at line 503 of file dc_error.f90.
| integer, parameter, public dc_error::gt_elimited = -111 |
Definition at line 517 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enomatchdim = -110 |
Definition at line 516 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enomem = -107 |
Definition at line 513 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enomoredims = -101 |
-101 以下: データ構造のエラー
Definition at line 507 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enoturl = -119 |
Definition at line 525 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enotvar = -106 |
Definition at line 512 of file dc_error.f90.
| integer, parameter, public dc_error::gt_enounlimitdim = -114 |
Definition at line 520 of file dc_error.f90.
| integer, parameter, public dc_error::gt_eotherfile = -108 |
Definition at line 514 of file dc_error.f90.
| integer, parameter, public dc_error::gt_erankmismatch = -118 |
Definition at line 524 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ealreadyregvarfix = -510 |
Definition at line 567 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadname = -503 |
Definition at line 560 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadnewfileint = -512 |
Definition at line 569 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadorigin = -516 |
Definition at line 573 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadslice = -511 |
Definition at line 568 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadterminus = -515 |
Definition at line 572 of file dc_error.f90.
| integer, parameter, public dc_error::hst_ebadvarname = -506 |
Definition at line 563 of file dc_error.f90.
| integer, parameter, public dc_error::hst_eindefine = -501 |
Definition at line 558 of file dc_error.f90.
| integer, parameter, public dc_error::hst_eindivisible = -514 |
Definition at line 571 of file dc_error.f90.
| integer, parameter, public dc_error::hst_eintfile = -502 |
Definition at line 559 of file dc_error.f90.
| integer, parameter, public dc_error::hst_emaxdimsdepended = -513 |
Definition at line 570 of file dc_error.f90.
| integer, parameter, public dc_error::hst_empinoaxisdata = -517 |
Definition at line 574 of file dc_error.f90.
| integer, parameter, public dc_error::hst_enoaxisname = -508 |
Definition at line 565 of file dc_error.f90.
| integer, parameter, public dc_error::hst_enodependtime = -505 |
Definition at line 562 of file dc_error.f90.
| integer, parameter, public dc_error::hst_enotimedim = -507 |
Definition at line 564 of file dc_error.f90.
| integer, parameter, public dc_error::hst_enotindefine = -500 |
-500 以下: データ入出力層のエラー
Definition at line 557 of file dc_error.f90.
| integer, parameter, public dc_error::hst_enottermgthist = -504 |
Definition at line 561 of file dc_error.f90.
| integer, parameter, public dc_error::hst_evarinuse = -509 |
Definition at line 566 of file dc_error.f90.
| integer, parameter, public dc_error::usr_errno = -1000 |
-1000 以下: ユーザー定義
Definition at line 579 of file dc_error.f90.