test_create_output_alarm Subroutine

public subroutine test_create_output_alarm()

Arguments

None

Calls

proc~~test_create_output_alarm~~CallsGraph proc~test_create_output_alarm test_create_output_alarm ESMF_AlarmIsRinging ESMF_AlarmIsRinging proc~test_create_output_alarm->ESMF_AlarmIsRinging ESMF_ClockAdvance ESMF_ClockAdvance proc~test_create_output_alarm->ESMF_ClockAdvance ESMF_ClockCreate ESMF_ClockCreate proc~test_create_output_alarm->ESMF_ClockCreate ESMF_ClockGetAlarm ESMF_ClockGetAlarm proc~test_create_output_alarm->ESMF_ClockGetAlarm ESMF_HConfigCreate ESMF_HConfigCreate proc~test_create_output_alarm->ESMF_HConfigCreate ESMF_TimeIntervalSet ESMF_TimeIntervalSet proc~test_create_output_alarm->ESMF_TimeIntervalSet ESMF_TimeSet ESMF_TimeSet proc~test_create_output_alarm->ESMF_TimeSet anyexceptions anyexceptions proc~test_create_output_alarm->anyexceptions assert_that assert_that proc~test_create_output_alarm->assert_that false false proc~test_create_output_alarm->false proc~create_output_alarm create_output_alarm proc~test_create_output_alarm->proc~create_output_alarm sourcelocation sourcelocation proc~test_create_output_alarm->sourcelocation true true proc~test_create_output_alarm->true proc~create_output_alarm->ESMF_TimeSet ESMF_AlarmCreate ESMF_AlarmCreate proc~create_output_alarm->ESMF_AlarmCreate ESMF_ClockGet ESMF_ClockGet proc~create_output_alarm->ESMF_ClockGet ESMF_TimeGet ESMF_TimeGet proc~create_output_alarm->ESMF_TimeGet esmf_hconfigasstring esmf_hconfigasstring proc~create_output_alarm->esmf_hconfigasstring esmf_hconfigcreateat esmf_hconfigcreateat proc~create_output_alarm->esmf_hconfigcreateat esmf_hconfigisdefined esmf_hconfigisdefined proc~create_output_alarm->esmf_hconfigisdefined interface~mapl_unpacktime MAPL_UnpackTime proc~create_output_alarm->interface~mapl_unpacktime proc~hconfig_to_esmf_timeinterval hconfig_to_esmf_timeinterval proc~create_output_alarm->proc~hconfig_to_esmf_timeinterval proc~mapl_return MAPL_Return proc~create_output_alarm->proc~mapl_return proc~mapl_verify MAPL_Verify proc~create_output_alarm->proc~mapl_verify proc~string_to_integer_time string_to_integer_time proc~create_output_alarm->proc~string_to_integer_time proc~hconfig_to_esmf_timeinterval->esmf_hconfigasstring proc~hconfig_to_esmf_timeinterval->proc~mapl_return proc~hconfig_to_esmf_timeinterval->proc~mapl_verify proc~string_to_esmf_timeinterval string_to_esmf_timeinterval proc~hconfig_to_esmf_timeinterval->proc~string_to_esmf_timeinterval at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception proc~string_to_integer_time->proc~mapl_return proc~string_to_esmf_timeinterval->ESMF_TimeIntervalSet proc~string_to_esmf_timeinterval->proc~mapl_return proc~string_to_esmf_timeinterval->proc~mapl_verify interface~mapl_assert MAPL_Assert proc~string_to_esmf_timeinterval->interface~mapl_assert

Source Code

   subroutine test_create_output_alarm()
      type(ESMF_HConfig) :: hconfig
      type(ESMF_Time) :: time,start_stop_time(2)
      integer :: status
      type(ESMF_Time) :: start_time, stop_time
      type(ESMF_TimeInterval) :: dt
      type(ESMF_Clock) :: clock
      type(ESMF_Alarm) :: alarm
      logical :: is_ringing
      type(ESMF_Time) currTime
      character(len=:), allocatable :: comp_name

      comp_name = "coll1"
      call ESMF_TimeIntervalSet(dt, h=1, _RC)
      call ESMF_TimeSet(start_time, timeString="2000-04-03T21:00:00", _RC)
      call ESMF_TimeSet(stop_time, timeString="2000-04-22T21:00:00", _RC)
      clock = ESMF_ClockCreate(timeStep=dt, startTime=start_time, stopTime=stop_time, _RC)
      hconfig = ESMF_HConfigCreate(content = &
        "{time_spec: {frequency: PT3H}}", _RC)

      call create_output_alarm(clock, hconfig, comp_name, _RC)
      call ESMF_ClockGetAlarm(clock, comp_name//"_write_alarm", alarm, _RC)
     
      call ESMF_ClockAdvance(clock, _RC)
      is_ringing = ESMF_AlarmIsRinging(alarm, _RC) 
      @assert_that(is_ringing, is(false()))

      call ESMF_ClockAdvance(clock, _RC)
      is_ringing = ESMF_AlarmIsRinging(alarm, _RC) 
      @assert_that(is_ringing, is(false()))

      call ESMF_ClockAdvance(clock, _RC) 
      is_ringing = ESMF_AlarmIsRinging(alarm, _RC) 
      @assert_that(is_ringing, is(true()))
 
   end subroutine test_create_output_alarm