6 SUBROUTINE prep_isba_cc_extern (GCP,HPROGRAM,HSURF,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,KLUOUT,PFIELD,OPREP_AGS)
37 USE modi_prep_grid_extern
39 USE modi_open_aux_io_surf
40 USE modi_close_aux_io_surf
41 USE modi_make_choice_array
52 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
53 CHARACTER(LEN=8),
INTENT(IN) :: HSURF
54 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
55 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
56 CHARACTER(LEN=28),
INTENT(IN) :: HFILEPGD
57 CHARACTER(LEN=6),
INTENT(IN) :: HFILEPGDTYPE
58 INTEGER,
INTENT(IN) :: KLUOUT
59 REAL,
DIMENSION(:,:,:),
POINTER :: PFIELD
60 LOGICAL,
INTENT(INOUT):: OPREP_AGS
64 REAL,
DIMENSION(:),
ALLOCATABLE :: ZMASK
66 CHARACTER(LEN=12) :: YRECFM
70 CHARACTER(LEN=3) :: YPHOTO
71 CHARACTER(LEN=3) :: YRESPSL
72 CHARACTER(LEN=4) :: YLVL
78 INTEGER :: IVERSION, IBUGFIX
79 INTEGER :: IWORK,INBIOMASS,INLITTER, &
80 INLITTLEVS,INSOILCARB, JP, JL
84 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_CC_EXTERN',0,zhook_handle)
107 CALL read_surf(hfilepgdtype,yrecfm,iversion,iresp)
110 IF (iversion>=7)
THEN 112 CALL read_surf(hfilepgdtype,yrecfm,zmask,iresp,hdir=
'A')
121 CALL read_surf(hfilepgdtype,yrecfm,iversion,iresp)
123 CALL read_surf(hfiletype,yrecfm,ibugfix,iresp)
124 gdim = (iversion>8 .OR. iversion==8 .AND. ibugfix>0)
125 IF (gdim)
CALL read_surf(hfiletype,
'SPLIT_PATCH',gdim,iresp)
138 CALL read_surf(hfilepgdtype,yrecfm,yphoto,iresp,hdir=
'-')
139 yrecfm=
'PATCH_NUMBER' 140 CALL read_surf(hfilepgdtype,yrecfm,ipatch,iresp,hdir=
'-')
143 IF(iversion<8.OR.(yphoto/=
'NIT'.AND.yphoto/=
'NCB'))
THEN 145 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_CC_EXTERN',1,zhook_handle)
154 CALL read_surf(hfilepgdtype,yrecfm,inbiomass,iresp,hdir=
'-')
156 IF (yphoto==
'NIT' .OR. yphoto==
'NCB')
THEN 157 ALLOCATE(pfield(ini,inbiomass,ipatch))
160 DO jnbiomass=1,inbiomass
161 WRITE(ylvl,
'(I1)') jnbiomass
162 yrecfm=
'BIOMA'//adjustl(ylvl(:len_trim(ylvl)))
163 CALL make_choice_array(hfiletype, ipatch, gdim, yrecfm, pfield(:,jnbiomass,:),hdir=
'E')
166 DO jp=1,
SIZE(pfield,3)
167 DO jl=1,
SIZE(pfield,2)
168 WHERE (zmask(:)==0.) pfield(:,jl,jp) =
xundef 178 CALL read_surf(hfiletype,yrecfm,yrespsl,iresp,hdir=
'-')
179 IF(yrespsl==
'CNT')
THEN 181 CALL read_surf(hfiletype,yrecfm,inlitter,iresp,hdir=
'-')
183 CALL read_surf(hfiletype,yrecfm,inlittlevs,iresp,hdir=
'-')
184 ALLOCATE(pfield(ini,inlitter*inlittlevs,ipatch))
187 DO jnlitter=1,inlitter
188 DO jnlittlevs=1,inlittlevs
190 WRITE(ylvl,
'(I1,A1,I1)') jnlitter,
'_',jnlittlevs
191 yrecfm=
'LITTER'//adjustl(ylvl(:len_trim(ylvl)))
192 CALL make_choice_array(hfiletype, ipatch, gdim, yrecfm, pfield(:,iwork,:),hdir=
'E')
195 DO jp=1,
SIZE(pfield,3)
196 DO jl=1,
SIZE(pfield,2)
197 WHERE (zmask(:)==0.) pfield(:,jl,jp) =
xundef 208 CALL read_surf(hfiletype,yrecfm,yrespsl,iresp,hdir=
'-')
209 IF(yrespsl==
'CNT')
THEN 211 CALL read_surf(hfiletype,yrecfm,insoilcarb,iresp,hdir=
'-')
212 ALLOCATE(pfield(ini,insoilcarb,ipatch))
214 DO jnsoilcarb=1,insoilcarb
215 WRITE(ylvl,
'(I4)') jnsoilcarb
216 yrecfm=
'SOILCARB'//adjustl(ylvl(:len_trim(ylvl)))
217 CALL make_choice_array(hfiletype, ipatch, gdim, yrecfm, pfield(:,jnsoilcarb,:),hdir=
'E')
219 DO jp=1,
SIZE(pfield,3)
220 DO jl=1,
SIZE(pfield,2)
221 WHERE (zmask(:)==0.) pfield(:,jl,jp) =
xundef 232 CALL read_surf(hfiletype,yrecfm,yrespsl,iresp,hdir=
'-')
233 IF(yrespsl==
'CNT')
THEN 235 CALL read_surf(hfiletype,yrecfm,inlittlevs,iresp,hdir=
'-')
236 ALLOCATE(pfield(ini,inlittlevs,ipatch))
238 DO jnlittlevs=1,inlittlevs
239 WRITE(ylvl,
'(I4)') jnlittlevs
240 yrecfm=
'LIGNIN_STR'//adjustl(ylvl(:len_trim(ylvl)))
241 CALL make_choice_array(hfiletype, ipatch, gdim, yrecfm, pfield(:,jnlittlevs,:),hdir=
'E')
243 DO jp=1,
SIZE(pfield,3)
244 DO jl=1,
SIZE(pfield,2)
245 WHERE (zmask(:)==0.) pfield(:,jl,jp) =
xundef 262 IF (
lhook)
CALL dr_hook(
'PREP_ISBA_CC_EXTERN',1,zhook_handle)
character(len=10) cingrid_type
subroutine make_choice_array(HPROGRAM, KNPATCH, ODIM, HRECFM, PWORK, HDIR, KPATCH)
character(len=6) cinterp_type
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine prep_isba_cc_extern(GCP, HPROGRAM, HSURF, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, PFIELD, OPREP_AGS)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)