function CDFCheckError (ncStatus, module, fileName, lineNo, errmsg, rc)
logical :: CDFCheckError
integer, intent(in) :: ncStatus
character(len=*), intent(in) :: module
character(len=*), intent(in) :: fileName
integer, intent(in) :: lineNo
character(len=*), intent(in) :: errmsg
integer, intent(out),optional :: rc
integer, parameter :: nf90_noerror = 0
CDFCheckError = .FALSE.
#ifdef ESMF_NETCDF
if ( ncStatus .ne. nf90_noerror) then
call ESMF_LogWrite ( &
msg="netCDF Error: " // trim (errmsg) // ": " // trim (nf90_strerror(ncStatus)), &
logmsgFlag=ESMF_LOGMSG_ERROR, &
line=lineNo, file=fileName, method=module)
print '("NetCDF Error: ", A, " : ", A)', &
trim(errmsg),trim(nf90_strerror(ncStatus))
call ESMF_LogFlush()
if (present(rc)) rc = ESMF_FAILURE
CDFCheckError = .TRUE.
else
if (present(rc)) rc = ESMF_SUCCESS
return
end if
#else
if (ESMF_LogFoundError(ESMF_RC_LIB_NOT_PRESENT, &
msg="- ESMF_NETCDF not defined when lib was compiled", &
ESMF_CONTEXT, rcToReturn=rc)) return
#endif
end function CDFCheckError