wiki:CarbonCyclePage

Version 65 (modified by nbouttes, 3 years ago) (diff)

--

Description of the Carbon Cycle procedures to use the iLOVECLIM carbon cycle version


1. Preindustrial run with the carbon cycle (PI-CC)

Things to do to run with the carbon cycle:

1) In ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h), most flags should be kept at 0, except (as of february 2020):

By default:

   IMSK 1 
   COMATM 1 
   ROUTEAU 1 
   EVAPTRS 1 
   EVAPSI 1 
   F_PALAEO 0 

For the carbon cycle:

   CYCC 2 -> to activate the atmospheric carbon cycle 
   OCYCC 1 -> to activate the oceanic carbon cycle 
   OLDC14 0 
   KC14 1
   KC14P 0 
   OXNITREUX 0 
   WINDINCC 0 
   O2ATM 0 
   N2OATM 0 
   MEDUSA 0
   PATH 0 
   LGMSWITCH 0

2) To modify the ocean outputs: in clio/parameters/netcdfout.param

Beware! for the carbon cycle: output set to 100 per file!!

3) Optionnal: for the Pa/Th?:

In ecbilt_clio/global_flags/choixcomposantes.h :

   PATH 1
  • Set restart_path = .TRUE. in iloveclim/ocycc/sources/path_mod.f90
  • Check that the four Pa-Th outputs are set to T in ludus-code/clio/parameters/netcdfout.param-scal17

4) Restart

NEWEST (06/10/2020)

  • with standard bathymetry:

/home/clim01/nbouttes/iloveclim_coastal/data/PI-CC_r1309_2_ecbilt_clio/ic023000

  • with etopo1 bathymetry:

/home/acclimate/nbouttes/iloveclim_degla2/data/bathy_P_0yr_CC_3_ecbilt_clio/ic026001

Exemple: ./bin/run-iloveclim -l PI-CC -n 1 -r 1 -v 1 -s 23000 -S /home/clim01/nbouttes/iloveclim_coastal/data/PI-CC_r1309_2_ecbilt_clio/ic023000


PREVIOUS (deprecated):

03/2020 restart, with new OCYCC:

-s 19000 -S /home/acclimate/roche/tmp/OCYCC_0612_03_ecbilt_clio/startdata


  • With Pa/Th? the restart from L. Missiaen: -s 67800 -S /home/acclimate/lmissi/iloveclim_lr/wkdir/preind_eq_2ky_v1_15Mar18_ecbilt_clio/run/restartdata/res067800

For example: ./bin/loveclim-new-run -l PI-CC -n 500 -r 250 -k -s 67800 -S /home/acclimate/lmissi/iloveclim_lr/wkdir/preind_eq_2ky_v1_15Mar18_ecbilt_clio/run/restartdata/res067800

or newer restart from F. Lhardy (revision 897):
/home/acclimate/flhardy/iloveclim/data/PI_oldmask_ecbilt_clio/ic071800

  • OR without Pa/Th? add: -s 65800 and -S /home/acclimate/smoreira/_PROJS_/004_iLOVECLIM_MED/20171211_iloveclim_parallel/trunk/wkdir/op02_NOMED_5ky_ecbilt_clio/run/restartdata/res065800

The previous initial state was: data/default/ic50800

Then restart was: (includes rest_cc.dat, with Pa/Th?):
-s 72802 -S /home/acclimate/nbouttes/iloveclim/wkdir/PI-test-CC-restart_ecbilt_clio /run/restartdata/res072802


Things you might want to change:

Things that are now by default, which you might want to change:

  • In general the run is started from the pre-indutrial control simulation with carbon, it is thus a restart simulation.

In ocycc/sources/loveclim_transfer_mod.f90 : KLSR is set to 1 to have a restart, you can change to KLRS=0 for a fresh start.

  • In veccarb/sources/carbone_co2.f90: new_run_c should is set to 0 (if run without c13 values for the vegetation-> set to 1)
  • The vegetation code is activated in ecbilt_clio/parameters/emic.param (set to F not to have it):

T VECODE


2. LGM (and other periods)


2.1. To start an LGM run (LGM):

Using the ice sheets from Ganopolski anf Calov, orbital parameters from Berger and GHG from ice cores.

  • In ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h):

F_PALAEO 1 (or 0, to be discussed)
LGMSWITCH 1

  • Set the palaeo_year to 21000 in ludus-code/ecbilt/parameters/palaeo_transient_parameters.dat
  • Specify the parameters, inputdata and restart from scenario with something like:

./bin/loveclim-new-run -l lgm_nath -s 10000 -n 3000 -r 1000 –P scenario/lgm-pmip2-reb/parameters -I scenario/lgm-pmip2-reb/inputdata –S data/restart_lgm_Nath/ic010000

Note: at the moment restart from PI run instead of the given (old) LGM simulation


2.2. Other past periods:

Method 1:

  • change the GHG in GHG.dat (scenario/default/GHG.dat)
  • change the orbital parameters in namelist file

and do as for a PI restart run

Method 2:
Or you can use F_PALAEO 1:

  • In ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h):

F_PALAEO 1
LGMSWITCH 0

  • Set the palaeo_year to your date in ludus-code/ecbilt/parameters/palaeo_transient_parameters.dat
  • gammat=0 in thersf.f
  • comment LGMSWITCH in landmodel0


2.3. Restart for the LGM with the carbon cycle (LGM-CC) (old):

./bin/loveclim-new-run -l mon_joli_lgm_CC -s 65800 -n 1000 -r 250 –P scenario/lgm-pmip3-cc1/parameters -I scenario/lgm-pmip3-cc1/inputdata -S /home/acclimate/smoreira/_PROJS_/004_iLOVECLIM_MED/20171211_iloveclim_parallel/trunk/wkdir/op02_NOMED_5ky_ecbilt_clio/run/restartdata/res065800
-> instead use restart with CC and PaTh? below


2.4. To add Pa-Th (LGM-CC-PaTh?):

  • In ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h):

PATH 1

  • Set restart_path = .TRUE. in iloveclim/ocycc/sources/path_mod.f90
  • Check that the four Pa-Th outputs are set to T in ludus-code/clio/parameters/netcdfout.param-scal17

Old restart:

./bin/loveclim-new-run -l testLGM_CC_PaTh -s 67800 -n 1000 -r 250 –P scenario/lgm-pmip2-CC-PATH/parameters -I scenario/lgm-pmip2-CC-PATH/inputdata -S /home/acclimate/lmissi/iloveclim_lr/wkdir/preind_eq_2ky_v1_15Mar18_ecbilt_clio/run/restartdata/res067800

New restart (July 2018):

./bin/loveclim-new-run -l testLGM_CC_PaTh -s 75800 -n 1000 -r 250 –P scenario/lgm-pmip2-CC-PATH/parameters -I scenario/lgm-pmip2-CC-PATH/inputdata -S /home/acclimate/flhardy/iloveclim/wkdir/rec-LGM_ref_ecbilt_clio/run/restartdata/res075800


3. Other options in simulations


3.1. To simulate the sinking of brines:

  • OLD: Set use_brines to 1 in clio/sources/clio.f
    NEW: set BRINES to 1 in ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h)
  • Set frac to a value between 0 (no brines) and 1 (maximum effect) in clio/sources/brines.f.


3.2. To force the ice caps topography in LGM run using GRISLI:

  • In ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h):

F_PALAEO 2
ISM 3
LGMSWITCH 1

  • Check the choice of reference topography in /grisli/SOURCES/Fichiers-parametres/hemin40_param_list.dat
  • Check the path in iloveclim/config/config.obelix
  • To impose the LGM bathymetry, fractoc.dat, bath.om and mozaic.w are needed in inputdata/ directory
  • GRISLI needs to know the LGM bathymetry as well. Create a LGM.dat file in /grisli/INPUT/Forcage/ containing it

Beware! The option ISM 3 is not compatible with cold conditions in the model for now - unstable


3.3. To fix the vegetation to the PI
in emic.param set VECODE option to F instead of T


3.4. To add fresh water fluxes

  • create new scenario directory with FWF scenario in fwf_input.dat
  • areas of FWF defined in: clio/inputdata/zonesOrmenfwf-data.dat (see Roche 2010)
  • in ecbilt_clio/global_flags/choixcomposantes.h (previously lbm/sources/choixcomposantes.h):

#define UNCORFLUX 1
#define APPLY_UNCORFWF 1


3.5. With new bathymetry

1) Modify / check choixcomposantes.h in scenario (scenario/deglaciation_pmip4_P_T/sources-2tr or scenario/deglaciation_pmip4_P_T/sources-17tr):

BATHY 2 
F_PALAEO 3 
ISM 3 
SMB_TYP 1 
CPLTYP 1 
DOWNSTS 1 
DOWNSCALING 1
LGMSWITCH 0 


Note: to have uncorrected FWF from ice sheets on top (not to be done in equilibrirum runs, only transient, otherwise issue with salinity computation):

APPLY_UNCORFWF 1
F_PALAEO_FWF 1 

Note 2: to have corrected FWF from ice sheets on top:

APPLY_UNCORFWF 0
F_PALAEO_FWF 1

2) Specifify the date in ludus-code/ecbilt/parameters/palaeo_transient_parameters.dat (see LGM section earlier).

3) Choose the correct ice sheet reconstruction for topography in ludus-code/ecbilt/inputdata/

  • For Peltier: ICE6G_26k-0k_hemin40_Aurelien.nc:

ln -s ICE6G_26k-0k_hemin40_Aurelien.nc Gano_40k-0k_hemin40.nc
This file has 105 time slices, with a time step of 250 years, the first time slice is 26k and the last one is 0.

  • For Tarasov: GLAC1D_26k-0k_hemin40_Aurelien.nc

ln -s GLAC1D_26k-0k_hemin40_Aurelien.nc Gano_40k-0k_hemin40.nc
This file has 261 time slices, with a time step of 100 years, the first time slice is 26k and the last one is 0.

You will also need to modify in palaeo_timer_mod.f90 and input_subgrid2L.f90 the values of :

  • nb_steps_fism
  • update_time_fism
  • time_max_fism

4) In ludus-code/lbm/sources/routageEAU.f90: bricole_caspienne=.FALSE.

5) Change the path for GRISLI: in config/grisli.path change the line for:
/home/acclimate/aquiquet/GRISLI/GRISLI_iLoveclim

6) If you want to use berg.nc instead of berg.dat (for ice sheets also in SO):
/ecbilt_clio/global_flags/BC_switches.h

7) Specify inputdata, sources and restart (here starting from LGM):
Options to run the simulation with the correct scenarios:

  • With two tracers:

./bin/loveclim-new-run -l PI-bathy -n 10 -r 10 -k -z -I scenario/deglaciation_pmip4_P_T/inputdata_peltier -F scenario/deglaciation_pmip4_P_T/sources-2tr -P scenario/deglaciation_pmip4_P_T/parameters-2tr -s 97801 -S /home/acclimate/nbouttes/iloveclim_degla/data/bathy_P_21000yr_2_CC_FWF_17tr2_ecbilt_clio/ic097801 -v 1

  • Or with 17 tracers (Carbon cycle CC):

./bin/loveclim-new-run -l PI-CC-bathy -n 10 -r 10 -k -z -I scenario/deglaciation_pmip4_P_T/inputdata_peltier -F scenario/deglaciation_pmip4_P_T/sources-17tr -P scenario/deglaciation_pmip4_P_T/parameters-17tr -s 97801 -S /home/acclimate/nbouttes/iloveclim_degla/data/bathy_P_21000yr_2_CC_FWF_17tr2_ecbilt_clio/ic097801 -v 1


Restart from PI: -s 92801 -S /home/acclimate/flhardy/iloveclim/data/PI_20tr_t1.1_0.997_1.15_1.05_1.027_r25_ecbilt_clio/ic092801


Note :
specify correct update_time_fism in input_subgrid2L.f90 (500 for Peltier, 100 for Tarasov)


Note 2: for salinity

  • If no FWF from ice sheets: the global salt mass is conserverd when bathymetry is changed, which modifies the global mean salinity
  • If FWF from ice sheet: the global mean salinity is changed by the fresh water flux from ice sheets, while the global mean salinity is conserved when the bathymetry is changed.


3.6. With corals

Beware: for now only with 13 tracers (no PaTh?) for the outputs + only annual outputs (no monthly)

  1. Activate the carbon cycle as in section 1.
  1. Activate the flag for corals in ecbilt_clio/global_flags/choixcomposantes.h:
CORAL 1


Restart:
./bin/run-iloveclim -l PI-corals -n 5 -r 5 -z -k -v 1 -s 23000 -S /home/clim01/nbouttes/iloveclim_coastal/data/PI-CC_r1309_2_ecbilt_clio/ic023000


Outputs:

  • in carbon/Coral_output.txt:

NYR in years, total_area_an in km2, total_prod_coral_an in Pmol/year, total_mass_coral_and in Pg/year

  • in ocean/CLIOxxx:

coral_prod in Pmol/year
coral_area in m2
CO32- in mol/kg? (to be verified)
Omega


3.7. With CO2 emissions

in ecbilt_clio/global_flags/choixcomposantes.h:

CEMIS=1

Needs file carbon_emission.dat in inputdata
file contains: year, CO2 emission for each year in Mt CO2/yr


3.8. Interactive carbon cycle

in ecbilt_clio/global_flags/choixcomposantes.h:

INTERACT_CYCC 1


3.9. Transient CO2 concentration historic and futur (with corals)

Pratical:
1) set date in ludus-code/ecbilt/parameters/palaeo...

2) run with:
./bin/run-iloveclim -l PI_ssp585_concentration_2 -n 2 -r 2 -k -z -F scenario/ssp585/sources_concentration -I scenario/ssp585/inputdata_concentration -s 23000 -S /home/clim01/nbouttes/iloveclim_coastal/data/PI-CC_r1309_2_ecbilt_clio/ic023000 -v 1

Notes:
This runs with carbon cycle flages + coral flag + F_PALAEO=2

Modifications have been made in:

  • comphys.f90: change ghgscen to the number of lines with values in GHG.dat
  • paleo_timer_mod.f90:

change start_year_ghg with more recent (or future) value at top of GHG.dat
change nb_year_ghg with oldest value at last line of GHG.dat

  • GHG.dat:

starts with more recent value at line 2, and finishes with oldest value at last line
value on first line is the number of lines with data


3.10. Diffusion

Modified files: engtur.f and difftur.f in clio/sources
scenario: pi_tidemix

To run with tidemix=1 use:
-P scenario/pi-tidemix/parameters -I scenario/pi-tidemix/inputdata -F scenario/pi-tidemix/sources

To be done: second case with flag TIDEMIX=2


4. The different atmospheric CO2 concentrations in the model

  • PGACO2 = Radiative pCO2 for the atmosphere. In emic.f:
    !     Radiative:
                   IF(.NOT.lradCO2) PGACO2=PCO2ref
    


  • PCO2ref = constant to pre-industrial pCO2 levels...

in emic.f :

PCO2ref=277.4D0


  • patmCO2 is used to set the CO2 seen by the vegetation. In emic.f:
    !     Fertilization:
                   IF(lferCO2) then
                      patmCO2=PGACO2
                   ELSE
                      patmCO2=PCO2ref
                   ENDIF            ! lferCO2
    !
    
  • And used in VECODE as: (ccparam.f)
            nppt=npp*(1.0+(betat*LOG(co2ghg/280.)))
            nppg=npp*(1.0+(betag*LOG(co2ghg/280.)))
    
  • PA_C is the current CO2 in the carbon cycle for the atmosphere
  • PA0_C is the PA_C at restart
  • Link between CO2s: PGACO2 is reset in atmphy0.f from ghg(1), read in GHG.dat input file