netcdf error handling via sf%ioError variable
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_ncfile), | intent(inout) | :: | sf |
self |
||
| character(len=*), | intent(in) | :: | errmsg | |||
| character(len=*), | intent(in), | optional | :: | TypeInfo |
SUBROUTINE ncfile_handle_error(sf,errmsg,TypeInfo) ! MODULES IMPLICIT NONE !------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CHARACTER(LEN=*),INTENT(IN) :: errmsg CHARACTER(LEN=*),INTENT(IN),OPTIONAL :: TypeInfo !------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES CLASS(t_ncfile),INTENT(INOUT) :: sf !! self CHARACTER(LEN=50) :: errtype !=============================================================================================================================== CALL mpi_check_single_access() #if NETCDF IF (sf%ioError .NE. nf90_NOERR) THEN IF(PRESENT(TypeInfo))THEN errtype=TRIM(TypeInfo) ELSE errtype="netCDF_error" END IF CALL abort(__STAMP__,& "netCDF error: '"//TRIM(nf90_STRERROR(sf%ioError))//"' when "//TRIM(errmsg),& IntInfo=sf%ioError,& TypeInfo=errtype) END IF #endif END SUBROUTINE ncfile_handle_error