6 SUBROUTINE zoom_pgd_isba_full (CHI, DTCO, DTV, IG, IO, S, K, UG, U, GCP, &
7 HPROGRAM,HINIFILE,HINIFILETYPE)
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
87 TYPE(
grid_t),
INTENT(INOUT) :: IG
95 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
96 CHARACTER(LEN=28),
INTENT(IN) :: HINIFILE
97 CHARACTER(LEN=6),
INTENT(IN) :: HINIFILETYPE
102 TYPE(
date) :: TDATE_BEG, TDATE_END
104 INTEGER :: IVERSION, IBUGFIX
109 REAL,
DIMENSION(:),
ALLOCATABLE :: ZFIELD
110 REAL,
DIMENSION(:,:),
POINTER :: ZSAND
111 REAL,
DIMENSION(:,:),
POINTER :: ZCLAY
112 REAL,
DIMENSION(:,:),
POINTER :: ZRUNOFFB
113 REAL,
DIMENSION(:,:),
POINTER :: ZWDRAIN
114 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZOUTB
115 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZOUTW
116 REAL(KIND=JPRB) :: ZHOOK_HANDLE
118 IF (
lhook)
CALL dr_hook(
'ZOOM_PGD_ISBA_FULL',0,zhook_handle)
130 CALL read_surf(hinifiletype,
'VERSION',iversion,iresp)
131 CALL read_surf(hinifiletype,
'BUG',ibugfix,iresp)
148 ALLOCATE(zfield(ini))
150 ALLOCATE(zsand(ini,io%NGROUND_LAYER))
151 CALL read_surf(hprogram,
'SAND',zfield,iresp,hdir=
'A')
152 DO jlayer=1,io%NGROUND_LAYER
153 zsand(:,jlayer) = zfield(:)
156 ALLOCATE(zclay(ini,io%NGROUND_LAYER))
157 CALL read_surf(hprogram,
'CLAY',zfield,iresp,hdir=
'A')
158 DO jlayer=1,io%NGROUND_LAYER
159 zclay(:,jlayer) = zfield(:)
164 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 165 CALL read_surf(hprogram,
'SOCP',io%LSOCP,iresp)
172 ALLOCATE(s%XSOC (ini,io%NGROUND_LAYER))
174 CALL read_surf(hprogram,
'SOC_TOP',s%XSOC(:,1),iresp)
175 CALL read_surf(hprogram,
'SOC_SUB',s%XSOC(:,2),iresp)
177 DO jlayer=2,io%NGROUND_LAYER
178 s%XSOC (:,jlayer)=s%XSOC (:,2)
183 ALLOCATE(s%XSOC (0,1))
189 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 190 CALL read_surf(hprogram,
'PERMAFROST',io%LPERM,iresp)
197 ALLOCATE(k%XPERM (ini))
198 CALL read_surf(hprogram,
'PERM',k%XPERM(:),iresp)
202 ALLOCATE(k%XPERM (0))
208 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3))
THEN 209 CALL read_surf(hprogram,
'NO',io%LNOF,iresp)
214 IF (chi%LCH_NO_FLUX)
THEN 219 CALL read_surf(hprogram,
'PH',s%XPH(:),iresp,hdir=
'A')
221 ALLOCATE(s%XFERT(ini))
222 CALL read_surf(hprogram,
'FERT',s%XFERT(:),iresp,hdir=
'A')
225 CALL abor1_sfx(
"READ_PGD_ISBAn: WITH LCH_NO_FLUX=T, PH AND FERT FIELDS ARE GIVEN AT PGD STEP" 233 ALLOCATE(zrunoffb(ini,1))
234 CALL read_surf(hprogram,
'RUNOFFB',zfield,iresp,hdir=
'A')
235 zrunoffb(:,1) = zfield(:)
237 ALLOCATE(zwdrain(ini,1))
238 CALL read_surf(hprogram,
'WDRAIN',zfield,iresp,hdir=
'A')
239 zwdrain(:,1) = zfield(:)
258 ALLOCATE(zoutb(
SIZE(k%XRUNOFFB),1))
260 k%XRUNOFFB(:) = zoutb(:,1)
262 ALLOCATE(zoutw(
SIZE(k%XWDRAIN),1))
264 k%XWDRAIN(:) = zoutw(:,1)
269 tdate_beg%YEAR = 2016
272 tdate_end%YEAR = 2016
276 hprogram,ini,.false.,tdate_beg, tdate_end, hdir
'A' 281 IF (
lhook)
CALL dr_hook(
'ZOOM_PGD_ISBA_FULL',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
character(len=10) cingrid_type
subroutine read_pgd_isba_par_n(DTCO, U, GCP, DTI, KDIM, IO, HPROG
subroutine clean_prep_output_grid
character(len=6) cinterp_type
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine abor1_sfx(YTEXT)
logical, dimension(:), allocatable linterp
subroutine hor_interpol(DTCO, U, GCP, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine prep_output_grid(UG, G, KSIZE_FULL, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine zoom_pgd_isba_full(CHI, DTCO, DTV, IG, IO, S, K, UG, U
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)