source: LMDZ5/branches/testing/libf/phylmd/rrtm/yom_phys_grid.F90 @ 2056

Last change on this file since 2056 was 2056, checked in by Laurent Fairhead, 10 years ago

Merged trunk changes r1997:2055 into testing branch

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 4.4 KB
Line 
1MODULE YOM_PHYS_GRID
2
3USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
5IMPLICIT NONE
6SAVE
7
8PRIVATE
9PUBLIC 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
19INTEGER(KIND=JPIM), PARAMETER :: JPMXNEI=36 ! maximum number of neighbouring
20                                            ! points for averaging or
21                                            ! interpolation
22                                             
23TYPE 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
50END TYPE PHYS_GRID_STRUCT
51
52TYPE(PHYS_GRID_STRUCT) :: PHYS_GRID, DYN_GRID
53
54TYPE 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
75END TYPE SL_STRUCT
76
77TYPE(SL_STRUCT) :: DYN_SL
78TYPE(SL_STRUCT) :: PHYS_SL
79
80 
81TYPE 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
97END TYPE TYPE_PHYS_POINT
98
99TYPE(TYPE_PHYS_POINT),ALLOCATABLE :: YPHYPOI(:)
100
101TYPE 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
108END TYPE TYPE_DYN_POINT
109
110TYPE(TYPE_DYN_POINT),ALLOCATABLE :: YDYNPOI(:)
111 
112!$OMP THREADPRIVATE(dyn_grid,dyn_sl,phys_grid,phys_sl)
113!$OMP THREADPRIVATE(ydynpoi,yphypoi)
114END MODULE YOM_PHYS_GRID
Note: See TracBrowser for help on using the repository browser.