From 44a094420cf096b973717abc7e7fd5d6512da734 Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Tue, 17 Dec 2024 08:55:00 -0700 Subject: [PATCH] update nuopc_shr_methods to match cdeps/share code --- src/nuopc_shr_methods.F90 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/nuopc_shr_methods.F90 b/src/nuopc_shr_methods.F90 index 07cf7e5..7055cc8 100644 --- a/src/nuopc_shr_methods.F90 +++ b/src/nuopc_shr_methods.F90 @@ -618,11 +618,17 @@ subroutine alarmInit( clock, alarm, option, & case (optNSteps,trim(optNSteps)//'s') call ESMF_ClockGet(clock, TimeStep=TimestepInterval, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - call ESMF_TimeIntervalSet(AlarmInterval, s=dtime_drv, rc=rc ) - if (ChkErr(rc,__LINE__,u_FILE_u)) return + if(dtime_drv > 0) then + call ESMF_TimeIntervalSet(AlarmInterval, s=dtime_drv, rc=rc ) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + else + call ESMF_ClockGet(clock, TimeStep=AlarmInterval, rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + endif + AlarmInterval = AlarmInterval * opt_n ! timestepinterval*0 is 0 of kind ESMF_TimeStepInterval - if (mod(AlarmInterval, TimestepInterval) /= (timestepinterval*0)) then + if (mod(AlarmInterval, TimestepInterval) /= (TimestepInterval*0)) then call ESMF_LogWrite(subname//'illegal Alarm setting for '//trim(alarmname), ESMF_LOGMSG_ERROR) rc = ESMF_FAILURE return