wiki:DevelopmentActivities/AccelerationSpinup/ExtensionMethod

Version 1 (modified by dsolyga, 11 years ago) (diff)

--

Extension of the analytical spin-up

Not all the versions of ORCHIDEE are compatible with the analytical spin-up. When Forest Managament will be included in the trunk, the method should be extended because there are two more litter pools (woody pool above and below). The nitrogen is based on the same formalism.

Extension to Forest management

I present the changes needed to integrate the 2 new pools.

  • In constantes.f90, add two new index for woody pools :
       iwoody_above = 5 
       iwoody_below = 6
    
  • Still in constantes.f90, redefine nbpools, iactive_pool, islow_pool and ipassive_pool :
       INTEGER(i_std),PARAMETER :: nbpools = 9
       INTEGER(i_std),PARAMETER :: iactive_pool = 7
       INTEGER(i_std),PARAMETER :: islow_pool   = 8
       INTEGER(i_std),PARAMETER :: ipassive_pool = 9
    
  • In stomate_litter.f90, add the flux exchanges done by the 2 woody litter compartments :
    ! Flux leaving the woody above litter pool :
    MatrixA(:, m, iwoody_above, iwoody_above) = - dt /litter_tau(iwoody) * control_temp(:,iabove) * &
         control_moist(:,iabove) * exp( -3. * lignin_wood(:,m,iabove) )
    
    ! Flux leaving the woody below litter pool :
    MatrixA(:, m, iwoody_below, iwoody_below) = - dt /litter_tau(iwoody) * control_temp(:,ibelow) * &
         control_moist(:,ibelow) * exp( -3. * lignin_wood(:,m,ibelow))
    
    
    ! Flux received by the carbon active from the woody above litter pool :
    MatrixA(:, m, iactive, iwoody_above) = frac_soil(istructural, iactive, iabove) * dt /litter_tau(iwoody) * control_temp(:,iabove) * &
         control_moist(:,iabove) * exp( -3. * lignin_wood(:,m,iabove) ) * ( 1. -  lignin_wood(:,m,iabove) ) 
    
    ! Flux received by the carbon active from the woody below litter pool :
    MatrixA(:, m, iactive, iwoody_below) = frac_soil(istructural, iactive, ibelow) * dt /litter_tau(iwoody) * control_temp(:,ibelow) * &
         control_moist(:,ibelow) * exp( -3. * lignin_wood(:,m,ibelow) ) * ( 1. -  lignin_wood(:,m,ibelow) ) 
    
    ! Flux received by the carbon slow from the woody above litter pool :
    MatrixA(:, m, islow, iwoody_above) = frac_soil(istructural, islow, iactive) * dt /litter_tau(iwoody) * control_temp(:,iabove) * &
         control_moist(:,iabove) * exp( -3. * lignin_wood(:,m,iabove) ) * lignin_wood(:,m,iabove)
    
    ! Flux received by the carbon slow from the woody below litter pool :
    MatrixA(:, m, islow, iwoody_below) =  frac_soil(istructural, islow, ibelow) * dt /litter_tau(iwoody) * control_temp(:,ibelow) * &
         control_moist(:,ibelow) * exp( -3. * lignin_wood(:,m,ibelow) ) * lignin_wood(:,m,ibelow)
    
    
  • Add the input litter in stomate_litter.f90 :
    VectorB(:, m, iwoody_above) = litter_inc_PFT(:,j,iwoody,iabove)
    VectorB(:, m, iwoody_below) = litter_inc_PFT(:,j,iwoody,ibelow)