construct_ISO8601Time Function

public function construct_ISO8601Time(isostring, rc) result(time)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: isostring
integer, intent(inout) :: rc

Return Value type(ISO8601Time)


Calls

proc~~construct_iso8601time~~CallsGraph proc~construct_iso8601time construct_ISO8601Time interface~mapl_assert MAPL_Assert proc~construct_iso8601time->interface~mapl_assert proc~mapl_return MAPL_Return proc~construct_iso8601time->proc~mapl_return proc~parse_time parse_time proc~construct_iso8601time->proc~parse_time 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~is_valid_time~2 is_valid_time proc~parse_time->proc~is_valid_time~2 proc~is_whole_number is_whole_number proc~parse_time->proc~is_whole_number proc~parse_timezone_offset parse_timezone_offset proc~parse_time->proc~parse_timezone_offset proc~read_whole_number read_whole_number proc~parse_time->proc~read_whole_number proc~undelimit undelimit proc~parse_time->proc~undelimit proc~is_valid_hour is_valid_hour proc~is_valid_time~2->proc~is_valid_hour proc~is_valid_millisecond is_valid_millisecond proc~is_valid_time~2->proc~is_valid_millisecond proc~is_valid_minute is_valid_minute proc~is_valid_time~2->proc~is_valid_minute proc~is_valid_second is_valid_second proc~is_valid_time~2->proc~is_valid_second proc~is_valid_timezone_offset is_valid_timezone_offset proc~is_valid_time~2->proc~is_valid_timezone_offset proc~parse_timezone_offset->proc~is_whole_number proc~parse_timezone_offset->proc~read_whole_number proc~read_whole_number_indexed read_whole_number_indexed proc~read_whole_number->proc~read_whole_number_indexed proc~is_between is_between proc~is_valid_hour->proc~is_between proc~is_valid_millisecond->proc~is_between proc~is_valid_minute->proc~is_between proc~is_valid_second->proc~is_between proc~read_whole_number_indexed->proc~is_whole_number proc~get_integer_digit_from_string get_integer_digit_from_string proc~read_whole_number_indexed->proc~get_integer_digit_from_string

Called by

proc~~construct_iso8601time~~CalledByGraph proc~construct_iso8601time construct_ISO8601Time interface~iso8601time ISO8601Time interface~iso8601time->proc~construct_iso8601time proc~test_construct_iso8601time test_construct_ISO8601Time proc~test_construct_iso8601time->proc~construct_iso8601time

Source Code

   function construct_ISO8601Time(isostring, rc) result(time)
      character(len=*), intent(in) :: isostring
      integer, intent(inout) :: rc
      type(ISO8601Time) :: time
      type(time_fields) :: fields
      fields = parse_time(trim(adjustl(isostring)))
      if(fields%is_valid_) then
         time%hour_ = fields%hour_
         time%minute_ = fields%minute_
         time%second_ = fields%second_
         time%millisecond_ = fields%millisecond_
         time%timezone_offset_ = fields%timezone_offset_
         _RETURN(_SUCCESS)
      else
         _FAIL('Invalid ISO 8601 time string')
      end if

      _RETURN(_SUCCESS)

   end function construct_ISO8601Time