nbprocs_info_t Derived Type

type, public :: nbprocs_info_t


Inherits

type~~nbprocs_info_t~~InheritsGraph type~nbprocs_info_t nbprocs_info_t type~cf_nb_t cf_nb_t type~nbprocs_info_t->type~cf_nb_t course_nb, fine_nb type~srl_nb_t srl_nb_t type~nbprocs_info_t->type~srl_nb_t srl_nb type~nbinfo_buffer_i_t nbinfo_buffer_i_t type~cf_nb_t->type~nbinfo_buffer_i_t info_send, info_rcv type~nbinfo_buffer_t nbinfo_buffer_t type~cf_nb_t->type~nbinfo_buffer_t send, rcv type~nbinfo_cf_t nbinfo_cf_t type~cf_nb_t->type~nbinfo_cf_t info type~srl_nb_t->type~nbinfo_buffer_i_t info_send, info_rcv type~srl_nb_t->type~nbinfo_buffer_t send, rcv type~nbinfo_srl_t nbinfo_srl_t type~srl_nb_t->type~nbinfo_srl_t info

Components

Type Visibility Attributes Name Initial
type(cf_nb_t), public, pointer :: course_nb(:) => null()
type(cf_nb_t), public, pointer :: fine_nb(:) => null()
integer, public :: imaxigrids_c = 0
integer, public :: imaxigrids_f = 0
integer, public :: imaxigrids_srl = 0
integer, public, allocatable :: ipe_to_inbpe_c(:)
integer, public, allocatable :: ipe_to_inbpe_f(:)
integer, public, allocatable :: ipe_to_inbpe_srl(:)
integer, public :: nbprocs_c = 0
integer, public, pointer :: nbprocs_c_list(:) => null()
integer, public :: nbprocs_f = 0
integer, public, pointer :: nbprocs_f_list(:) => null()
integer, public :: nbprocs_srl = 0
integer, public, pointer :: nbprocs_srl_list(:) => null()
type(srl_nb_t), public, pointer :: srl_nb(:) => null()

Type-Bound Procedures

procedure, public, non_overridable :: add_igrid_to_c

  • private subroutine add_igrid_to_c(self, ipe, igrid, i1, i2, i3, inc1, inc2, inc3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: i1
    integer, intent(in) :: i2
    integer, intent(in) :: i3
    integer, intent(in) :: inc1
    integer, intent(in) :: inc2
    integer, intent(in) :: inc3

procedure, public, non_overridable :: add_igrid_to_f

  • private subroutine add_igrid_to_f(self, ipe, igrid, inc1, inc2, inc3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: inc1
    integer, intent(in) :: inc2
    integer, intent(in) :: inc3

procedure, public, non_overridable :: add_igrid_to_srl

  • private subroutine add_igrid_to_srl(self, ipe, igrid, i1, i2, i3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: i1
    integer, intent(in) :: i2
    integer, intent(in) :: i3

procedure, public, non_overridable :: add_to_c

  • private subroutine add_to_c(self, ipe, igrid, i1, i2, i3, inc1, inc2, inc3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: i1
    integer, intent(in) :: i2
    integer, intent(in) :: i3
    integer, intent(in) :: inc1
    integer, intent(in) :: inc2
    integer, intent(in) :: inc3

procedure, public, non_overridable :: add_to_f

  • private subroutine add_to_f(self, ipe, igrid, inc1, inc2, inc3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: inc1
    integer, intent(in) :: inc2
    integer, intent(in) :: inc3

procedure, public, non_overridable :: add_to_srl

  • private subroutine add_to_srl(self, ipe, igrid, i1, i2, i3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: ipe
    integer, intent(in) :: igrid
    integer, intent(in) :: i1
    integer, intent(in) :: i2
    integer, intent(in) :: i3

procedure, public, non_overridable :: alloc_buffers_c

  • public subroutine alloc_buffers_c(self, nwgc, ixS_r_min1, ixS_r_max1, ixS_r_min2, ixS_r_max2, ixS_r_min3, ixS_r_max3, ixR_p_min1, ixR_p_max1, ixR_p_min2, ixR_p_max2, ixR_p_min3, ixR_p_max3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: nwgc
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_min1
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_max1
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_min2
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_max2
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_min3
    integer, intent(in), dimension(-1:1,-1:1) :: ixS_r_max3
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_min1
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_max1
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_min2
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_max2
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_min3
    integer, intent(in), dimension(-1:1,0:3) :: ixR_p_max3

procedure, public, non_overridable :: alloc_buffers_f

  • public subroutine alloc_buffers_f(self, nwgc, ixS_p_min1, ixS_p_max1, ixS_p_min2, ixS_p_max2, ixS_p_min3, ixS_p_max3, ixR_r_min1, ixR_r_max1, ixR_r_min2, ixR_r_max2, ixR_r_min3, ixR_r_max3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: nwgc
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_min1
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_max1
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_min2
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_max2
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_min3
    integer, intent(in), dimension(-1:1,0:3) :: ixS_p_max3
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_min1
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_max1
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_min2
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_max2
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_min3
    integer, intent(in), dimension(-1:1,0:3) :: ixR_r_max3

procedure, public, non_overridable :: alloc_buffers_srl

  • private subroutine alloc_buffers_srl(self, nwgc, ixS_srl_min1, ixS_srl_max1, ixS_srl_min2, ixS_srl_max2, ixS_srl_min3, ixS_srl_max3, ixR_srl_min1, ixR_srl_max1, ixR_srl_min2, ixR_srl_max2, ixR_srl_min3, ixR_srl_max3)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: nwgc
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_min1
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_max1
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_min2
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_max2
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_min3
    integer, intent(in), dimension(-1:2,-1:1) :: ixS_srl_max3
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_min1
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_max1
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_min2
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_max2
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_min3
    integer, intent(in), dimension(-1:2,-1:1) :: ixR_srl_max3

procedure, public, non_overridable :: idecode

  • private subroutine idecode(self, i1, i2, i3, i)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(out) :: i1
    integer, intent(out) :: i2
    integer, intent(out) :: i3
    integer, intent(in) :: i

procedure, public, non_overridable :: iencode

  • private subroutine iencode(self, i1, i2, i3, i)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: i1
    integer, intent(in) :: i2
    integer, intent(in) :: i3
    integer, intent(out) :: i

procedure, public, non_overridable :: init

  • private subroutine init(self, npe)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self
    integer, intent(in) :: npe

procedure, public, non_overridable :: reset

  • private subroutine reset(self)

    Arguments

    Type IntentOptional Attributes Name
    class(nbprocs_info_t) :: self

Source Code

   type nbprocs_info_t
      ! SRL (neighbor is at same level)
      integer                              :: nbprocs_srl=0        ! number of neighboring processes at srl
      integer                              :: imaxigrids_srl=0     ! max number of igrids over all neighbor processors (for loop collasing)
      integer, pointer                     :: nbprocs_srl_list(:) => null()  ! list of neighboring ipe at srl
      integer, allocatable                 :: ipe_to_inbpe_srl(:)  ! inverse to nbprocs_srl_list
      ! F (neighbor is finer)
      integer                              :: nbprocs_f=0          ! number of neighboring processes with finer grids
      integer                              :: imaxigrids_f=0       ! max number of igrids over all neighbor processors (for loop collasing)
      integer, pointer                     :: nbprocs_f_list(:) => null()  ! list of neighboring ipe at f
      integer, allocatable                 :: ipe_to_inbpe_f(:)    ! inverse to nbprocs_f_list
      ! C (neighbor is coarser)
      integer                              :: nbprocs_c=0          ! number of neighboring processes with coarser grids
      integer                              :: imaxigrids_c=0       ! max number of igrids over all neighbor processors (for loop collasing)
      integer, pointer                     :: nbprocs_c_list(:)  => null()   ! list of neighboring ipe at f
      integer, allocatable                 :: ipe_to_inbpe_c(:)    ! inverse to nbprocs_f_list
      type(cf_nb_t), pointer               :: course_nb(:) => null()        ! Info about course neighbours
      type(cf_nb_t), pointer               :: fine_nb(:) => null()          ! Info about fine neighbours
      type(srl_nb_t), pointer              :: srl_nb(:) => null()           ! Info about same refinment level neighbours
    contains
      procedure, non_overridable :: init, reset
      procedure, non_overridable :: add_igrid_to_srl, add_igrid_to_c, add_igrid_to_f
      procedure, non_overridable :: add_to_srl, add_to_f, add_to_c
      procedure, non_overridable :: alloc_buffers_srl, alloc_buffers_f, alloc_buffers_c
      procedure, non_overridable :: iencode, idecode
   end type nbprocs_info_t