This chapter describes how to setup your simulation once you have compiled your configuration at a choosen resolution.
In this chapter we describe how to generate/use ensemble simulation.
To create an ensemble configuration you need to create an ensemble.card file.
NOTE: a template of ensemble.card is given in IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6 for IPSLCM6 model.
When IPSLCM6.1.9-LR is downloaded with ./model IPSLCM6.1.9-LR it will offer the possibility to launch experiments of the decadal type.
To prepare an ensemble of simulations copy the config.card and ensemble.card files from the directory:
modipsl/config/IPSLCM6/EXPERIMENTS/IPSLCM/dcppAhindcast_CMIP6
into the directory:
modipsl/config/IPSLCM6/
Two type of esemble are allowed with this template:
All parameters for ensemble description are in ensemble.card and in config.card.
Check that COMP, POST, PARAM and DRIVER directories are present in the experiment folder.
Once ensemble.card and config.card are correctly filled, to create an ensemble simply type:
../../libIGCM/ins_job -e
This will create :
Note: xxx it will be the JobName configured in config.card
NOTE: If a directory exists, ins_job won't modify it, the creation of ensemble it will stopped.
The file config.card is filled as a regular config.card (ins_job without the -e option). It will be used as a template for all simulations that will be created.
The important lines for the ensemble set up are in the [UserChoices] section. Make sure that JobName and ExperimentName are filled with proper values.
The variables DateBegin and DateEnd will be overwritten by variables present in ensemble.card.
# # This is config.card file for IPSLCM6 configuration # #======================================================================== #D-- Compatibility - [Compatibility] libIGCM=1.0 #D-- UserChoices - [UserChoices] #=========================== JobName=CM619-LR-dcppA-hindcast #----- Short Name of Experiment ExperimentName=dcppA-hindcast #----- DEVT TEST PROD SpaceName=DEVT LongName="IPSLCM6.1.9-LR" TagName=IPSLCM6 ModelName=IPSL-CM6A-LR Member=r1i1p1f1 #D- Choice of experiment in EXPERIMENTS directory ExpType=IPSLCM/dcppAhindcast_CMIP6 #============================ #-- leap, noleap, 360d CalendarType=leap #-- Experiment dates : Beginning and ending #-- "YYYY-MM-DD" DateBegin=1961-01-01 DateEnd=1980-12-31 #============================ ORCA_version=eORCA1.2 #============================ #-- 1Y, 1M, 5D, 1D Period Length of one trunk of simulation PeriodLength=1Y
A section [Ensemble] should also be present.
It contains the information that we want to prepare an ensemble simulation with variable EnsembleRun set to y and three unset fields to be filled in the config.card of each member after 'ins_job -e has run.
#=========================== [Ensemble] #D- Ensemble run ? 'y' or 'n' #D- If 'y', fill in ensemble.card !! EnsembleRun=y EnsembleName= EnsembleDate= EnsembleType= #
It is possile to choice between 2 type of esnembles in ensemble.card:
The choice between 2 type of ensembles set the variable active to y of section tat you want activate:
To activate Date Restart (non-Periodic) Ensembles :
[Ens_DATE] active=y [Ens_PERTURB] active=n
To activate Perturbed Restart (Periodic) Ensembles :
NOTE : Period can be also just 1Y (to be able to run NON-periodic perturbed ensembles)
[Ens_DATE] active=n [Ens_PERTURB] active=y
The « Date Restart ensemble » is implemented to configure a set of simulations using several restart dates, generally chosen for a particular point (ex : randomly, particular climate oscillation phases, volcanic activity…).
In ensemble.card all configuration items of this ensemble are in [Ens_DATE] section.
The configuration to define restarts dates is non-periodic one, it needs to define a list of desired restarts.
Fill the following options : active, NAME, LENGTH, INITFROM and INITPATH.
[Ens_DATE] # active=y to use date ensemble, 'n' for no DO NOT use. active=y #--- Default values for all members --- # name of the ensemble (used to create root directory) NAME= CM618-LR-volc-pinatubo-full # default length for all simulations LENGTH=10Y # Default start date for all simulations STARTDATE=19900601 # Experiment name to find all restart files (and default one for non-periodic) INITFROM=CM61-LR-pi-03 # Restart root directory INITPATH=$CCCHOME/IGCM_OUT/IPSLCM6/REDO/piControl/CM61-LR-pi-03-REDO.MAY/1870-01-01 #--- Specific values for each member (overule default) --- # list of corresponding restart dates RESTART_NONPERIODIC=(18700531 18810531)
CAUTION: The variable CalendarType from config.card will be used to determine the next restart date. It should be consistent with the simulations from which you are initialising.
WARNING: For list variables, use blank between values (no coma).
In this section it is explained how to generate members from an initial condition which is perturbed by different means.
There are two ways to perturb the initial condition:
NOTE: It is MANDATORY that "NAME" in ensemble.card is the same of JobName in config.card JobName variable in config.card will be the name of the root directory that would be created containing all config and script files and the ensemble.
In this example some field are empty (necessary to leave them in ensemble.card for OLD un-used options); for example :
MEMBER_LIST=()
MEMBER_NAMELIST=()
MEMBER_INITFROM=
MEMBER_INITPATH=
The example generates :
CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1961
CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1963
CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1965
CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1967
....
CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast/CM619-LR-dcppA-hindcast1979
#################################################################################### [Ens_PERTURB] # active=y to use this ensemble type active=y # ensemble name (must be equal to JobName in config.card) NAME=CM619-LR-dcppA-hindcast # member nb (i.e nb of perturb initial restart for each date) MEMBER=10 MEMBER_LIST=() # member list of names corresponding to each member MEMBER_NAMELIST=() # member pattern global directory name MEMBER_INITFROM= # member pattern global directory for name MEMBER_INITPATH= # periodic and member list simulations length LENGTH=10Y # start date of the first ensemble BEGIN_INIT=19610101 # start date of the last ensemble END_INIT=19801231 # timestep between each periodic simulation PERIODICITY=2Y # Restart name INITFROM=CM61-LR-nudgSSTSire-r1-2DERS-m # Restart directory INITPATH=directory/IGCM_OUT/IPSLCM6/DEVT/historical
Restart files will be generated for each member at each date starting from BEGIN_INIT to END_INIT with a periodicity of PERIODICITY.
The variable MEMBER sets the number of members for each start date.
In this example members will be:
CM619-LR-dcppA-hindcast1961/CM619-LR-dcppA-hindcast1961-01
CM619-LR-dcppA-hindcast1961/CM619-LR-dcppA-hindcast1961-02
CM619-LR-dcppA-hindcast1961/CM619-LR-dcppA-hindcast1961-03
...
CM619-LR-dcppA-hindcast1961/CM619-LR-dcppA-hindcast1961-10
CM619-LR-dcppA-hindcast1963/CM619-LR-dcppA-hindcast1963-01
CM619-LR-dcppA-hindcast1963/CM619-LR-dcppA-hindcast1963-02
CM619-LR-dcppA-hindcast1963/CM619-LR-dcppA-hindcast1963-03
...
CM619-LR-dcppA-hindcast1963/CM619-LR-dcppA-hindcast1963-10
The directory in which the start date is retrieved is given by INITPATH and INITFROM.
For this example restart is from experiment CM61-LR-nudgSSTSire-r1-2DERS-m
in directory $directory/IGCM_OUT/IPSLCM6/DEVT/historical
The way the perturbed member is generated depends on PERTURB_BIN array. The first two elements are the most important. The first one is the executable to be used to produce the members, the second one is the component from which the restart is perturbed.
In the Periodic Case it is only possible to build the members by applying a randomly generated temperature pattern on the restart file of the coupler.
PERTURB_BIN should look like this :
PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1)
The list is interpreted as follows:
NOTE : The perturbation is not applied to grid points located under the sea ice.
This condition is "hard-written" in the AddNoise code. Because of a change of the name of the sea ice cover variable from IPSL-CM5A (OIceFrac) and IPSL-CM6 (OIceFrc), a modification of the code has been made by Olivier Marti in June 2016 to allow the code to search for both names
For each member a new restart file for the coupler will be generated using the executable addnoise to add some randomly generated temperature perturbation.
The corresponding restart file of each member will be stored in
directory/IGCM_IN/dcppA-hindcast/dcppA-hindcast/CPL/Restart/
The perturbation executable must be AddNoise.
PERTURB_BIN=(AddNoise, CPL, sstoc, O_SSTSST, 0.1)
Once config.card and ensemble.card will be properly filled launch ins_job -e to generate all ensemble directories.
ins_job -e # Check and complet job's header
You can use Qsub.xxx.sh (at the JobName? directory level) to launch at same time ALL Jobs, or you can procede to launch jobs one by one :
cd directoy
qsub Jobname
cd ..
cd directoy
qsub Jobname
etc...