MAPL_SortMod Module

MODULE: MAPL_SortMod

Author: GMAO SI-Team

MAPL_SortMod – A utility to sort integers

MAPL_Sort is a utility to do a quicksort on integers. The general interface is:

       subroutine MAPL_Sort(A[,B])
         integer(kind=[4,8]),           intent(INOUT) :: A(:)
         integer(kind=4),     optional, intent(INOUT) :: B(size(A))
         real   (kind=[4,8]), optional, intent(INOUT) :: B(size(A))

       subroutine MAPL_Sort(A[,DIM])
         integer(kind=[4,8]),           intent(INOUT) :: A(:,:)
         integer(kind=4),     optional, intent(IN   ) :: DIM

       subroutine MAPL_Sort(A,B[,DIM])
         integer(kind=[4,8]),       intent(INOUT) :: A(:)
         integer(kind=4),           intent(INOUT) :: B(:,:)
         integer(kind=4), optional, intent(IN   ) :: DIM

MAPL_Sort sorts the key (contained in a row or column of A) in ascending order and reorders the data in B or in non-key rows or columns of A in the same order; i.e., it does the same exchanges as were done to the key in sorting it. If, for example, on input B(:) contains the ordered integers from 1 to size(A), on output it will contain the positions of the elements of the sorted A in the unsorted A. In the last two signatures, DIM is the dimension of A or B being reordered. In the last signature, for example, DIM=1 corresponds to a B ordered as B(size(A),:), whereas DIM=2 corresponds to B(:,size(A)). The default is DIM=2. The quicksort is coded in C and does not appear here.


Uses

  • module~~mapl_sortmod~~UsesGraph module~mapl_sortmod MAPL_SortMod iso_fortran_env iso_fortran_env module~mapl_sortmod->iso_fortran_env module~mapl_exceptionhandling MAPL_ExceptionHandling module~mapl_sortmod->module~mapl_exceptionhandling module~mapl_errorhandlingmod MAPL_ErrorHandlingMod module~mapl_exceptionhandling->module~mapl_errorhandlingmod module~mapl_throwmod MAPL_ThrowMod module~mapl_exceptionhandling->module~mapl_throwmod module~mapl_errorhandlingmod->module~mapl_throwmod mpi mpi module~mapl_errorhandlingmod->mpi

Used by

  • module~~mapl_sortmod~~UsedByGraph module~mapl_sortmod MAPL_SortMod module~biniomod BinIOMod module~biniomod->module~mapl_sortmod module~fileiosharedmod FileIOSharedMod module~fileiosharedmod->module~mapl_sortmod module~historytrajectory_implement HistoryTrajectory_implement module~historytrajectory_implement->module~mapl_sortmod module~mapl_cfiomod MAPL_CFIOMod module~mapl_cfiomod->module~mapl_sortmod module~mapl_historygridcompmod MAPL_HistoryGridCompMod module~mapl_historygridcompmod->module~mapl_sortmod module~mapl_loadbalancemod MAPL_LoadBalanceMod module~mapl_loadbalancemod->module~mapl_sortmod module~maplbase_mod MAPLBase_Mod module~maplbase_mod->module~mapl_sortmod module~maplshared MaplShared module~maplshared->module~mapl_sortmod module~masksamplergeosatmod MaskSamplerGeosatMod module~masksamplergeosatmod->module~mapl_sortmod module~nciomod NCIOMod module~nciomod->module~mapl_sortmod module~pfio_clientmanagermod pFIO_ClientManagerMod module~pfio_clientmanagermod->module~mapl_sortmod module~test_sort test_sort module~test_sort->module~mapl_sortmod proc~foo~2 foo proc~foo~2->module~mapl_sortmod proc~mapl_getimsjms MAPL_GetImsJms proc~mapl_getimsjms->module~mapl_sortmod proc~sort_four_arrays_by_time sort_four_arrays_by_time proc~sort_four_arrays_by_time->module~mapl_sortmod proc~sort_index sort_index proc~sort_index->module~mapl_sortmod proc~sort_three_arrays_by_time sort_three_arrays_by_time proc~sort_three_arrays_by_time->module~mapl_sortmod

Interfaces

public interface MAPL_Sort

  • private subroutine SORT1SS(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    integer(kind=INT32), intent(inout), optional :: B(:)
  • private subroutine SORT1SR(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    real(kind=REAL32), intent(inout) :: B(:)
  • private subroutine SORT1SD(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    real(kind=REAL64), intent(inout) :: B(:)
  • private subroutine SORT1LS(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    integer(kind=INT32), intent(inout), optional :: B(:)
  • private subroutine SORT1LR(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    real(kind=REAL32), intent(inout) :: B(:)
  • private subroutine SORT1LD(A, B)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    real(kind=REAL64), intent(inout) :: B(:)
  • private subroutine SORT2LS(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    integer(kind=INT32), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2LR(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    real(kind=REAL32), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2LD(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: A(:)
    real(kind=REAL64), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2SS(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    integer(kind=INT32), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2SR(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    real(kind=REAL32), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2SD(A, B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: A(:)
    real(kind=REAL64), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2AS(B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT32), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM
  • private subroutine SORT2AL(B, DIM)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=INT64), intent(inout) :: B(:,:)
    integer, intent(in), optional :: DIM