Files
GEOS-Chem-adjoint-v35-note/code/ifort_errmsg.f
2018-08-28 00:46:26 -04:00

241 lines
8.1 KiB
Fortran

! $Id: ifort_errmsg.f,v 1.1 2009/06/09 21:51:51 daven Exp $
FUNCTION IFORT_ERRMSG( ERROR_NUM ) RESULT( MSG )
!
!******************************************************************************
! Function IFORT_ERRMSG returns an error message string that corresponds
! to an I/O error number obtained via the IOSTAT or STAT specifiers
! (bmy, 11/30/05)
!
! Arguments as Input:
! ============================================================================
! (1 ) ERROR_NUM (INTEGER) : Error condition from IOSTAT
!
! Reference:
! ============================================================================
! (1 ) Intel Fortran Language Reference, v9.0
!
! NOTES:
!******************************************************************************
!
! Arguments
INTEGER, INTENT(IN) :: ERROR_NUM
! Local variables
CHARACTER(LEN=255) :: MSG
!=================================================================
! IFORT_ERRMSG begins here!
!=================================================================
! Select a error message based on the error codes
! for Intel Fortran Compiler v9.0.
SELECT CASE( ERROR_NUM )
CASE( 0 )
MSG = ''
CASE( 1 )
MSG = 'Not a Fortran-specific error'
CASE( 8 )
MSG = 'Internal consistency check failure'
CASE( 9 )
MSG = 'Permission to access file denied'
CASE( 10 )
MSG = 'Cannot overwrite existing file'
CASE( 11 )
MSG = 'Unit not connected'
CASE( 17 )
MSG = 'Syntax error in NAMELIST input'
CASE( 18 )
MSG = 'Too many values for NAMELIST variable'
CASE( 19 )
MSG = 'Invalid reference to variable in NAMELIST input'
CASE( 20 )
MSG = 'REWIND error'
CASE( 21 )
MSG = 'Duplicate file specifications'
CASE( 22 )
MSG = 'Input record too long'
CASE( 23 )
MSG = 'Backspace error'
CASE( 24 )
MSG = 'END-OF-FILE during read'
CASE( 25 )
MSG = 'Record number outside range'
CASE( 26 )
MSG = 'OPEN or DEFINE FILE required'
CASE( 27 )
MSG = 'Too many records in I/O statement'
CASE( 28 )
MSG = 'CLOSE error'
CASE( 29 )
MSG = 'File not found'
CASE( 30 )
MSG = 'OPEN failure'
CASE( 31 )
MSG = 'Mixed file access modes'
CASE( 32 )
MSG = 'Invalid logical unit number'
CASE( 33 )
MSG = 'ENDFILE error'
CASE( 34 )
MSG = 'Unit already open'
CASE( 35 )
MSG = 'Segmented record format error'
CASE( 36 )
MSG = 'Attempt to access non-existent record'
CASE( 37 )
MSG = 'Inconsistent record length'
CASE( 38 )
MSG = 'Error during write'
CASE( 39 )
MSG = 'Error during read'
CASE( 40 )
MSG = 'Recursive I/O operation'
CASE( 41 )
MSG = 'Insufficient virtual memory'
CASE( 42 )
MSG = 'No such device'
CASE( 43 )
MSG = 'File name specification error'
CASE( 44 )
MSG = 'Inconsistent record type'
CASE( 45 )
MSG = 'Keyword value error in OPEN statement'
CASE( 46 )
MSG = 'Inconsistent OPEN/CLOSE parameters'
CASE( 47 )
MSG = 'Write to READONLY file'
CASE( 48 )
MSG = 'Invalid argument to Fortran Run-Time Library'
CASE( 51 )
MSG = 'Inconsistent file organization'
CASE( 53 )
MSG = 'No current record'
CASE( 55 )
MSG = 'DELETE error'
CASE( 57 )
MSG = 'FIND error'
CASE( 58 )
MSG = 'Format syntax error'
CASE( 59 )
MSG = 'List-directed I/O syntax error'
CASE( 60 )
MSG = 'Infinite format loop'
CASE( 61 )
MSG = 'Format/variable type mismatch'
CASE( 62 )
MSG = 'Syntax error in format'
CASE( 63 )
MSG = 'Output conversion error'
CASE( 64 )
MSG = 'Input conversion error'
CASE( 65 )
MSG = 'Floating invalid'
CASE( 66 )
MSG = 'Output statement overflows record'
CASE( 67 )
MSG = 'Input statement requires too much data'
CASE( 68 )
MSG = 'Variable format expression value error'
CASE( 69 )
MSG = 'Process interrupted (SIGINT)'
CASE( 70 )
MSG = 'Integer overflow'
CASE( 71 )
MSG = 'Integer divide by zero'
CASE( 72 )
MSG = 'Floating overflow'
CASE( 73 )
MSG = 'Floating divide by zero'
CASE( 74 )
MSG = 'Floating underflow'
CASE( 75 )
MSG = 'Floating point exception'
CASE( 76 )
MSG = 'IOT trap signal'
CASE( 77 )
MSG = 'Subscript out of range'
CASE( 78 )
MSG = 'Process killed (SIGTERM)'
CASE( 79 )
MSG = 'Process quit (SIGQUIT)'
CASE( 95 )
MSG = 'Floating-point conversion failed'
CASE( 96 )
MSG = 'F_UFMTENDIAN env variable was ignored: bad syntax'
CASE( 108 )
MSG = 'Cannot stat file'
CASE( 120 )
MSG = 'Operation requires seek ability'
CASE( 138 )
MSG = 'Array index out of bounds (SIGILL)'
CASE( 139 )
MSG = 'Array index out of bounds'
CASE( 140 )
MSG = 'Floating inexact'
CASE( 144 )
MSG = 'Reserved operand'
CASE( 145 )
MSG = 'Assertion error'
CASE( 146 )
MSG = 'Null pointer error'
CASE( 147 )
MSG = 'Stack overflow'
CASE( 148 )
MSG = 'String length error'
CASE( 149 )
MSG = 'Substring error'
CASE( 150 )
MSG = 'Range error'
CASE( 151 )
MSG = 'Allocatable array is already allocated'
CASE( 152 )
MSG = 'Unresolved contention for RTL global resource'
CASE( 153 )
MSG = 'Allocatable array or pointer is not allocated'
CASE( 173 )
MSG = 'A pointer passed to DEALLOCATE points to an array'
MSG = TRIM( MSG ) // ' that cannot be deallocated'
CASE( 174 )
MSG = 'SIGSEGV: seg fault or program stack overflow'
CASE( 175 )
MSG = 'DATE argument to DATE_AND_TIME is too short,'
MSG = TRIM( MSG ) // ' required LEN=8'
CASE( 176 )
MSG = 'TIME argument to DATE_AND_TIME is too short,'
MSG = TRIM( MSG ) // ' required LEN=10'
CASE( 177 )
MSG = 'ZONE argument to DATE_AND_TIME is too short,'
MSG = TRIM( MSG ) // ' required LEN=5'
CASE( 178 )
MSG = 'Divide by zero'
CASE( 179 )
MSG = 'Cannot allocate array:'
MSG = TRIM( MSG ) // ' overflow in array size calculation'
CASE( 256 )
MSG = 'Unformatted I/O to unit open for formatted transfers'
CASE( 257 )
MSG = 'Formatted I/O to unit open for unformatted transfers'
CASE( 264 )
MSG = 'Operation requires file to be on disk or tape'
CASE( 265 )
MSG = 'Operation requires sequential file organization'
MSG = TRIM( MSG ) // ' and access'
CASE( 266 )
MSG = 'Fortran abort routine called'
CASE( 268 )
MSG = 'End of record during read'
CASE( 269 )
MSG = 'Floating invalid traps'
CASE( 298 )
MSG = 'Floating overflow traps'
CASE( 299 )
MSG = 'Divide-by-zero traps'
CASE( 300 )
MSG = 'Floating underflow traps'
CASE DEFAULT
MSG = 'Unknown error'
END SELECT
! Return to calling program
END FUNCTION IFORT_ERRMSG