char_ord_sort Module Subroutine

module subroutine char_ord_sort(array, work, reverse, err)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(inout) :: array(0:)
character(len=len), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse
type(error_t), intent(inout), optional :: err

Calls

proc~~char_ord_sort~~CallsGraph proc~char_ord_sort char_ord_sort interface~pic_optional pic_optional proc~char_ord_sort->interface~pic_optional proc~char_decrease_ord_sort char_decrease_ord_sort proc~char_ord_sort->proc~char_decrease_ord_sort proc~char_increase_ord_sort char_increase_ord_sort proc~char_ord_sort->proc~char_increase_ord_sort proc~optional_char optional_char interface~pic_optional->proc~optional_char proc~optional_dp optional_dp interface~pic_optional->proc~optional_dp proc~optional_int32 optional_int32 interface~pic_optional->proc~optional_int32 proc~optional_int64 optional_int64 interface~pic_optional->proc~optional_int64 proc~optional_logical optional_logical interface~pic_optional->proc~optional_logical proc~optional_sp optional_sp interface~pic_optional->proc~optional_sp none~merge_sort~20 merge_sort proc~char_decrease_ord_sort->none~merge_sort~20 proc~error_raise error_raise proc~char_decrease_ord_sort->proc~error_raise none~merge_sort~15 merge_sort proc~char_increase_ord_sort->none~merge_sort~15 proc~char_increase_ord_sort->proc~error_raise none~merge_sort~15->proc~error_raise none~calc_min_run~15 calc_min_run none~merge_sort~15->none~calc_min_run~15 none~collapse~15 collapse none~merge_sort~15->none~collapse~15 none~insert_head~15 insert_head none~merge_sort~15->none~insert_head~15 none~insertion_sort~25 insertion_sort none~merge_sort~15->none~insertion_sort~25 none~reverse_segment~15 reverse_segment none~merge_sort~15->none~reverse_segment~15 none~merge_sort~20->proc~error_raise none~calc_min_run~20 calc_min_run none~merge_sort~20->none~calc_min_run~20 none~collapse~20 collapse none~merge_sort~20->none~collapse~20 none~insert_head~20 insert_head none~merge_sort~20->none~insert_head~20 none~insertion_sort~30 insertion_sort none~merge_sort~20->none~insertion_sort~30 none~reverse_segment~20 reverse_segment none~merge_sort~20->none~reverse_segment~20 proc~error_set error_t%error_set proc~error_raise->proc~error_set

Source Code

   module subroutine char_ord_sort(array, work, reverse, err)
      character(len=*), intent(inout)         :: array(0:)
      character(len=len(array)), intent(out), optional :: work(0:)
      logical, intent(in), optional :: reverse
      type(error_t), intent(inout), optional :: err

      if (pic_optional(reverse, .false.)) then
         call char_decrease_ord_sort(array, work, err)
      else
         call char_increase_ord_sort(array, work, err)
      end if

   end subroutine char_ord_sort