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