Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ subroutine SetServices ( GC, RC )
integer :: RFRSHINT
integer :: AVRGNINT
integer :: IQVAINC
real :: DT
real :: HEARTBEAT

character(len=ESMF_MAXSTR) :: FRIENDLIES_NCPL , FRIENDLIES_NCPI , &
FRIENDLIES_NRAIN, FRIENDLIES_NSNOW, FRIENDLIES_NGRAUPEL
Expand Down Expand Up @@ -252,10 +252,10 @@ subroutine SetServices ( GC, RC )
! Set the state variable specs.
! -----------------------------

call ESMF_ConfigGetAttribute ( CF, DT, Label="RUN_DT:", RC=STATUS)
call ESMF_ConfigGetAttribute ( CF, HEARTBEAT, Label="RUN_DT:", RC=STATUS)
VERIFY_(STATUS)

call ESMF_ConfigGetAttribute( CF, RFRSHINT, Label="REFRESH_INTERVAL:", default=nint(DT), RC=STATUS)
call ESMF_ConfigGetAttribute( CF, RFRSHINT, Label="REFRESH_INTERVAL:", default=nint(HEARTBEAT), RC=STATUS)
VERIFY_(STATUS)

call ESMF_ConfigGetAttribute( CF, AVRGNINT, Label='AVERAGING_INTERVAL:',default=RFRSHINT, RC=STATUS)
Expand Down Expand Up @@ -5191,13 +5191,16 @@ subroutine Initialize ( GC, IMPORT, EXPORT, CLOCK, RC )
real, pointer, dimension(:,:,:) :: Q, QLLS, QLCN, QILS, QICN, QRAIN, QSNOW, QGRAUPEL, QW
real, dimension(:,:,:), pointer :: PTR3

integer unit

real DCS, QCVAR_, WBFFACTOR, NC_CST, NI_CST, NG_CST
logical :: nccons, nicons, ngcons, do_graupel
integer :: LM
integer :: unit
real :: HEARTBEAT, MOIST_DT
type (ESMF_Time) :: CurrentTime
type (ESMF_Alarm) :: MoistAlarm
type (ESMF_TimeInterval) :: MoistIntvl
real :: DCS, QCVAR_, WBFFACTOR, NC_CST, NI_CST, NG_CST
logical :: nccons, nicons, ngcons, do_graupel
integer :: LM

real(ESMF_KIND_R8) Dcsr8, qcvarr8, micro_mg_berg_eff_factor_in, ncnstr8, ninstr8, ngnstr8
real(ESMF_KIND_R8) :: Dcsr8, qcvarr8, micro_mg_berg_eff_factor_in, ncnstr8, ninstr8, ngnstr8
!=============================================================================

! Begin...
Expand All @@ -5215,6 +5218,26 @@ subroutine Initialize ( GC, IMPORT, EXPORT, CLOCK, RC )
call MAPL_GetObjectFromGC ( GC, MAPL, RC=STATUS )
VERIFY_(STATUS)

call ESMF_ConfigGetAttribute (CF, HEARTBEAT, Label="RUN_DT:", RC=STATUS)
VERIFY_(STATUS)

call ESMF_ConfigGetAttribute (CF, MOIST_DT, Label="MOIST_DT:", default = HEARTBEAT, RC=STATUS)
VERIFY_(STATUS)

call ESMF_ClockGet(CLOCK, currTime=CurrentTime, rc=STATUS)
_VERIFY(status)

call ESMF_TimeIntervalSet(MoistIntvl, s=nint(MOIST_DT), rc=status)
_VERIFY(status)

MoistAlarm = ESMF_AlarmCreate( &
CLOCK, &
name='MoistAlarm', &
ringTime=CurrentTime, &
ringInterval = MoistIntvl, &
ringTimeStepCount=1, &
sticky=.false., __RC__)

! Call Generic Initialize for MOIST GC
!----------------------------------------

Expand Down Expand Up @@ -5418,7 +5441,7 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC )
type (MAPL_MetaComp), pointer :: STATE
type (ESMF_Config ) :: CF
type (ESMF_State ) :: INTERNAL
type (ESMF_Alarm ) :: ALARM
type (ESMF_Alarm ) :: ALARM, MoistAlarm

type (RASPARAM_TYPE) :: RASPARAMS
type (CLDPARAM_TYPE) :: CLDPARAMS
Expand Down Expand Up @@ -5448,30 +5471,32 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC )
call MAPL_GetObjectFromGC ( GC, STATE, RC=STATUS)
VERIFY_(STATUS)


call MAPL_TimerOn (STATE,"TOTAL")

! Get parameters from generic state.
!-----------------------------------

call MAPL_Get( STATE, IM=IM, JM=JM, LM=LM, &
RUNALARM = ALARM, &
!RUNALARM = ALARM, &
CF = CF, &
LONS = LONS, &
LATS = LATS, &
INTERNAL_ESMF_STATE=INTERNAL, &
RC=STATUS )
VERIFY_(STATUS)


call ESMF_ClockGetAlarm(CLOCK, 'MoistAlarm', MoistAlarm, rc=status)
_VERIFY(status)


! If its time, calculate convective tendencies
! --------------------------------------------

if ( ESMF_AlarmIsRinging( ALARM, RC=status) ) then
VERIFY_(STATUS)
call ESMF_AlarmRingerOff(ALARM, RC=STATUS)
if ( ESMF_AlarmIsRinging( MoistAlarm, RC=status) ) then
VERIFY_(STATUS)
!call ESMF_AlarmRingerOff(ALARM, RC=STATUS)
!VERIFY_(STATUS)
call MAPL_TimerOn(STATE,"DRIVER")
call MOIST_DRIVER(IM,JM,LM, RC=STATUS)
VERIFY_(STATUS)
Expand Down Expand Up @@ -5974,7 +5999,7 @@ subroutine MOIST_DRIVER(IM,JM,LM, RC)

real :: CBL_TPERTi, CBL_TPERT, CBL_QPERT, RASAL1, RASAL2
real :: RHEXCESS,CBL_TPERT_MXOCN,CBL_TPERT_MXLND
real :: HEARTBEAT
real :: HEARTBEAT, Moist_DT

integer :: L, K, I, J, KM, KK , Kii, NAER, N !DONIF

Expand Down Expand Up @@ -6408,6 +6433,8 @@ subroutine MOIST_DRIVER(IM,JM,LM, RC)
!----------------------------------
call ESMF_ConfigGetAttribute (CF, HEARTBEAT, Label="RUN_DT:", RC=STATUS)
VERIFY_(STATUS)
call ESMF_ConfigGetAttribute ( CF, Moist_DT, Label="MOIST_DT:", default = HEARTBEAT, RC=STATUS)
VERIFY_(STATUS)

call ESMF_ConfigGetAttribute( CF, RAS_NO_NEG, Label='RAS_NO_NEG:', default=.FALSE. , RC=STATUS)
VERIFY_(STATUS)
Expand Down Expand Up @@ -6460,7 +6487,7 @@ subroutine MOIST_DRIVER(IM,JM,LM, RC)
call MAPL_GetResource(STATE, DUST_INFAC, 'DUST_INFAC:', DEFAULT= 0.5, RC=STATUS) !work on this
call MAPL_GetResource(STATE, BC_INFAC, 'BC_INFAC:', DEFAULT= 0.1, RC=STATUS)
call MAPL_GetResource(STATE, ORG_INFAC, 'ORG_INFAC:', DEFAULT= 1.0, RC=STATUS)
call MAPL_GetResource(STATE, SS_INFAC, 'SS_INFAC:', DEFAULT= 1.0, RC=STATUS)
call MAPL_GetResource(STATE, SS_INFAC, 'SS_INFAC:', DEFAULT= 1.0, RC=STATUS)

call MAPL_GetResource(STATE, DT_MICRO, 'DT_MICRO:', DEFAULT= HEARTBEAT, RC=STATUS) ! time step of the microphysics substepping (s) (MG2) (5 min)
call MAPL_GetResource(STATE, UR_SCALE, 'URSCALE:', DEFAULT= 1.0, RC=STATUS) !Scaling factor for sed vel of rain
Expand Down Expand Up @@ -6584,7 +6611,7 @@ subroutine MOIST_DRIVER(IM,JM,LM, RC)
! Get the time step from the alarm
!---------------------------------

call ESMF_AlarmGet( ALARM, RingInterval=TINT, RC=STATUS)
call ESMF_AlarmGet( MoistAlarm, RingInterval=TINT, RC=STATUS)
VERIFY_(STATUS)
call ESMF_TimeIntervalGet(TINT, S_R8=DT_R8, RC=STATUS)
VERIFY_(STATUS)
Expand Down