Public Instance methods
      
        
        
        
          
MPI の終了処理
Finalization of MPI
          [Source]
          
  subroutine MPIWrapperFinalize
    !
    ! MPI の終了処理
    !
    ! Finalization of MPI
    !
    ! モジュール引用 ; USE statements
    !
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    call mpi_finalize( ierr )
#endif
  end subroutine MPIWrapperFinalize
           
         
       
      
        
        
          MPIWrapperIRecv( idep, im, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| buf( im )      : | integer , intent(out) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 1D array
Alias for MPIWrapperIRecv_int_1d
         
       
      
        
        
          MPIWrapperIRecv( idep, im, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| buf( im )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 1D array
Alias for MPIWrapperIRecv_dble_1d
         
       
      
        
        
          MPIWrapperIRecv( idep, im, jm, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| buf( im, jm )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
2D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 2D array
Alias for MPIWrapperIRecv_dble_2d
         
       
      
        
        
          MPIWrapperIRecv( idep, im, jm, km, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of received data |  | 
| buf( im, jm, km )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
3D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 3D array
Alias for MPIWrapperIRecv_dble_3d
         
       
      
        
        
          MPIWrapperIRecv( idep, im, jm, km, lm, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of received data |  | 
| lm      : | integer , intent(in ) 
| : | Size of 4th dimension of received data |  | 
| buf( im, jm, km, lm )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
4D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 4D array
Alias for MPIWrapperIRecv_dble_4d
         
       
      
        
        
          MPIWrapperISend( idest, im, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| buf( im )      : | integer , intent(in ) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 1D array
Alias for MPIWrapperISend_int_1d
         
       
      
        
        
          MPIWrapperISend( idest, im, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| buf( im )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 1D array
Alias for MPIWrapperISend_dble_1d
         
       
      
        
        
          MPIWrapperISend( idest, im, jm, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| buf( im, jm )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
2D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 2D array
Alias for MPIWrapperISend_dble_2d
         
       
      
        
        
          MPIWrapperISend( idest, im, jm, km, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of sent data |  | 
| buf( im, jm, km )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
3D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 3D array
Alias for MPIWrapperISend_dble_3d
         
       
      
        
        
          MPIWrapperISend( idest, im, jm, km, lm, buf, ireq ) 
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of sent data |  | 
| lm      : | integer , intent(in ) 
| : | Size of 4th dimension of sent data |  | 
| buf( im, jm, km, lm )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
4D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 4D array
Alias for MPIWrapperISend_dble_4d
         
       
      
        
        
        
          
MPI の初期化
Initialization of MPI
          [Source]
          
  subroutine MPIWrapperInit
    !
    ! MPI の初期化
    !
    ! Initialization of MPI
    !
    ! モジュール引用 ; USE statements
    !
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
#endif
    nprocs = 1
    myrank = 0
#ifdef LIB_MPI
    call mpi_init( ierr )
    call mpi_comm_size( mpi_comm_world, nprocs, ierr )
    call mpi_comm_rank( mpi_comm_world, myrank, ierr )
#endif
  end subroutine MPIWrapperInit
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| ireq      : | integer, intent(inout) | 
MPI 通信終了まで待機
Wait finishing MPI transfer
          [Source]
          
  subroutine MPIWrapperWait( ireq )
    !
    ! MPI 通信終了まで待機
    !
    ! Wait finishing MPI transfer
    !
    ! モジュール引用 ; USE statements
    !
    integer, intent(inout) :: ireq
                               ! request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: istatus( MPI_STATUS_SIZE )
    call mpi_wait( ireq, istatus, ierr )
#endif
  end subroutine MPIWrapperWait
           
         
       
      
        
        
          myrank
        
        
          
| Variable : |  | 
| myrank      : | integer, save, public | 
         
       
      
        
        
          nprocs
        
        
          
| Variable : |  | 
| nprocs      : | integer, save, public 
| : | Number of MPI processes |  | 
         
       
      Private Instance methods
      
      
        
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| buf( im )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 1D array
          [Source]
          
  subroutine MPIWrapperIRecv_dble_1d( idep, im, buf, ireq )
    !
    ! 1D 倍精度配列の非ブロッキング通信(受信)
    !
    ! Non-blocking transfer (receive) of real(8) 1D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idep
                              ! Process number of departure
    integer , intent(in ) :: im
                              ! Size of 1st dimension of received data
    real(DP), intent(out) :: buf( im )
                              ! Array to be received
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_irecv( buf, isize, mpi_double_precision, idep, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperIRecv_dble_1d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| buf( im, jm )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
2D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 2D array
          [Source]
          
  subroutine MPIWrapperIRecv_dble_2d( idep, im, jm, buf, ireq )
    !
    ! 2D 倍精度配列の非ブロッキング通信(受信)
    !
    ! Non-blocking transfer (receive) of real(8) 2D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idep
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of received data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of received data
    real(DP), intent(out) :: buf( im, jm )
                              ! Array to be received
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_irecv( buf, isize, mpi_double_precision, idep, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperIRecv_dble_2d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of received data |  | 
| buf( im, jm, km )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
3D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 3D array
          [Source]
          
  subroutine MPIWrapperIRecv_dble_3d( idep, im, jm, km, buf, ireq )
    !
    ! 3D 倍精度配列の非ブロッキング通信(受信)
    !
    ! Non-blocking transfer (receive) of real(8) 3D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idep
                              ! Process number of departure
    integer , intent(in ) :: im
                              ! Size of 1st dimension of received data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of received data
    integer , intent(in ) :: km
                              ! Size of 3rd dimension of received data
    real(DP), intent(out) :: buf( im, jm, km )
                              ! Array to be received
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_irecv( buf, isize, mpi_double_precision, idep, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperIRecv_dble_3d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of received data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of received data |  | 
| lm      : | integer , intent(in ) 
| : | Size of 4th dimension of received data |  | 
| buf( im, jm, km, lm )      : | real(DP), intent(out) | 
| ireq      : | integer , intent(out) | 
4D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 4D array
          [Source]
          
  subroutine MPIWrapperIRecv_dble_4d( idep, im, jm, km, lm, buf, ireq )
    !
    ! 4D 倍精度配列の非ブロッキング通信(受信)
    !
    ! Non-blocking transfer (receive) of real(8) 4D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idep
                              ! Process number of departure
    integer , intent(in ) :: im
                              ! Size of 1st dimension of received data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of received data
    integer , intent(in ) :: km
                              ! Size of 3rd dimension of received data
    integer , intent(in ) :: lm
                              ! Size of 4th dimension of received data
    real(DP), intent(out) :: buf( im, jm, km, lm )
                              ! Array to be received
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_irecv( buf, isize, mpi_double_precision, idep, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperIRecv_dble_4d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idep      : | integer , intent(in ) 
| : | Process number of departure |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of received data |  | 
| buf( im )      : | integer , intent(out) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(受信)
Non-blocking transfer (receive) of real(8) 1D array
          [Source]
          
  subroutine MPIWrapperIRecv_int_1d( idep, im, buf, ireq )
    !
    ! 1D 倍精度配列の非ブロッキング通信(受信)
    !
    ! Non-blocking transfer (receive) of real(8) 1D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idep
                              ! Process number of departure
    integer , intent(in ) :: im
                              ! Size of 1st dimension of received data
    integer , intent(out) :: buf( im )
                              ! Array to be received
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_irecv( buf, isize, mpi_double_precision, idep, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperIRecv_int_1d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| buf( im )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 1D array
          [Source]
          
  subroutine MPIWrapperISend_dble_1d( idest, im, buf, ireq )
    !
    ! 1D 倍精度配列の非ブロッキング通信(送信)
    !
    ! Non-blocking transfer (send) of real(8) 1D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idest
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of sent data
    real(DP), intent(in ) :: buf( im )
                              ! Array to be sent
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_isend( buf, isize, mpi_double_precision, idest, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperISend_dble_1d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| buf( im, jm )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
2D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 2D array
          [Source]
          
  subroutine MPIWrapperISend_dble_2d( idest, im, jm, buf, ireq )
    !
    ! 2D 倍精度配列の非ブロッキング通信(送信)
    !
    ! Non-blocking transfer (send) of real(8) 2D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idest
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of sent data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of sent data
    real(DP), intent(in ) :: buf( im, jm )
                              ! Array to be sent
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_isend( buf, isize, mpi_double_precision, idest, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperISend_dble_2d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of sent data |  | 
| buf( im, jm, km )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
3D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 3D array
          [Source]
          
  subroutine MPIWrapperISend_dble_3d( idest, im, jm, km, buf, ireq )
    !
    ! 3D 倍精度配列の非ブロッキング通信(送信)
    !
    ! Non-blocking transfer (send) of real(8) 3D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idest
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of sent data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of sent data
    integer , intent(in ) :: km
                              ! Size of 3rd dimension of sent data
    real(DP), intent(in ) :: buf( im, jm, km )
                              ! Array to be sent
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_isend( buf, isize, mpi_double_precision, idest, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperISend_dble_3d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| jm      : | integer , intent(in ) 
| : | Size of 2nd dimension of sent data |  | 
| km      : | integer , intent(in ) 
| : | Size of 3rd dimension of sent data |  | 
| lm      : | integer , intent(in ) 
| : | Size of 4th dimension of sent data |  | 
| buf( im, jm, km, lm )      : | real(DP), intent(in ) | 
| ireq      : | integer , intent(out) | 
4D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 4D array
          [Source]
          
  subroutine MPIWrapperISend_dble_4d( idest, im, jm, km, lm, buf, ireq )
    !
    ! 4D 倍精度配列の非ブロッキング通信(送信)
    !
    ! Non-blocking transfer (send) of real(8) 4D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idest
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of sent data
    integer , intent(in ) :: jm
                              ! Size of 2nd dimension of sent data
    integer , intent(in ) :: km
                              ! Size of 3rd dimension of sent data
    integer , intent(in ) :: lm
                              ! Size of 4th dimension of sent data
    real(DP), intent(in ) :: buf( im, jm, km, lm )
                              ! Array to be sent
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_isend( buf, isize, mpi_double_precision, idest, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperISend_dble_4d
           
         
       
      
        
        
        
          
| Subroutine  : |  | 
| idest      : | integer , intent(in ) 
| : | Process number of destination |  | 
| im      : | integer , intent(in ) 
| : | Size of 1st dimension of sent data |  | 
| buf( im )      : | integer , intent(in ) | 
| ireq      : | integer , intent(out) | 
1D 倍精度配列の非ブロッキング通信(送信)
Non-blocking transfer (send) of real(8) 1D array
          [Source]
          
  subroutine MPIWrapperISend_int_1d( idest, im, buf, ireq )
    !
    ! 1D 倍精度配列の非ブロッキング通信(送信)
    !
    ! Non-blocking transfer (send) of real(8) 1D array
    !
    ! モジュール引用 ; USE statements
    !
    integer , intent(in ) :: idest
                              ! Process number of destination
    integer , intent(in ) :: im
                              ! Size of 1st dimension of sent data
    integer , intent(in ) :: buf( im )
                              ! Array to be sent
    integer , intent(out) :: ireq
                              ! Request number
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: ierr
    integer :: isize
    isize = size( buf )
    call mpi_isend( buf, isize, mpi_double_precision, idest, 1, mpi_comm_world, ireq, ierr )
#endif
  end subroutine MPIWrapperISend_int_1d
           
         
       
      
        
        
        
          
MPI の異常終了処理
Abort of MPI
          [Source]
          
  subroutine MPIWrapperStop
    !
    ! MPI の異常終了処理
    !
    ! Abort of MPI
    !
    ! モジュール引用 ; USE statements
    !
#ifdef LIB_MPI
    ! 作業変数
    ! Work variables
    !
    integer :: errorcode = 9
    integer :: ierr
    call mpi_abort( mpi_comm_world, errorcode, ierr )
    call MPIWrapperFinalize
    stop
#endif
  end subroutine MPIWrapperstop