LCOV - code coverage report
Current view: | top level - dynamics/se/dycore - edgetype_mod.F90 (source / functions) |  |  | Hit | Total | Coverage
Test: | coverage.info |  | Lines: | 0 | 1 | 0.0 %
Date: | 2024-12-17 17:57:11 |  | Functions: | 0 | 6 | 0.0 %

              Line data    Source code
           1             : module edgetype_mod
           2             :
           3             :   use shr_kind_mod,           only: r8=>shr_kind_r8, i8=>shr_kind_i8
           4             :   use coordinate_systems_mod, only : cartesian3D_t
           5             :   use gbarriertype_mod,       only : gbarrier_t
           6             :
           7             :   implicit none
           8             :   private
           9             :   save
          10             :
          11             :   integer, public :: initedgebuffer_callid = 0
          12             :
          13             :   type, public :: rotation_t
          14             :     integer                 :: nbr                ! nbr direction: north south east west
          15             :     integer                 :: reverse            ! 0 = do not reverse order
          16             :     ! 1 = reverse order
          17             :     real (kind=r8), pointer :: R(:,:,:) => null() !  rotation matrix
          18             :   end type rotation_t
          19             :
          20             :   type, public :: EdgeDescriptor_t
          21             :      integer                      :: use_rotation
          22             :      integer                      :: padding
          23             :      integer,             pointer :: putmapP(:) => null()
          24             :      integer,             pointer :: getmapP(:) => null()
          25             :      integer,             pointer :: putmapP_ghost(:) => null()
          26             :      integer,             pointer :: getmapP_ghost(:) => null()
          27             :      integer,             pointer :: putmapS(:) => null()
          28             :      integer,             pointer :: getmapS(:) => null()
          29             :      integer,             pointer :: globalID(:) => null()
          30             :      integer,             pointer :: loc2buf(:) => null()
          31             :      type(cartesian3D_t), pointer :: neigh_corners(:,:) => null()
          32             :      integer                      :: actual_neigh_edges
          33             :      logical,             pointer :: reverse(:) => null()
          34             :      type (rotation_t),   pointer :: rot(:) => null() !  Identifies list of edges
          35             :      !  that must be rotated, and how
          36             :   end type EdgeDescriptor_t
          37             :
          38             :   type, public :: EdgeBuffer_t
          39             :      real (kind=r8), allocatable :: buf(:)
          40             :      real (kind=r8), allocatable :: receive(:)
          41             :      integer,        pointer     :: putmap(:,:) => null()
          42             :      integer,        pointer     :: getmap(:,:) => null()
          43             :      logical,        pointer     :: reverse(:,:) => null()
          44             :      integer,        pointer     :: moveLength(:) => null()
          45             :      integer,        pointer     :: movePtr(:) => null()
          46             :      integer,        pointer     :: rcountsFull(:) => null()
          47             :      integer,        pointer     :: scountsFull(:) => null()
          48             :      integer,        pointer     :: sdisplsFull(:) => null()
          49             :      integer,        pointer     :: rdisplsFull(:) => null()
          50             :      integer,        pointer     :: rcountsInter(:) => null()
          51             :      integer,        pointer     :: scountsInter(:) => null()
          52             :      integer,        pointer     :: sdisplsInter(:) => null()
          53             :      integer,        pointer     :: rdisplsInter(:) => null()
          54             :      integer,        pointer     :: rcountsIntra(:) => null()
          55             :      integer,        pointer     :: scountsIntra(:) => null()
          56             :      integer,        pointer     :: sdisplsIntra(:) => null()
          57             :      integer,        pointer     :: rdisplsIntra(:) => null()
          58             :      integer,        pointer     :: getDisplsFull(:) => null()
          59             :      integer,        pointer     :: putDisplsFull(:) => null()
          60             :      integer,        allocatable :: Rrequest(:),Srequest(:)
          61             :      integer,        allocatable :: status(:,:)
          62             :      type (gbarrier_t) :: gbarrier
          63             :      integer                     :: nlyr    ! Number of layers
          64             :      integer                     :: nbuf    ! total size of message passing buffer, includes vertical levels
          65             :      integer                     :: ndepth  ! Depth of halo
          66             :      integer                     :: npoints ! length of edge
          67             :      integer                     :: lb,ub   ! lower and upper bound of arrays
          68             :      integer                     :: nInter, nIntra
          69             :      integer                     :: id
          70             :      integer                     :: bndry_type
          71             :      integer                     :: tag
          72             :      integer                     :: win
          73             :      integer(kind=i8)            :: winsize
          74             :   end type EdgeBuffer_t
          75             :
          76             :   type, public :: LongEdgeBuffer_t
          77             :      integer          :: nlyr
          78             :      integer          :: nbuf
          79             :      integer, pointer :: buf(:,:) => null()
          80             :      integer, pointer :: receive(:,:) => null()
          81             :   end type LongEdgeBuffer_t
          82             :
          83             :   type, public :: GhostBuffer3D_t
          84             :      real (kind=r8), dimension(:,:,:,:), pointer :: buf => null()
          85             :      real (kind=r8), dimension(:,:,:,:), pointer :: receive => null()
          86             :      integer :: nlyr ! Number of layers
          87             :      integer :: nhc  ! Number of layers of ghost cells
          88             :      integer :: np   ! Number of points in a cell
          89             :      integer :: nbuf ! size of the horizontal dimension of the buffers.
          90             :      integer :: elem_size ! size of 2D array (first two dimensions of buf())
          91             :   end type GhostBuffer3D_t
          92             :
          93             :
          94           0 : end module edgetype_mod

Generated by: LCOV version 1.14