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~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 
 
tstsort.F90::foo 
 
 
 
proc~foo->module~mapl_sortmod 
 
 
 
proc~mapl_getimsjms 
 
mapl_MaplGrid::MAPL_GetImsJms 
 
 
 
proc~mapl_getimsjms->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