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