diff --git a/share/nuopc_shr_methods.F90 b/share/nuopc_shr_methods.F90 index 07cf7e53..b2b690f5 100644 --- a/share/nuopc_shr_methods.F90 +++ b/share/nuopc_shr_methods.F90 @@ -616,10 +616,16 @@ subroutine alarmInit( clock, alarm, option, & update_nextalarm = .false. 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_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 + 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