offset_text Function

private pure function offset_text(offset_min) result(text)

The trailing zone designator of an ISO 8601 timestamp.

Arguments

Type IntentOptional Attributes Name
integer(kind=default_int), intent(in) :: offset_min

Return Value character(len=:), allocatable


Calls

proc~~offset_text~~CallsGraph proc~offset_text offset_text proc~pad~2 pad proc~offset_text->proc~pad~2 interface~to_string to_string proc~pad~2->interface~to_string interface~zfill zfill proc~pad~2->interface~zfill proc~zfill_char zfill_char interface~zfill->proc~zfill_char proc~zfill_string zfill_string interface~zfill->proc~zfill_string interface~padl padl proc~zfill_char->interface~padl proc~zfill_string->interface~padl proc~padl_char_default padl_char_default interface~padl->proc~padl_char_default proc~padl_char_pad_with padl_char_pad_with interface~padl->proc~padl_char_pad_with proc~padl_string_default padl_string_default interface~padl->proc~padl_string_default proc~padl_string_pad_with padl_string_pad_with interface~padl->proc~padl_string_pad_with

Called by

proc~~offset_text~~CalledByGraph proc~offset_text offset_text proc~format_iso8601 format_iso8601 proc~format_iso8601->proc~offset_text

Variables

Type Visibility Attributes Name Initial
integer(kind=default_int), private :: magnitude

Source Code

   pure function offset_text(offset_min) result(text)
      !! The trailing zone designator of an ISO 8601 timestamp.
      integer(default_int), intent(in) :: offset_min
      character(len=:), allocatable :: text

      integer(default_int) :: magnitude

      if (offset_min == 0) then
         text = "Z"
         return
      end if

      magnitude = abs(offset_min)
      if (offset_min > 0) then
         text = "+"
      else
         text = "-"
      end if
      text = text//pad(magnitude/60_default_int, 2)//":"// &
             pad(mod(magnitude, 60_default_int), 2)
   end function offset_text