m_Router Module



Interfaces

public interface init

  • private subroutine initd_(othercomp, GSMap, mycomm, Rout, name)

    !!!!!!!!!!!!!!!Begin comparison of globalsegmaps

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: othercomp
    type(GlobalSegMap), intent(in) :: GSMap
    integer, intent(in) :: mycomm
    type(Router), intent(out) :: Rout
    character(len=*), intent(in), optional :: name
  • private subroutine initp_(inGSMap, inRGSMap, mycomm, Rout, name)

    determine the global segments on this processor just once, so the info be used repeatedly below same code was used in m_GlobalToLocal - should make a subroutine...

    determine the possibly overlapping segments in RGSMap that are local to each proc

    count number of potentially overlapping remote segments and which and how many processes hold these

    number of potentially overlapping segments in RGSMap local to proc and mapping from processes that hold these to actual process id

    build list of potentially overlapping remote segments

    original size of rgs_lb()/ub() was (r_ngseg,nprocs) at the cost of looping to compute it (within GlobalSegMap_max_nlseg), reduced size to (r_max_nlseg,nprocs) then further reduced to (max_rgs_count,feas_nprocs)

    (note: redefining rgs_count to be indexed as 1:feas_nprocs instead of as 1:nprocs) !!!!!!!!!!!!!!!!

    !!!!!!!!!!!!!!!!

    pull this out of the loop to vectorize !!!!!!!!!!!!!!!!!!end of search through remote GSMap

    Arguments

    Type IntentOptional Attributes Name
    type(GlobalSegMap), intent(in) :: inGSMap
    type(GlobalSegMap), intent(in) :: inRGSMap
    integer, intent(in) :: mycomm
    type(Router), intent(out) :: Rout
    character(len=*), intent(in), optional :: name

public interface clean

  • private subroutine clean_(Rout, stat)

    Arguments

    Type IntentOptional Attributes Name
    type(Router), intent(inout) :: Rout
    integer, intent(out), optional :: stat

public interface print

  • private subroutine print_(Rout, mycomm, lun)

    Arguments

    Type IntentOptional Attributes Name
    type(Router), intent(in) :: Rout
    integer, intent(in) :: mycomm
    integer, intent(in) :: lun

Derived Types

type, public ::  rptr

Components

Type Visibility Attributes Name Initial
real(kind=FP), public, dimension(:), pointer :: pr

type, public ::  iptr

Components

Type Visibility Attributes Name Initial
integer, public, dimension(:), pointer :: pi

type, public ::  Router

Components

Type Visibility Attributes Name Initial
integer, public :: comp1id
integer, public :: comp2id
integer, public :: nprocs
integer, public :: maxsize
integer, public :: lAvsize
integer, public :: numiatt
integer, public :: numratt
integer, public, dimension(:), pointer :: pe_list
integer, public, dimension(:), pointer :: pe_list_loc
integer, public :: mpicomm
integer, public, dimension(:), pointer :: num_segs
integer, public, dimension(:), pointer :: locsize
integer, public, dimension(:), pointer :: permarr
integer, public, dimension(:,:), pointer :: seg_starts
integer, public, dimension(:,:), pointer :: seg_lengths
type(rptr), public, dimension(:), pointer :: rp1
type(iptr), public, dimension(:), pointer :: ip1
integer, public, dimension(:), pointer :: ireqs
integer, public, dimension(:), pointer :: rreqs
integer, public, dimension(:,:), pointer :: istatus
integer, public, dimension(:,:), pointer :: rstatus