First see this commit message :

  This patch corrects the bug which made that ORCHIDEE did not conserve 
  energy once coupled. The error was found by Jean-Louis. The approach used 
  to correct the issue is to compute just after the fluxes the new atmospheric 
  temperature and humidity. This makes sure that all other fluxes derived 
  afterwards in enerbil are correct. 
  The other issue solved is the vegetation and displacement height. The way it was 
  coded originally required that both the mean vegetation height and zero 
  displacement height were available in diffuco. This is was not very nice and caused 
  some problems for LPJ. Thus we have now introduced an effective roughness height 
  which is added to the level height in the Cd calculation. 
  This should be the last commit before the stable branch ! I hope so :-) 
  • condveg :
    1.1 => zhdispl = Zero plane displacement height 1.2 => roughheight = Effective height for roughness is now passed as argument of condveg_main.
    And zhdispl is not used as argument of condveg_main any more. (still computed with the message : Temporarily we compute the zero plane displacement height)
    Change fdry formulation :
    • from fdry(:) = MIN(hdry(:)*10._stnd, un)
    • to fdry(:) = MIN(MAX(hdry(:),0.)*10._stnd, un)
  • diffuco :
    In 1.1 , height, zhdispl are arguments of diffuco_main. They are no more used in 1.2 and now roughheight is used.
    zheight = sum( veget*height ) is no more used in 1.2 and the difference (zheight - zhdispl(ji)) was replaced by roughheight(ji).
         epot_air_new(ji) = zikt * (sensfl_old - sensfl_sns * dtheta) + psnew(ji)
         fevap = (lareva_old - lareva_sns * dtheta) + (larsub_old - larsub_sns * dtheta)
         IF ( ABS(fevap) < EPSILON(un) ) THEN
           qair_new(ji) = qair(ji)
           qair_new(ji) = zikq * un / (chalev0 * (un - vbeta1(ji)) * vbeta(ji) * valpha(ji) + &
              & chalsu0 *  vbeta1(ji)) * fevap + qsol_sat_new(ji)
  • enerbil :
    In enerbil_surftemp, new output arguments are qair_new and epot_air_new.
    After their computation, they replace qair and epot_air in computation of enerbil_flux and enerbil_evapveg.
  • hydrol : In hydrol_vegupd, protect the computation of dsg with test (gqsb(ji,jv) .LT. min_sechiba). In hydrol_soil :
    • protect the computation of gqsb by the test (ABS(vegtot(ji)-veget(ji,1)) .LE. min_sechiba)
    • modification of run_off_tot computation in case of no vegetation on a point : add irrigation.
      In hydrol_hdiff, if gqsb is zero, dsg is set to zero too.
  • intersurf : Add watchout functions (initialization and write). Force STOMATE with DGVM and force diffuco_trans_co2 computation with STOMATE. Save roughheight in place of zhdispl and save irrigation and irrigmap in sechiba_history file.
  • routing : Add the Kassel irrigation parametrization linked to the crops : crop_coef = 1.5 .
    Save irrigation and irrigmap in sechiba_history file.
    Compute precip_mean, totnobio_mean, humrel_mean and vegtot_mean.
    Change arguments humrel for humrel_mean in routing_lake. Save them respectively as precip_route, totnobio_route, humrel_route and vegtot_route in sechiba_restart.
    Add those variables to routing_flow parameters.
    In routing_flow :
    • change totarea computation on each points
    • add irrig_net
    • suppress baseirrig in stream_reservoir computation (it is taken in account only in case of irrigation).
      In routing_lake, protect refill to be non-negative.
      In routing_basins, put a lot of code in a new function routing_getgrid, with a "simplification of the outflow. We only need the direction normal to the box boundary and the 4 corners".
      Finaly in routing_irrigmap, irrigmap computation is protect by contfrac.
  • sechiba : The main modification in sechiba is that height and zhdispl are replaced by roughheight.
Last modified 14 years ago Last modified on 04/18/08 08:48:41