ncfile_handle_error Subroutine

public subroutine ncfile_handle_error(sf, errmsg, TypeInfo)

netcdf error handling via sf%ioError variable

Type Bound

t_ncfile

Arguments

Type IntentOptional Attributes Name
class(t_ncfile), intent(inout) :: sf

self

character(len=*), intent(in) :: errmsg
character(len=*), intent(in), optional :: TypeInfo

Calls

proc~~ncfile_handle_error~~CallsGraph proc~ncfile_handle_error t_ncfile%ncfile_handle_error proc~mpi_check_single_access mpi_check_single_access proc~ncfile_handle_error->proc~mpi_check_single_access

Source Code

  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