| 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 | 
    
      | 115 |  |  |  |