Type-Bound Procedures
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine StartMPI(obj, NumOfComm)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  NumOfComm |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine initItrMPI(obj, total_iteration)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  total_iteration |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine BarrierMPI(obj)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: readMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine readMPIInt(obj, val, ExecRank, Msg)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(out) | 
   | 
  
   | :: | 
  val |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  ExecRank |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in), | 
  optional | 
  
   | :: | 
  Msg |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: readMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine readMPIReal(obj, val, ExecRank, Msg)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(out) | 
   | 
  
   | :: | 
  val |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  ExecRank |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in), | 
  optional | 
  
   | :: | 
  Msg |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine readMPIInt(obj, val, ExecRank, Msg)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(out) | 
   | 
  
   | :: | 
  val |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  ExecRank |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in), | 
  optional | 
  
   | :: | 
  Msg |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine readMPIReal(obj, val, ExecRank, Msg)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(out) | 
   | 
  
   | :: | 
  val |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  ExecRank |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in), | 
  optional | 
  
   | :: | 
  Msg |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIInt(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIIntVec  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIIntVec(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:) |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIIntArray  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIIntArray(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:,:) |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIReal(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIRealVec  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIRealVec(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:) |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIRealArray  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIRealArray(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:,:) |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: BcastMPIChar  
    
  
  
  
    
      - 
      
        
          
    
    
public recursive subroutine BcastMPIChar(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIInt(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIReal(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIChar(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(inout) | 
   | 
  
   | :: | 
  val |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIIntVec(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:) |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIIntArray(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:,:) |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIRealVec(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:) |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public recursive subroutine BcastMPIRealArray(obj, From, val)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  From |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout), | 
   | 
  
  allocatable | :: | 
  val(:,:) |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: GatherMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine GatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: GatherMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine GatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine GatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine GatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: ScatterMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine ScatterMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  From |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: ScatterMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine ScatterMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  From |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine ScatterMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  From |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine ScatterMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  From |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: AllGatherMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AllGatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: AllGatherMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AllGatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: AllGatherMPIGraph  
    
  
  
  
    
      - 
      
        
          
    
    
    
    
    
Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | type(Graph_), | 
  intent(inout) | 
   | 
  
   | :: | 
  graph |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine AllGatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine AllGatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
    
    
    
Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | type(Graph_), | 
  intent(inout) | 
   | 
  
   | :: | 
  graph |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
    
    
    
Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | type(Graph_), | 
  intent(inout) | 
   | 
  
   | :: | 
  graph |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: AlltoAllMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AlltoAllMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: AlltoAllMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AlltoAllMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine AlltoAllMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine AlltoAllMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  sendcount |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  recvcount |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  send_start_id |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  recv_start_id |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: ReduceMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine ReduceMPIInt(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: ReduceMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine ReduceMPIReal(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine ReduceMPIInt(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine ReduceMPIReal(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  To |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
procedure, public, Pass :: AllReduceMPIInt  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AllReduceMPIInt(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: AllReduceMPIReal  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine AllReduceMPIReal(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine AllReduceMPIInt(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
         
      
       
    
      - 
      
         
            
    
    
public subroutine AllReduceMPIReal(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  sendobj(:) |  | 
  
  
  
  
  
  
  | real(kind=real64), | 
  intent(inout) | 
   | 
  
   | :: | 
  recvobj(:) |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  count |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  start |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  max |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  min |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  sum |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  prod |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  land |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  band |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  lxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  bxor |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  maxloc |  | 
  
  
  
  
  
  
  | logical, | 
  intent(in), | 
  optional | 
  
   | :: | 
  minloc |  | 
  
      
    
    
         
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine createStackMPI(obj, total)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in) | 
   | 
  
   | :: | 
  total |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
    
    
    
Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  procedure, public :: free  => FreeMPI 
    
  
 
  
  
    
      - 
      
        
          
    
    
public subroutine FreeMPI(obj, CommLayerID)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  CommLayerID |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine SplitMPI(obj, OriginComm, NewCommLayerID, key)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  OriginComm |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  NewCommLayerID |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  key |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  procedure, public :: copy  => CopyMPI 
    
  
 
  
  
    
      - 
      
        
          
    
    
public subroutine CopyMPI(obj, OriginComm, NewCommLayerID)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  OriginComm |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  NewCommLayerID |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  procedure, public :: End  => EndMPI 
    
  
 
  
  
    
      - 
      
        
          
    
    
public subroutine EndMPI(obj)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine getLapTimeMPI(obj, comment)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in), | 
  optional | 
  
   | :: | 
  comment |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine showLapTimeMPI(obj, cLength, rank)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  cLength |  | 
  
  
  
  
  
  
  | integer(kind=int32), | 
  intent(in), | 
  optional | 
  
   | :: | 
  rank |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine GetMPIInfo(obj)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
        
          
    
    
public subroutine createFileNameMPI(obj, Path, Name)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in) | 
   | 
  
   | :: | 
  Path |  | 
  
  
  
  
  
  
  | character(len=*), | 
  intent(in) | 
   | 
  
   | :: | 
  Name |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
procedure, public, Pass :: syncGraphMPI  
    
  
  
  
    
      - 
      
        
          
    
    
public subroutine syncGraphMPI(obj, graph)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | type(Graph_), | 
  intent(inout) | 
   | 
  
   | :: | 
  graph |  | 
  
      
    
    
        
      
       
    
  
 
    
     
  
  
  
    
      - 
      
         
            
    
    
public subroutine syncGraphMPI(obj, graph)
    
    
   
    
    
    Arguments
    
      
      
| Type | 
Intent | Optional | 
Attributes |  | Name |  | 
  
  
  
  
  
  | class(MPI_), | 
  intent(inout) | 
   | 
  
   | :: | 
  obj |  | 
  
  
  
  
  
  
  | type(Graph_), | 
  intent(inout) | 
   | 
  
   | :: | 
  graph |  |