subroutine vegetation_adjust_energy_ratio(j, je, beadj, be, nucr, tx)
!**** PURPOSE: this subroutine adjusts biomass-energy ratio for crop
! for higher atmosphere CO2 concentrations
! F. Wechsung method (temperature-dependent)
!**** CALLED IN: CRPMD
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! PARAMETERS & VARIABLES
!
! >>>>> COMMON PARAMETERS & VARIABLES
! alfa = alpha factor for vegetation
! be(icr) = biomass-energy ratio for crop
! co2ref = atm CO2 in the reference period, ppm
! co2sce = atm CO2 in the scenario period, ppm
! ic3c4 = switch parameter: 3/4 - C3 or C4 crop?
! nucr(j, je) = crop number (database)
! tx(j) = average daily temp., degree C
! >>>>>
! >>>>> STATIC PARAMETERS
! aa = coef
! bb = coef
! c1 = co2ref
! c2 = co2sce
! cc = coef
! ci1 = CO2 internal corr co2ref
! ci2 = CO2 internal corr co2sce
! deg = local par
! del = local par
! delq = local par
! xlnalfa = local par
! >>>>>
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!**** Include common parameters
use snow, only : bSnowModule, tx_tmp, tmit
real(dp), dimension(:), intent(in) :: be
integer, dimension(:, :), intent(in) :: nucr
real(dp), dimension(:), intent(in) :: tx
integer j, je
real(dp) beadj, aa, bb, c1, c2, cc, ci1, ci2, deg, del, delq, xlnalfa
!###########################
!#### SNOW MODULE ####
!###########################
if (bSnowModule) then
tx_tmp = tmit
else
tx_tmp = tx(j)
end if
!###########################
!**** CALC xlnalfa = f(tx)
aa = 0.3898E-2
bb = 0.3769E-5
cc = 0.3697E-4
c1 = co2ref
c2 = co2sce
ci1 = c1 * 0.7
ci2 = c2 * 0.7
del = ci2 - ci1
delq = ci2 * ci2 - ci1 * ci1
xlnalfa = aa * del - bb * delq + cc * del * tx_tmp
!**** CALC degree - different for C3 and C4 crops
if (ic3c4 .eq. 4) then
deg = 0.36
else
deg = 0.6
endif
!**** CALC alfa and beadj
alfa = exp(xlnalfa) ** deg
if (alfa .lt. 1) alfa = 1.
beadj = be(nucr(j, je)) * alfa
return
end subroutine vegetation_adjust_energy_ratio