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

Version 3 (modified by mguimberteau, 6 years ago) (diff)

--

Guides

Spinup Carbon MICT simulations (libIGCM configuration)

This guide is written by Matthieu Guimberteau:

https://forge.ipsl.jussieu.fr/orchidee/attachment/wiki/DevelopmentActivities/ORCHIDEE-MICT-IMBALANCE-P/Guides/20180409_guimberteau_spinup_MICTv8.6.pdf

Spinup run in MICT-V6 (r3266)

This guide is written by Ana Bastos. It works for revision 3266.

In the folder /modipsl/config/ORCHIDEE_OL:

cp -r SPINUP MY_SPINUP_DIR

In MY_SPINUP_DIR you should find the following files/folders:

  1. config.card
  2. COMP
  3. PARAM
  4. SUBJOB

1. CONFIG.CARD

In config.card change:

JobName=My.Spinup.experiment
PeriodLength= 1Y
JobNumProcTot=NPROC # number of processors for simulation
ARCHIVE = /some/path/to/

Make sure to verify: SpaceName?

The spin-up (as far as I understand) does not work if it does not restart from a transient simulation. So first one needs to have restart files from the transient.

#D-- SRF options passed to SuRFace (SECHIBA) subjobs
[SRF]
WriteFrequency="1Y"
Restart=y
#-- Last day of the experience used as restart	
RestartDate=2011-12-31
# Define restart simulation name
RestartJobName=transient.my.experiment
RestartPath=${ARCHIVE}/IGCM_OUT/OL2/...[DEVT/PROD]/secsto
# Old component name for restart (if empty, use new name)
OldName=

#D-- Surface BioGeochemistry ( STOMATE ) subjobs
[SBG]
WriteFrequency= 1Y
Restart= y
#-- Last day of the experience used as restart
RestartDate= 2011-12-31
# Define restart simulation name
RestartJobName= transient.my.experiment
RestartPath=${ARCHIVE}/IGCM_OUT/OL2/...[DEVT/PROD]/secsto

Run the command:

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

Verify number of processors in Job_My.Spinup.experiment. It does not seem to update automatically.

  • In CURIE:
    #MSUB -n 16  # Number of MPI tasks (SPMD case) or cores (MPMD case)
    
  • In OBELIX:
    #PBS -v BATCH_NUM_PROC_TOT=16 # example
    #PBS -l nodes=4:ppn=4 # example
    

Add, if desired, specify a run dir path folder:

RUN_DIR_PATH = /to/some/folder/

Check, if desired/necessary:

PeriodNb = SOMEVALUE

2. COMP/

2.1. In spinup.card change/verify:

# If you want to use the same forcing file
DRIVER_NORESTART=y
## set to no because of in config.card periodlength=1yr
# If you want use config.card PeriodLength for TIME_LENGTH  
DRIVER_TIMELENGTH=n
## NO for MICT!
# Should we start the analytic resolution of the spinup? 
SPINUP_ANALYTIC=n
#(number of years to put C in soil - default is 100)
duree_carbonsol=X 

n_iter=X

# Boundary Files for ORCHIDEE subjobs :
List= (/.../.../.../.../my.forcing.file.nc, forcing_file.nc)

Verifiy other flags, eg:

  • impose_veg
  • land_use
  • new_hydrol
  • ...

2.2 - In spinup.driver

Below line 320:

# Nb years for forcing FORCESOIL
ORCHIDEE_def FORCESOIL_STEP_PER_YEAR 12
ORCHIDEE_def WRITELEVEL_FORCESOIL 3

Modify line 840:

IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/stomate.card BoundaryFiles ListNonDel \
           "(${config_SBG_RestartPath}/${LastJobName}/SBG/Restart/${LastJobName}_${output_PreviousStage_LastRestartDate}_stomate_Cforcing.nc, stomate_Cforcing.nc), \\"

to:

IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/stomate.card BoundaryFiles ListNonDel \
           "(${config_SBG_RestartPath}/${LastJobName}/SBG/Restart/${LastJobName}_${output_PreviousStage_LastRestartDate}_stomate_Cforcing_permafrost.nc, stomate_Cforcing_permafrost.nc), \\"

Add below:

# Nb years for forcing FORCESOIL
ORCHIDEE_def FORCESOIL_STEP_PER_YEAR 12
ORCHIDEE_def TIME_LENGTH X 			### equal to duree carbon sols #### 

3 - PARAM/

Use the same run.def as used for the whole experiment (see MICT run.def example)

4 - SUBJOB/

4.1 SUBJOB/FORCESOIL

4.1.1 - in config.card:
PeriodLength=X # (same as duree_carbonsol in spinup.card)
		
ARCHIVE = /.../.../.../ - archive folder
		
SBG= (forcesoil, forcesoil, NPROCMPI) # verify that number of processors matches between Spinup and subjobs
		
#D-- SRF - STOMATE
[SBG]
WriteFrequency="XY" # same as PeriodLength

4.1.2 - in Job_AUTO

Verify number of processors (as for the main job)

4.1.3 - in COMP/
4.1.3.1 - stomate.card update boundary file for Cforcing_permafrost
[BoundaryFiles]
List=   ()
ListNonDel= (${config_SBG_RestartPath}/${config_SBG_RestartJobName}/SBG/Restart/${config_SBG_RestartJobName}_${Date_Restarts}_stomate_Cforcing_permafrost.nc, stomate_Cforcing_permafrost.nc)\
            (${R_BC}/SRF/${config_UserChoices_TagName}/reftemp.nc, .)

4.1.3.2 - stomate.driver
ORCHIDEE_def STOMATE_RESTART_FILEIN stomate_rest_in.nc
ORCHIDEE_def STOMATE_CFORCING_NAME stomate_Cforcing.nc
ORCHIDEE_def STOMATE_CFORCING_PF_NM stomate_Cforcing_permafrost.nc # ADD THIS LINE

4.1.2 - in PARAM:

Add TIME_LENGTH=XY to run.def #(is empty)

4.2 SUBJOB/OOL_SEC_STO

4.2.1 - in SUBJOB/OOL_SEC_STO/config.card
#D- For each component, Real name of executable, Name of executable for oasis
OOL= (orchidee_ol, orchidee_ol, NPROCMPI) ##!!! Verify the it matches the main Job
	
#D-- SRF - SECHIBA
[SRF]
WriteFrequency="1Y"
Restart=n
		
#D-- SRF - STOMATE
[SBG]
WriteFrequency="1Y"
Restart=n
4.2.2 - in SUBJOB/OOL_SEC_STO/Job_AUTO

Verify number of processors (as for the main job)

4.2.3 - in SUBJOB/OOL_SEC_STO/COMP/
4.2.3.1 - orchidee_ol.card
[BoundaryFiles]
List= (/.../.../.../.../my.forcing.file.nc, forcing_file.nc)

4.2.3.2 - sechiba.card

Verify flags and add vegetation map (example):

LAIMAP=n
IMPOSE_VEG=n
LAND_USE=y	
VEGET_UPDATE=0Y

OLD_VEGET=n
ROUTING=n
NEWHYDROL=y
OKCO2=y
sechiba_LEVEL=11

[InitialStateFiles]
List=(${R_INIT}/SRF/${config_UserChoices_TagName}/routing.nc, .),     \
     (${R_INIT}/SRF/${config_UserChoices_TagName}/soils_param.nc, .), \
     (${R_INIT}/SRF/${config_UserChoices_TagName}/cartepente2d_15min.nc, .), \
     (${R_INIT}/SRF/${config_UserChoices_TagName}/floodplains.nc, .), \
     (/.../.../.../.../my.PFT.file.nc, PFTmap.nc)

4.2.3.3 - in stomate.driver
ORCHIDEE_def STOMATE_FORCING_NAME stomate_forcing.nc
ORCHIDEE_def STOMATE_CFORCING_NAME stomate_Cforcing.nc
ORCHIDEE_def STOMATE_CFORCING_PF_NM stomate_Cforcing_permafrost.nc  ## ADD THIS LINE
    	
    	
if [ $( IGCM_date_DaysBetweenGregorianDate ${PeriodDateEnd} ${DateEnd} ) -ge 0 ] ; then
        IGCM_sys_Put_Out stomate_Cforcing.nc ${R_OUT_SBG_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_stomate_Cforcing.nc
           IGCM_sys_Put_Out stomate_forcing.nc  ${R_OUT_SBG_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_stomate_forcing.nc
     	   IGCM_sys_Put_Out stomate_Cforcing_permafrost.nc ${R_OUT_SBG_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_stomate_Cforcing_permafrost.nc ### ADD THIS LINE
   rm -f stomate_Cforcing.nc
   rm -f stomate_forcing.nc
   rm -f stomate_Cforcing_permafrost.nc      #### ADD THIS LINE
fi
4.2.4 - in SUBJOB/OOL_SEC_STO/PARAM/run.def

# Use same run.def as the experiment, but add:

FORCESOIL_STEP_PER_YEAR=12
STOMATE_CFORCING_PF_NM = stomate_Cforcing_permafrost.nc

Attachments (1)

Download all attachments as: .zip