FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | iproc | ||||
integer, | public | :: | nproc | ||||
integer, | public | :: | naky | ||||
integer, | public | :: | ntheta0 | ||||
integer, | public | :: | nlambda | ||||
integer, | public | :: | negrid | ||||
integer, | public | :: | nspec | ||||
integer, | public | :: | ntgrid | ||||
integer, | public | :: | ntgridtotal | ||||
integer, | public | :: | llim_world |
DD> |
|||
integer, | public | :: | ulim_world |
DD> |
|||
integer, | public | :: | llim_proc |
DD> |
|||
integer, | public | :: | ulim_proc |
DD> |
|||
integer, | public | :: | ulim_alloc |
DD> |
|||
integer, | public | :: | blocksize |
DD> |
|||
integer, | public | :: | ik_ord | ||||
integer, | public | :: | it_ord | ||||
integer, | public | :: | il_ord | ||||
integer, | public | :: | ie_ord | ||||
integer, | public | :: | is_ord | ||||
integer, | public | :: | ik_comp | ||||
integer, | public | :: | it_comp | ||||
integer, | public | :: | il_comp | ||||
integer, | public | :: | ie_comp | ||||
integer, | public | :: | is_comp | ||||
integer, | public, | dimension(5) | :: | compound_count | |||
integer, | public, | dimension(5) | :: | dim_size | |||
integer, | public | :: | d1_min | ||||
integer, | public | :: | d1_max | ||||
integer, | public | :: | d2_min | ||||
integer, | public | :: | d2_max | ||||
integer, | public | :: | d3_min | ||||
integer, | public | :: | d3_max | ||||
integer, | public | :: | d4_min | ||||
integer, | public | :: | d4_max | ||||
integer, | public | :: | d5_min | ||||
integer, | public | :: | d5_max | ||||
integer, | public | :: | ik_min | ||||
integer, | public | :: | ik_max | ||||
integer, | public | :: | it_min | ||||
integer, | public | :: | it_max | ||||
integer, | public | :: | il_min | ||||
integer, | public | :: | il_max | ||||
integer, | public | :: | ie_min | ||||
integer, | public | :: | ie_max | ||||
integer, | public | :: | is_min | ||||
integer, | public | :: | is_max | ||||
integer, | public | :: | xyblock_comm | ||||
integer, | public | :: | xysblock_comm | ||||
integer, | public | :: | lesblock_comm | ||||
integer, | public, | dimension(:,:), allocatable | :: | les_kxky_range | |||
type(ikitprocs), | public, | dimension(:,:), allocatable | :: | ikit_procs_assignment | |||
integer, | public | :: | ikitrange | ||||
integer, | public | :: | max_ikit_nprocs | ||||
type(ikit), | public, | dimension(:), allocatable | :: | local_ikit_points | |||
logical, | public | :: | x_before_y | ||||
logical, | public | :: | x_local | ||||
logical, | public | :: | y_local | ||||
logical, | public | :: | l_local | ||||
logical, | public | :: | e_local | ||||
logical, | public | :: | s_local | ||||
integer, | public | :: | ppn | ||||
integer, | public | :: | llim_node | ||||
integer, | public | :: | ulim_node | ||||
integer, | public | :: | nnd | ||||
integer, | public | :: | bpn | ||||
integer, | public, | allocatable | :: | proc_map(:) |
type :: g_layout_type
integer :: iproc, nproc
integer :: naky, ntheta0, nlambda, negrid, nspec, ntgrid, ntgridtotal
integer :: llim_world, ulim_world, llim_proc, ulim_proc, ulim_alloc, blocksize
!<DD>
! For branchless index lookup routines
integer :: ik_ord, it_ord, il_ord, ie_ord, is_ord
integer :: ik_comp, it_comp, il_comp, ie_comp, is_comp
integer,dimension(5) :: compound_count, dim_size
! For replacing loops over iglo with 5 separate loops
! This is not currently implemented, but involves replacing "do iglo=...." with
! EQUIVALENCE(dind(1),d1),(dind(2),d2).... !Note this is just a short hand for storing currently d values in an array
! ik=>dind(g_lo%ik_ord) !This is a pointer assignment, so that whatever layout we use ik points to the correct d value
! do d5=d5_min,d5max ; do d4=d4_min,d4_max ...
integer :: d1_min,d1_max,d2_min,d2_max,d3_min,d3_max
integer :: d4_min,d4_max,d5_min,d5_max
! Used in deciding colour for sub-communicator creation.
! Also used to select slices of array to take part in sub-comm global reductions
! (in order to reduce message size by avoiding regions of arrays outside this procs domain)
integer :: ik_min, ik_max, it_min, it_max, il_min, il_max, ie_min, ie_max, is_min, is_max
integer :: xyblock_comm !Sub comms for xy blocks (i.e. l-e-s integrals)
integer :: xysblock_comm !Sub comms for xys blocks (i.e. l-e integrals)
integer :: lesblock_comm !Sub comms for les blocks (i.e. x-y integrals)
integer,dimension(:,:),allocatable :: les_kxky_range !Used in integrate species, holds start and stop indices for flattened kxky dimension
type(ikitprocs),dimension(:,:),allocatable :: ikit_procs_assignment !Used to record processes that have been assigned specific it ik points in g
integer :: ikitrange
integer :: max_ikit_nprocs ! Used to record the largest proc_list size for all the ikitprocs points. This is useful for setting the size of non-blocking request arrays for communications
type(ikit),dimension(:),allocatable :: local_ikit_points
logical :: x_before_y !Information about layout order
logical :: x_local, y_local, l_local, e_local, s_local !Used to record if various dimensions are entirely local
! shm data
integer :: ppn, llim_node, ulim_node
! Only used during setup so could be moved to the init routine
integer :: nnd, bpn
integer, allocatable :: proc_map(:) ! llimit on all ranks
end type g_layout_type