LCOV - code coverage report
Current view: | top level - hemco - hco_esmf_wrappers.F90 (source / functions) |  |  | Hit | Total | Coverage
Test: | coverage.info |  | Lines: | 0 | 22 | 0.0 %
Date: | 2024-12-17 17:57:11 |  | Functions: | 0 | 2 | 0.0 %

              Line data    Source code
           1             : !------------------------------------------------------------------------------
           2             : !                    Harmonized Emissions Component (HEMCO)                   !
           3             : !------------------------------------------------------------------------------
           4             : !BOP
           5             : !
           6             : ! !MODULE: hco_esmf_wrappers
           7             : !
           8             : ! !DESCRIPTION: Module HCO\_ESMF\_WRAPPERS defines quick wrapper functions for
           9             : !  error checking and common ESMF operations, similar to "MAPL_Generic.h" in MAPL.
          10             : !\\
          11             : !\\
          12             : ! !INTERFACE:
          13             : !
          14             : module hco_esmf_wrappers
          15             : !
          16             : ! !USES:
          17             : !
          18             :     ! ESMF Types
          19             :     use ESMF,                     only: ESMF_SUCCESS, ESMF_FAILURE
          20             :
          21             :     ! MPI status in CESM
          22             :     use cam_abortutils,           only: endrun      ! fatal terminator
          23             :     use spmd_utils,               only: iam, masterproc
          24             :     use cam_logfile,              only: iulog
          25             :
          26             :     implicit none
          27             :     private
          28             :
          29             :     public :: HCO_ESMF_VRFY
          30             :     public :: HCO_ESMF_ASRT
          31             :
          32             : contains
          33             :
          34             :     ! Note that the VERIFY and ASSERT functions here are inverse of MAPL and
          35             :     ! return 1 on success, 0 on failure.
          36           0 :     logical function HCO_ESMF_VRFY(A, subname, line, ECRC)
          37             :         integer, intent(in)       :: A
          38             :         character*(*), intent(in) :: subname
          39             :         integer, intent(in)       :: line
          40             :         integer, optional, intent(out) :: ECRC
          41             :
          42             :         character(len=512)        :: errmsg
          43             :
          44           0 :         HCO_ESMF_VRFY = A==ESMF_SUCCESS
          45           0 :         if(.not. HCO_ESMF_VRFY) then
          46           0 :             if(present(ECRC)) then
          47           0 :                 print'(A40,I10)', subname, line
          48           0 :                 ECRC = A
          49             :             endif
          50             :
          51           0 :             write(errmsg,*) 'ABORT in HCO_ESMF_WRAPPERS. VRFY error in ', subname, ' line ', line
          52           0 :             if(masterproc) then
          53           0 :                 write(iulog,*) errmsg
          54             :             endif
          55           0 :             call endrun(errmsg)
          56             :         endif
          57           0 :     end function HCO_ESMF_VRFY
          58             :
          59           0 :     logical function HCO_ESMF_ASRT(A, subname, line, ECRC)
          60             :         logical, intent(in)       :: A
          61             :         character*(*), intent(in) :: subname
          62             :         integer, intent(in)       :: line
          63             :         integer, optional, intent(out) :: ECRC
          64             :
          65             :         character(len=512)        :: errmsg
          66             :
          67           0 :         HCO_ESMF_ASRT = A
          68           0 :         if(.not. HCO_ESMF_ASRT) then
          69           0 :             if(present(ECRC)) then
          70           0 :                 print'(A40,I10)', subname, line
          71           0 :                 ECRC = ESMF_FAILURE
          72             :             endif
          73             :
          74           0 :             write(errmsg,*) 'ABORT in HCO_ESMF_WRAPPERS. ASRT error in ', subname, ' line ', line
          75           0 :             if(masterproc) then
          76           0 :                 write(iulog,*) errmsg
          77             :             endif
          78           0 :             call endrun(errmsg)
          79             :         endif
          80           0 :     end function HCO_ESMF_ASRT
          81             : !EOC
          82             : end module hco_esmf_wrappers

Generated by: LCOV version 1.14