ORCHIDEE
Contenido |
ORCHIDEE
This manual provides the information about the land-surface model ORCHIDEE (technical page for advanced users) from Institute Pierre Simone Laplace (IPSL). Its installation on the HPC of the CIMA called hydra
.
Model description
- ORCHIDEE: sechiba & stomate
- Two major modes of simulations: Off-line (no feedback) / on-line (LMDZ, WRF)
All forcing data to run ORCHIDEE is located here in CIMA's HPC:
${ORforcing}=/share/DATA/ORCHIDEE/IGCM/
Off-line atmospheric forcings
Desdcribed here: ORforcings
Atmoshperic variables required by ORCHIDEE: LWdown, PSurf, Qair, Rainf, SWdown, Snowf, Tair, Wind_E, Wind_N
Available data-bases in hydra:
- WFDE5 CRU GPCC (v1, 0.5°): mixing ERA5 CRU and GPCC:
WFDE5_CRU_GPCC_[YYYY].nc
athydra
:
${ORforcing}/METEO/WFDE5_CRU_GPCC/v1/
Morphological forcings as data-base
Installed in CIMA's HPC hydra at
/share/DATA/ORCHIDEE/IGCM/SRF
To be interpolated to the domain of simulation (region and resolution) at the first time step (done by ORCHIDEE) Mandatory:
PFT map
15 PFT, percentage of each by grid-point (maxvegetfrac
, see table for equivalencies of PFT)
num | description |
---|---|
1 | bare ground |
2 | tropical broad-leaved evergreen |
3 | tropical broad-leaved raingreen |
4 | temperate needleleaf evergreen |
5 | temperate broad-leaved evergreen |
6 | temperate broad-leaved summergreen |
7 | boreal needleleaf evergreen |
8 | boreal broad-leaved summergreen |
9 | boreal needleleaf summergreen |
10 | C3 grass |
11 | C4 grass |
12 | C3 agriculture |
13 | C4 agriculture |
14 | C3 tropical natural grassland |
15 | C4 boreal natural grassland |
PFTmap_IPCC_[YYYY].nc
(0.5°, basic), a file per/year ESA-LUH2, v2 at:
${ORforcing}/PFTMAPS/CMIP6/ESA-LUH2v2/historical/15PFT.v2/PFTmap_2000.nc
carteveg5km.nc
(Olson's global classification of 94 PFT, 5km transformation)
No temporal evolution at:
${ORforcing}/PFTMAPS/
Soil characterisitcs
-
soilcolor
used to define background-albedo: albedowet, albedodry (using values from 1 to 8). To be find insoils_param.nc, soils_param_zobler.nc
-
soiltexture
to define soil type, to be grouped as 3 types: corse, medium, fine (from 7 values). 3 different sources: -
soils_param.nc
(1.°, basic) -
soils_param_zobler.nc
: 7 types (1°) -
soils_param_usda.nc
: 12 types (0.08331404°)
WOODHARVEST
SOIL_BULK
Additional
- LAI: on runs without
stomate
(otherwise, LAI is dynamic), one needs to provide climatologies of the LAI: 13 LAI values which evolves along time (monthly climatology)lai2D_[00/01/03].nc
- Albedo: on runs without
stomate
(otherwise, albedo is dynamic) new maps only for the bare soil albedo at higher resolution to avoid the use ofsoilcolor
fromsoils_param.nc
. Fixed values for wet/dry background albedo. Or a new file-
alb_bg_jrctip.nc
: albedos climatologies retrieved from MODIS satellite JRC-TIP package -
alb_bg_modisopt_2D.nc
: Another non.climatological albedo from MODIS
-
${ORforcing}/albedo
- Routing:
routing.nc
: worldwide data-base of river basins at 0.5°: 1-8 direction, <89 point at the sea, ... (trip
), riverID (basins
), water retention (topoind
), etc...,cartepente2d_15min.nc
topography slope (0.25°) - Floodplains:
floodplain.nc
To account for maximum flooded area:lake, dam, swamp, saline, pond, irrig
- Chemistry:
orchidee_fertilizer_1995.nc
with fertilization (for N2) for rice and the others - Reference Temperature: To be used as a reference temperature for the soil (
reftemp.nc
)
All ORCHIDEE configuration is controlled by run.def
.: Domain, period, physics activation, sechiba/stomate, routing, floodplains, ... ORparameters
I/O controlled by *.xml
files from XIOS libraries
-
iodef.xml
: main XIOS configuration -
context_orchidee.xml
: I/O global configuration for ORCHIDEE -
field_def_orchidee.xml
: definition of I/O variables (names, units, dimensions, long-name, ...) -
file_def_orchidee.xml
: definition of variables at each file (output frequency, level of output, ...)
Installation
This installation guide is based on the installation in different machines from CIMA/DCAO computational resources:
- CIMA's HPC ORcompHYDRA hydra
- DCAO's computational classroom ORcompDCAO DCAO
which it must have pre-installed: netCDF libraries (netcdf-dev, netcdff), MPI libraries (mpi, mpich), Fortan and C compilers (gcc, gcc++ gfortran), pre-processing tools (cpp), subversion repository code tool (svn), Makefile (make, gmake), shells (ksh, csh)
NOTE
Each new version of the code, has its own XIOS files! Make sure that you're using the right ones!! (otherwise, you would have an error...)
Running the model
ORCHIDEE can run in a large variety of forms. Here is desribed a simple way to run a year of simulation using the off-line configuration and the trunk branch.
Benchmark
Following this instructions we downloaded the necessary forcings in /share/DATA/ORCHIDEE/benchmark
For this experiment, our WORKDIR
:
/home/lluis.fita/estudios/ORbenchmark
Linking all data:
ln -s /share/DATA/ORCHIDEE/benchmark/link_ORbenchmark_files.bash ./ ./link_ORbenchmark_files.bash
Configuring XIOS:
cp /share/ORCHIDEE/modipsl/modeles/ORCHIDEE/src_xml/* ./ diff file_def_orchidee.xml /share/ORCHIDEE/modipsl/modeles/ORCHIDEE/src_xml/file_def_orchidee.xml 44c44 < <file id="sechiba1" name="sechiba_history" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="sechiba1" name="sechiba_history" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 391c391 < <file id="sechiba2" name="sechiba_out_2" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="sechiba2" name="sechiba_out_2" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 633c633 < <file id="sechiba3" name="sechiba_history_4dim" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="sechiba3" name="sechiba_history_4dim" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 837c837 < <file id="stomate1" name="stomate_history" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="stomate1" name="stomate_history" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 1246c1246 < <file id="stomate2" name="stomate_ipcc_history" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="stomate2" name="stomate_ipcc_history" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 1329c1329 < <file id="stomate3" name="stomate_history_4dim" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="stomate3" name="stomate_history_4dim" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_"> 1407c1407 < <file id="stomate4" name="stomate_fixed_dia" output_level="10" output_freq="1d" enabled=".TRUE."> --- > <file id="stomate4" name="stomate_fixed_dia" output_level="_AUTO_" output_freq="_AUTO_" enabled="_AUTO_">
Getting the configuration and modifying its values:
cp /share/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_FG2/PARAM/run.def ./ diff run.def /share/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_FG2/PARAM/run.def 12c12 < TIME_LENGTH = 1D --- > TIME_LENGTH = _AUTO_ 17c17 < TIME_SKIP = 0 --- > TIME_SKIP = _AUTO_ 21c21 < DRIVER_reset_time = n --- > DRIVER_reset_time = _AUTO_ 24c24 < RESTART_FILEIN = NONE --- > RESTART_FILEIN = _AUTOBLOCKER_ 28c28 < ATM_CO2 = 350. --- > ATM_CO2 = _AUTO_: DEFAULT = 350. 33,36c33,36 < LIMIT_WEST=-5 < LIMIT_NORTH=5 < LIMIT_SOUTH=40 < LIMIT_EAST=55 --- > #LIMIT_WEST=8 > #LIMIT_NORTH=48 > #LIMIT_SOUTH=46 > #LIMIT_EAST=10
Getting orchidee's configuration:
cp /share/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_FG2/PARAM/orchidee.def ./ diff orchidee.def /share/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_FG2/PARAM/orchidee.def 41c41 < SECHIBA_restart_in = NONE --- > SECHIBA_restart_in = _AUTOBLOCKER_ 45c45 < STOMATE_RESTART_FILEIN = NONE --- > STOMATE_RESTART_FILEIN = _AUTOBLOCKER_ 52c52 < XIOS_ORCHIDEE_OK = y --- > XIOS_ORCHIDEE_OK = _AUTOBLOCKER_ 56c56 < SECHIBA_HISTFILE2 = n --- > SECHIBA_HISTFILE2 = _AUTO_ 61c61 < WRITE_STEP = 0 --- > WRITE_STEP = _AUTO_ 65c65 < WRITE_STEP2 = 0 --- > WRITE_STEP2 = _AUTO_ 69c69 < STOMATE_HIST_DT = 0 --- > STOMATE_HIST_DT = _AUTO_ 74c74 < STOMATE_IPCC_HIST_DT = 0 --- > STOMATE_IPCC_HIST_DT = _AUTO_ 135c135 < RIVER_DESC = n --- > RIVER_DESC = _AUTO_ 146c146 < VEGET_UPDATE = 0Y --- > VEGET_UPDATE = _AUTO_ 196c196 < STOMATE_OK_STOMATE = y --- > STOMATE_OK_STOMATE = _AUTOBLOCKER_ 206c206 < NINPUT_UPDATE = 0Y --- > NINPUT_UPDATE = _AUTO_ 209c209 < STOMATE_IMPOSE_CN = n --- > STOMATE_IMPOSE_CN = _AUTO_
And ORCHIDEE's PFTs
cp /share/ORCHIDEE/modipsl/config/ORCHIDEE_OL/OOL_SEC_STO_FG2/PARAM/orchidee_pft.def_15pft.1ac ./orchidee_pft.def
Getting the basic PBS job to run ORCHIDEE:
cp /share/ORCHIDEE/launch_orchidee.pbs ./
Launching
qsub launch_orchidee.pbs
Test: let's look at Marcos Juárez, Córdoba, Argentina
Assuming a working directory ${WORKDIR}
(e.g.: /home/lluis.fita/estudios/SensLuLc_MarcosJuarez/trunk
)
Writing of a simple run.def
with stomate and routing activated for the 1980 year (the meaning and default values of all parameters are available here
***************************************************************************** START_DATE = 2001-01-01 00:00:00 END_DATE = 2001-12-31 24:00:00 TIME_LENGTH = 1Y DT_SECHIBA = 900 #SPREAD_PREC_SEC = 3600 # The default is half the forcing time step FORCING_FILE = forcing_yearm1.nc forcing_year.nc forcing_yearp1.nc GRID_FILE = NONE # South America #LIMIT_WEST = -90.0 #LIMIT_EAST = -30.0 #LIMIT_SOUTH = -60.0 #LIMIT_NORTH = 15.0 # Marcos Juarez LIMIT_WEST = -64.0 LIMIT_EAST = -60.0 LIMIT_SOUTH = -34.0 LIMIT_NORTH = -30.0 #***************************************************************************** # Activate Stomate component (default y) STOMATE_OK_STOMATE= y STOMATE_OK_NCYCLE=FALSE # # Parameters related to the restart file and the start date #************************************************************************** # Time in the forcing file at which the model start if start date is not set by the forcing file (default 0) TIME_SKIP = 0 # Time length for one intergration # (default full lenght of forcing file) #TIME_LENGTH = _AUTO_ # If DRIVER_reset_time=y, read the year from forcing file instead of taking it from restart file (default n) #DRIVER_reset_time = _AUTO_ # Name of restart file for the driver (default NONE) RESTART_FILEIN = NONE # Name of restart file for sechiba part of the model (default NONE) #SECHIBA_restart_in = _AUTOBLOCKER_ # Name of restart file for stomate part of the model (default NONE) #STOMATE_RESTART_FILEIN = _AUTOBLOCKER_ # Parameters related to the diagnostic output files #************************************************************************** # Use XIOS for writing diagnostics file (default y) XIOS_ORCHIDEE_OK = n # Flag to activate sechiba_out_2.nc history file when using IOIPSL for SECHIBA (defulat n) SECHIBA_HISTFILE2 = n # Writefrequency in seconds in sechiba_history.nc when using IOIPSL (default 86400) # If WRITE_STEP=0 then all IOIPSL output are deactivated WRITE_STEP = 0 # Writefrequency in seconds sechiba_out_2.nc when using IOIPSL (default 1800) WRITE_STEP2 = 0 # Writefrequency in days in stomate_history.nc when using IOIPSL (default 10) STOMATE_HIST_DT = 0 # Writefrequency in days or -1 for monthly output in stomate_ipcc_history.nc when using IOIPSL (default 0) STOMATE_IPCC_HIST_DT = 0 PRINTLEV=1000 # Hydrology parameters #************************************************************************** # Activate the multi-layer diffusion scheme adapted from CWRR (default y) HYDROL_CWRR = y # Activate river routing (default y) RIVER_ROUTING = n ROUTING_METHOD = highres ROUTING_FILE = routing.nc DT_ROUTING = 900 # Activate creation of river_desc.nc file # RIVER_DESC will be activated only the first execution in the simulation RIVER_DESC = y # SOILTYPE_CLASSIF : Type of classification used for the map of soil types (default zobler) SOILTYPE_CLASSIF = zobler # Parameters related to vegetation map #************************************************************************** # Update vegetation frequency (default 0Y) VEGET_UPDATE = 0Y # Read lai map (default n) LAI_MAP = n # Prescribed vegetation (default n) IMPOSE_VEG = n # Parameters related to surface and thermal physical properties #************************************************************************ # ROUGH_DYN : Account for a dynamic roughness height (activation of Su et al. parametrization) (default y) ROUGH_DYN=y # OK_FREEZE : Activate the complet soil freezing scheme (default y) OK_FREEZE=y # OK_EXPLICITSNOW : Activate explict snow scheme (default y) OK_EXPLICITSNOW=y # Carbon related parameters #************************************************************************** # Analytic spinup (default n) SPINUP_ANALYTIC = n SPINUP_PERIOD = -1 # Value for atmospheric CO2 (default=350) ATM_CO2 = 350 # Activate harvest of wood (default y) DO_WOOD_HARVEST=y # Deactivate fire (default FIRE_DISABLE=y) FIRE_DISABLE=y # Optimized parameters to be used with PFTmap with 15 pfts such as # files in IGCM/SRF/PFTMAPS/CMIP6/ESA-LUH2v2/historical/15PFT.v1 #************************************************************************** # Use 15 PFTs. Note that PFTmap.nc must contains 15PFTs. # PFT=10, 14 and 15 share the same parametrization except for VCMAX25, LAI_MAX, FRAC_GROWTHRESP, # MAINT_RESP_SLOPE_C and ALWAYS_INIT specified below. # (default NVM=13) NVM=15 PFT_TO_MTC=1,2,3,4,5,6,7,8,9,10,11,12,13,10,10 PFT_NAME__10='temperate C3 grass ' PFT_NAME__14='tropical C3 grass ' PFT_NAME__15='boreal C3 grass ' VCMAX25__10 = 50.0 VCMAX25__14 = 50.0 VCMAX25__15 = 40.0 LAI_MAX__10 = 2.5 LAI_MAX__14 = 2.5 LAI_MAX__15 = 2.0 FRAC_GROWTHRESP__10 = 0.28 FRAC_GROWTHRESP__14 = 0.35 FRAC_GROWTHRESP__15 = 0.35 MAINT_RESP_SLOPE_C__10 = 0.16 MAINT_RESP_SLOPE_C__14 = 0.12 MAINT_RESP_SLOPE_C__15 = 0.25 ALWAYS_INIT__10 = y ALWAYS_INIT__14 = n ALWAYS_INIT__15 = y
Linking atomspheric forcing files (0.5° WFDE5 CRU GPCC v1 files)
$ ln -s ${ORforcing}/METEO/WFDE5_CRU_GPCC/v1/WFDE5_CRU_GPCC_2000.nc ./forcing_yearm1.nc $ ln -s ${ORforcing}/METEO/WFDE5_CRU_GPCC/v1/WFDE5_CRU_GPCC_2001.nc ./forcing_year.nc $ ln -s ${ORforcing}/METEO/WFDE5_CRU_GPCC/v1/WFDE5_CRU_GPCC_2002.nc ./forcing_yearp1.nc
Linking the routing data-base
$ ln -s ${ORforcing}/SRF/routing.nc ./
Linking the topographical slope
$ ln -s ${ORforcing}/SRF/cartepente2d_15min.nc ./
Initial temperature of the soil
ln -s /share/DATA/ORCHIDEE/IGCM/SRF/reftemp.nc ./
Linking the morphological files
$ ln -s ${ORforcing}/SRF/SOIL/soils_param_zobler.nc ./soils_param.nc $ ln -s $ORforcing/SRF/PFTMAPS/CMIP6/ESA-LUH2v2/historical/15PFT.v2/PFTmap_1980.nc ./PFTmap.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/SOIL/soil_bulk_and_ph.nc ./
Linking the files related with the Nitrogen's cycle
$ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_FERTILISATION/NMIP/synthetic/historical/Nfer_pasture_2001.nc ./nfer_pasture.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_FERTILISATION/NMIP/synthetic/historical/Nfer_cropland_2001.nc ./nfer_cropland.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_FERTILISATION/NMIP/manure/historical/Nmanure_pasture_2001.nc ./nmanure_pasture.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_FERTILISATION/NMIP/manure/historical/Nmanure_cropland_2001.nc ./nmanure_cropland_2001.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_DEPOSITION/CCMI_ndep/historical/CCMI_ndep_nhx_2001.nc ./ndep_nhx.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/N_DEPOSITION/CCMI_ndep/historical/CCMI_ndep_noy_2001.nc ./ndep_noy.nc $ ln -s /share/DATA/ORCHIDEE/IGCM/SRF/NITROGEN/BNF/bnf_1850.nc ./bnf.nc
Getting the XIOS files (they might be version-dependant, therfore, it is recommended to get them directly from the same folder where the compiled version of ORCHIDEE is located, INSTALLDIR=/share/ORCHIDEE/)
$ cp $INSTALLDIR/modipsl/modeles/ORCHIDEE/src_xml/*xml ./
Edit the file_def_orchidee.xml
to define output frequency and level of of output (remove all the _AUTO_
)
$ vim file_def_orchidee.xml
The final configuration gets:
$ cat file_def_orchidee.xml | grep 'file id' <file id="sechiba1" name="sechiba_history" output_level="11" output_freq="1d" enabled=".TRUE."> <file id="sechiba2" name="sechiba_out_2" output_level="2" output_freq="1mo" enabled=".FALSE."> <file id="sechiba3" name="sechiba_history_4dim" output_level="11" output_freq="1d" enabled=".TRUE."> <file id="sechiba1_alma" name="sechiba_history_alma" output_level="10" output_freq="1mo" enabled=".FALSE."> <file id="sechiba2_alma" name="sechiba_out_2_alma" output_level="10" output_freq="1d" enabled=".FALSE."> <file id="sechiba4" name="sechiba_interp_diag" output_level="3" output_freq="1d" enabled=".TRUE."> <file id="stomate1" name="stomate_history" output_level="10" output_freq="1d" enabled=".TRUE."> <file id="stomate2" name="stomate_ipcc_history" output_level="1" output_freq="1mo" enabled=".FALSE."> <file id="stomate3" name="stomate_history_4dim" output_level="11" output_freq="1d" enabled=".TRUE."> <file id="stomate4" name="stomate_fixed_dia" output_level="4" output_freq="1d" enabled=".FALSE.">
Linking the ORCHIDEE executable
$ ln -s $INSTALLDIR/modipsl/bin/orchideedriver_prod ./orchideedriver $ ln -s /share/ORCHIDEE/modipsl/bin/xios_server_prod.exe ./xios.exe
Getting the PBS scheduling job to run ORCHIDEE
$ cp /share/ORCHIDEE/launch_orchidee.pbs ./
Launching the model
$ qsub launch_orchidee.pbs
There is a problem with the meteorological forcing data IGCM/SRF/METEO/WFDE5_CRU_GPCC/v1/WFDE5_CRU_GPCC_[nnnn].nc
, its time axis is units are: 'hours since 1900-01-01 00:00:00'
. But this gives an IOIPSL
error from flinopen_work
subroutine from IOIPSL/src/flincom.f90
(lines #586-600):
!--- !-- 5.1 Find the time axis. Prefered method is the 'timestep since' !--- gdtmaf_id = -1 gdtt_id = -1 old_id = -1 DO iv=1,ncnbva(fid_out) name='' iret = NF90_INQUIRE_VARIABLE (fid, iv, name=name) units='' iret = NF90_GET_ATT (fid, iv, 'units', units) IF (INDEX(units,'seconds since') > 0) gdtmaf_id = iv IF (INDEX(units,'timesteps since') > 0) gdtt_id = iv IF (INDEX(name, 'tstep') > 0 .OR. INDEX(name,'time') > 0 ) old_id = iv ENDDO
Therefore, axis time units have to changed to 'seconds since 1900-01-01 00:00:00'
If everything went fine, one should have (at least)
orout/sechiba_history.nc orout/sechiba_history_4dim.nc stomate_history.nc
-
sechiba_history.nc
,sechiba_history_4dim.nc
,stomate_history.nc
: Outputs (optional, only when stomate is activated) -
sechiba_rest_out.nc
,stomate_restart.nc
: restarts forsechiba<code> and <code>stomate
(optional, only when stomate is activated) -
out_orchidee_[nnnn]
: standard output files for each process -
river_desc.nc
: output with river description (optional, only when routing is activated)
Running the model in DCAO's computational lab
Follow this link runORDCAO to set-up the runs in the machines of DCAO's computational laboratory
OR4L: L. Fita's work-flow management for ORCHIDEE
ORCHIDEE should be run with libIGCM which is a work-flow management for ORCHIDEE developed at the IPSL.
However, L. Fita developed an independent simpler and less potent work-flow called OR4L. See how it works in this wiki page ORCHIDEE/OR4L OR4L
OR_1proc: DCAO's 1-proc work-flow management for ORCHIDEE
DCAO's computational lab machines are 1 processors standard machines. A new work-flow management has been created for such cases. Mostly related to the UMI & DCAO course of [land-atmosphere interaction and its modelling]. All the iformation is available in the wiki page OR1proc OR 1proc