Subroutine vom_hourly_init
1227 :
1228 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1229 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1230 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1231 :
1232 : subroutine vom_hourly_init ()
1233 : use vom_vegwat_mod
1234 : implicit none
1235 :
1236 : INTEGER :: ii !counter
1237 : REAL*8 :: Ma_lg(3) !fraction of absorbed radiation grasses
1238 : REAL*8 :: Ma_lt(3) !fraction of absorbed radiation trees
1239 :
1240 : ! * (Out[274], derived from (3.25))
1241 : gammastar = 0.00004275d0 &
1242 : & * p_E ** ((18915.d0 * (-25.d0 + tair_h(th_))) &
1243 : & / (149.d0 * p_R_ * (273.d0 + tair_h(th_))))
1244 :
1245 : ! * (Out[310], derived from (3.26)) Temperature dependence of Jmax
1246 : jmaxt_h(:) = (p_E ** ((i_ha * (-25.d0 + tair_h(th_)) * (-273.d0 &
1247 : & + topt_ + 273.d0 * p_R_ * topt_)) / ((25.d0 + 273.d0 &
1248 : & * p_R_ * topt_) * (tair_h(th_) + 273.d0 * p_R_ &
1249 : & * topt_))) * ((-1.d0 + p_E ** (-(i_hd * (-298.d0 &
1250 : & + topt_)) / (25.d0 + 273.d0 * p_R_ * topt_))) * i_ha &
1251 : & + i_hd) * jmax25t_d(:)) / ((-1.d0 + p_E ** ((i_hd &
1252 : & * (273.d0 + tair_h(th_) - topt_)) / (tair_h(th_) &
1253 : & + 273.d0 * p_R_ * topt_))) * i_ha + i_hd)
1254 :
1255 : select case(i_lai_function)
1256 : case(1)
1257 : Ma_lt(:) = 1.0d0
1258 : case(2)
1259 : ! * fraction of absorbed radiation per crown area (Beer-lambert)
1260 : Ma_lt(:) = 1.0d0 - p_E ** (-lai_lt(:) * i_extcoefft )
1261 : end select
1262 :
1263 : ! * (3.24), (Out[312]), leaf respiration trees
1264 : do ii = 1,3 !loop for LAI-values
1265 : rlt_h(:,ii) = ((ca_h(th_) - gammastar) * o_cai * Ma_lt(ii) * jmaxt_h(:) &
1266 : & * i_rlratio) / (4.d0 * (ca_h(th_) + 2.d0 * gammastar) &
1267 : & * (1.d0 + i_rlratio))
1268 : end do
1269 :
1270 : ! * (Out[310], derived from (3.26)) Temperature dependence of Jmax
1271 : jmaxg_h(:) = (p_E ** ((i_ha * (-25.d0 + tair_h(th_)) * (-273.d0 &
1272 : & + topt_ + 273.d0 * p_R_ * topt_)) / ((25.d0 + 273.d0 &
1273 : & * p_R_ * topt_) * (tair_h(th_) + 273.d0 * p_R_ &
1274 : & * topt_))) * ((-1.d0 + p_E ** (-(i_hd * (-298.d0 &
1275 : & + topt_)) / (25.d0 + 273.d0 * p_R_ * topt_))) * i_ha &
1276 : & + i_hd) * jmax25g_d(:)) / ((-1.d0 + p_E ** ((i_hd &
1277 : & * (273.d0 + tair_h(th_) - topt_)) / (tair_h(th_) &
1278 : & + 273.d0 * p_R_ * topt_))) * i_ha + i_hd)
1279 :
1280 : select case(i_lai_function)
1281 : case(1)
1282 : Ma_lg(:) = 1.0d0
1283 : case(2)
1284 : ! * fraction of absorbed radiation per crown area grasses (Beer-lambert)
1285 : Ma_lg(:) = 1.0d0 - p_E ** (-lai_lg(:) * i_extcoeffg)
1286 : end select
1287 :
1288 : ! * respiration grasses
1289 : do ii = 1,3 !loop for LAI-values
1290 : rlg_h(1,:,ii) = ((ca_h(th_) - gammastar) * pcg_d(1) * Ma_lg(ii) * jmaxg_h(:) &
1291 : & * i_rlratio) / (4.d0 * (ca_h(th_) + 2.d0 * gammastar) &
1292 : & * (1.d0 + i_rlratio)) ! (3.24), (Out[312])
1293 : rlg_h(2,:,ii) = ((ca_h(th_) - gammastar) * pcg_d(2) * Ma_lg(ii) * jmaxg_h(:) &
1294 : & * i_rlratio) / (4.d0 * (ca_h(th_) + 2.d0 * gammastar) &
1295 : & * (1.d0 + i_rlratio)) ! (3.24), (Out[312])
1296 : rlg_h(3,:,ii) = ((ca_h(th_) - gammastar) * pcg_d(3) * Ma_lg(ii) * jmaxg_h(:) &
1297 : & * i_rlratio) / (4.d0 * (ca_h(th_) + 2.d0 * gammastar) &
1298 : & * (1.d0 + i_rlratio)) ! (3.24), (Out[312])
1299 : end do
1300 :
1301 : ! * daily recalculation for resultsdaily
1302 : if (optmode .eq. 0) then
1303 : rain_d(nday) = rain_d(nday) + rain_h(th_) * 3600.d0 * 1000.d0 ! mm/d
1304 : par_d(nday) = par_d(nday) + par_h(th_) * 3600.d0 ! in mol/m2/d
1305 : srad_d(nday) = par_d(nday) / 2.0804d0 ! MJ/m2/d
1306 :
1307 : if (tair_h(th_) .gt. tairmax_d(nday)) tairmax_d(nday) = tair_h(th_)
1308 : if (tair_h(th_) .lt. tairmin_d(nday)) tairmin_d(nday) = tair_h(th_)
1309 : endif
1310 :
1311 : if (optmode .eq. 0) then
1312 : mqtold = mqtnew
1313 : spgfcf_h = 0.d0
1314 : infx_h = 0.d0
1315 : io_h = 0.d0
1316 : esoil_h = 0.d0
1317 : etmt_h = 0.d0
1318 : etmg_h = 0.d0
1319 : sumruptkt_h = 0.d0
1320 : endif
1321 :
1322 : time = 0.d0
1323 : asst_h(:,:) = 0.d0
1324 : assg_h(:,:,:) = 0.d0
1325 : ruptkt_h(:) = 0.d0
1326 : ruptkg_h(:) = 0.d0
1327 :
1328 : return
1329 : end subroutine vom_hourly_init