particle_set_SetMPIDataTypeParams Subroutine

private impure subroutine particle_set_SetMPIDataTypeParams(this, types, lengths, displacement)

Uses

  • proc~~particle_set_setmpidatatypeparams~~UsesGraph proc~particle_set_setmpidatatypeparams particle_set%particle_set_SetMPIDataTypeParams mpi_f08 mpi_f08 proc~particle_set_setmpidatatypeparams->mpi_f08

Sets up parameters used when creating the MPI derived type.

Type Bound

particle_set

Arguments

Type IntentOptional Attributes Name
class(particle_set), intent(inout) :: this

Set of Lagrangian objects

type(MPI_Datatype), intent(out), allocatable :: types(:)

Array of types

integer, intent(out), allocatable :: lengths(:)

Array of lengths

integer(kind=MPI_ADDRESS_KIND), intent(out), allocatable :: displacement(:)

Array of displacements


Calls

proc~~particle_set_setmpidatatypeparams~~CallsGraph proc~particle_set_setmpidatatypeparams particle_set%particle_set_SetMPIDataTypeParams proc~particle_set_setmpidatatypeparams_bh particle_set_SetMPIDataTypeParams_BH proc~particle_set_setmpidatatypeparams->proc~particle_set_setmpidatatypeparams_bh proc~particle_set_setmpidatatypeparams_default particle_set_SetMPIDataTypeParams_default proc~particle_set_setmpidatatypeparams->proc~particle_set_setmpidatatypeparams_default mpi_get_address mpi_get_address proc~particle_set_setmpidatatypeparams_bh->mpi_get_address proc~particle_set_setmpidatatypeparams_default->mpi_get_address

Source Code

    impure subroutine particle_set_SetMPIDataTypeParams(this,types,lengths,displacement)
      !> Sets up parameters used when creating the MPI derived type.
      use mpi_f08
      implicit none
      class(particle_set), intent(inout) :: this                               !! Set of Lagrangian objects
      type(MPI_Datatype),  intent(out),   &
                             allocatable :: types(:)                           !! Array of types
      integer,             intent(out),   &
                             allocatable :: lengths(:)                         !! Array of lengths
      integer(kind=MPI_ADDRESS_KIND),    &
                           intent(out),   &
                             allocatable :: displacement(:)                    !! Array of displacements

      select case (this%part_type)
      case (PP_TYPE_DEFAULT)
        call particle_set_SetMPIDataTypeParams_default(this,types,lengths,displacement)
      case (PP_TYPE_BASSET )
        call particle_set_SetMPIDataTypeParams_BH     (this,types,lengths,displacement)
      case default
        call this%parallel%Stop("Unknown particle type")
      end select

      return
    end subroutine particle_set_SetMPIDataTypeParams