8 hprogram,psea,pwater,hinifile,hinifiletype)
54 USE modd_prep, ONLY : cingrid_type, cinterp_type, linterp
57 USE modi_open_aux_io_surf
59 USE modi_close_aux_io_surf
60 USE modi_prep_grid_extern
62 USE modi_prep_output_grid
65 USE yomhook
,ONLY : lhook, dr_hook
66 USE parkind1
,ONLY : jprb
68 USE modi_clean_prep_output_grid
84 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
85 REAL,
DIMENSION(:),
INTENT(IN) :: psea
86 REAL,
DIMENSION(:),
INTENT(IN) :: pwater
87 CHARACTER(LEN=28),
INTENT(IN) :: hinifile
88 CHARACTER(LEN=6),
INTENT(IN) :: hinifiletype
98 REAL,
DIMENSION(:),
POINTER :: zzs
99 REAL,
DIMENSION(:),
POINTER :: zavg_zs
100 REAL,
DIMENSION(:),
POINTER :: zsil_zs
101 REAL,
DIMENSION(:),
POINTER :: zsso_stdev
102 REAL,
DIMENSION(:),
POINTER :: zmin_zs
103 REAL,
DIMENSION(:),
POINTER :: zmax_zs
104 REAL,
DIMENSION(:),
POINTER :: zsso_anis
105 REAL,
DIMENSION(:),
POINTER :: zsso_dir
106 REAL,
DIMENSION(:),
POINTER :: zsso_slope
107 REAL,
DIMENSION(:),
POINTER :: zaosip
108 REAL,
DIMENSION(:),
POINTER :: zaosim
109 REAL,
DIMENSION(:),
POINTER :: zaosjp
110 REAL,
DIMENSION(:),
POINTER :: zaosjm
111 REAL,
DIMENSION(:),
POINTER :: zho2ip
112 REAL,
DIMENSION(:),
POINTER :: zho2im
113 REAL,
DIMENSION(:),
POINTER :: zho2jp
114 REAL,
DIMENSION(:),
POINTER :: zho2jm
115 CHARACTER(LEN=12) :: yrecfm
116 REAL(KIND=JPRB) :: zhook_handle
118 IF (lhook) CALL dr_hook(
'ZOOM_PGD_OROGRAPHY',0,zhook_handle)
129 hinifile,hinifiletype,
'FULL ')
137 hinifiletype,iluout,cingrid_type,cinterp_type,ini)
140 iluout,ug%CGRID,ug%XGRID_PAR,ug%XLAT,ug%XLON)
149 ALLOCATE(zavg_zs(ini))
150 ALLOCATE(zsil_zs(ini))
151 ALLOCATE(zsso_stdev(ini))
152 ALLOCATE(zmin_zs(ini))
153 ALLOCATE(zmax_zs(ini))
155 ALLOCATE(zsso_anis(ini))
156 ALLOCATE(zsso_dir(ini))
157 ALLOCATE(zsso_slope(ini))
159 ALLOCATE(zaosip(ini))
160 ALLOCATE(zaosim(ini))
161 ALLOCATE(zaosjp(ini))
162 ALLOCATE(zaosjm(ini))
163 ALLOCATE(zho2ip(ini))
164 ALLOCATE(zho2im(ini))
165 ALLOCATE(zho2jp(ini))
166 ALLOCATE(zho2jm(ini))
170 hprogram,yrecfm,zzs,iresp,hdir=
'A')
174 hprogram,yrecfm,zavg_zs,iresp,hdir=
'A')
177 hprogram,yrecfm,zsil_zs,iresp,hdir=
'A')
180 hprogram,yrecfm,zsso_stdev,iresp,hdir=
'A')
183 hprogram,yrecfm,zmin_zs,iresp,hdir=
'A')
186 hprogram,yrecfm,zmax_zs,iresp,hdir=
'A')
190 hprogram,yrecfm,zsso_anis,iresp,hdir=
'A')
193 hprogram,yrecfm,zsso_dir,iresp,hdir=
'A')
196 hprogram,yrecfm,zsso_slope,iresp,hdir=
'A')
200 hprogram,yrecfm,zaosip,iresp,hdir=
'A')
203 hprogram,yrecfm,zaosim,iresp,hdir=
'A')
206 hprogram,yrecfm,zaosjp,iresp,hdir=
'A')
209 hprogram,yrecfm,zaosjm,iresp,hdir=
'A')
212 hprogram,yrecfm,zho2ip,iresp,hdir=
'A')
215 hprogram,yrecfm,zho2im,iresp,hdir=
'A')
218 hprogram,yrecfm,zho2jp,iresp,hdir=
'A')
221 hprogram,yrecfm,zho2jm,iresp,hdir=
'A')
233 ALLOCATE(uss%XAVG_ZS (il))
234 ALLOCATE(uss%XSIL_ZS (il))
235 ALLOCATE(uss%XSSO_STDEV (il))
236 ALLOCATE(uss%XMIN_ZS (il))
237 ALLOCATE(uss%XMAX_ZS (il))
239 ALLOCATE(uss%XSSO_ANIS (il))
240 ALLOCATE(uss%XSSO_DIR (il))
241 ALLOCATE(uss%XSSO_SLOPE (il))
243 ALLOCATE(uss%XAOSIP (il))
244 ALLOCATE(uss%XAOSIM (il))
245 ALLOCATE(uss%XAOSJP (il))
246 ALLOCATE(uss%XAOSJM (il))
247 ALLOCATE(uss%XHO2IP (il))
248 ALLOCATE(uss%XHO2IM (il))
249 ALLOCATE(uss%XHO2JP (il))
250 ALLOCATE(uss%XHO2JM (il))
252 CALL
zoom(iluout,zzs,u%XZS)
253 CALL
zoom(iluout,zavg_zs,uss%XAVG_ZS)
254 CALL
zoom(iluout,zsil_zs,uss%XSIL_ZS)
255 CALL
zoom(iluout,zmin_zs,uss%XMIN_ZS)
256 CALL
zoom(iluout,zmax_zs,uss%XMAX_ZS)
258 linterp(:)=(psea(:)<1.)
259 CALL
zoom(iluout,zsso_stdev,uss%XSSO_STDEV)
260 CALL
zoom(iluout,zsso_anis,uss%XSSO_ANIS)
261 CALL
zoom(iluout,zsso_dir,uss%XSSO_DIR)
262 CALL
zoom(iluout,zsso_slope,uss%XSSO_SLOPE)
263 CALL
zoom(iluout,zaosip,uss%XAOSIP)
264 CALL
zoom(iluout,zaosim,uss%XAOSIM)
265 CALL
zoom(iluout,zaosjp,uss%XAOSJP)
266 CALL
zoom(iluout,zaosjm,uss%XAOSJM)
267 CALL
zoom(iluout,zho2ip,uss%XHO2IP)
268 CALL
zoom(iluout,zho2im,uss%XHO2IM)
269 CALL
zoom(iluout,zho2jp,uss%XHO2JP)
270 CALL
zoom(iluout,zho2jm,uss%XHO2JM)
274 WHERE(psea==1.) u%XZS=0.
275 WHERE(psea(:)==1.) uss%XSSO_STDEV(:) = xundef
276 WHERE(pwater(:)==1.) uss%XSSO_STDEV(:) = 0.
277 WHERE(psea(:)>0.) uss%XMIN_ZS(:) = 0.
278 WHERE(psea(:)==1.) uss%XMAX_ZS(:) = 0.
281 uss%XSSO_ANIS (:) = xundef
282 uss%XSSO_DIR (:) = xundef
283 uss%XSSO_SLOPE(:) = xundef
286 WHERE (pwater(:)==1.)
287 uss%XSSO_ANIS (:) = 1.
288 uss%XSSO_DIR (:) = 0.
289 uss%XSSO_SLOPE(:) = 0.
293 uss%XHO2IP(:) = xundef
294 uss%XHO2IM(:) = xundef
295 uss%XHO2JP(:) = xundef
296 uss%XHO2JM(:) = xundef
297 uss%XAOSIP(:) = xundef
298 uss%XAOSIM(:) = xundef
299 uss%XAOSJP(:) = xundef
300 uss%XAOSJM(:) = xundef
303 WHERE (pwater(:)==1.)
318 DEALLOCATE(zsso_stdev )
322 DEALLOCATE(zsso_anis )
323 DEALLOCATE(zsso_dir )
324 DEALLOCATE(zsso_slope )
337 IF (lhook) CALL dr_hook(
'ZOOM_PGD_OROGRAPHY',1,zhook_handle)
340 SUBROUTINE zoom(KLUOUT,PFIELDIN,PFIELDOUT)
341 INTEGER,
INTENT(IN) :: kluout
342 REAL,
DIMENSION(:),
POINTER :: pfieldin
343 REAL,
DIMENSION(:),
INTENT(OUT) :: pfieldout
344 REAL,
DIMENSION(:,:),
POINTER :: zfieldin
345 REAL,
DIMENSION(:,:),
POINTER :: zfieldout
346 REAL(KIND=JPRB) :: zhook_handle
347 IF (lhook) CALL dr_hook(
'ZOOM',0,zhook_handle)
348 ALLOCATE(zfieldin(
SIZE(pfieldin, 1),1))
349 ALLOCATE(zfieldout(
SIZE(pfieldout,1),1))
350 zfieldin(:,1) = pfieldin(:)
352 kluout,zfieldin,zfieldout)
353 pfieldout(:) = zfieldout(:,1)
354 DEALLOCATE(zfieldin )
355 DEALLOCATE(zfieldout)
356 IF (lhook) CALL dr_hook(
'ZOOM',1,zhook_handle)
subroutine zoom_pgd_orography(DTCO, UG, U, USS, HPROGRAM, PSEA, PWATER, HINIFILE, HINIFILETYPE)
subroutine clean_prep_output_grid
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine hor_interpol(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine zoom(KLUOUT, PFIELDIN, PFIELDOUT)
subroutine prep_grid_extern(HFILETYPE, KLUOUT, HGRIDTYPE, HINTERP_TYPE, KNI)
subroutine prep_output_grid(UG, U, KLUOUT, HGRID, PGRID_PAR, PLAT, PLON)