is_sorted_dp Function

private pure function is_sorted_dp(array, order) result(sorted)

check if a 1d array of type dp is sorted

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:)
integer(kind=default_int), intent(in), optional :: order

Return Value logical


Calls

proc~~is_sorted_dp~~CallsGraph proc~is_sorted_dp is_sorted_dp interface~pic_optional pic_optional proc~is_sorted_dp->interface~pic_optional 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

Called by

proc~~is_sorted_dp~~CalledByGraph proc~is_sorted_dp is_sorted_dp interface~is_sorted is_sorted interface~is_sorted->proc~is_sorted_dp

Variables

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

Source Code

   pure function is_sorted_dp(array, order) result(sorted)
        !! check if a 1d array of type dp is sorted
      real(dp), intent(in) :: array(:)
      integer(default_int), intent(in), optional :: order
      integer(default_int):: sort_order
      integer(default_int) :: i
      logical :: sorted

      sorted = .true.
      sort_order = pic_optional(order, ASCENDING)

      select case (sort_order)
      case (DESCENDING)
         do i = 1, size(array) - 1
            if (array(i + 1) > array(i)) then
               sorted = .false.
               return
            end if
         end do
      case default  ! ASCENDING or any other value
         do i = 1, size(array) - 1
            if (array(i + 1) < array(i)) then
               sorted = .false.
               return
            end if
         end do
      end select

   end function is_sorted_dp