wiki:DevelopmentActivities/inputRoutine

Version 14 (modified by dgoll, 7 years ago) (diff)

--

For r4535 and newer: External nitrogen and phosphorus inputs to the ecosystem PART 1: natural inputs

WARNING: If you are running an ENSEMBLE configuration see remarks at the bottom.

External inputs of nutrient to the ecosystem can be either (1) read in from global maps, (2) prescribed from run.def (for site simulations) or (3) computed dynamically in case of biological nitrogen fixation (BNF) and phosphorus weathering. Several flags handle this.

List of natural input fluxes currently considered

natural nitrogen input (g N m-2 yr-1)

  • Ndep_NHX: atmospheric NHX deposition
  • Ndep_NOY: atmospheric NOY deposition
  • Nbnf: Biological N2 fixation

natural phosphorus input (g P m-2 yr-1)

  • Pdep_p: atmospheric P deposition (labile P)
  • Pweat: P release from weathering

Flags to control the input fluxes in run.def

  • Ninput_update: 0=inputs are taken from restart file / 1=inputs are taken from run.def or maps
  • impose_Ninput: y=impose nutrient inputs either from map or run.def (default n)
  • impose_Nmap: y=read nutrient inputs from maps (if impose_Ninput=y), n=read from run.def (if impose_Ninput=y)

For impose_Nmap=n use the following variables to set the fluxes:

  1. Ndep_NHX: annual NHX input by deposition,
  2. Ndep_NOY: annual NOY input by deposition
  3. Nbnf: annual N input by BNF (if read_bnf=y)
  4. Pdep_p: annual P input by deposition
  5. Pweat: annual P input by wethering (if read_pweat=y)

For impose_Nmap=y use the following variables to set the input files:

  1. Ndep_NHX_FILE
  2. Ndep_NOY_FILE
  3. Nbnf_FILE (if read_bnf=y)
  4. Pdep_FILE
  5. Pweat_FILE (if read_weat=y)

examples

Prescribe all input fluxes from run.def (useful if you run a site simulation)

# impose NP inputs(y) ....
NINPUT_UPDATE=1
NINPUT_YEAR=1
IMPOSE_NINPUT=y
# ... from run.def(n)
IMPOSE_NMAP=n
# annual fluxes [g m-2 yr-1]
Ndep_NHX=0.01
Ndep_NOY=0.02
Pdep_p=.01
# also read BNF (y); instead of computing dynamically
READ_BNF=y
Nbnf=1.
#  read BNF(y); instead of computing dynamically
READ_PWEAT=y
Pweat=.01

Prescribe all input fluxes from maps (default procedure for regional to global simulations

# impose NP inputs(y) ....
NINPUT_UPDATE=1
NINPUT_YEAR=1
IMPOSE_NINPUT=y
# ... from maps(y)
IMPOSE_NMAP=y
# I store the three fluxes as variables Ndep_NHX, Ndep_NOY, and Pdep in a single file:
Ndep_NHX_FILE=deposition.nc
Ndep_NOY_FILE=deposition.nc
Pdep_FILE=deposition.nc

# we compute BNF and weathering dynamically (input files are currently not available)
READ_PWEAT=n
READ_BNF=n

Deposition data

We have time series of N and P deposition from Wang et al. (2017) 'Global forest carbon uptake due to nitrogen and phosphorus deposition from 1850 to 2100' ready to use for ORCHIDEE.

since r4535

curie:/ccc/work/cont003/dsm/p529goll/NP_deposition/final_r4535

before

Mind the setup is different (other flags,etc)

curie:/ccc/work/cont003/dsm/p529goll/NP_deposition/final_NEW

For ENSEMBLE setup

Currently, the flag NINPUT_UPDATE is overwritten by libIGCM so that nutrient inputs are not read from run.def nor maps. Till I found a solution you need to hardcode the value in the source code in src_sechiba/slowproc.f90:

    Ninput_update=1
    !DSG AMA Ninput_update=0
    !DSG AMA !JC modif just simply read the nutrient input file when Ninput_update
    !DSG AMA !> 0
    !DSG AMA CALL getin_p('NINPUT_UPDATE', Ninput_update)
    !DSG AMA IF (Ninput_update .GT. 0 ) THEN
    !DSG AMA   WRITE(numout,*) "Update Nutrient inputs",Ninput_update
    !DSG AMA ELSE
    !DSG AMA   WRITE(numout,*) "DONOT update Nutrient inputs",Ninput_update
    !DSG AMA ENDIF

then recompile the model.