Line data Source code
1 : module schedtype_mod 2 : 3 : use metagraph_mod, only : MetaEdge_t 4 : 5 : implicit none 6 : private 7 : type, public :: Cycle_t 8 : integer :: tag 9 : integer :: dest 10 : integer :: source 11 : integer :: lengthP 12 : integer :: lengthP_ghost 13 : integer :: lengthS 14 : integer :: type 15 : integer :: ptrP 16 : integer :: ptrP_ghost 17 : integer :: ptrS 18 : logical :: onNode 19 : type (MetaEdge_t),pointer :: edge 20 : end type Cycle_t 21 : 22 : type, public :: pgindex_t 23 : integer :: elemid 24 : integer :: edgeid 25 : integer :: mesgid 26 : integer :: lenP,lenS 27 : integer :: edgeType 28 : end type pgindex_t 29 : 30 : type, public :: Schedule_t 31 : integer :: ncycles 32 : integer :: nelemd 33 : integer :: placeholder ! total integer count should be even 34 : integer :: nSendCycles 35 : integer :: nRecvCycles 36 : integer :: nInter ! number of off-node or inter node communication cycles 37 : integer :: nIntra ! number of on-node or intra node communication cycles 38 : integer :: padding 39 : integer,pointer :: Local2Global(:) 40 : integer,pointer :: destFull(:) 41 : integer,pointer :: srcFull(:) 42 : type (Cycle_t), pointer :: Cycle(:) 43 : type (Cycle_t), pointer :: SendCycle(:) 44 : type (Cycle_t), pointer :: RecvCycle(:) 45 : type (Cycle_t), pointer :: MoveCycle(:) 46 : type (pgindex_t), pointer :: pIndx(:) 47 : type (pgindex_t), pointer :: gIndx(:) 48 : integer :: pPtr,gPtr 49 : end type Schedule_t 50 : 51 : type (Schedule_t), public, allocatable, target :: Schedule(:) 52 : type (Schedule_t), public, allocatable, target :: gSchedule(:) 53 : type (Schedule_t), public, allocatable, target :: sSchedule(:) 54 : 55 : integer,public,parameter :: HME_Cardinal = 101 56 : integer,public,parameter :: HME_Ordinal = 102 57 : 58 : 59 0 : end module schedtype_mod