wiki:Ajeterici/ValidateExternalisation

Validate the externalized version

fluxnet site

First of all, we validate the externalization of parameters on a fluxnet site and with IMPOSE_VEG = y.

We consider the following reference simulation (named REF-TEST) with 10% of bare soil and 90% of C3 grass :

# - Fluxnet files path
FluxnetPath=/home/orchidee01/vuichard/AR5/FORCING

# - Number of PFTs :
NbPFTs= 13

#   * ORCHIDEE name for physical parameters on each sites
#   PFT (IMPOSE_VEG), \
#   initial LAI (IMPOSE_VEG)
NameSitesParam= ( SECHIBA_VEGMAX, SECHIBA_LAI )
# by Default : 
# 1) first line is for PFT
# 2) second line is for LAI default for SLOWPROC lai model with : 
#    llaimax = 0.,  8.,  8.,  4., 4.5, 4.5,  4., 4.5,  4.,  2.,  2.,  2.,  2.)

#   * Name of component for each physical parameter described in NameSitesParam
#     (in SECHIBA, STOMATE, DRIVER)
CompSitesParam= ( SECHIBA, SECHIBA )

# Sites descriptions
#       Abbrv,  Filename ,      Inital year (for gregorian calendar) , Length (Y),  \
#param 1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13
Sites= ( NL-Loo, NL-Loo.nc   ,          1996,                         11     , \
     0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, 0.0, \
      0.,  8.,  8.,  4., 4.5, 4.5,  4., 4.5,  4.,  2.,  2.,  2.,  2. ) \ 
[SPINUP]
    # SPINUP configuration : 
    # ----------------------
# !! Step of time in N Years !!
# !! The spinup will change if the fluxnet file contains more than one year !!
#    ( N = Number of years contain in fluxnet forcing file ) 
#     each Year * N

# Initialisation for spin-up :
# orchidee with sechiba alone (!!! if ok_stomate == n !!!)
duree_nostomate=0
# orchidee with stomate
duree_inistomate=1
# teststomate (only if duree_nostomate or duree_inistomate > 0)
duree_offlineini=0

# Loop configuration for spin-up :
# The whole job is restarted n_iter times
n_iter=1
# orchidee with sechiba (and stomate if ok_stomate=y below)
duree_sechiba=20
# teststomate
duree_stomate=0
# forcesoil
duree_carbonsol=0

# Finalization for spin-up :
# all orchidee
duree_final=20
# This last parameter must be non-zero.


    # POST configuration : 
    # --------------------
# ATLAS fix parameters :
# Atlas Name : 
AtlasCfg=atlas_FLUXNET_LATHUILE.cfg
#atlas_FLUXNET.cfg
#atlas_FLUXNET_soenke.cfg

# observation_file
observation_file_path='/home/orchidee01/vuichard/AR5/OBS/${Site}.synth.hourly.allvars.nc'
#'${R_BC}/OOL/${config_UserChoices_TagName}/FLUXNET/OLD/${Site}.nc'
#'${R_BC}/OOL/${config_UserChoices_TagName}/FLUXNET/OBS/${Site}_obs_gapfilled.nc'

# old history file
reference_file_path='/home/orchidee01/vuichard/IGCM_OUT/OL2/LATHUILE_HIST_2m/${Site}_sechiba_hist.nc'
# 3 choices : SECHIBA, OK_CO2, OK_STOMATE
#'/dmnfs/cont003/p86manci/VALID_OL/SECHIBA/${Site}_sechiba_hist.nc'

# Modulo for SpinUp years
# by default, only one ATLAS-DIFF will be created 
# between the last step and the first one.
#Modulo=15


[UserChoices]

#
###-- STOMATE flag
#
ok_stomate=y
#
###-- OK_CO2 flag
#
ok_co2=y

#
###-- NEW HYDROL CWRR flag
#
ok_newhydrol=n

#
## DEBUG mode for SPINUP 
#
# This mode keep all SPINUP directory in ARCHIVE
# If disable, all ARCHIVE is automaticly cleaned.
# 
DEBUG_SPIN=n
# If you don't want to keep old spinup steps, but last one
CONSERVE=y

[SubJobParams]
# You can specify here any parameters to be modified in sechiba.def, stomate.def or driver.def for SpinUp Subjobs.
# NEW : due to split of orchidee.def in component specific parameter files,
#       you must add here a prefix for the specific parameter file.
driver_DEBUG_INFO=n
sechiba_LONGPRINT=n
stomate_BAVARD=1
sechiba_ALMA_OUTPUT=y
driver_ALLOW_WEATHERGEN=n
sechiba_SECHIBA_reset_time=y
sechiba_IMPOSE_VEG=y
## To begin with half water stress
#sechiba_HYDROL_HUMR=0.5
# FLUXNET files have hour frequency values.
driver_SPLIT_DT=1

Then we tried to compare the outputs files of the reference job to the following tests :

  1. REF-TEST on 2PFTS : we want to check if the matching array PFT_TO_MTC works correctly. So we have in fluxnet.card :
# - Number of PFTs :
NbPFTs= 2

# Sites descriptions
#       Abbrv,  Filename ,      Inital year (for gregorian calendar) , Length (Y),  \
#param 1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13
Sites= ( NL-Loo, NL-Loo.nc   ,          1996,                         11     , \
      0.1, 0.9, \
      0.0,  2. ) \ 

and in PARAM/driver.def :

NVM = 2

PFT_TO_MTC__01 = 01
PFT_TO_MTC__02 = 10

  1. The second test consists to test if the re-parametrization works correctly.

As there are some few differences between C3 crop and C3 grass, we change the parameters of the C3 crop and we give the values of the C3 grass.

So we turn a C3 crop in a C3 grass. Now we have in fluxnet.card (by the following we only show the changing lines):

# - Number of PFTs :
NbPFTs= 13

# Sites descriptions
#       Abbrv,  Filename ,      Inital year (for gregorian calendar) , Length (Y),  \
#param 1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13
Sites= ( NL-Loo, NL-Loo.nc   ,          1996,                         11     , \
     0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9, 0.0, \
      0.,  8.,  8.,  4., 4.5, 4.5,  4., 4.5,  4.,  2.,  2.,  2.,  2. ) \ 


In driver.def, we only got :

VCMAX_FIX__12 = 60.
VJMAX_FIX__12 = 120.
NATURAL__12 = TRUE
VJMAX_OPT__12 = 160.
TPHOTO_MIN_A__12 = 0.0025  
TPHOTO_MIN_B__12 = 0.1
TPHOTO_MIN_C__12 = -3.25
TPHOTO_OPT_A__12 = 0.0025
TPHOTO_OPT_B__12 = 0.25
TPHOTO_OPT_C__12 = 27.25
TPHOTO_MAX_A__12 =  0.00375
TPHOTO_MAX_B__12 =  0.35
TPHOTO_MAX_C__12 = 41.125
FLAM__12 = .25
LAI_MAX__12 = 2.5
PHENO_TYPE__12 = 4
PHENO_GDD_CRIT_A__12 = 0.03125 
PHENO_GDD_CRIT_B__12 = 6.25
PHENO_GDD_CRIT_C__12 = 270.
HUM_MIN_TIME__12 = 35.
LEAFAGECRIT__12 = 120.
SENESCENCE_HUM__12 = .2
SENESCENCE_TEMP_C__12 = -1.375 
SENESCENCE_TEMP_B__12 = .1
SENESCENCE_TEMP_A__12 = .00375
RSTRUCT_CONST__12 = 2.5

To be sure that we have the real C3 crop, we add this test consisting to write in driver.def ( with the same fluxnet.card) :

NVM = 13

PFT_TO_MTC__01 = 1
PFT_TO_MTC__02 = 2
PFT_TO_MTC__03 = 3
PFT_TO_MTC__04 = 4
PFT_TO_MTC__05 = 5
PFT_TO_MTC__06 = 6
PFT_TO_MTC__07 = 7
PFT_TO_MTC__08 = 8
PFT_TO_MTC__09 = 9
PFT_TO_MTC__10 = 10
PFT_TO_MTC__11 = 11
PFT_TO_MTC__12 = 10
PFT_TO_MTC__13 = 13

in order to see that the system of Metaclasses work well.

  1. The third validation test is the opposite of the first one. We set the C3 grass as the 14th PFT.

We have respectively in fluxnet.card and in driver.def :

# - Number of PFTs :
NbPFTs= 14

# Sites descriptions
#       Abbrv,  Filename ,      Inital year (for gregorian calendar) , Length (Y),  \
#param 1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13
Sites= ( NL-Loo, NL-Loo.nc   ,          1996,                         11     , \
     0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9 \
      0.,  8.,  8.,  4., 4.5, 4.5,  4., 4.5,  4.,  2.,  2.,  2.,  2., 2.) \ 

# Number of vegetation types (by default 13) :
NVM = 14

# PFT_TO_MTC :
# Here is the list of the MTC implememented in the model
# & (/ 'bared ground                      ', &          !  1
# &    'tropical  broad-leaved evergreen  ', &          !  2
# &    'tropical  broad-leaved raingreen  ', &          !  3
# &    'temperate needleleaf   evergreen  ', &          !  4
# &    'temperate broad-leaved evergreen  ', &          !  5
# &    'temperate broad-leaved summergreen', &          !  6
# &    'boreal    needleleaf   evergreen  ', &          !  7
# &    'boreal    broad-leaved summergreen', &          !  8
# &    'boreal    needleleaf   summergreen', &          !  9
# &    '          C3           grass      ', &          ! 10
# &    '          C4           grass      ', &          ! 11
# &    '          C3           agriculture', &          ! 12
# &    '          C4           agriculture'  /)         ! 13

# Give the MTC associated to each PFT
# WARNING : you had to set PFT_TO_MTC (1) = 1
# ie, the first pft ought to be the bare soil
# WARNING : more than one bare soil is prohibited
# if you don't respect these two rules, the job will stop

PFT_TO_MTC__01 = 1
PFT_TO_MTC__02 = 2
PFT_TO_MTC__03 = 3
PFT_TO_MTC__04 = 4
PFT_TO_MTC__05 = 5
PFT_TO_MTC__06 = 6
PFT_TO_MTC__07 = 7
PFT_TO_MTC__08 = 8
PFT_TO_MTC__09 = 9
PFT_TO_MTC__10 = 10
PFT_TO_MTC__11 = 11
PFT_TO_MTC__12 = 12
PFT_TO_MTC__13 = 13 
PFT_TO_MTC__14 = 10

  1. The last test consists to have three PFTs : one bare soil and two C3 grass like this :
# - Number of PFTs :
NbPFTs= 14

# Sites descriptions
#       Abbrv,  Filename ,      Inital year (for gregorian calendar) , Length (Y),  \
#param 1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13
Sites= ( NL-Loo, NL-Loo.nc   ,          1996,                         11     , \
     0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.45, 0.0, 0.0, 0.0, 0.45 \
      0.,  8.,  8.,  4., 4.5, 4.5,  4., 4.5,  4.,  2.,  2.,  2.,  2., 2.) \ 

in this case, we spli the C3 grass in two. The corresponding driver.def is :

# Number of vegetation types (by default 13) :
NVM = 14


PFT_TO_MTC__01 = 1
PFT_TO_MTC__02 = 2
PFT_TO_MTC__03 = 3
PFT_TO_MTC__04 = 4
PFT_TO_MTC__05 = 5
PFT_TO_MTC__06 = 6
PFT_TO_MTC__07 = 7
PFT_TO_MTC__08 = 8
PFT_TO_MTC__09 = 9
PFT_TO_MTC__10 = 10
PFT_TO_MTC__11 = 11
PFT_TO_MTC__12 = 12
PFT_TO_MTC__13 = 13 
PFT_TO_MTC__14 = 10

Results

The comparisons are OK.

Veget Map

  1. We tried to validate th externalized version of ORCHIDEE with a standard job : copy of OOL_SEC_STO on a region, using the standard veget map.

We wanted to know if we obtained the same results than the standard version of ORCHIDEE.

We compare the results with the "original" version (the version of ORCHIDEE without the externalization, dating from july 2010). Here again, the comparisons between the output files for sechiba and stomate are OK.

  1. With a new veget map : we made a script in python which can generate a standard veget map (based on Olson classification) with a floating number

of PFTs.

Last modified 12 years ago Last modified on 2011-12-14T18:22:41+01:00