7 hprogram,hsurf,hfile,hfiletype,hfilepgd,hfilepgdtype,kluout,pfield,oprep_ags)
39 USE modi_prep_grid_extern
41 USE modi_open_aux_io_surf
42 USE modi_close_aux_io_surf
44 USE modd_prep, ONLY : cingrid_type, cinterp_type
47 USE yomhook
,ONLY : lhook, dr_hook
48 USE parkind1
,ONLY : jprb
56 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
57 CHARACTER(LEN=8),
INTENT(IN) :: hsurf
58 CHARACTER(LEN=28),
INTENT(IN) :: hfile
59 CHARACTER(LEN=6),
INTENT(IN) :: hfiletype
60 CHARACTER(LEN=28),
INTENT(IN) :: hfilepgd
61 CHARACTER(LEN=6),
INTENT(IN) :: hfilepgdtype
62 INTEGER,
INTENT(IN) :: kluout
63 REAL,
DIMENSION(:,:,:),
POINTER :: pfield
64 LOGICAL,
INTENT(INOUT):: oprep_ags
68 CHARACTER(LEN=12) :: yrecfm
72 CHARACTER(LEN=3) :: yphoto
73 CHARACTER(LEN=3) :: yrespsl
74 CHARACTER(LEN=4) :: ylvl
81 INTEGER :: iwork,inbiomass,inlitter, &
84 REAL(KIND=JPRB) :: zhook_handle
95 IF (lhook) CALL dr_hook(
'PREP_ISBA_CC_EXTERN',0,zhook_handle)
103 hfilepgd,hfilepgdtype,
'FULL ')
106 hfilepgdtype,kluout,cingrid_type,cinterp_type,ini)
110 hfilepgdtype,yrecfm,iversion,iresp)
120 hfilepgd,hfilepgdtype,
'NATURE')
123 hfilepgdtype,yrecfm,yphoto,iresp)
124 yrecfm=
'PATCH_NUMBER'
126 hfilepgdtype,yrecfm,ipatch,iresp)
129 IF(iversion<8.OR.(yphoto/=
'NIT'.AND.yphoto/=
'NCB'))
THEN
131 IF (lhook) CALL dr_hook(
'PREP_ISBA_CC_EXTERN',1,zhook_handle)
139 hfilepgd,hfilepgdtype,
'NATURE')
142 hfilepgdtype,yrecfm,inbiomass,iresp)
144 IF (yphoto==
'NIT' .OR. yphoto==
'NCB')
THEN
145 ALLOCATE(pfield(ini,inbiomass,ipatch))
146 pfield(:,:,:) = xundef
148 hfile,hfiletype,
'NATURE')
149 DO jnbiomass=1,inbiomass
150 WRITE(ylvl,
'(I1)') jnbiomass
151 yrecfm=
'BIOMA'//adjustl(ylvl(:len_trim(ylvl)))
153 hfiletype,yrecfm,pfield(:,jnbiomass,:),iresp,hdir=
'A')
162 hfile,hfiletype,
'NATURE')
165 hfiletype,yrecfm,yrespsl,iresp)
166 IF(yrespsl==
'CNT')
THEN
169 hfiletype,yrecfm,inlitter,iresp)
172 hfiletype,yrecfm,inlittlevs,iresp)
173 ALLOCATE(pfield(ini,inlitter*inlittlevs,ipatch))
174 pfield(:,:,:) = xundef
176 DO jnlitter=1,inlitter
177 DO jnlittlevs=1,inlittlevs
179 WRITE(ylvl,
'(I1,A1,I1)') jnlitter,
'_',jnlittlevs
180 yrecfm=
'LITTER'//adjustl(ylvl(:len_trim(ylvl)))
182 hfiletype,yrecfm,pfield(:,iwork,:),iresp,hdir=
'A')
192 hfile,hfiletype,
'NATURE')
195 hfiletype,yrecfm,yrespsl,iresp)
196 IF(yrespsl==
'CNT')
THEN
199 hfiletype,yrecfm,insoilcarb,iresp)
200 ALLOCATE(pfield(ini,insoilcarb,ipatch))
201 pfield(:,:,:) = xundef
202 DO jnsoilcarb=1,insoilcarb
203 WRITE(ylvl,
'(I4)') jnsoilcarb
204 yrecfm=
'SOILCARB'//adjustl(ylvl(:len_trim(ylvl)))
206 hfiletype,yrecfm,pfield(:,jnsoilcarb,:),iresp,hdir=
'A')
215 hfile,hfiletype,
'NATURE')
218 hfiletype,yrecfm,yrespsl,iresp)
219 IF(yrespsl==
'CNT')
THEN
222 hfiletype,yrecfm,inlittlevs,iresp)
223 ALLOCATE(pfield(ini,inlittlevs,ipatch))
224 pfield(:,:,:) = xundef
225 DO jnlittlevs=1,inlittlevs
226 WRITE(ylvl,
'(I4)') jnlittlevs
227 yrecfm=
'LIGNIN_STR'//adjustl(ylvl(:len_trim(ylvl)))
229 hfiletype,yrecfm,pfield(:,jnlittlevs,:),iresp,hdir=
'A')
244 IF (lhook) CALL dr_hook(
'PREP_ISBA_CC_EXTERN',1,zhook_handle)
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine prep_isba_cc_extern(HPROGRAM, HSURF, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, PFIELD, OPREP_AGS)
subroutine prep_grid_extern(HFILETYPE, KLUOUT, HGRIDTYPE, HINTERP_TYPE, KNI)