Revision 396e85263c6cbe9c4870e0617925776412f78b72 authored by Andrew M. Bradley on 30 September 2021, 05:34:50 UTC, committed by Andrew M. Bradley on 30 September 2021, 05:34:50 UTC
Fix more HOMMEXX_CUDA_SHARE_BUFFER m_... issues. Also fix a C++17 static_assert so that it's C++11 compliant.
1 parent 1b90a6e
ESMF_Stubs.F90
! Various dummy type definitions and routines for the sole purpose of
! mimicking newer ESMF interface features without necessarily implementing
! them.
MODULE ESMF_Stubs
IMPLICIT NONE
PRIVATE
! Bogus typedefs
TYPE ESMF_Grid
INTEGER :: dummy
END TYPE ESMF_Grid
TYPE ESMF_GridComp
INTEGER :: dummy
END TYPE ESMF_GridComp
TYPE ESMF_State
INTEGER :: dummy
END TYPE ESMF_State
TYPE ESMF_VM
INTEGER :: dummy
END TYPE ESMF_VM
TYPE ESMF_END_FLAG
INTEGER :: dummy
END TYPE ESMF_END_FLAG
TYPE(ESMF_END_FLAG), PARAMETER :: &
ESMF_END_ABORT = ESMF_END_FLAG(1), &
ESMF_END_NORMAL = ESMF_END_FLAG(2), &
ESMF_END_KEEPMPI = ESMF_END_FLAG(3)
TYPE ESMF_MsgType
INTEGER :: mtype
END TYPE ESMF_MsgType
TYPE(ESMF_MsgType), PARAMETER :: &
ESMF_LOG_INFO = ESMF_MsgType(1), &
ESMF_LOG_WARNING = ESMF_MsgType(2), &
ESMF_LOG_ERROR = ESMF_MsgType(3)
TYPE ESMF_LOG
INTEGER :: dummy
END TYPE ESMF_LOG
TYPE ESMF_LogKind_Flag
INTEGER :: dummy
END TYPE ESMF_LogKind_Flag
TYPE(ESMF_LogKind_Flag), PARAMETER :: &
ESMF_LOGKIND_NONE = ESMF_LogKind_Flag(1), &
ESMF_LOGKIND_SINGLE = ESMF_LogKind_Flag(2), &
ESMF_LOGKIND_MULTI = ESMF_LogKind_Flag(3), &
ESMF_LOGKIND_MULTI_ON_ERROR = ESMF_LogKind_Flag(4)
LOGICAL, private, save :: initialized = .false.
PUBLIC ESMF_Grid, ESMF_GridComp, ESMF_State, ESMF_VM
PUBLIC ESMF_Initialize, ESMF_Finalize, ESMF_IsInitialized
PUBLIC ESMF_LogWrite, ESMF_LOG, ESMF_MsgType, ESMF_END_FLAG
PUBLIC ESMF_LOG_INFO, ESMF_LOG_WARNING, ESMF_LOG_ERROR
PUBLIC ESMF_END_ABORT, ESMF_END_NORMAL, ESMF_END_KEEPMPI
PUBLIC ESMF_LogKind_Flag
PUBLIC ESMF_LOGKIND_NONE, ESMF_LOGKIND_SINGLE, ESMF_LOGKIND_MULTI
PUBLIC ESMF_LOGKIND_MULTI_ON_ERROR
CONTAINS
! NOOP
SUBROUTINE ESMF_Initialize( vm, defaultCalendar, logkindflag, rc )
USE ESMF_BaseMod
USE ESMF_CalendarMod
! USE ESMF_TimeMod, only: defaultCal
TYPE(ESMF_VM), INTENT(IN ), OPTIONAL :: vm
TYPE(ESMF_CalKind_Flag), INTENT(IN ), OPTIONAL :: defaultCalendar
TYPE(ESMF_LogKind_Flag), INTENT(IN ), OPTIONAL :: logkindflag
INTEGER, INTENT( OUT), OPTIONAL :: rc
TYPE(ESMF_CalKind_Flag) :: defaultCalType
INTEGER :: status
IF ( PRESENT( rc ) ) rc = ESMF_FAILURE
! Initialize the default time manager calendar
IF ( PRESENT(defaultCalendar) )THEN
defaultCalType = defaultCalendar
ELSE
defaultCalType = ESMF_CALKIND_NOLEAP
END IF
allocate( defaultCal )
! write(6,*) 'tcx1 ESMF_Stubs defcal ',defaultcaltype%caltype
! call flush(6)
defaultCal = ESMF_CalendarCreate( calkindflag=defaultCalType, &
rc=status)
! write(6,*) 'tcx2 ESMF_Stubs defcal ',defaultcal%type%caltype
! call flush(6)
allocate( gregorianCal )
! write(6,*) 'tcx1 ESMF_Stubs grcal ',esmf_calkind_gregorian%caltype
! call flush(6)
gregorianCal = ESMF_CalendarCreate( calkindflag=ESMF_CALKIND_GREGORIAN, &
rc=status)
! write(6,*) 'tcx2 ESMF_Stubs grcal ',gregoriancal%type%caltype
! call flush(6)
allocate( noleapCal )
! write(6,*) 'tcx1 ESMF_Stubs nlcal ',esmf_calkind_noleap%caltype
! call flush(6)
noleapCal = ESMF_CalendarCreate( calkindflag=ESMF_CALKIND_NOLEAP, &
rc=status)
! write(6,*) 'tcx2 ESMF_Stubs nlcal ',noleapcal%type%caltype
! call flush(6)
! initialize tables in time manager
CALL initdaym
IF (status .ne. ESMF_SUCCESS) THEN
PRINT *, "Error initializing the default time manager calendar"
RETURN
END IF
initialized = .true.
IF ( PRESENT( rc ) ) rc = ESMF_SUCCESS
END SUBROUTINE ESMF_Initialize
FUNCTION ESMF_IsInitialized()
LOGICAL ESMF_IsInitialized
ESMF_IsInitialized = initialized
END FUNCTION ESMF_IsInitialized
! NOOP
SUBROUTINE ESMF_Finalize( endflag, rc )
USE ESMF_BaseMod
type(ESMF_END_FLAG), intent(in), optional :: endflag
INTEGER, INTENT( OUT), OPTIONAL :: rc
#ifndef HIDE_MPI
#include <mpif.h>
#endif
INTEGER :: ier
IF ( PRESENT( rc ) ) rc = ESMF_SUCCESS
#ifndef HIDE_MPI
CALL MPI_Finalize( ier )
IF ( ier .ne. mpi_success )THEN
IF ( PRESENT( rc ) ) rc = ESMF_FAILURE
END IF
#endif
END SUBROUTINE ESMF_Finalize
! NOOP
SUBROUTINE ESMF_LogWrite( msg, MsgType, line, file, method, log, rc )
USE ESMF_BaseMod
CHARACTER(LEN=*), INTENT(IN) :: msg
TYPE(ESMF_MsgType), INTENT(IN) :: msgtype
INTEGER, INTENT(IN), OPTIONAL :: line
CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: file
CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: method
TYPE(ESMF_LOG),TARGET,OPTIONAL :: log
INTEGER, INTENT(OUT),OPTIONAL :: rc
IF ( PRESENT( rc ) ) rc = ESMF_SUCCESS
END SUBROUTINE ESMF_LogWrite
END MODULE ESMF_Stubs
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...