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.
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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Interfaces
private subroutine SORT1SS(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT32),
intent(inout)
::
A (:)
integer(kind=INT32),
intent(inout),
optional
::
B (:)
private subroutine SORT1SR(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT32),
intent(inout)
::
A (:)
real(kind=REAL32),
intent(inout)
::
B (:)
private subroutine SORT1SD(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT32),
intent(inout)
::
A (:)
real(kind=REAL64),
intent(inout)
::
B (:)
private subroutine SORT1LS(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT64),
intent(inout)
::
A (:)
integer(kind=INT32),
intent(inout),
optional
::
B (:)
private subroutine SORT1LR(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT64),
intent(inout)
::
A (:)
real(kind=REAL32),
intent(inout)
::
B (:)
private subroutine SORT1LD(A, B)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT64),
intent(inout)
::
A (:)
real(kind=REAL64),
intent(inout)
::
B (:)
private subroutine SORT2LS(A, B, DIM)
Arguments
Type
Intent Optional 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
Intent Optional 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
Intent Optional 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
Intent Optional 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
Intent Optional 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
Intent Optional 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
Intent Optional Attributes
Name
integer(kind=INT32),
intent(inout)
::
B (:,:)
integer,
intent(in),
optional
::
DIM
private subroutine SORT2AL(B, DIM)
Arguments
Type
Intent Optional Attributes
Name
integer(kind=INT64),
intent(inout)
::
B (:,:)
integer,
intent(in),
optional
::
DIM