7 hprogram,hinifile,hinifiletype)
60 USE modd_prep, ONLY : cingrid_type, cinterp_type, linterp
63 USE modi_open_aux_io_surf
64 USE modi_prep_grid_extern
65 USE modi_prep_output_grid
67 USE modi_close_aux_io_surf
69 USE modi_get_type_dim_n
70 USE modi_read_pgd_isba_par_n
71 USE modi_clean_prep_output_grid
74 USE yomhook
,ONLY : lhook, dr_hook
75 USE parkind1
,ONLY : jprb
86 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
87 TYPE(isba_t
),
INTENT(INOUT) :: i
91 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
92 CHARACTER(LEN=28),
INTENT(IN) :: hinifile
93 CHARACTER(LEN=6),
INTENT(IN) :: hinifiletype
98 INTEGER :: iversion, ibugfix
103 REAL,
DIMENSION(:),
ALLOCATABLE :: zfield
104 REAL,
DIMENSION(:,:),
POINTER :: zsand
105 REAL,
DIMENSION(:,:),
POINTER :: zclay
106 REAL,
DIMENSION(:,:),
POINTER :: zrunoffb
107 REAL,
DIMENSION(:,:),
POINTER :: zwdrain
108 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zoutb
109 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zoutw
110 REAL(KIND=JPRB) :: zhook_handle
112 IF (lhook) CALL dr_hook(
'ZOOM_PGD_ISBA_FULL',0,zhook_handle)
123 hinifile,hinifiletype,
'FULL ')
126 hinifiletype,
'VERSION',iversion,iresp)
128 hinifiletype,
'BUG',ibugfix,iresp)
136 hinifiletype,iluout,cingrid_type,cinterp_type,ini)
139 iluout,ig%CGRID,ig%XGRID_PAR,ig%XLAT,ig%XLON)
147 ALLOCATE(zfield(ini))
149 ALLOCATE(zsand(ini,i%NGROUND_LAYER))
151 hprogram,
'SAND',zfield,iresp,hdir=
'A')
152 DO jlayer=1,i%NGROUND_LAYER
153 zsand(:,jlayer) = zfield(:)
156 ALLOCATE(zclay(ini,i%NGROUND_LAYER))
158 hprogram,
'CLAY',zfield,iresp,hdir=
'A')
159 DO jlayer=1,i%NGROUND_LAYER
160 zclay(:,jlayer) = zfield(:)
165 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN
167 hprogram,
'SOCP',i%LSOCP,iresp)
174 ALLOCATE(i%XSOC (ini,i%NGROUND_LAYER))
177 hprogram,
'SOC_TOP',i%XSOC(:,1),iresp)
179 hprogram,
'SOC_SUB',i%XSOC(:,2),iresp)
181 DO jlayer=2,i%NGROUND_LAYER
182 i%XSOC (:,jlayer)=i%XSOC (:,2)
187 ALLOCATE(i%XSOC (0,1))
193 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN
195 hprogram,
'PERMAFROST',i%LPERM,iresp)
202 ALLOCATE(i%XPERM (ini))
204 hprogram,
'PERM',i%XPERM(:),iresp)
208 ALLOCATE(i%XPERM (0))
214 IF (iversion>=8)
THEN
216 hprogram,
'GWKEY',i%LGW,iresp)
223 ALLOCATE(i%XGW (ini))
225 hprogram,
'GWFRAC',i%XGW(:),iresp)
233 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3))
THEN
235 hprogram,
'NO',i%LNOF,iresp)
242 IF (chi%LCH_NO_FLUX)
THEN
248 hprogram,
'PH',i%XPH(:),iresp)
250 ALLOCATE(i%XFERT(ini))
252 hprogram,
'FERT',i%XFERT(:),iresp)
255 CALL
abor1_sfx(
"READ_PGD_ISBAn: WITH LCH_NO_FLUX=T, PH AND FERT FIELDS ARE GIVEN AT PGD STEP")
263 ALLOCATE(zrunoffb(ini,1))
265 hprogram,
'RUNOFFB',zfield,iresp,hdir=
'A')
266 zrunoffb(:,1) = zfield(:)
268 ALLOCATE(zwdrain(ini,1))
270 hprogram,
'WDRAIN',zfield,iresp,hdir=
'A')
271 zwdrain(:,1) = zfield(:)
287 iluout,zsand,i%XSAND)
289 iluout,zclay,i%XCLAY)
290 ALLOCATE(zoutb(
SIZE(i%XRUNOFFB),1))
292 iluout,zrunoffb,zoutb)
293 i%XRUNOFFB(:) = zoutb(:,1)
295 ALLOCATE(zoutw(
SIZE(i%XWDRAIN),1))
297 iluout,zwdrain,zoutw)
298 i%XWDRAIN(:) = zoutw(:,1)
305 hprogram,ini,.false.,hdir=
'A')
310 IF (lhook) CALL dr_hook(
'ZOOM_PGD_ISBA_FULL',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine zoom_pgd_isba_full(CHI, DTCO, DTI, IG, I, UG, U, HPROGRAM, HINIFILE, HINIFILETYPE)
subroutine clean_prep_output_grid
subroutine read_pgd_isba_par_n(DTCO, U, DTI, IG, I, HPROGRAM, KSIZE, OLAND_USE, HDIR)
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine abor1_sfx(YTEXT)
subroutine hor_interpol(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine prep_grid_extern(HFILETYPE, KLUOUT, HGRIDTYPE, HINTERP_TYPE, KNI)
subroutine prep_output_grid(UG, U, KLUOUT, HGRID, PGRID_PAR, PLAT, PLON)