wiki:DevelopmentActivities/AccelerationSpinup/ExtensionMethod

Version 3 (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)
    
    

The rest of the code is the same.

Extension to nitrogen pools

Due to lack of time and due to O-CN code does not use the same variables as ORCHIDEE, I cannot complete this section. Moreover, the equations used in the work paper for the PASIM model is questionable.

Warnings

  • If this development will be merged into MERGE-OCN branch, adapt the method with the extra-dimension for carbon variables ! Don't forget the restart !
  • When SPITFIRE will be included in the trunk, this method may to be modified because it considered fire fluxes from the litter.
  • Possible modifications when ORCHIDEE_HIGH_LAT will be merged !