| 1 | MODULE YOMGC |
|---|
| 2 | |
|---|
| 3 | USE PARKIND1 ,ONLY : JPIM ,JPRB |
|---|
| 4 | |
|---|
| 5 | IMPLICIT NONE |
|---|
| 6 | |
|---|
| 7 | SAVE |
|---|
| 8 | |
|---|
| 9 | ! ------------------------------------------------------------------ |
|---|
| 10 | !* Grid point boundaries |
|---|
| 11 | |
|---|
| 12 | ! RCORI : Coriolis parameter "f = 2 Omega sin(theta)". |
|---|
| 13 | ! RCORIC : 2 Omega cos(theta). |
|---|
| 14 | ! GEMU : sine of geographic latitude "sin(theta)". |
|---|
| 15 | ! GSQM2 : cosine of geographic latitude "cos(theta)". |
|---|
| 16 | ! GELAM : geographic longitude "lambda". |
|---|
| 17 | ! GELAT : geographic latitude "theta". |
|---|
| 18 | ! GECLO : cosine of geographic longitude "cos(lambda)". |
|---|
| 19 | ! GESLO : sine of geographic longitude "sin(lambda)". |
|---|
| 20 | ! GM : mapping factor "M". |
|---|
| 21 | ! GOMVRL : zonal component of vector "2 vec(Omega) wedge a vec(k)". |
|---|
| 22 | ! GOMVRM : meridian component of vector "2 vec(Omega) wedge a vec(k)". |
|---|
| 23 | ! GNORDL : zonal component "gnordl" of unit vector directed towards |
|---|
| 24 | ! the geographic Northern pole. |
|---|
| 25 | ! GNORDM : meridian component "gnordm" of unit vector directed towards |
|---|
| 26 | ! the geographic Northern pole. |
|---|
| 27 | ! GNORDLCL : zonal component of vector "rssavnabla gnordl". |
|---|
| 28 | ! GNORDMCL : zonal component of vector "rssavnabla gnordm". |
|---|
| 29 | ! GNORDMCM : meridian component of vector "rssavnabla gnordm". |
|---|
| 30 | ! OROG : grid-point surface orography "Phi_s". |
|---|
| 31 | ! OROGL : zonal component of "vnabla' Phi_s". |
|---|
| 32 | ! OROGM : zonal component of "vnabla' Phi_s". |
|---|
| 33 | ! OROGLL,OROGMM,OROGLM: second-order reduced derivatives of surface orography. |
|---|
| 34 | ! GAW : Gaussian weight. |
|---|
| 35 | ! NGPLAT : DM-global number of the Gaussian grid latitude. |
|---|
| 36 | ! NUNIQUEGP : pointer array (see computation in sugem2.F90). |
|---|
| 37 | |
|---|
| 38 | REAL(KIND=JPRB),ALLOCATABLE:: RCORI(:) |
|---|
| 39 | REAL(KIND=JPRB),ALLOCATABLE:: RCORIC(:) |
|---|
| 40 | REAL(KIND=JPRB),ALLOCATABLE:: GEMU(:) |
|---|
| 41 | REAL(KIND=JPRB),ALLOCATABLE:: GSQM2(:) |
|---|
| 42 | REAL(KIND=JPRB),ALLOCATABLE:: GELAM(:) |
|---|
| 43 | REAL(KIND=JPRB),ALLOCATABLE:: GELAT(:) |
|---|
| 44 | REAL(KIND=JPRB),ALLOCATABLE:: GECLO(:) |
|---|
| 45 | REAL(KIND=JPRB),ALLOCATABLE:: GESLO(:) |
|---|
| 46 | REAL(KIND=JPRB),ALLOCATABLE:: GM(:) |
|---|
| 47 | REAL(KIND=JPRB),ALLOCATABLE:: GOMVRL(:) |
|---|
| 48 | REAL(KIND=JPRB),ALLOCATABLE:: GOMVRM(:) |
|---|
| 49 | REAL(KIND=JPRB),ALLOCATABLE:: GNORDL(:) |
|---|
| 50 | REAL(KIND=JPRB),ALLOCATABLE:: GNORDM(:) |
|---|
| 51 | REAL(KIND=JPRB),ALLOCATABLE:: GNORDLCL(:) |
|---|
| 52 | REAL(KIND=JPRB),ALLOCATABLE:: GNORDMCL(:) |
|---|
| 53 | REAL(KIND=JPRB),ALLOCATABLE:: GNORDMCM(:) |
|---|
| 54 | REAL(KIND=JPRB),ALLOCATABLE:: OROG(:) |
|---|
| 55 | REAL(KIND=JPRB),ALLOCATABLE:: OROGL(:) |
|---|
| 56 | REAL(KIND=JPRB),ALLOCATABLE:: OROGM(:) |
|---|
| 57 | REAL(KIND=JPRB),ALLOCATABLE:: OROGLL(:) |
|---|
| 58 | REAL(KIND=JPRB),ALLOCATABLE:: OROGMM(:) |
|---|
| 59 | REAL(KIND=JPRB),ALLOCATABLE:: OROGLM(:) |
|---|
| 60 | REAL(KIND=JPRB),ALLOCATABLE:: GAW(:) |
|---|
| 61 | INTEGER(KIND=JPIM),ALLOCATABLE:: NGPLAT(:) |
|---|
| 62 | INTEGER(KIND=JPIM),ALLOCATABLE:: NUNIQUEGP(:) |
|---|
| 63 | |
|---|
| 64 | ! ---------------------------------------------------------------- |
|---|
| 65 | |
|---|
| 66 | !$OMP THREADPRIVATE(gaw,geclo,gelam,gelat,gemu,geslo,gm,gnordl,gnordlcl,gnordm,gnordmcl,gnordmcm,gomvrl) |
|---|
| 67 | !$OMP THREADPRIVATE(gomvrm,gsqm2,ngplat,nuniquegp,orog,orogl,orogll,oroglm,orogm,orogmm,rcori,rcoric) |
|---|
| 68 | END MODULE YOMGC |
|---|