wiki:DevelopmentActivities/ORCHIDEE-MICT-IMBALANCE-P/Evaluation

Version 6 (modified by maignan, 9 years ago) (diff)

--

Evaluation

Notes from M. Guimberteau

2015/08/27

  • Bugs

In stomate_wet_ch4_pt_ter_0.f90

The following parameters need to be defined and this part of the code should be added:

       ! define diffusion coefficients (after Penman)                                                                                                                          
       ! soil air                                                                                                                                                              
         diffsa=diffair*0.66*rpv
       ! soil water                                                                                                                                                            
         diffsw=0.0001*diffsa
       ! standing water                                                                                                                                                        
         diffwa=0.0001*diffair

2015/08/24

  • Bugs

In thermosoil

The variable SoilTemp? should be in the almaoutput condition of the loop and related to ptn_pftmean and not ptn:

Before in the code:

       IF ( .NOT. almaoutput ) THEN
          CALL histwrite_p(hist_id, 'SoilTemp', kjit, ptn_pftmean, kjpindex*ngrnd, indexgrnd)                                                                                   
          CALL histwrite_p(hist2_id, 'ptn', kjit, ptn, kjpindex*ngrnd, indexgrnd)                                                                                               
       ELSE
          CALL histwrite_p(hist2_id, 'SoilTemp', kjit, ptn, kjpindex*ngrnd, indexgrnd)                                                                                          
          CALL histwrite_p(hist2_id, 'Qg', kjit, soilflx, kjpindex, index)
          CALL histwrite_p(hist2_id, 'DelSurfHeat', kjit, surfheat_incr, kjpindex, index)
          CALL histwrite_p(hist2_id, 'DelColdCont', kjit, coldcont_incr, kjpindex, index)
       ENDIF
    ENDIF

After corrections:

     IF ( hist2_id > 0 ) THEN
       IF ( .NOT. almaoutput ) THEN
          CALL histwrite_p(hist2_id, 'ptn_pftmean', kjit, ptn_pftmean, kjpindex*ngrnd, indexgrnd)
       ELSE
          CALL histwrite_p(hist2_id, 'SoilTemp', kjit, ptn_pftmean, kjpindex*ngrnd, indexgrnd)
          CALL histwrite_p(hist2_id, 'Qg', kjit, soilflx, kjpindex, index)
          CALL histwrite_p(hist2_id, 'DelSurfHeat', kjit, surfheat_incr, kjpindex, index)
          CALL histwrite_p(hist2_id, 'DelColdCont', kjit, coldcont_incr, kjpindex, index)
       ENDIF
    ENDIF

In intersurf and ioipslctrl

The variable ptn_snow_pftmean does not exist in the code anymore. The call histdef should be removed:

           CALL histdef(hist_id, 'ptn_snow_pftmean', 'Snow temperature,PFT-mean', 'K', &                                                                                        
                & iim,jjm, hori_id, nsnow, 1, nsnow, snowax_id, 32,avescatter(6), dt,dw)

The variable soiltemp should be put outside the if (ok_explicitsnow) condition

              CALL histdef(hist_id, 'soiltemp','Soil temperature profile','K', &
               & iim,jjm, hori_id, ngrnd, 1, ngrnd, solax_id, 32,avescatter(6),dt,dw)

The histdef high frequency of the variable ptn_pftmean is missing in SECHIBA_HISTLEVEL2 = 7 level:

               CALL histdef(hist2_id, 'ptn_pftmean', 'Soil temperature, PFT-mean','K', &
                & iim,jjm, hori_id2, ngrnd, 1, ngrnd, solax_id, 32,avescatter2(7), dt,dw2)

Notes from F. Maignan

I've started a 2 degree V6 evaluation at LSCE here:
/home/surface3/maignan/ORCHIDEE/TESTS/test_MICT_V6/modipsl/modeles/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_V6

The modified code is in /home/surface3/maignan/ORCHIDEE/TESTS/test_MICT_V6/modipsl

Bugs

  • stomate.f90 / call writerestart (2015/08/27)

The following correction should be applied:

...
        &          litterpart, litter, dead_leaves, &
!@FM_150827        &          carbon, lignin_struc,turnover_time,&
        &          carbon, lignin_struc,&		!@FM_150827
        &          ni_acc,fuel_1hr,fuel_10hr,fuel_100hr,fuel_1000hr, &
        & 	   turnover_time, &			!@FM_150827
...

to have a call consistent with the interface of writerestart in stomate_io.f90, otherwise some variables are crushed in the restart file.

  • lpj_spitfire.f90 / spitfire (2015/08/27)

Add:

ratio_C3_livegrass(:) = zero
ratio_C4_livegrass(:) = zero
char_dens_fuel_ave(:) = zero

as mentionned in Albert's mail (spitfire value too big, 2015/08/21).

  • stomate_permafrost_carbon.f90 / snow_interpol / ! 5. inter- or extrapolate (2015/08/24)
    IF ( dzio(ip,iv) .GT. 0. ) THEN
    

should be replaced with:

IF ( dzio(ip,iv) .GT. min_stomate ) THEN

dzio(ip,iv) can be very small and there is a subsequent division per zero and orchidee crashes.

  • stomate_Cforcing_name and stomate_forcing_name (2015/08/21)

I've found a problem with the variable Cforcing_name, which is declared both as a global save variable of the stomate module and as a save variable of the stomate_main procedure. It is read in stomate_initialize using a getin_p but indeed the value is not correctly transmitted to the stomate_main procedure. There is also a stomate_Cforcing_name in constantes_var.

I corrected this using the constantes_var variable stomate_Cforcing_name and suppressing the two other Cforcing_name in the stomate module.

Then I did the same for forcing_name.

I don't know where this weird code originates from, I hope it's OK with forcesoil and teststomate, I'll check later.

To be corrected

  • 2015/08/24
    • LIGHTNING_FILE should not be read if FIRE_DISABLE=y
  • 2015/08/21
    • GRAZING_MAP should not be read if grassland management is not activated.
    • If OK_EXPLICITSNOW is FALSE then snowdz is not initialized but used anyway (this is probably the case of other variables, to be checked).