7 hprogram,hsurf,kluout,pfield)
41 USE modi_prep_buffer_grid
50 USE modi_oi_hor_extrapol_surf
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
65 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
68 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
69 CHARACTER(LEN=7),
INTENT(IN) :: hsurf
70 INTEGER,
INTENT(IN) :: kluout
71 REAL,
DIMENSION(:,:,:),
POINTER :: pfield
76 CHARACTER(LEN=6) :: yinmodel
77 REAL,
DIMENSION(:,:),
POINTER :: zfield
78 REAL,
DIMENSION(:),
POINTER :: zfield1d
79 REAL,
DIMENSION(:,:),
POINTER :: zd
80 REAL,
DIMENSION(:),
POINTER :: zlsm
81 REAL,
DIMENSION(:),
POINTER :: zalt
82 REAL,
ALLOCATABLE,
DIMENSION(:) :: zfield_ep
83 REAL,
ALLOCATABLE,
DIMENSION(:) :: zfield_ep_in
84 REAL,
ALLOCATABLE,
DIMENSION(:) :: zlsm_nature
85 REAL,
ALLOCATABLE,
DIMENSION(:) :: zalt_nature
86 LOGICAL,
ALLOCATABLE,
DIMENSION(:) :: ointerp
88 REAL(KIND=JPRB) :: zhook_handle
95 IF (lhook) CALL dr_hook(
'PREP_ISBA_BUFFER',0,zhook_handle)
111 SELECT CASE(yinmodel)
114 IF ( lextrap_tg )
THEN
115 IF (
SIZE(u%NR_NATURE) /= u%NSIZE_NATURE )
THEN
116 CALL
abor1_sfx(
'ABORT: PREP_ISBA_BUFFER - DIFFERENT SIZES')
119 ALLOCATE(zfield_ep(u%NSIZE_NATURE))
120 ALLOCATE(zfield_ep_in(u%NSIZE_NATURE))
121 ALLOCATE(ointerp(u%NSIZE_NATURE))
122 ALLOCATE(zlsm_nature(u%NSIZE_NATURE))
123 ALLOCATE(zalt_nature(u%NSIZE_NATURE))
134 DO ilayer=1,
SIZE(zfield,2)
135 WRITE(kluout,*)
'Extrapolating TG from nearest land point in points where LSM < 0.5. LAYER:',ilayer
141 DO ii=1,u%NSIZE_NATURE
142 IF ( zlsm_nature(ii) < 0.5 )
THEN
144 zfield_ep(ii) = xundef
148 zfield_ep_in(:) = zfield_ep(:)
151 ig%XLAT,ig%XLON,zfield_ep(:),ointerp,pzs=zalt,ndim2=10)
157 DEALLOCATE(zfield_ep)
158 DEALLOCATE(zfield_ep_in)
159 DEALLOCATE(zlsm_nature)
160 DEALLOCATE(zalt_nature)
170 SELECT CASE(yinmodel)
171 CASE(
'ARPEGE',
'ALADIN',
'MOCAGE')
173 IF ( lextrap_wg )
THEN
174 IF (
SIZE(u%NR_NATURE) /= u%NSIZE_NATURE )
THEN
175 CALL
abor1_sfx(
'ABORT: PREP_ISBA_BUFFER - DIFFERENT SIZES')
178 ALLOCATE(zfield_ep(u%NSIZE_NATURE))
179 ALLOCATE(zfield_ep_in(u%NSIZE_NATURE))
180 ALLOCATE(ointerp(u%NSIZE_NATURE))
181 ALLOCATE(zlsm_nature(u%NSIZE_NATURE))
190 DO ilayer=1,
SIZE(zfield,2)
191 WRITE(kluout,*)
'Extrapolating WG from nearest land point in points where LSM < 0.5. LAYER:',ilayer
198 DO ii=1,u%NSIZE_NATURE
199 IF ( zlsm_nature(ii) < 0.5 )
THEN
201 zfield_ep(ii) = xundef
205 zfield_ep_in(:) = zfield_ep
208 ig%XLAT,ig%XLON,zfield_ep(:),ointerp,ndim2=10)
214 DEALLOCATE(zfield_ep)
215 DEALLOCATE(zfield_ep_in)
216 DEALLOCATE(zlsm_nature)
229 SELECT CASE(yinmodel)
232 IF ( lextrap_wgi )
THEN
234 IF (
SIZE(u%NR_NATURE) /= u%NSIZE_NATURE )
THEN
235 CALL
abor1_sfx(
'ABORT: PREP_ISBA_BUFFER - DIFFERENT SIZES')
239 ALLOCATE(zfield_ep(u%NSIZE_NATURE))
240 ALLOCATE(zfield_ep_in(u%NSIZE_NATURE))
241 ALLOCATE(ointerp(u%NSIZE_NATURE))
242 ALLOCATE(zlsm_nature(u%NSIZE_NATURE))
251 DO ilayer=1,
SIZE(zfield,2)
252 WRITE(kluout,*)
'Extrapolating WGI from nearest land point in points where LSM < 0.5. LAYER:',ilayer
258 DO ii=1,u%NSIZE_NATURE
259 IF ( zlsm_nature(ii) < 0.5 )
THEN
261 zfield_ep(ii) = xundef
265 zfield_ep_in(:) = zfield_ep
268 ig%XLAT,ig%XLON,zfield_ep(:),ointerp,ndim2=10)
274 DEALLOCATE(zfield_ep)
275 DEALLOCATE(zfield_ep_in)
276 DEALLOCATE(zlsm_nature)
287 ALLOCATE(pfield(nni,1,1))
288 pfield(:,:,:) = xwr_def
291 ALLOCATE(pfield(nni,1,1))
292 pfield(:,:,:) = xundef
299 ALLOCATE(pfield(
SIZE(zfield1d,1),1,1))
300 pfield(:,1,1)=zfield1d(:)
304 ALLOCATE(pfield(nni,1,1))
308 CALL
abor1_sfx(
'PREP_ISBA_BUFFER: '//trim(hsurf)//
" initialization not implemented !")
315 cinterp_type=
'BUFFER'
321 IF (lhook) CALL dr_hook(
'PREP_ISBA_BUFFER',1,zhook_handle)
329 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zout
330 REAL(KIND=JPRB) :: zhook_handle
336 IF (lhook) CALL dr_hook(
'SOIL_PROFILE_BUFFER',0,zhook_handle)
337 ALLOCATE(zout(
SIZE(zfield,1),
SIZE(xgrid_soil)))
341 ALLOCATE(pfield(
SIZE(zfield,1),
SIZE(xgrid_soil),1))
342 pfield(:,:,1)=zout(:,:)
347 IF (lhook) CALL dr_hook(
'SOIL_PROFILE_BUFFER',1,zhook_handle)
subroutine read_buffer_wgi(KLUOUT, HINMODEL, PFIELD, PD)
subroutine read_buffer_tg(KLUOUT, HINMODEL, PFIELD, PD)
subroutine read_buffer_land_mask(KLUOUT, HINMODEL, PMASK)
subroutine read_buffer_wg(KLUOUT, HINMODEL, PFIELD, PD)
subroutine prep_isba_buffer(IG, U, HPROGRAM, HSURF, KLUOUT, PFIELD)
subroutine prep_buffer_grid(KLUOUT, HINMODEL, TPTIME_BUF)
subroutine abor1_sfx(YTEXT)
subroutine read_buffer_zs(KLUOUT, HINMODEL, PFIELD)
subroutine soil_profile_buffer