wiki:CarbonCyclePage

Version 63 (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:


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/loveclim-new-run -l PI-corals -n 5 -r 5 -z -k -v 1 -s 19000 -S /home/acclimate/roche/tmp/OCYCC_0612_03_ecbilt_clio/startdata


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.6. 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.7. 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