wiki:DevelopmentActivities/ORCHIDEE-CNP/howtoSPINAL

SPINUP_ANALYTIC

This page gives you information how to modify the default way of adjusting the analytical spinup configuration. If you want a simulation w/o analytical spinup please see here how to activate/deactivate the analytical spinup: https://forge.ipsl.jussieu.fr/orchidee/wiki/Documentation/UserGuide/SpinupInJobBasic

The description assumes you already know how to run the trunk version of ORCHIDEE.

The same procedure has to be done when using the OOL_SEC_STO configuration, except that you have (1) to set the switch for the analytical spinup in COMP/stomate.card to no, (2) comment out the variables CyclicBegin? CyclicEnd? in config.card, and (3) use the variable year instead of CyclicYear? in stomate.card f If you want changing atmospheric CO2 concentration see here https://forge.ipsl.jussieu.fr/orchidee/wiki/Documentation/UserGuide/ChangeCO2

1.1 create new experiment folder

cd ../../config/ORCHIDEE_OL/
cp -fr SPINUP_ANALYTIC/ MY_SPINUP_ANALYTIC/
cd MY_SPINUP_ANALYTIC/

1.2 tell libIGCM about the new input files (they are stored on the IMBALANCE-P disk on obelix)

for deposition file (path,etc) see here: https://forge.ipsl.jussieu.fr/orchidee/wiki/DevelopmentActivities/inputRoutine

REMARK: The Trunk teams recommend to use the old Zobler soil texture; thus here the example for Zobler. add/exchange these files in list of "[InitialStateFiles?]" in COMP/sechiba.card:

(/home/surface3/common/CNP_files/rev02/USDA_SoilSuborder.nc, USDA_SoilSuborder.nc), \
(/home/surface3/common/CNP_files/rev02/soils_param.nc, soils_param.nc), \
(/home/surface3/common/CNP_files/rev02/lithology.nc, lithology.nc)

REMARK: make sure there are no blanks behind the "\"!

add/exchange these files in list of "[BoundaryFiles?]" in COMP/sechiba.card:

(/home/surface3/common/CNP_files/rev02/USDA_SoilSuborder.nc, USDA_SoilSuborder.nc), \
(/home/surface3/common/CNP_files/rev02/soils_param.nc, soils_param.nc), \
(/home/surface3/common/CNP_files/rev02/lithology.nc, lithology.nc), \
(/home/surface3/common/CNP_files/rev02/deposition.nc, deposition.nc),\

REMARK: In PARAM/run.def you have set the following two variables according to the names you set in COMP/stomate.card:

# SOILTYPE_CLASSIF :  Type of classification used for the map of soil types (default zobler)
SOILTYPE_CLASSIF = zobler
SOILALB_FILE     = soils_param.nc
SOILCLASS_FILE   = soils_param.nc

You want account for inter-annual variability of deposition ?

You can loop over a couple for years of deposition to account for inter annual variability during a spinup using CyclicYear?. This is done by adding deposition files in list of "[BoundaryFiles?]"(!) file to COMP/sechiba(!).card:

[BoundaryFiles]
List=   (/home/surface3/common/CNP_files/deposition/deposition_${CyclicYear}.nc, deposition.nc)

1.3 adjust the libIGCM

1.3.1 disable XIOS (not needed anymore)

-- In case you do NOT want to use XIOS make sure you compile orchide with gmake without_xios. --

disable XIOS in COMP/orchidee_ol.card

# Use XIOS as output library instead of IOIPSL
XIOS=n

make sure XIOS is set to "_AUTOBLOCKER_" (if you set it to "n", libIGCM will trigger a stop) in PARAM/run.def:

# Use XIOS for writing diagnostics file
XIOS_ORCHIDEE_OK = _AUTOBLOCKER_

disable XIOS in config.card:

#IOS= (xios, XIOS)
#IOS= (xios_server.exe, xios.x, 1MPI)

1.3.2 other

When using XIOS, make sure the following line is in the list of "[ParametersFiles?]":

        (${MODIPSL}/modeles/ORCHIDEE/src_xml/file_def_input_orchidee.xml, .)  ,\

Make sure the 11-layer hydrology & scheme is used by settting it explicitly to "y" ; this is the default hydrological scheme in ORCHIDEE-CN-P (r4166). If it is on "_AUTO_" it will cause a stop of the orchidee executable. For activating the 11-layer hydrology see here http://forge.ipsl.jussieu.fr/orchidee/wiki/DevelopmentActivities/ORCHIDEE-CNP/activate11HYDRO.

add a set of parameters with their values from the ORCHIDEE-CAN components as well as for the nutrient components to the PARAM/run.def. Make sure you do not overwrite PARAM/run.def but add the additional parameters.

cp /home/surface3/common/CNP_files/rev02/run.def PARAM/run.def

these flags are needed for the nutrient cycles in PARAM/run.def, so make sure they are in there and you set them according to your plans:

# to activate P cycle set =y
STOMATE_OK_PCYCLE=y
STOMATE_IMPOSE_NP=y
# to activate N cycle set =y
STOMATE_OK_NCYCLE=y
STOMATE_IMPOSE_CN=y
# make sure we dont fake
LD_FAKE_HEIGHT=n

# if you spinup the nitrogen and phosphorus; 
#the mineral N stocks can occasionally get over-depleted due to SOM accumulation;
# to avoid that; set this true 
SPINUP_CNP=y

# you can enable mass conservation and stoichiometry checks by =y
STOMATE_MASS_CONSERVATION=y
STOMATE_DSG_DEBUG=y

for setting the nutrient boundary conditions see here: https://forge.ipsl.jussieu.fr/orchidee/wiki/DevelopmentActivities/inputRoutine

disable river routing if you run on non-global scale in run.def

# Activate river routing
RIVER_ROUTING = n

for more information on the manipulation of run.def: http://forge.ipsl.jussieu.fr/orchidee/wiki/Documentation/UserGuide/ManipulationDefFile

1.4a activate analytic solution

in COMP/stomate.card:

[UserChoices]
# SPINUP_ANALYTIC=y/n : Activate the spinup analytic option to solve the carbon in soil balance
SPINUP_ANALYTIC=y

1.4b adjust the job as usual

modify config.card as usual (see here for more information howto set these parameters in general: https://forge.ipsl.jussieu.fr/orchidee/wiki/Documentation/UserGuide/SpinupInJobBasic) I achieved an equilibrium for Europe using sets of 300-350 yr simulations (first step imposing NP concentration, second step prognostic NP concentrations restarting from step 1):

  #-- leap(gregorian), noleap, 360d                                                   
  CalendarType=noleap                                                                 
  #-- Start and End of Job                                                            
  #-- "YYYY-MM-DD"                                                                    
  DateBegin=1960-01-01
  DateEnd=2260-12-31
  # Forcing data between 1901 and 1920                                                
  CyclicBegin=1901
  CyclicEnd=1920

REMARK (curie only): If you want to run ORCHIDEE on spatial subdomain (here the example for a single grid box) you need to adjust the number before MPI line:

#OOL= (orchidee_ol, orchidee_ol, 32MPI)
OOL= (orchidee_ol, orchidee_ol, 1MPI)

modify run.def as usual (see wiki) on obelix: set the directory where you want to have the output, do not use the default location which is /home/scratch01 as the automatic cleaning of the scratch drive does not work properly and can cause the model to crash. Ask Fabienne Maignan where you can store data on obelix in case you do not know. The output path ca be specified by adding to config.card:

ARCHIVE=/home/surface3/dgoll 

REMARK: you need to add the same line to the Job_file (which will be generate in the next step)

1.5 create job

../../../libIGCM/ins_job

1.6 adjust job_file (optional)

1.6.1. simulations sequential mode

Header to run a site scale simulation on obelix using a single execution unit (ppn):

######################
	## OBELIX      LSCE ##
	######################
	#PBS -N test
	#PBS -m a
	#PBS -j oe
	#PBS -q short
	#PBS -o Script_Output_test.000001
	#PBS -S /bin/ksh
	#PBS -v BATCH_NUM_PROC_TOT=1
	#PBS -l nodes=1:ppn=1

make sure in config.card you told libIGCM to run ORCHIDEE with one execution unit (1MPI):

OL= (orchidee_ol, orchidee_ol, 1MPI)

1.6.2. simulations parallel mode

example for a global simulation and 64 processors config.card you told libIGCM to run ORCHIDEE with one execution unit (63MPI and xios with 1MPI):

OL= (orchidee_ol, orchidee_ol, 64MPI)
IOS= (xios_server.exe, xios.x, 1MPI)
######################
	## OBELIX      LSCE ##
	######################
	#PBS -N test
	#PBS -m a
	#PBS -j oe
	#PBS -q longp
	#PBS -o Script_Output_test.000001
	#PBS -S /bin/ksh
	#PBS -v BATCH_NUM_PROC_TOT=64
	#PBS -l nodes=8:ppn=8

see here more info how to use parallel processors (info for all machines): http://forge.ipsl.jussieu.fr/orchidee/wiki/Documentation/UserGuide/TestCaseBatch

1.6.4. other options in Jobfile

to automatically have existing files deleted, set JobType?=DEV

 	#D- Experience type : DEB(ug), DEV(elopment), RUN (default)
	JobType=DEV 

to avoid queuing take full advantage of your job time; the value depends on #PBS -q short and computation time of orchidee

#D- Number of execution in one job
	PeriodNb=60

on obelix: I strongly recommend to specify a directory for the RUN_DIR, if you do not specify you have to expect model crashes because the default location is full. exchange 'dgoll' with your ID and 'surface3' with the disc you can use. Generate the folder RUN_DIR prior first use manually (mkdir command):

#D- Define running directory
#D- Default=${TMPDIR} ie temporary batch directory
#D-
#RUN_DIR_PATH=/workdir/or/scratchdir/of/this/machine
RUN_DIR_PATH=/home/surface3/dgoll/RUN_DIR

Also add the ARCHIVE path as you did in the config.card. The default path is on /home/scratch01 which can run full as the automatic cleaning of the scratch disc does not work all the time:

ARCHIVE=/home/surface3/dgoll

REMARK:

The default libIGCM copies all boundary files for ORCHIDEE instead of using links. This results in a reduction in computational efficiency as the copying of large files takes time. To use links instead of hard copy you can take a few simple steps. See description here http://forge.ipsl.jussieu.fr/orchidee/wiki/DevelopmentActivities/ORCHIDEE-CNP/LibIGCMmod01

1.7 submit the job

on obelix:

qsub Job_ID

on curie

ccc_msub Job_ID

1.8 restart / rerun a job after crash

It is important that you stick to the libIGCM regulations. You /libIGCM/clean_Month to reset run.card or delete run.card if you want to start from scratch. To avoid headaches, it is recommended to always delete all file which you want to redo , for example in the experiment output in IGCM_OUT, etc

2.0 problems which might occur

2.1. executable causes a stop

In general, you should check the out_orchidee_ol and out_execution files for error messages.

known problems

if you can find in "out_orchidee_ol" a message that a LOGICAL has an inappropriate value, you must set in PARAM/run.def the LOGICAL to "y" or "n", for example:

# Activate the multi-layer diffusion scheme adapted from CWRR
# by default the Choisnel hydrology is used.
HYDROL_CWRR = n
Last modified 3 years ago Last modified on 02/28/19 14:03:49