gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dc_error Module Reference

Error handling module. More...

Data Types

interface  dumperror
 Procedure reference specification. Made as an external function to be replaceable in the future. 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
 Error storage variables
integer, parameter, public gt_efake = -100
 Positive error numbers are reserved for libc system error messages. Due to high system dependency and very large values used, it is difficult to reserve empty space.
integer, parameter, public gt_enomoredims = -101
 -101 or less: Data structure errors
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 or less: GrADS I/O errors
integer, parameter, public dc_enotinit = -400
 -400 or less: DC utilities errors
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 or less: Data I/O layer errors
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 or less: User-defined errors

Detailed Description

Error handling module.

Author
Youhei SASAKI, Eizi TOYODA, Yasuhiro MORIKAWA

Error handling about parts of programs should be regulated definitely. Error means that input to the part of program is invalid, or expected operation can not be done, etc.

Procedures (procedures is generic name of subroutines and functions) provided to users by gtool5 library almost report error to invoker in the following two manner.

  • When error occurs, the program display appropriate messages and aborts.
  • If logical optional argument err is given, the argument err become .true. when error occurs. If err is abbreviated, the operation is same as above.

StoreError subroutine in dc_error module handle above all operations. See StoreError about the interface of it.

Error Code List / エラーコード一覧

Programmers who add codes to gtool5 library must call StoreError with appropriate error code. And so values of error code and corresponding messages are listed as follows to figure out if a new error code is needed to declared. To use error codes mnemonic, require "netcdf_f77" module or include "netcdf.inc" (deprecated) about error codes with prefix NF_E, or require "dc_error" module about error codes with prefix GT_E and DC_E and HST_E. Error codes smaller than USR_ERRNO are saved as user-defined error codes.

Non error code that indicates normal (error-free) situation is DC_NOERR.

List of numerical values of error codes issues a guideline about declaration of new error codes. Give not numerical value but mnemonic of error code to source code.

Unused codes / 利用しないコード

Positive integer is not used as error codes.

NetCDF library might return "libc" error code "error". Numerical value of "errno" is no portable, so positive integer should be reserved for "errno".

Non error code / 非エラーコード

Use following non error code by referring this "dc_error" module.

Number Mnemonic
0 DC_NOERR

Error codes for netCDF / netCDF に関するエラーコード

Use following error codes by referring this "netcdf_f77" module.

Number Mnemonic Error message
0 NF_NOERR No Error (non error code)
-33 NF_EBADID Not a netCDF id
-34 NF_ENFILE Too many netCDF files open
-35 NF_EEXIST netCDF file exists && NC_NOCLOBBER
-36 NF_EINVAL Invalid argument
-37 NF_EPERM Write to read only
-38 NF_ENOTINDEFINE Operation not allowed in data mode
-39 NF_EINDEFINE Operation not allowed in define mode
-40 NF_EINVALCOORDS Index exceeds dimension bound
-41 NF_EMAXDIMS NF_MAX_DIMS exceeded
-42 NF_ENAMEINUSE String match to name in use
-43 NF_ENOTATT Attribute not found
-44 NF_EMAXATTS NC_MAX_ATTRS exceeded
-45 NF_EBADTYPE Not a netCDF data type or _FillValue type mismatch
-46 NF_EBADDIM Invalid dimension id or name
-47 NF_EUNLIMPOS NC_UNLIMITED in the wrong index
-48 NF_EMAXVARS NF_MAX_VARS exceeded
-49 NF_ENOTVAR Variable not found
-50 NF_EGLOBAL Action prohibited on NC_GLOBAL varid
-51 NF_ENOTNC Not a netCDF file
-52 NF_ESTS In Fortran, string too short
-53 NF_EMAXNAME NC_MAX_NAME exceeded
-54 NF_EUNLIMIT NC_UNLIMITED size already in use
-55 NF_ENORECVARS NC_rec op when there are no record vars
-56 NF_ECHAR Attempt to convert between text & numbers
-57 NF_EEDGE Edge+start exceeds dimension bound
-58 NF_ESTRIDE Illegal stride
-59 NF_EBADNAME Attribute or variable name contains illegal characters
-60 NF_ERANGE Numeric conversion not representable
-61 NF_ENOMEM Memory allocation (malloc) failure
-62 NF_EVARSIZE One or more variable sizes violate format constraints
-63 NF_EDIMSIZE Invalid dimension size
-64 NF_ETRUNC File likely truncated or possibly corrupted
-62 to -99 Reserved area for future extensions of netCDF

Error codes for gtdata / gtool5 のデータ構造 (gtdata) に関するエラーコード

Use following error codes by referring this "dc_error" module.

Number Mnemonic Error message
-100 GT_EFAKE function not implemented
-101 GT_ENOMOREDIMS dimension number d is out of range
-102 GT_EDIMNODIM dimension variable has no dimension
-103 GT_EDIMMULTIDIM dimension variable has many dimensions
-104 GT_EDIMOTHERDIM dimension variable has another dimension
-105 GT_EBADDIMNAME cause_c: unknown dimension name
-106 GT_ENOTVAR variable not opened
-107 GT_ENOMEM allocate/deallocate error
-108 GT_EOTHERFILE specified dimensional variable not on the same file
-109 GT_EARGSIZEMISMATCH arguments (cause_c) array size mismatch
-110 GT_ENOMATCHDIM dimension matching failed
-111 GT_ELIMITED variable already limited
-112 GT_EBADVAR variable type not supported
-113 GT_ECHARSHORT character length not enough
-114 GT_ENOUNLIMITDIM NC_UNLIMITED dimension is not found
-115 GT_EBADATTRNAME invalid attribute name
-116 GT_EBADHISTORY invalid GT_HISTORY variable
-117 GT_EBADALLOCATESIZE invalid allocated size
-118 GT_ERANKMISMATCH rank of data and argument is mismatch (cause_c)
-119 GT_ENOTURL URL (cause_c) is not found
-120 GT_EBADGT4COMMAGRAPHY (cause_c) is not gtool4 comma-graphy
to -299 Reserved area for future extensions of gtdata layer

Error codes for GrADS data I/O / GrADS データ入出力に関するエラーコード

Use following error codes by referring this "dc_error" module.

Number Mnemonic Error message
-300 GR_ENOTGR invalid GrADS file
to -399 Reserved area for future extensions of GrADS data I/O layer

Error codes for DC utilities / DC ユーティリティ用エラーコード

Use following error codes by referring this "dc_error" module.

Number Mnemonic Error message
-400 DC_ENOTINIT object (cause_c) is not initialized
-401 DC_EALREADYINIT object (cause_c) is already initialized
-402 DC_EBADUNIT unit (cause_c) is invalid
-403 DC_EBADCALTYPE calendar type (cause_i) is invalid
-404 DC_EBADTIMEZONE time zone (cause_c) is invalid
-405 DC_EFILENAMEEMPTY filename is empty
-406 DC_EBADFILEOPMODE file open mode (cause_c) is invalid
-407 DC_ENOUNITNUM available unit number is not found within (cause_c)
-408 DC_ENOFILEEXIST file (cause_c) is not found
-409 DC_ENOFILEREAD file (cause_c) is not readable
-410 DC_ENOFILEWRITE file (cause_c) is not writable
-411 DC_ENEGATIVE negative value is invalid for (cause_c)
-412 DC_EARGLACK lack of arguments (cause_c)
-413 DC_ENOASSOC argument (cause_c) is not associated
-414 DC_ENOENTRY entry of (cause_c) is not found
-415 DC_ENODIMTIME dimensional time can not be converted into nondimensional time
-416 DC_EDIMTIME nondimensional time can not be converted into dimensional time
-417 DC_ETOOLARGETIME number is too large for time
-418 DC_EBADDATE invalid expression of date
-419 DC_EINCONSISTCALDATE calendar and date are inconsistent
-420 to -499 Reserved area for future extensions of DC utilities

Error codes for data I/O layer / データ入出力層エラーコード

Use following error codes by referring this "dc_error" module.

Number Mnemonic Error message
-500 HST_ENOTINDEFINE operation (cause_c) not allowed in data mode
-501 HST_EINDEFINE operation (cause_c) not allowed in define mode
-502 HST_EINTFILE different intervals are applied to a file (cause_c)
-503 HST_EBADNAME name (cause_c) is invalid
-504 HST_ENOTTERMGTHIST GT_HISTORY correspond to (cause_c) is not terminated
-505 HST_ENODEPENDTIME (cause_c) does not depend on time
-506 HST_EBADVARNAME variable name (cause_c) is invalid
-507 HST_ENOTIMEDIM time dimension is not found
-508 HST_ENOAXISNAME axis or weight (cause_c) is not found
-509 HST_EVARINUSE variable name (cause_c) is already used
-510 HST_EALREADYREGVARFIX already register of variables is fixed by (cause_c)
-511 HST_EBADSLICE slice options are invalid (cause_c)
-512 HST_EBADNEWFILEINT invalid newfile interval (cause_c)
-513 HST_EMAXDIMSDEPENDED variable (cause_c) depends on (cause_i) dimensions
-514 HST_EINDIVISIBLE (cause_c) can not be divided
-515 HST_EBADTERMINUS terminus options are invalid (cause_c)
-516 HST_EBADORIGIN origin options are invalid (cause_c)
-517 HST_EMPINOAXISDATA data of axis (cause_c) for MPI is lack

Reserved error codes / gtool5 の将来の拡張のために予約してあるエラーコード

Following error codes are reserved for future extensions.

Number Description
-600 to -999 Reserved area for future extensions of gtool5

User-defined error codes / ユーザ定義用エラーコード

Error codes smaller than -1000 are saved for as user-defined error codes used by upper programs.

Number Mnemonic Error message
-1000 to USR_ERRNO cause_c (cause_i)

Function/Subroutine Documentation

◆ errorcode()

integer function, public dc_error::errorcode

Return an error code specified currently.

Returns
Integer error code currently set

Definition at line 606 of file dc_error.f90.

607 result = errno

◆ geterrormessage()

subroutine, public dc_error::geterrormessage ( character(len = *), intent(out) msg)

Return messages corresponding to an error code specified currently.

Parameters
[out]msgError message string corresponding to the current error code

Definition at line 618 of file dc_error.f90.

619 use netcdf, only: nf90_strerror
620 character(len = *), intent(out):: msg
621 character(len = STRING):: message
622 character(len = 20):: errno_c
623 character(len = 20):: cause_int_c
624 continue
625 select case(errno)
626 case(gt_efake)
627 msg = ' function not implemented'
628 !
629 ! -101 以下: データ構造のエラー
630 ! -101 or less: Error of data structure
631 !
632 case(gt_enomoredims)
633 write(message, "(': dimension number', i4, ' is out of range')") cause_int
634 msg = trim(message)
635 case(gt_ebaddimname)
636 msg = '(' // trim(cause_string) // '): unknown dimension name'
637 case(gt_enotvar)
638 msg = ' variable not opened'
639 case(gt_enomem)
640 msg = ' allocate/deallocate error'
641 case(gt_edimnodim)
642 msg = ' dimension variable has no dimension'
643 case(gt_edimmultidim)
644 msg = ' dimension variable has many dimensions'
645 case(gt_edimotherdim)
646 msg = ' dimension variable has another dimension'
647 case(gt_eotherfile)
648 msg = ' specified dimensional variable not on the same file'
649 case(gt_eargsizemismatch)
650 msg = ' arguments (' // trim(cause_string) //') array size mismatch'
651 case(gt_enomatchdim)
652 msg = ' dimension matching failed'
653 case(gt_elimited)
654 msg = ' variable already limited'
655 case(gt_ebadvar)
656 msg = ' variable type not supported'
657 case(gt_echarshort)
658 msg = ' character length not enough'
659 case(gt_enounlimitdim)
660 msg = ' NC_UNLIMITED dimension is not found'
661 case(gt_ebadattrname)
662 msg = ' invalid attribute name'
663 case(gt_ebadallocatesize)
664 msg = ' invalid allocated size'
665 case(gt_erankmismatch)
666 msg = ' rank of data and argument are mismatch (' // trim(cause_string) // ')'
667 case(gt_enoturl)
668 msg = ' URL (' // trim(cause_string) // ') is not found'
669 case(gt_ebadgt4commagraphy)
670 msg = ' (' // trim(cause_string) // ') is not gtool4 comma-graphy (ex. "time=100.0,x=10:20,y=^1:^5")'
671 !
672 ! -300 以下: GrADS 入出力のエラー
673 ! -300 or less: Error of GrADS I/O
674 !
675 case(gr_enotgr)
676 msg = ' invalid GrADS file'
677 !
678 ! -400 以下: DC ユーティリティのエラー
679 ! -400 or less: Error of DC utilities
680 !
681 case(dc_enotinit)
682 msg = ' object (' // trim(cause_string) // ') is not initialized'
683 case(dc_ealreadyinit)
684 msg = ' object (' // trim(cause_string) // ') is already initialized'
685 case(dc_ebadunit)
686 msg = ' unit (' // trim(cause_string) // ') is invalid'
687 case(dc_ebadcaltype)
688 write(message, '(" calendar type (", i4, ") is invalid")') cause_int
689 msg = trim(message)
690 case(dc_ebadtimezone)
691 msg = ' time zone (' // trim(cause_string) // ') is invalid'
692 case(dc_efilenameempty)
693 msg = ' filename is empty'
694 case(dc_ebadfileopmode)
695 msg = ' file open mode (' // trim(cause_string) // ') is invalid'
696 case(dc_enounitnum)
697 msg = ' available unit number is not found within (' // trim(cause_string) // ')'
698 case(dc_enofileexist)
699 msg = ' file (' // trim(cause_string) // ') is not found'
700 case(dc_enofileread)
701 msg = ' file (' // trim(cause_string) // ') is not readable'
702 case(dc_enofilewrite)
703 msg = ' file (' // trim(cause_string) // ') is not writable'
704 case(dc_enegative)
705 msg = ' negative value is invalid for (' // trim(cause_string) // ')'
706 case(dc_earglack)
707 msg = ' lack of arguments (' // trim(cause_string) // ')'
708 case(dc_enoassoc)
709 msg = ' argument (' // trim(cause_string) // ') is not associated'
710 case(dc_enoentry)
711 msg = ' entry of (' // trim(cause_string) // ') is not found'
712 case(dc_enodimtime)
713 msg = ' dimensional time can not be converted into nondimensional time'
714 case(dc_edimtime)
715 msg = ' nondimensional time can not be converted into dimensional time'
716 case(dc_etoolargetime)
717 msg = ' number is too large for time'
718 case(dc_ebaddate)
719 msg = ' invalid expression of date'
720 case(dc_einconsistcaldate)
721 msg = ' calendar and date are inconsistent'
722 !
723 ! -500 以下: データ入出力層のエラー
724 ! -500 or less: Error of data I/O layer
725 !
726 case(hst_enotindefine)
727 msg = ' operation (' // trim(cause_string) // ') not allowed in data mode'
728 case(hst_eindefine)
729 msg = ' operation (' // trim(cause_string) // ') not allowed in define mode'
730 case(hst_eintfile)
731 msg = ' different intervals are applied to a file (' // trim(cause_string) // ')'
732 case(hst_ebadname)
733 msg = ' name (' // trim(cause_string) // ') is invalid'
734 case(hst_enottermgthist)
735 msg = ' GT_HISTORY correspond to (' // trim(cause_string) // ') is not terminated'
736 case(hst_enodependtime)
737 msg = ' (' // trim(cause_string) // ') does not depend on time'
738 case(hst_ebadvarname)
739 msg = ' variable name (' // trim(cause_string) // ') is invalid'
740 case(hst_enotimedim)
741 msg = ' time dimension is not found'
742 case(hst_enoaxisname)
743 msg = ' axis or weight (' // trim(cause_string) // ') is not found'
744 case(hst_evarinuse)
745 msg = ' variable name (' // trim(cause_string) // ') is already used'
746 case(hst_ealreadyregvarfix)
747 msg = ' already register of variables is fixed by (' // trim(cause_string) // ')'
748 case(hst_ebadslice)
749 msg = ' slice options are invalid (' // trim(cause_string) // ')'
750 case(hst_ebadnewfileint)
751 msg = ' invalid newfile interval (' // trim(cause_string) // ')'
752 case(hst_emaxdimsdepended)
753 write(message, '("(", i4, ")")') cause_int
754 msg = trim(message)
755 msg = ' variable (' // trim(cause_string) // ') depends on ' // trim(message) // ' dimensions'
756 case(hst_eindivisible)
757 msg = ' (' // trim(cause_string) // ') can not be divided'
758 case(hst_ebadterminus)
759 msg = ' terminus options are invalid (' // trim(cause_string) // ')'
760 case(hst_ebadorigin)
761 msg = ' origin options are invalid (' // trim(cause_string) // ')'
762 case(hst_empinoaxisdata)
763 msg = ' data of axis (' // trim(cause_string) // ') for MPI is lack'
764
765 !
766 !
767 ! -1000 以下: ユーザー定義
768 ! -1000 or less: User-defined error
769 !
770 case(:usr_errno)
771 if (len(trim(adjustl(cause_string))) < 1) then
772 cause_string = 'Unknown error'
773 end if
774 if (cause_int_valid) then
775 write(cause_int_c, "(i8)") cause_int
776 msg = trim(cause_string) // ' (' // trim(adjustl(cause_int_c)) // ')'
777 else
778 msg = trim(cause_string)
779 end if
780 case default
781 goto 999
782 end select
783 write(errno_c, "(i8)") errno
784 msg = '*** ERROR (Code ' // trim(adjustl(errno_c)) // &
785 & ') [' // trim(cause_location) // '] *** ' // &
786 & trim(msg)
787 return
788
789999 continue
790 if (len(cause_string) > 0) then
791 message = nf90_strerror(errno)
792 write(errno_c, "(i8)") errno
793 msg = '*** ERROR (Code ' // trim(adjustl(errno_c)) // &
794 & ') [' // trim(cause_location) // &
795 & '(' // trim(cause_string) // ')] *** ' // &
796 & trim(message)
797 else if (cause_int_valid) then
798 message = nf90_strerror(errno)
799 write(errno_c, "(i8)") errno
800 write(cause_int_c, "(i8)") cause_int
801 msg = '*** ERROR (Code ' // trim(adjustl(errno_c)) // &
802 & ') [' // trim(cause_location) // &
803 & '(' // trim(adjustl(cause_int_c)) // ')] *** ' // &
804 & trim(message)
805 else
806 message = nf90_strerror(errno)
807 write(errno_c, "(i8)") errno
808 msg = '*** ERROR (Code ' // trim(adjustl(errno_c)) // &
809 & ') [' // trim(cause_location) // '] *** ' // &
810 & trim(message)
811 endif

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.

◆ storeerror()

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 )

Error handling subroutine for typical procedures of library

Number of necessary arguments is two. Give integer error code to first argument number, and procedure name where the error occurs to second argument where. By default, like a following string is displayed to standard output, and the program aborts. Error message is determined by error code automatically. See error code list.

*** ERROR (Code number) [where] ***  error_message

*** ERROR (Code number) [where(cause_c)] ***  error_message

In addition, for usage that users call StoreError as an error handling tool from the outside of gtool5 library, error codes smaller than USR_ERRNO is saved. When error codes smaller than USR_ERRNO is given, StoreError displays like a following string to standard output, and stops the program. dc_message module is prepared too. This module can be used more easily for message output and rise of error.

*** ERROR (Code number) [where] ***  cause_c

*** ERROR (Code number) [where] ***  cause_c (cause_i)
Parameters
[in]numberError code
[in]wherePlace where error occurs
[out]errException handling flag. By default, when error code (excluding non error code) is given to number, the program display error message and aborts. If this err argument is given, .true. is substituted to err and the program does not abort.
[in]cause_cCharacter message
[in]cause_iInteger message

Definition at line 890 of file dc_error.f90.

891 integer, intent(in) :: number
892 character(len = *), intent(in) :: where
893 logical, intent(out), optional :: err
894 character(len = *), intent(in), optional :: cause_c
895 integer, intent(in), optional :: cause_i
896 continue
897 if (present(err)) then
898 err = (number /= dc_noerr)
899 return
900 endif
901 if (number == dc_noerr) return
902 errno = number
903 cause_location = where
904 if (present(cause_c)) then
905 cause_string = trim(cause_c)
906 else
907 cause_string = ""
908 endif
909 if (present(cause_i)) then
910 cause_int = cause_i
911 cause_int_valid = .true.
912 else
913 cause_int_valid = .false.
914 end if
915 call dumperror

References sysdep::abortprogram(), dc_noerr, geterrormessage(), and dc_types::string.

Here is the call graph for this function:

Variable Documentation

◆ dc_ealreadyinit

integer, parameter, public dc_error::dc_ealreadyinit = -401

Definition at line 535 of file dc_error.f90.

535 integer, parameter, public:: DC_EALREADYINIT = -401

◆ dc_earglack

integer, parameter, public dc_error::dc_earglack = -412

Definition at line 546 of file dc_error.f90.

546 integer, parameter, public:: DC_EARGLACK = -412

◆ dc_ebadcaltype

integer, parameter, public dc_error::dc_ebadcaltype = -403

Definition at line 537 of file dc_error.f90.

537 integer, parameter, public:: DC_EBADCALTYPE = -403

◆ dc_ebaddate

integer, parameter, public dc_error::dc_ebaddate = -418

Definition at line 552 of file dc_error.f90.

552 integer, parameter, public:: DC_EBADDATE = -418

◆ dc_ebadfileopmode

integer, parameter, public dc_error::dc_ebadfileopmode = -406

Definition at line 540 of file dc_error.f90.

540 integer, parameter, public:: DC_EBADFILEOPMODE = -406

◆ dc_ebadtimezone

integer, parameter, public dc_error::dc_ebadtimezone = -404

Definition at line 538 of file dc_error.f90.

538 integer, parameter, public:: DC_EBADTIMEZONE = -404

◆ dc_ebadunit

integer, parameter, public dc_error::dc_ebadunit = -402

Definition at line 536 of file dc_error.f90.

536 integer, parameter, public:: DC_EBADUNIT = -402

◆ dc_edimtime

integer, parameter, public dc_error::dc_edimtime = -416

Definition at line 550 of file dc_error.f90.

550 integer, parameter, public:: DC_EDIMTIME = -416

◆ dc_efilenameempty

integer, parameter, public dc_error::dc_efilenameempty = -405

Definition at line 539 of file dc_error.f90.

539 integer, parameter, public:: DC_EFILENAMEEMPTY = -405

◆ dc_einconsistcaldate

integer, parameter, public dc_error::dc_einconsistcaldate = -419

Definition at line 553 of file dc_error.f90.

553 integer, parameter, public:: DC_EINCONSISTCALDATE = -419

◆ dc_enegative

integer, parameter, public dc_error::dc_enegative = -411

Definition at line 545 of file dc_error.f90.

545 integer, parameter, public:: DC_ENEGATIVE = -411

◆ dc_enoassoc

integer, parameter, public dc_error::dc_enoassoc = -413

Definition at line 547 of file dc_error.f90.

547 integer, parameter, public:: DC_ENOASSOC = -413

◆ dc_enodimtime

integer, parameter, public dc_error::dc_enodimtime = -415

Definition at line 549 of file dc_error.f90.

549 integer, parameter, public:: DC_ENODIMTIME = -415

◆ dc_enoentry

integer, parameter, public dc_error::dc_enoentry = -414

Definition at line 548 of file dc_error.f90.

548 integer, parameter, public:: DC_ENOENTRY = -414

◆ dc_enofileexist

integer, parameter, public dc_error::dc_enofileexist = -408

Definition at line 542 of file dc_error.f90.

542 integer, parameter, public:: DC_ENOFILEEXIST = -408

◆ dc_enofileread

integer, parameter, public dc_error::dc_enofileread = -409

Definition at line 543 of file dc_error.f90.

543 integer, parameter, public:: DC_ENOFILEREAD = -409

◆ dc_enofilewrite

integer, parameter, public dc_error::dc_enofilewrite = -410

Definition at line 544 of file dc_error.f90.

544 integer, parameter, public:: DC_ENOFILEWRITE = -410

◆ dc_enotinit

integer, parameter, public dc_error::dc_enotinit = -400

-400 or less: DC utilities errors

Definition at line 534 of file dc_error.f90.

534 integer, parameter, public:: DC_ENOTINIT = -400

◆ dc_enounitnum

integer, parameter, public dc_error::dc_enounitnum = -407

Definition at line 541 of file dc_error.f90.

541 integer, parameter, public:: DC_ENOUNITNUM = -407

◆ dc_etoolargetime

integer, parameter, public dc_error::dc_etoolargetime = -417

Definition at line 551 of file dc_error.f90.

551 integer, parameter, public:: DC_ETOOLARGETIME = -417

◆ dc_noerr

integer, parameter, public dc_error::dc_noerr = 0

Error storage variables

Non-error code (no error)

Definition at line 468 of file dc_error.f90.

468 integer, public, parameter :: DC_NOERR = 0

◆ gr_enotgr

integer, parameter, public dc_error::gr_enotgr = -300

-300 or less: GrADS I/O errors

Definition at line 530 of file dc_error.f90.

530 integer, parameter, public:: GR_ENOTGR = -300

◆ gt_eargsizemismatch

integer, parameter, public dc_error::gt_eargsizemismatch = -109

Definition at line 515 of file dc_error.f90.

515 integer, parameter, public:: GT_EARGSIZEMISMATCH = -109

◆ gt_ebadallocatesize

integer, parameter, public dc_error::gt_ebadallocatesize = -117

Definition at line 523 of file dc_error.f90.

523 integer, parameter, public:: GT_EBADALLOCATESIZE = -117

◆ gt_ebadattrname

integer, parameter, public dc_error::gt_ebadattrname = -115

Definition at line 521 of file dc_error.f90.

521 integer, parameter, public:: GT_EBADATTRNAME = -115

◆ gt_ebaddimname

integer, parameter, public dc_error::gt_ebaddimname = -105

Definition at line 511 of file dc_error.f90.

511 integer, parameter, public:: GT_EBADDIMNAME = -105

◆ gt_ebadgt4commagraphy

integer, parameter, public dc_error::gt_ebadgt4commagraphy = -120

Definition at line 526 of file dc_error.f90.

526 integer, parameter, public:: GT_EBADGT4COMMAGRAPHY = -120

◆ gt_ebadhistory

integer, parameter, public dc_error::gt_ebadhistory = -116

Definition at line 522 of file dc_error.f90.

522 integer, parameter, public:: GT_EBADHISTORY = -116

◆ gt_ebadvar

integer, parameter, public dc_error::gt_ebadvar = -112

Definition at line 518 of file dc_error.f90.

518 integer, parameter, public:: GT_EBADVAR = -112

◆ gt_echarshort

integer, parameter, public dc_error::gt_echarshort = -113

Definition at line 519 of file dc_error.f90.

519 integer, parameter, public:: GT_ECHARSHORT = -113

◆ gt_edimmultidim

integer, parameter, public dc_error::gt_edimmultidim = -103

Definition at line 509 of file dc_error.f90.

509 integer, parameter, public:: GT_EDIMMULTIDIM = -103

◆ gt_edimnodim

integer, parameter, public dc_error::gt_edimnodim = -102

Definition at line 508 of file dc_error.f90.

508 integer, parameter, public:: GT_EDIMNODIM = -102

◆ gt_edimotherdim

integer, parameter, public dc_error::gt_edimotherdim = -104

Definition at line 510 of file dc_error.f90.

510 integer, parameter, public:: GT_EDIMOTHERDIM = -104

◆ gt_efake

integer, parameter, public dc_error::gt_efake = -100

Positive error numbers are reserved for libc system error messages. Due to high system dependency and very large values used, it is difficult to reserve empty space.

Negative error numbers are used by netCDF. Allowing for some extensions, values up to -99 are not used.

Definition at line 503 of file dc_error.f90.

503 integer, parameter, public:: GT_EFAKE = -100

◆ gt_elimited

integer, parameter, public dc_error::gt_elimited = -111

Definition at line 517 of file dc_error.f90.

517 integer, parameter, public:: GT_ELIMITED = -111

◆ gt_enomatchdim

integer, parameter, public dc_error::gt_enomatchdim = -110

Definition at line 516 of file dc_error.f90.

516 integer, parameter, public:: GT_ENOMATCHDIM = -110

◆ gt_enomem

integer, parameter, public dc_error::gt_enomem = -107

Definition at line 513 of file dc_error.f90.

513 integer, parameter, public:: GT_ENOMEM = -107

◆ gt_enomoredims

integer, parameter, public dc_error::gt_enomoredims = -101

-101 or less: Data structure errors

Definition at line 507 of file dc_error.f90.

507 integer, parameter, public:: GT_ENOMOREDIMS = -101

◆ gt_enoturl

integer, parameter, public dc_error::gt_enoturl = -119

Definition at line 525 of file dc_error.f90.

525 integer, parameter, public:: GT_ENOTURL = -119

◆ gt_enotvar

integer, parameter, public dc_error::gt_enotvar = -106

Definition at line 512 of file dc_error.f90.

512 integer, parameter, public:: GT_ENOTVAR = -106

◆ gt_enounlimitdim

integer, parameter, public dc_error::gt_enounlimitdim = -114

Definition at line 520 of file dc_error.f90.

520 integer, parameter, public:: GT_ENOUNLIMITDIM = -114

◆ gt_eotherfile

integer, parameter, public dc_error::gt_eotherfile = -108

Definition at line 514 of file dc_error.f90.

514 integer, parameter, public:: GT_EOTHERFILE = -108

◆ gt_erankmismatch

integer, parameter, public dc_error::gt_erankmismatch = -118

Definition at line 524 of file dc_error.f90.

524 integer, parameter, public:: GT_ERANKMISMATCH = -118

◆ hst_ealreadyregvarfix

integer, parameter, public dc_error::hst_ealreadyregvarfix = -510

Definition at line 567 of file dc_error.f90.

567 integer, parameter, public:: HST_EALREADYREGVARFIX = -510

◆ hst_ebadname

integer, parameter, public dc_error::hst_ebadname = -503

Definition at line 560 of file dc_error.f90.

560 integer, parameter, public:: HST_EBADNAME = -503

◆ hst_ebadnewfileint

integer, parameter, public dc_error::hst_ebadnewfileint = -512

Definition at line 569 of file dc_error.f90.

569 integer, parameter, public:: HST_EBADNEWFILEINT = -512

◆ hst_ebadorigin

integer, parameter, public dc_error::hst_ebadorigin = -516

Definition at line 573 of file dc_error.f90.

573 integer, parameter, public:: HST_EBADORIGIN = -516

◆ hst_ebadslice

integer, parameter, public dc_error::hst_ebadslice = -511

Definition at line 568 of file dc_error.f90.

568 integer, parameter, public:: HST_EBADSLICE = -511

◆ hst_ebadterminus

integer, parameter, public dc_error::hst_ebadterminus = -515

Definition at line 572 of file dc_error.f90.

572 integer, parameter, public:: HST_EBADTERMINUS = -515

◆ hst_ebadvarname

integer, parameter, public dc_error::hst_ebadvarname = -506

Definition at line 563 of file dc_error.f90.

563 integer, parameter, public:: HST_EBADVARNAME = -506

◆ hst_eindefine

integer, parameter, public dc_error::hst_eindefine = -501

Definition at line 558 of file dc_error.f90.

558 integer, parameter, public:: HST_EINDEFINE = -501

◆ hst_eindivisible

integer, parameter, public dc_error::hst_eindivisible = -514

Definition at line 571 of file dc_error.f90.

571 integer, parameter, public:: HST_EINDIVISIBLE = -514

◆ hst_eintfile

integer, parameter, public dc_error::hst_eintfile = -502

Definition at line 559 of file dc_error.f90.

559 integer, parameter, public:: HST_EINTFILE = -502

◆ hst_emaxdimsdepended

integer, parameter, public dc_error::hst_emaxdimsdepended = -513

Definition at line 570 of file dc_error.f90.

570 integer, parameter, public:: HST_EMAXDIMSDEPENDED = -513

◆ hst_empinoaxisdata

integer, parameter, public dc_error::hst_empinoaxisdata = -517

Definition at line 574 of file dc_error.f90.

574 integer, parameter, public:: HST_EMPINOAXISDATA = -517

◆ hst_enoaxisname

integer, parameter, public dc_error::hst_enoaxisname = -508

Definition at line 565 of file dc_error.f90.

565 integer, parameter, public:: HST_ENOAXISNAME = -508

◆ hst_enodependtime

integer, parameter, public dc_error::hst_enodependtime = -505

Definition at line 562 of file dc_error.f90.

562 integer, parameter, public:: HST_ENODEPENDTIME = -505

◆ hst_enotimedim

integer, parameter, public dc_error::hst_enotimedim = -507

Definition at line 564 of file dc_error.f90.

564 integer, parameter, public:: HST_ENOTIMEDIM = -507

◆ hst_enotindefine

integer, parameter, public dc_error::hst_enotindefine = -500

-500 or less: Data I/O layer errors

Definition at line 557 of file dc_error.f90.

557 integer, parameter, public:: HST_ENOTINDEFINE = -500

◆ hst_enottermgthist

integer, parameter, public dc_error::hst_enottermgthist = -504

Definition at line 561 of file dc_error.f90.

561 integer, parameter, public:: HST_ENOTTERMGTHIST = -504

◆ hst_evarinuse

integer, parameter, public dc_error::hst_evarinuse = -509

Definition at line 566 of file dc_error.f90.

566 integer, parameter, public:: HST_EVARINUSE = -509

◆ usr_errno

integer, parameter, public dc_error::usr_errno = -1000

-1000 or less: User-defined errors

Definition at line 579 of file dc_error.f90.

579 integer, parameter, public:: USR_ERRNO = -1000