8 hprogram,hsurf,hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
52 USE modi_read_prep_isba_conf
55 USE modi_vegtype_grid_to_patch_grid
57 USE modi_prep_isba_cc_extern
58 USE modi_put_on_all_vegtypes
60 USE yomhook
,ONLY : lhook, dr_hook
61 USE parkind1
,ONLY : jprb
72 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
73 TYPE(isba_t
),
INTENT(INOUT) :: i
75 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
76 CHARACTER(LEN=8),
INTENT(IN) :: hsurf
77 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
78 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
79 CHARACTER(LEN=28),
INTENT(IN) :: hpgdfile
80 CHARACTER(LEN=6),
INTENT(IN) :: hpgdfiletype
84 CHARACTER(LEN=6) :: yfiletype
85 CHARACTER(LEN=28) :: yfile
86 CHARACTER(LEN=6) :: yfilepgdtype
87 CHARACTER(LEN=28) :: yfilepgd
88 REAL,
POINTER,
DIMENSION(:,:,:) :: zfieldin
89 REAL,
POINTER,
DIMENSION(:,:) :: zfield
90 REAL,
ALLOCATABLE,
DIMENSION(:,:,:) :: zfieldoutp
91 REAL,
ALLOCATABLE,
DIMENSION(:,:,:) :: zfieldoutv
92 REAL,
ALLOCATABLE,
DIMENSION(:,:,:) :: zw
101 INTEGER :: ini, inl, inp, jj, jl
103 REAL(KIND=JPRB) :: zhook_handle
106 IF (lhook) CALL dr_hook(
'PREP_HOR_ISBA_CC_FIELD',0,zhook_handle)
113 hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,iluout,gunif)
127 ELSE IF (yfiletype==
'ASCLLV')
THEN
129 ELSE IF (yfiletype==
'GRIB ')
THEN
131 ELSE IF (yfiletype==
'MESONH' .OR. yfiletype==
'ASCII ' .OR. yfiletype==
'LFI '.OR.yfiletype==
'FA ')
THEN
133 hprogram,hsurf,yfile,yfiletype,yfilepgd,yfilepgdtype,iluout,zfieldin,gprep_ags)
134 ELSE IF (yfiletype==
'BUFFER')
THEN
136 ELSE IF (yfiletype==
'NETCDF')
THEN
139 CALL
abor1_sfx(
'PREP_HOR_ISBA_CC_FIELD: data file type not supported : '//yfiletype)
148 inl =
SIZE(zfieldin,2)
149 inp =
SIZE(zfieldin,3)
151 ALLOCATE(zfieldoutp(ini,inl,inp))
152 ALLOCATE(zfield(
SIZE(zfieldin,1),inl))
155 zfield(:,:)=zfieldin(:,:,jpatch)
156 IF (inp==nvegtype)
THEN
157 linterp = (i%XVEGTYPE(:,jpatch) > 0.)
158 ELSEIF(inp==i%NPATCH)
THEN
159 linterp = (i%XPATCH(:,jpatch) > 0.)
162 iluout,zfield,zfieldoutp(:,:,jpatch))
169 ALLOCATE(zfieldoutv(ini,inl,nvegtype))
173 DEALLOCATE(zfieldoutp)
184 ALLOCATE(zw(ini,
SIZE(zfieldoutv,2),i%NPATCH))
196 ALLOCATE(zw(ini,i%NNBIOMASS,i%NPATCH))
198 WHERE(i%XLAI(:,:)/=xundef)
199 zw(:,1,:) = i%XLAI(:,:) * i%XBSLAI_NITRO(:,:)
201 zw(:,2,:) = max( 0., (zw(:,1,:)/ (xcc_nit/10.**xca_nit)) &
202 **(1.0/(1.0-xca_nit)) - zw(:,1,:) )
207 ALLOCATE(zw(ini,i%NNLITTER*i%NNLITTLEVS,i%NPATCH))
213 ALLOCATE(zw(ini,i%NNSOILCARB,i%NPATCH))
219 ALLOCATE(zw(ini,i%NNLITTLEVS,i%NPATCH))
237 ALLOCATE(i%XBIOMASS(ini,i%NNBIOMASS,i%NPATCH))
238 inl=min(i%NNBIOMASS,
SIZE(zw,2))
240 WHERE(zw(:,jl,:)/=xundef)
241 i%XBIOMASS(:,jl,:) = zw(:,jl,:)
243 i%XBIOMASS(:,jl,:) = 0.0
246 IF(i%NNBIOMASS>inl)
THEN
247 DO jl=inl+1,i%NNBIOMASS
248 WHERE(zw(:,jl,:)/=xundef)
249 i%XBIOMASS(:,jl,:) = zw(:,inl,:)
251 i%XBIOMASS(:,jl,:) = 0.0
259 ALLOCATE(i%XLITTER(ini,i%NNLITTER,i%NNLITTLEVS,i%NPATCH))
265 WHERE(zw(:,inl,jpatch)/=xundef)
266 i%XLITTER(:,jj,jl,jpatch) = zw(:,inl,jpatch)
268 i%XLITTER(:,jj,jl,jpatch) = 0.0
277 ALLOCATE(i%XSOILCARB(ini,i%NNSOILCARB,i%NPATCH))
278 WHERE(zw(:,:,:)/=xundef)
279 i%XSOILCARB(:,:,:) = zw(:,:,:)
281 i%XSOILCARB(:,:,:) = 0.0
287 ALLOCATE(i%XLIGNIN_STRUC(ini,i%NNLITTLEVS,i%NPATCH))
288 WHERE(zw(:,:,:)/=xundef)
289 i%XLIGNIN_STRUC(:,:,:) = zw(:,:,:)
291 i%XLIGNIN_STRUC(:,:,:) = 0.0
303 IF (
ALLOCATED(zfieldoutv))
DEALLOCATE(zfieldoutv)
305 IF (lhook) CALL dr_hook(
'PREP_HOR_ISBA_CC_FIELD',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine hor_interpol(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine read_prep_isba_conf(HPROGRAM, HVAR, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KLUOUT, OUNIF)
subroutine vegtype_grid_to_patch_grid(KPATCH, PVEGTYPE_PATCH, PPATCH, PFIELDOUT, PW)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine put_on_all_vegtypes(KNI, KLAYER, KPATCH, KVEGTYPE, PFIELD_PATCH, PFIELD_VEGTYPE)
subroutine prep_hor_isba_cc_field(DTCO, U, IG, I, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
subroutine prep_isba_cc_extern(HPROGRAM, HSURF, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, KLUOUT, PFIELD, OPREP_AGS)