Class mpi_wrapper
In: setup/mpi_wrapper.F90

Methods

Included Modules

dc_types mpi

Public Instance methods

Subroutine :

[Source]

    subroutine MPIWrapperFinalize


#ifdef LIB_MPI

      !
      ! local variables
      !
      integer :: ierr


      call mpi_finalize( ierr )

#endif

    end subroutine MPIWrapperFinalize
MPIWrapperIRecv( idep, im, buf, ireq )
Subroutine :
idep :integer , intent(in )
im :integer , intent(in )
buf( im ) :real(DP), intent(out)
ireq :integer , intent(out)

Alias for MPIWrapperIRecv_dble_1d

MPIWrapperIRecv( idep, im, jm, buf, ireq )
Subroutine :
idep :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
buf( im, jm ) :real(DP), intent(out)
ireq :integer , intent(out)

Alias for MPIWrapperIRecv_dble_2d

MPIWrapperIRecv( idep, im, jm, km, buf, ireq )
Subroutine :
idep :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
buf( im, jm, km ) :real(DP), intent(out)
ireq :integer , intent(out)

Alias for MPIWrapperIRecv_dble_3d

MPIWrapperIRecv( idep, im, jm, km, lm, buf, ireq )
Subroutine :
idep :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
lm :integer , intent(in )
buf( im, jm, km, lm ) :real(DP), intent(out)
ireq :integer , intent(out)

Alias for MPIWrapperIRecv_dble_4d

MPIWrapperISend( idest, im, buf, ireq )
Subroutine :
idest :integer , intent(in )
im :integer , intent(in )
buf( im ) :real(DP), intent(in )
ireq :integer , intent(out)

Alias for MPIWrapperISend_dble_1d

MPIWrapperISend( idest, im, jm, buf, ireq )
Subroutine :
idest :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
buf( im, jm ) :real(DP), intent(in )
ireq :integer , intent(out)

Alias for MPIWrapperISend_dble_2d

MPIWrapperISend( idest, im, jm, km, buf, ireq )
Subroutine :
idest :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
buf( im, jm, km ) :real(DP), intent(in )
ireq :integer , intent(out)

Alias for MPIWrapperISend_dble_3d

MPIWrapperISend( idest, im, jm, km, lm, buf, ireq )
Subroutine :
idest :integer , intent(in )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
lm :integer , intent(in )
buf( im, jm, km, lm ) :real(DP), intent(in )
ireq :integer , intent(out)

Alias for MPIWrapperISend_dble_4d

Subroutine :

[Source]

    subroutine MPIWrapperInit


#ifdef LIB_MPI

      !
      ! local 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)

[Source]

    subroutine MPIWrapperWait( ireq )


      integer, intent(inout) :: ireq


#ifdef LIB_MPI

      !
      ! local 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

Private Instance methods

MPIWrapperAbort( )
Subroutine :

Alias for MPIWrapperStop

Subroutine :
idep :integer , intent(in )
im :integer , intent(in )
buf( im ) :real(DP), intent(out)
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperIRecv_dble_1d( idep, im, buf, ireq )


      integer , intent(in ) :: idep
      integer , intent(in ) :: im
      real(DP), intent(out) :: buf( im )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
buf( im, jm ) :real(DP), intent(out)
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperIRecv_dble_2d( idep, im, jm, buf, ireq )


      integer , intent(in ) :: idep
      integer , intent(in ) :: im, jm
      real(DP), intent(out) :: buf( im, jm )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
buf( im, jm, km ) :real(DP), intent(out)
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperIRecv_dble_3d( idep, im, jm, km, buf, ireq )


      integer , intent(in ) :: idep
      integer , intent(in ) :: im, jm, km
      real(DP), intent(out) :: buf( im, jm, km )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
lm :integer , intent(in )
buf( im, jm, km, lm ) :real(DP), intent(out)
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperIRecv_dble_4d( idep, im, jm, km, lm, buf, ireq )


      integer , intent(in ) :: idep
      integer , intent(in ) :: im, jm, km, lm
      real(DP), intent(out) :: buf( im, jm, km, lm )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 :
idest :integer , intent(in )
im :integer , intent(in )
buf( im ) :real(DP), intent(in )
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperISend_dble_1d( idest, im, buf, ireq )


      integer , intent(in ) :: idest
      integer , intent(in ) :: im
      real(DP), intent(in ) :: buf( im )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
buf( im, jm ) :real(DP), intent(in )
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperISend_dble_2d( idest, im, jm, buf, ireq )


      integer , intent(in ) :: idest
      integer , intent(in ) :: im, jm
      real(DP), intent(in ) :: buf( im, jm )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
buf( im, jm, km ) :real(DP), intent(in )
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperISend_dble_3d( idest, im, jm, km, buf, ireq )


      integer , intent(in ) :: idest
      integer , intent(in ) :: im, jm, km
      real(DP), intent(in ) :: buf( im, jm, km )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 )
im :integer , intent(in )
jm :integer , intent(in )
km :integer , intent(in )
lm :integer , intent(in )
buf( im, jm, km, lm ) :real(DP), intent(in )
ireq :integer , intent(out)

[Source]

    subroutine MPIWrapperISend_dble_4d( idest, im, jm, km, lm, buf, ireq )


      integer , intent(in ) :: idest
      integer , intent(in ) :: im, jm, km, lm
      real(DP), intent(in ) :: buf( im, jm, km, lm )
      integer , intent(out) :: ireq


#ifdef LIB_MPI

      !
      ! local 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 :

[Source]

    subroutine MPIWrapperStop

#ifdef LIB_MPI

      !
      ! local variables
      !
      integer :: errorcode = 9
      integer :: ierr


      call mpi_abort( mpi_comm_world, errorcode, ierr )
      call MPIWrapperFinalize
      stop

#endif

    end subroutine MPIWrapperstop