= 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][[BR]] == 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 1. COMP 1. PARAM 1. 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 }}}