GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/yom_phys_grid.F90 Lines: 0 1 0.0 %
Date: 2023-06-30 12:56:34 Branches: 0 0 - %

Line Branch Exec Source
1
MODULE YOM_PHYS_GRID
2
3
USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
5
IMPLICIT NONE
6
SAVE
7
8
PRIVATE
9
PUBLIC TYPE_PHYS_POINT ,PHYS_GRID,DYN_GRID,DYN_SL,PHYS_SL, YPHYPOI, YDYNPOI, &
10
        & JPMXNEI, PHYS_GRID_STRUCT, SL_STRUCT, TYPE_DYN_POINT
11
12
!-------------------------------------------------------------------------
13
! Derived types for describing the coarse physics grid structure.
14
!  The descriptors themselves
15
! (YGFL and YGFLC) can be found in module yom_ygfl.F90.
16
!-------------------------------------------------------------------------
17
! Modifications:
18
19
INTEGER(KIND=JPIM), PARAMETER :: JPMXNEI=36 ! maximum number of neighbouring
20
                                            ! points for averaging or
21
                                            ! interpolation
22
23
TYPE PHYS_GRID_STRUCT
24
  INTEGER(KIND=JPIM) :: NGPTOT          ! number of physics points in the task
25
  INTEGER(KIND=JPIM) :: NGPTOTG
26
  INTEGER(KIND=JPIM) :: NDGSAL, NDGENL
27
  INTEGER(KIND=JPIM) :: NDGSAG, NDGENG
28
  INTEGER(KIND=JPIM), POINTER :: NLOENG(:)
29
  REAL(KIND=JPRB), POINTER   :: RMU(:)
30
  REAL(KIND=JPRB), POINTER   :: RW(:)
31
32
  INTEGER(KIND=JPIM)   :: NRESOL_ID
33
  INTEGER(KIND=JPIM)   :: NGPTOTMX, NSPEC2, NSMAX
34
  INTEGER(KIND=JPIM)   :: NPTRFLOFF, NUMP, NDLON
35
  INTEGER(KIND=JPIM)   ::  NDGSAH, NDGENH
36
  INTEGER(KIND=JPIM)   ::  NDGLG, NDLSUR
37
  INTEGER(KIND=JPIM)   ::  NFRSTLOFF, NDSUR1,NDGSUR
38
  INTEGER(KIND=JPIM)   ::  MYFRSTACTLAT, MYLSTACTLAT
39
  INTEGER(KIND=JPIM)   :: NGPBLKS
40
  INTEGER(KIND=JPIM)   :: NPROMA
41
42
  INTEGER(KIND=JPIM), POINTER, DIMENSION(:)     :: NRGRI, NPTRFRSTLAT, NFRSTLAT
43
  INTEGER(KIND=JPIM), POINTER, DIMENSION(:)     :: NLSTLAT, MYMS, NASM0
44
  INTEGER(KIND=JPIM), POINTER, DIMENSION(:,:)   :: NSTA, NONL
45
  INTEGER(KIND=JPIM), POINTER, DIMENSION(:)     :: NSTAGP
46
  REAL(KIND=JPRB), POINTER   :: RSQM2(:), RLATIG(:), RLATI(:)
47
  REAL(KIND=JPRB), POINTER   :: RIPI0(:), RIPI1(:), RIPI2(:)
48
  INTEGER(KIND=JPIM), POINTER, DIMENSION(:)     :: NPTRLSTLAT
49
50
END TYPE PHYS_GRID_STRUCT
51
52
TYPE(PHYS_GRID_STRUCT) :: PHYS_GRID, DYN_GRID
53
54
TYPE SL_STRUCT
55
  INTEGER(KIND=JPIM),POINTER :: NSLSTA(:)
56
  INTEGER(KIND=JPIM),POINTER :: NSLONL(:)
57
  INTEGER(KIND=JPIM),POINTER :: NSLOFF(:)
58
  INTEGER(KIND=JPIM),POINTER :: NSLEXT(:,:)
59
  INTEGER(KIND=JPIM),POINTER :: NSLSENDPOS(:)
60
  INTEGER(KIND=JPIM),POINTER :: NSLRECVPOS(:)
61
  INTEGER(KIND=JPIM),POINTER :: NSLSENDPTR(:)
62
  INTEGER(KIND=JPIM),POINTER :: NSLRECVPTR(:)
63
  INTEGER(KIND=JPIM),POINTER :: NSLCORE(:)
64
  INTEGER(KIND=JPIM),POINTER :: NSLCOMM(:)
65
66
  INTEGER(KIND=JPIM) :: NASLB1
67
  INTEGER(KIND=JPIM) :: NSLPROCS
68
  INTEGER(KIND=JPIM) :: NSLMPBUFSZ
69
  INTEGER(KIND=JPIM) :: NSLRPT
70
  INTEGER(KIND=JPIM) :: NSLSPT
71
  INTEGER(KIND=JPIM) :: NSLWIDEN
72
  INTEGER(KIND=JPIM) :: NSLWIDES
73
  INTEGER(KIND=JPIM) :: NSLWIDEE
74
  INTEGER(KIND=JPIM) :: NSLWIDEW
75
END TYPE SL_STRUCT
76
77
TYPE(SL_STRUCT) :: DYN_SL
78
TYPE(SL_STRUCT) :: PHYS_SL
79
80
81
TYPE TYPE_PHYS_POINT    ! Individual physics point characteristics
82
83
  REAL(KIND=JPRB) :: GELAM, GELAT, GEMU
84
  REAL(KIND=JPRB) :: GECLO, GESLO, GM, GAW
85
  REAL(KIND=JPRB) :: GNORDL, GNORDM, GSQM2
86
  REAL(KIND=JPRB) :: RCOLON, RSILON
87
  REAL(KIND=JPRB) :: RINDX, RINDY
88
  REAL(KIND=JPRB) :: OROG
89
  INTEGER(KIND=JPIM) :: NGPLAT       ! row number in the physics grid
90
91
  INTEGER(KIND=JPIM) :: NEIGH       ! number of neighbours in the dynamics grid
92
                                    ! for going from the dynamics to the physics grid
93
  INTEGER(KIND=JPIM), POINTER :: NL0(:)    ! indexes in the interpolation buffer of
94
                                           ! the dynamics neighbours
95
  REAL(KIND=JPRB), POINTER   :: WGT(:)     ! weights for every neighbouring
96
                                           ! dynamics point
97
END TYPE TYPE_PHYS_POINT
98
99
TYPE(TYPE_PHYS_POINT),ALLOCATABLE :: YPHYPOI(:)
100
101
TYPE TYPE_DYN_POINT     ! Individual dynamics point characteristics
102
  INTEGER(KIND=JPIM) :: NEIGH       ! number of neighbours in the physics grid
103
                                    ! for going from the physics to the dynamics grid
104
  INTEGER(KIND=JPIM), POINTER :: NL0(:)    ! indexes in the interpolation buffer of
105
                                           ! the physics neighbours
106
  REAL(KIND=JPRB), POINTER   :: WGT(:)     ! weights for every neighbouring
107
                                           ! physics point
108
END TYPE TYPE_DYN_POINT
109
110
TYPE(TYPE_DYN_POINT),ALLOCATABLE :: YDYNPOI(:)
111
112
!$OMP THREADPRIVATE(dyn_grid,dyn_sl,phys_grid,phys_sl)
113
!$OMP THREADPRIVATE(ydynpoi,yphypoi)
114
END MODULE YOM_PHYS_GRID