13 USE yomhook
,ONLY : lhook, dr_hook
14 USE parkind1
,ONLY : jprb
22 pwest,psouth,pdlon,pdlat,ppolon,ppolat, &
23 klon,klat,kl,plon,plat )
46 REAL,
INTENT(IN) :: pwest
47 REAL,
INTENT(IN) :: psouth
48 REAL,
INTENT(IN) :: pdlon
49 REAL,
INTENT(IN) :: pdlat
50 REAL,
INTENT(IN) :: ppolon
51 REAL,
INTENT(IN) :: ppolat
52 INTEGER,
INTENT(IN) :: klon
53 INTEGER,
INTENT(IN) :: klat
54 INTEGER,
INTENT(IN) :: kl
55 REAL,
DIMENSION(:),
INTENT(IN) :: plon
56 REAL,
DIMENSION(:),
INTENT(IN) :: plat
57 REAL,
DIMENSION(:),
POINTER :: pgrid_par
58 REAL(KIND=JPRB) :: zhook_handle
65 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:PUT_GRIDTYPE_LONLAT_ROT',0,zhook_handle)
66 ALLOCATE(pgrid_par(9+2*kl))
73 pgrid_par(7) = float(klon)
74 pgrid_par(8) = float(klat)
75 pgrid_par(9) = float(kl)
76 pgrid_par(10:9+kl) = plon(:)
77 pgrid_par(10+kl:9+2*kl) = plat(:)
78 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:PUT_GRIDTYPE_LONLAT_ROT',1,zhook_handle)
86 pwest,psouth,pdlon,pdlat,ppolon,ppolat, &
87 klon,klat,kl,plon,plat )
110 REAL,
DIMENSION(:),
INTENT(IN) :: pgrid_par
111 REAL,
INTENT(OUT),
OPTIONAL :: pwest
112 REAL,
INTENT(OUT),
OPTIONAL :: psouth
113 REAL,
INTENT(OUT),
OPTIONAL :: pdlon
114 REAL,
INTENT(OUT),
OPTIONAL :: pdlat
115 REAL,
INTENT(OUT),
OPTIONAL :: ppolon
116 REAL,
INTENT(OUT),
OPTIONAL :: ppolat
117 INTEGER,
INTENT(OUT),
OPTIONAL :: klon
118 INTEGER,
INTENT(OUT),
OPTIONAL :: klat
119 INTEGER,
INTENT(OUT),
OPTIONAL :: kl
120 REAL,
DIMENSION(:),
INTENT(OUT),
OPTIONAL :: plon
121 REAL,
DIMENSION(:),
INTENT(OUT),
OPTIONAL :: plat
127 INTEGER :: ilon, ilat
129 REAL(KIND=JPRB) :: zhook_handle
131 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:GET_GRIDTYPE_LONLAT_ROT',0,zhook_handle)
132 ilon = nint(pgrid_par(7))
133 ilat = nint(pgrid_par(8))
134 il = nint(pgrid_par(9))
136 IF (present(pwest )) pwest = pgrid_par(1)
137 IF (present(psouth )) psouth = pgrid_par(2)
138 IF (present(pdlon )) pdlon = pgrid_par(3)
139 IF (present(pdlat )) pdlat = pgrid_par(4)
140 IF (present(ppolon )) ppolon = pgrid_par(5)
141 IF (present(ppolat )) ppolat = pgrid_par(6)
142 IF (present(klon )) klon = ilon
143 IF (present(klat )) klat = ilat
144 IF (present(kl )) kl = il
145 IF (present(plon )) plon(:) = pgrid_par(10:9+il)
146 IF (present(plat )) plat(:) = pgrid_par(10+il:9+2*il)
147 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:GET_GRIDTYPE_LONLAT_ROT',1,zhook_handle)
155 klon,klat,plon,plat )
176 USE modi_regrot_lonlat_rot
182 REAL,
INTENT(IN) :: pwest
183 REAL,
INTENT(IN) :: psouth
184 REAL,
INTENT(IN) :: pdlon
185 REAL,
INTENT(IN) :: pdlat
186 REAL,
INTENT(IN) :: ppolon
187 REAL,
INTENT(IN) :: ppolat
188 INTEGER,
INTENT(IN) :: klon
189 INTEGER,
INTENT(IN) :: klat
190 REAL,
DIMENSION(:),
INTENT(OUT) :: plon,plat
197 INTEGER :: jlon, jlat
201 REAL,
DIMENSION(:),
ALLOCATABLE :: zlatrot
202 REAL,
DIMENSION(:),
ALLOCATABLE :: zlonrot
205 REAL(KIND=JPRB) :: zhook_handle
208 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:LATLON_LONLAT_ROT',0,zhook_handle)
212 ALLOCATE(zlatrot(kl))
213 ALLOCATE(zlonrot(kl))
218 jl = jlon + klon * (jlat-1)
219 zlatrot(jl) = psouth + pdlat * (jlat-1)
220 zlonrot(jl) = pwest + pdlon * (jlon-1)
228 WHERE (plon(:)>180.) plon(:)=plon(:)-360.
229 WHERE (plon(:)<-180.) plon(:)=plon(:)+360.
231 IF (lhook) CALL dr_hook(
'MODE_GRIDTYPE_LONLAT_ROT:LATLON_LONLAT_ROT',1,zhook_handle)
subroutine get_gridtype_lonlat_rot(PGRID_PAR, PWEST, PSOUTH, PDLON, PDLAT, PPOLON, PPOLAT, KLON, KLAT, KL, PLON, PLAT)
subroutine latlon_lonlat_rot(PWEST, PSOUTH, PDLON, PDLAT, PPOLON, PPOLAT, KLON, KLAT, PLON, PLAT)
subroutine regrot_lonlat_rot(PXREG, PYREG, PXROT, PYROT, KXDIM, KYDIM, KX, KY, PXCEN, PYCEN, KCALL)
subroutine put_gridtype_lonlat_rot(PGRID_PAR, PWEST, PSOUTH, PDLON, PDLAT, PPOLON, PPOLAT, KLON, KLAT, KL, PLON, PLAT)