6 SUBROUTINE greenroof (DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GRO, S, K, P, PEK, &
7 HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, &
8 PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, &
9 PTSTEP, PZREF, PUREF, PTA, PQA, PEXNS, PEXNA, PRHOA, &
10 PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PVMOD, &
11 PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, &
12 PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, PDRAIN,&
13 PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PDEEP_FLUX, PIRRIG )
83 USE modi_vegetation_update
84 USE modi_vegetation_evol
87 USE modi_roof_impl_coef
89 USE modi_flag_teb_veg_n
101 TYPE(
grid_t),
INTENT(INOUT) :: G
102 TYPE(
teb_t),
INTENT(INOUT) :: T
109 TYPE(
diag_t),
INTENT(INOUT) :: DK
119 CHARACTER(LEN=*),
INTENT(IN) :: HIMPLICIT_WIND
123 REAL,
DIMENSION(:) ,
INTENT(IN) :: PTSUN
124 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_A_COEF
125 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_B_COEF
126 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEQ_A_COEF
127 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEQ_B_COEF
128 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPET_A_COEF
129 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPET_B_COEF
130 REAL ,
INTENT(IN) :: PTSTEP
131 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZREF
132 REAL,
DIMENSION(:) ,
INTENT(IN) :: PUREF
133 REAL,
DIMENSION(:) ,
INTENT(IN) :: PTA
134 REAL,
DIMENSION(:) ,
INTENT(IN) :: PQA
135 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPS
136 REAL,
DIMENSION(:) ,
INTENT(IN) :: PEXNA
137 REAL,
DIMENSION(:) ,
INTENT(IN) :: PEXNS
138 REAL,
DIMENSION(:) ,
INTENT(IN) :: PRHOA
139 REAL,
DIMENSION(:) ,
INTENT(IN) :: PCO2
140 REAL,
DIMENSION(:) ,
INTENT(IN) :: PRR
141 REAL,
DIMENSION(:) ,
INTENT(IN) :: PSR
142 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZENITH
143 REAL,
DIMENSION(:) ,
INTENT(IN) :: PSW
144 REAL,
DIMENSION(:) ,
INTENT(IN) :: PLW
145 REAL,
DIMENSION(:) ,
INTENT(IN) :: PVMOD
146 REAL,
DIMENSION(:) ,
INTENT(IN) :: PALBNIR_TVEG
147 REAL,
DIMENSION(:) ,
INTENT(IN) :: PALBVIS_TVEG
148 REAL,
DIMENSION(:) ,
INTENT(IN) :: PALBNIR_TSOIL
149 REAL,
DIMENSION(:) ,
INTENT(IN) :: PALBVIS_TSOIL
151 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRN
152 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PH
153 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLE
154 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PGFLUX
155 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PSFCO2
156 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PEVAP
157 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PUW
158 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRUNOFF
159 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PDRAIN
160 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC
161 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PQSAT
162 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PTSRAD
163 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_AGG
164 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PHU_AGG
165 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PDEEP_FLUX
166 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PIRRIG
174 REAL,
DIMENSION(SIZE(PPS)) :: ZDIRCOSZW
175 REAL,
DIMENSION(SIZE(PPS),GRO%NNBIOMASS) :: ZRESP_BIOMASS_INST
176 REAL,
DIMENSION(SIZE(PPS)) :: ZUSTAR
180 REAL,
DIMENSION(SIZE(PPS)) :: ZTA
185 REAL,
DIMENSION(SIZE(PPS)) :: ZEMISF
188 REAL,
DIMENSION(SIZE(PPS)) :: ZTDEEP_A
191 REAL,
DIMENSION(SIZE(PPS)) :: ZP_MEB_SCA_SW, ZPALPHAN, ZZ0G_WITHOUT_SNOW, &
192 ZZ0_MEBV, ZZ0H_MEBV, ZZ0EFF_MEBV, ZZ0_MEBN, &
193 ZZ0H_MEBN, ZZ0EFF_MEBN
197 LOGICAL :: GUPDATED, GALB
199 REAL(KIND=JPRB) :: ZHOOK_HANDLE
236 CALL teb_irrig(tir%LPAR_GR_IRRIG, ptstep, tptime%TDATE%MONTH, ptsun, &
237 tir%XGR_START_MONTH, tir%XGR_END_MONTH, tir%XGR_START_HOUR, &
238 tir%XGR_END_HOUR, tir%XGR_24H_IRRIG, pirrig )
248 IF (gro%CPHOTO==
'NIT'.OR.gro%CPHOTO==
'NCB') galb = .true.
251 ptstep, s%TTIME, top%XCOVER, top%LCOVER, .false., &
252 'GNR', galb, yss, gupdated, oabsent=(t%XGREENROOF==0.) )
257 dk%XZ0(:) = pek%XZ0(:)
258 dk%XZ0H(:) = pek%XZ0(:) / p%XZ0_O_Z0H(:)
260 dk%XZ0EFF(:) = pek%XZ0(:)
262 ALLOCATE(gb%XIACAN(
SIZE(pps),
SIZE(s%XABC)))
264 CALL isba(gro, k, p, pek, g, yag, dk, dek, dmk, &
265 tptime, s%XPOI, s%XABC, gb%XIACAN, .false., ptstep, &
266 himplicit_wind, pzref, puref, zdircoszw, pta, pqa, pexna, prhoa, pps, &
267 pexns, prr, psr, pzenith, zp_meb_sca_sw, psw, plw, pvmod, ppew_a_coef, &
268 ppew_b_coef, ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
269 palbnir_tveg, palbvis_tveg, palbnir_tsoil, palbvis_tsoil, zpalphan, &
270 zz0g_without_snow, zz0_mebv, zz0h_mebv, zz0eff_mebv, zz0_mebn, &
271 zz0h_mebn, zz0eff_mebn, ztdeep_a, pco2, k%XFFG(:), k%XFFV(:), &
272 zemisf, zustar, pac_agg, phu_agg, zresp_biomass_inst, pdeep_flux, pirrig )
274 IF (pek%TSNOW%SCHEME==
'3-L' .OR. pek%TSNOW%SCHEME==
'CRO') pek%TSNOW%TS(:) = dmk%XSNOWTEMP(:,1)
284 IF (gro%CPHOTO==
'NIT')
THEN 285 CALL vegetation_evol(gro, dtv, p, pek, .false., ptstep, tptime%TDATE%MONTH, tptime%TDATE%DAY, &
286 tptime%TIME, g%XLAT, prhoa, pco2, yss, zresp_biomass_inst )
292 dek%XRESP_ECO (:) = 0.
293 dek%XRESP_AUTO(:) = 0.
295 IF (gro%CPHOTO/=
'NON' .AND. gro%CRESPSL/=
'NON' .AND. any(pek%XLAI(:)/=
xundef))
THEN 297 CALL carbon_evol(gro, k, p, pek, dek, ptstep, prhoa, zresp_biomass_inst )
300 psfco2(:) = dek%XRESP_ECO(:) - dek%XGPP(:)
318 WHERE (t%XGREENROOF/=0.)
322 dk%XLE(:) = pek%XLE(:)
326 zta = ppet_b_coef + ppet_a_coef * dk%XH
328 WHERE (dk%XTSRAD /= zta)
329 pac(:) = max(dk%XH(:) /
xcpd / prhoa(:) / (dk%XTSRAD - zta) , 0.)
333 pqsat(:) =
qsat(pek%XTG(:,1),pps(:))
336 puw(:) = -zustar(:)**2
353 ptsrad(:) = dk%XTSRAD(:)
358 pgflux(:) = dk%XGFLUX (:)
359 pevap(:) = dk%XEVAP (:)
360 prunoff(:) =dek%XRUNOFF(:)
361 pdrain(:) =dek%XDRAIN (:)
subroutine sso_init(YSSO)
subroutine vegetation_evol(IO, DTI, PK, PEK, OAGRIP, PTSTEP, KMONTH, KDAY, PTIME, PLAT, PRHOA, P_CO2, ISSK, PRESP_BIOMASS_INST, PSWDIR)
subroutine flag_teb_veg_n(PEK, IO, PMASK, KFLAG)
subroutine roof_impl_coef(T, PTSTEP, PTDEEP_A, PTDEEP_B)
subroutine vegetation_update(DTCO, DTV, KDIM, IO, KK, PK, PEK, KPATCH, PTSTEP, TTIME, PCOVER, OCOVER, OAGRIP, HSFTYPE, OALB, ISSK, ODUPDATED, OABSENT)
subroutine greenroof(DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GRO, S, K, P, PEK, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZREF, PUREF, PTA, PQA, PEXNS, PEXNA, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PVMOD, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, PDRAIN, PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PDEEP_FLUX, PIRRIG)
subroutine isba(IO, KK, PK, PEK, G, AG, DK, DEK, DMK, TPTIME, PPOI
subroutine teb_irrig(OIRRIG, PTSTEP, KMONTH, PSOLAR_TIME, PSTART_MONTH, PEND_MONTH, PSTART_HOUR, PEND_HOUR, P24H_IRRIG, PIRRIG)
subroutine carbon_evol(IO, KK, PK, PEK, DEK, PTSTEP, PRHOA, PRESP_BIOMASS_INST)