!  Fennel et al (2006) Nitrogen-based Biological Model Parameters.
!
!svn $Id: bio_Fennel.in 889 2018-02-10 03:32:52Z arango $
!========================================================= Hernan G. Arango ===
!  Copyright (c) 2002-2018 The ROMS/TOMS Group                                !
!    Licensed under a MIT/X style license                                     !
!    See License_ROMS.txt                                                     !
!==============================================================================
!                                                                             !
! Input parameters can be entered in ANY order, provided that the parameter   !
! KEYWORD (usually, upper case) is typed correctly followed by "="  or "=="   !
! symbols. Any comment lines are allowed and must begin with an exclamation   !
! mark (!) in column one.  Comments may  appear to the right of a parameter   !
! specification to improve documentation.  Comments will be ignored  during   !
! reading.  Blank lines are also allowed and ignored. Continuation lines in   !
! a parameter specification are allowed and must be preceded by a backslash   !
! (\).  In some instances, more than one value is required for a parameter.   !
! If fewer values are provided, the  last value  is assigned for the entire   !
! parameter array.  The multiplication symbol (*),  without blank spaces in   !
! between, is allowed for a parameter specification.  For example, in a two   !
! grids nested application:                                                   !
!                                                                             !
!    AKT_BAK == 2*1.0d-6  2*5.0d-6              ! m2/s                        !
!                                                                             !
! indicates that the first two entries of array AKT_BAK,  in fortran column-  !
! major order, will have the same value of "1.0d-6" for grid 1,  whereas the  !
! next two entries will have the same value of "5.0d-6" for grid 2.           !
!                                                                             !
! In multiple levels of nesting and/or multiple connected domains  step-ups,  !
! "Ngrids" entries are expected for some of these parameters.  In such case,  !
! the order of the entries for a parameter is extremely important.  It  must  !
! follow the same order (1:Ngrids) as in the state variable declaration. The  !
! USER may follow the above guidelines for specifying his/her values.  These  !
! parameters are marked by "==" plural symbol after the KEYWORD.              !
!                                                                             !
!==============================================================================
!
! NOTICE: Input parameter units are specified within brackets and default
! ******  values are specified within braces.
!
! Switch to control the computation of biology within nested and/or multiple
! connected grids.

    Lbiology == T

! Maximum number of iterations to achieve convergence of the nonlinear
! solution.

     BioIter == 1

! Light attenuation due to seawater [1/m], {0.04d0}.

       AttSW == 0.04d0

! Light attenuation by chlorophyll [1/(mg_Chl m2)], {0.02486d0}.

      AttChl == 0.02486d0

! Fraction of shortwave radiation that is photosynthetically active
! (nondimensional), {0.43d0}.

     PARfrac == 0.43d0

! Constant phytoplankton growth rate if FIXED_Vp0 is defined [1/day], {2.15d0}
! If FIXED_Vp0 is undefined, then Vp0 is ignored and a temperature dependent
! formulation is used (see fennel.h).

         Vp0 == 2.15d0 ! Fei Da, 201705.

! Radiation threshold for nitrification inhibition [Watts/m2], {0.0095d0}.

     I_thNH4 == 0.0095d0

! Half-saturation radiation for nitrification inhibition [Watts/m2], {0.036d0}.

     D_p5NH4 == 0.1d0

! Nitrification rate: oxidation of NH4 to NO3 [1/day], {0.05d0}.

      NitriR == 0.05d0 ! F.Da, 20180225.

! Inverse half-saturation for phytoplankton NO3 uptake [1/(millimole_N m-3)],
! {2.0d0}.

       K_NO3 == 2.0d0

! Inverse half-saturation for phytoplankton PO4 uptake [1/(millimole_N m-3)],
! {2.0d0}. ABever added March 2014

       K_PO4 == 33.333d0

! Inverse half-saturation for phytoplankton NH4 uptake [1/(millimole_N m-3)],
! {2.0d0}.

       K_NH4 == 2.0d0

! Zooplankton half-saturation constant (squared) for ingestion
! [millimole_N m-3]^2, {1.0d0}.

       K_Phy == 2.0d0

! Maximum chlorophyll to carbon ratio [mg_Chl/mg_C], {0.0535d0}.

     Chl2C_m == 0.02675d0

! Chlorophyll minimum threshold value [mg_Chl/m3], {0.0d0}.

      ChlMin == 0.001d0

! Phytoplankton Carbon:Nitrogen ratio [mole_C/mole_N] , {6.625d0}.

       PhyCN == 6.625d0

! Phytoplankton, NH4 inhibition parameter [1/(millimole_N)], {1.5d0}.

       PhyIP == 1.5d0

! Phytoplankton, initial slope of P-I curve [1/(Watts m-2 day)],
! {0.025d0}.
! Li,Zhong,Harding (JMR 2009, their Table-1) propose:
!   0.065mol-C (g-chl)-1 (W m-2)-1 day-1 and a C:Chl=40 (page 674).
!   0.065*12/40 = 0.0195 (W m-2)-1 day-1.

       PhyIS == 0.0400d0 ! psl20180601, Cerco-Noel 2004 with C:Chl=75.
!bug   PhyIS == 0.0650d0

! Phytoplankton minimum threshold value [millimole_N/m3], {0.0d0}.

      PhyMin == 0.001d0

! Phytoplankton mortality rate [1/day], {0.072d0}.

       PhyMR == 0.05d0 !psl20180620
!      PhyMR == 0.02d0 !psl20180320: Compensate for the new (lower) PhyIS value.
!      PhyMR == 0.15d0 !Feng et al. 2015, Fennel et al. 2006.

! Zooplankton Nitrogen assimilation efficiency [nondimensional], {0.75d0}.

     ZooAE_N == 0.75d0

! Zooplankton Basal metabolism [1/day], {0.1d0}.

       ZooBM == 0.1d0

! Zooplankton Carbon:Nitrogen ratio [mole_C/mole_N], {5.0d0}.

       ZooCN == 6.625d0

! Zooplankton specific excretion rate [1/day], {0.1d0}.

       ZooER == 0.1d0

! Zooplankton growth rate at 0C [1/day], {0.1d0}.

       ZooGR == 0.05d0 ! Fei Da, 201705.

! Zooplankton minimum threshold value [millimole_N/m3], {0.0d0}.

      ZooMin == 0.001d0

! Zooplankton mortality rate [1/day], {0.025d0}.

       ZooMR == 0.025d0

! Large detritus remineralization rate N-fraction [1/day], {0.01d0}.

       LDeRRN == 0.01d0

! Large detritus remineralization rate C-fraction [1/day].

       LDeRRC == 0.01d0

! Coagulation rate: aggregation rate of SDeN + Phy ==> LDeN
! [1/day], {0.005d0}.

       CoagR == 0.008d0 ! psl20180604: decrease surfPON.
!psl   CoagR == 0.005d0 ! (original value from Fennel et al.2006)

! Small detritus remineralization rate N-fraction [1/day], {0.03d0}.

       SDeRRN == 0.03d0

! Small detritus remineralization rate C-fraction[1/day].

       SDeRRC == 0.03d0

! Vertical sinking velocity for phytoplankton [m/day], {0.1d0}.

        wPhy == 0.1d0

! Vertical sinking velocity for large detritus [m/day],
! {1.0d0}.

       wLDet == 5.0d0

! Vertical sinking velocity for small detritus [m/day],
! {0.1d0}.

       wSDet == 0.1d0

! Vertical sinking velocity for inorganic suspended solids [m/day],
! {2.0d0}.

       wISS == 2.0d0

! Critical stress for inorganic suspended solids [Pa]
! {0.05}

       tau_c == 5.0d-2

! Vertical resuspension rate for inorganic suspended solids [g m-2 day-1 Pa-1]
! (See Feng et al. 2015 JGR)

    Merosion == 0.d0 ! Cathy had Merosion=0.d0 in her ECB run.

! light attenuation by low salinity seawater in Chespeake Bay [m-1]
! {1.80}

       rkd1 == 1.4d0

! light attenuation by high salinity seawater in Chespeake Bay [m-1]
! {1.17}

       rkd2 == 0.46d0

! light attenuation by chlorophyll at low salinity seawater in Chespeake Bay [m^2 mgChl-1]
! {0.0044}

       rkdChl1 == 0.0d0

! light attenuation by chlorophyll at high salinity seawater in Chespeake Bay [m^2 mgChl-1]
! {0.024}

       rkdChl2 == 1.3d-2

! light attenuation by TSS at low salinity seawater in Chespeake Bay [m^2 g-1]
! {0.0673}

       rkdTSS1 == 6.3d-2

! light attenuation by TSS at high salinity seawater in Chespeake Bay [m^2 g-1]
! {0.006}

       rkdTSS2 == 5.5d-2

! light attenuation by CDOM (use salinity instead) at low salinity seawater in Chespeake Bay [m-1 PSU-1]
! {0.096}

       rkdS1 == -5.7d-2

! light attenuation by CDOM (use salinity instead) at high salinity seawater in Chespeake Bay [m-1 PSU-1]
! {0.0225}

       rkdS2 == 0.0d0

! the date from which the PO4 concentration changed to P_fix2 [day]
! {152}

       P_limday == 152

! the PO4 fixed concentration before P_limday [mmole_P m-3]
!{0.1}

       P_fix1 == 1.0d-1

! the PO4 fixed concentration after P_limday [mmole_P m-3]
!{1.0}

       P_fix2 == 1.0d0

! CO2 partial pressure in the air (parts per million by volume),
! {377.0d0}.
! psl20180308: This parameter is currently ignored and replaced by a quadratic
!   fit to observed atmospheric CO2 at Mauna Loa (see fennel.h).

     pCO2air == 370.0d0

!== USECOS parameters =========================================================
! New parameters introduced for USECOS DOM, BURIAL and SLOPPY

! Phytoplankton exudation rate of labile DON [nondimensional], {0.05d0}.

       ElDON == 0.03d0

! Phytoplankton exudation rate of semilabile DON
! [nondimensional], {0.04d0}.

       EsDON == 0.04d0

! Fraction of semilabile DON to total DON in phytoplankton cell
! [nondimensional] {0.30d0}

       deltN == 0.15d0

! Fraction of semilabile DOC to total DOC in phytoplankton cell
! [nondimensional] {0.55d0}

       deltC == 0.275d0

!  Parameter of carbon excess-based DOC exudation [nondimensional], {0.26d0}

       gammaC == 0.20d0

!  Fraction of semilabile DOC produced by the carbon excess based exudation
!  [nondimensional], {0.35d0}

       slCexc == 0.45d0

! Remineralization rate of DON at 0 deg.C [1/day], {0.0173d0}.

       a0N == 0.00765d0

! Remineralization rate of DOC at 0 deg.C [1/day], {0.0123d0}.

       a0C == 0.012d0

! Large detritus solubilization rate N-fraction at 0C [1/day], {0.05d0}.

       LDeNSR == 0.05d0 ! Fei Da, 201705.

! Large detritus solubilization rate C-fraction at 0C [1/day], {0.04d0}.

       LDeCSR == 0.04d0 ! Fei Da, 201705.

! Small detritus solubilization rate N-fraction at 0C [1/day], {0.05d0}.

       SDeNSR == 0.05d0 ! Fei Da, 201705.

! Small detritus solubilization rate C-fraction at 0C [1/day], {0.04d0}.

       SDeCSR == 0.04d0 ! Fei Da, 201705.

! Light attenuation by DOC [1/(mmol/m2)], {0.003786d0}.

       AttDOC == 0.003786d0

! Negative offset (min) DOC for light attenuation [mmol C/m3], {70.819}
! Equation used is Att = AttDOC * ( DOC + rfDOC - DOCatt_m)

     DOCatt_m == 70.819

!== end USECOS parameters =====================================================

! Harmonic/biharmonic horizontal diffusion of biological tracer for
! nonlinear model and adjoint-based algorithms: [1:NBT,Ngrids].

!psl20160207: Set TNU2 to zero since using MPDATA.
        TNU2 == 17*0.0d0                        ! m2/s
        TNU4 == 17*0.0d0                        ! m4/s

     ad_TNU2 == 17*0.0d0                        ! m2/s
     ad_TNU4 == 17*0.0d0                        ! m4/s

! Logical switches (TRUE/FALSE) to increase/decrease horizontal diffusivity
! in specific areas of the application domain (like sponge areas) for the
! desired grid: [Ngrids]

LtracerSponge == 17*F

! Vertical mixing coefficients for biological tracers for nonlinear
! model and basic state scale factor in adjoint-based algorithms:
! [1:NBT,Ngrids].

     AKT_BAK == 17*1.0d-6                       ! m2/s

  ad_AKT_fac == 17*1.0d0                        ! nondimensional

! Nudging/relaxation time scales, inverse scales will be computed
! internally: [1:NBT,Ngrids].

       TNUDG == 17*15.d0                        ! days

! Set lateral boundary conditions keyword. Notice that a value is expected
! for each boundary segment per nested grid for each state variable.
!
! The biological tracer variables require [1:4,1:NBT,Ngrids] values. The
! boundary order is: 1=west, 2=south, 3=east, and 4=north. That is,
! anticlockwise starting at the western boundary.
!
! The keyword is case insensitive and usually has three characters. However,
! it is possible to have compound keywords, if applicable. For example, the
! keyword "RadNud" implies radiation boundary condition with nudging. This
! combination is usually used in active/passive radiation conditions.
!
! NOTICE: It is possible to specify the lateral boundary conditions for
! ======  all biological tracers in a compact form with a single entry.
! If so, all the biological tracers are assumed to have the same boundary
! condition as in the single entry.
!
!   Keyword    Lateral Boundary Condition Type
!
!   Cla        Clamped                                _____N_____     j=Mm
!   Clo        Closed                                |     4     |
!   Gra        Gradient                              |           |
!   Nes        Nested                              1 W           E 3
!   Nud        Nudging                               |           |
!   Per        Periodic                              |_____S_____|
!   Rad        Radiation                                   2          j=1
!                                                   i=1         i=Lm
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4

!psl20160207: According to fennel_mod.h, ISS comes right after OXYGEN
!             and just before semilabileDON.
!             Here I assume that PO4 is undefined (i.e. not activated)
!             which gives a total of 17 biological tracers.

   LBC(isTvar) ==   Clo  Clo  RadNud  Clo \    ! idbio( 1), NO3
                    Clo  Clo  RadNud  Clo \    ! idbio( 2), NH4
                    Clo  Clo  Rad     Clo \    ! idbio( 3), chlorophyll
                    Clo  Clo  Rad     Clo \    ! idbio( 4), phytoplankton
                    Clo  Clo  Rad     Clo \    ! idbio( 5), zooplankton
                    Clo  Clo  Rad     Clo \    ! idbio( 6), LdetritusN
                    Clo  Clo  Rad     Clo \    ! idbio( 7), SdetritusN
                    Clo  Clo  Rad     Clo \    ! idbio( 8), LdetritusC
                    Clo  Clo  Rad     Clo \    ! idbio( 9), SdetritusC
                    Clo  Clo  RadNud  Clo \    ! idbio(10), TIC
                    Clo  Clo  RadNud  Clo \    ! idbio(11), alkalinity
                    Clo  Clo  RadNud  Clo \    ! idbio(12), oxygen
                    Clo  Clo  Rad     Clo \    ! idbio(13), ISS
!psl20160207        Clo  Clo  Rad     Clo \    ! idbio(14), PO4
                    Clo  Clo  RadNud  Clo \    ! idbio(14), semilabileDON
                    Clo  Clo  RadNud  Clo \    ! idbio(15), refractoryDON
                    Clo  Clo  RadNud  Clo \    ! idbio(16), semilabileDOC
                    Clo  Clo  RadNud  Clo      ! idbio(17), refractoryDOC

! Adjoint-based algorithms can have different lateral boundary
! conditions keywords.

ad_LBC(isTvar) ==   Clo     Clo     RadNud  Clo \    ! idbio( 1), NO3
                    Clo     Clo     RadNud  Clo \    ! idbio( 2), NH4
                    Clo     Clo     Rad     Clo \    ! idbio( 3), chlorophyll
                    Clo     Clo     Rad     Clo \    ! idbio( 4), phytoplankton
                    Clo     Clo     Rad     Clo \    ! idbio( 5), zooplankton
                    Clo     Clo     Rad     Clo \    ! idbio( 6), LdetritusN
                    Clo     Clo     Rad     Clo \    ! idbio( 7), SdetritusN
                    Clo     Clo     Rad     Clo \    ! idbio( 8), LdetritusC
                    Clo     Clo     Rad     Clo \    ! idbio( 9), SdetritusC
                    Clo     Clo     RadNud  Clo \    ! idbio(10), TIC
                    Clo     Clo     RadNud  Clo \    ! idbio(11), alkalinity
                    Clo     Clo     RadNud  Clo \    ! idbio(12), oxygen
                    Clo     Clo     Rad     Clo \    ! idbio(13), ISS
!psl20160207        Clo     Clo     Rad     Clo \    ! idbio(14), PO4
                    Clo     Clo     RadNud  Clo \    ! idbio(14), semilabileDON
                    Clo     Clo     RadNud  Clo \    ! idbio(15), refractoryDON
                    Clo     Clo     RadNud  Clo \    ! idbio(16), semilabileDOC
                    Clo     Clo     RadNud  Clo      ! idbio(17), refractoryDOC

! Logical switches (TRUE/FALSE) to activate biological tracers point
! Sources/Sinks (like river runoff) and to specify which tracer variables
! to consider: [NBT,Ngrids] values are expected. See glossary below for
! details.

  LtracerSrc == 17*T

! Logical switches (TRUE/FALSE) to read and process biological tracer
! climatology fields: [NBT,Ngrids] values are expected. See glossary below
! for details.

  LtracerCLM == 17*F

! Logical switches (TRUE/FALSE) to nudge the desired biological tracer
! climatology field. If not analytical climatology fields, users need to
! turn on the logical switches above to process the fields from the
! climatology NetCDF file that are needed for nudging; [NBT,Ngrids]
! values are expected. See glossary below for details.

  LnudgeTCLM == 17*F

! Logical switches (TRUE/FALSE) to activate writing of biological fields
! into HISTORY output file: [1:NBT,Ngrids].

Hout(idTvar) == 17*T    ! ..., NO3, ...           biological tracer
Hout(idTsur) == 17*T    ! ..., NO3_sflux, ...     surface tracer flux

! Logical switches (TRUE/FALSE) to activate writing of biological fields
! into QUICKSAVE output file: [1:NBT,Ngrids].

Qout(idTvar) == 17*F    ! ..., NO3, ...           biological tracer
Qout(idsurT) == 17*F    ! ..., NO3_sur, ...       surface biological tracer
Qout(idTsur) == 17*F    ! ..., NO3_sflux, ...     surface tracer flux

! Logical switches (TRUE/FALSE) to activate writing of time-averaged fields
! into AVERAGE output file: [1:NBT,Ngrids].

Aout(idTvar) == 17*T    ! ..., NO3, ...           biological tracer
Aout(idTsur) == 17*T    ! ..., NO3_sflux, ...     surface tracer flux

Aout(idTTav) == 17*F    ! ..., NO3_2, ...         quadratic <t*t> tracer terms
Aout(idUTav) == 17*F    ! ..., u_NO3, ...         quadratic <u*t> tracer terms
Aout(idVTav) == 17*F    ! ..., v_NO3, ...         quadratic <v*t> tracer terms
Aout(iHUTav) == 17*T    ! ..., Huon_NO3, ...      tracer volume flux, <Huon*t>
Aout(iHVTav) == 17*T    ! ..., Hvom_NO3, ...      tracer volume flux, <Hvom*t>

! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! biological tracer diagnostic terms into DIAGNOSTIC output file:
! [1:NBT,Ngrids].

Dout(iTrate) == 17*T    ! ..., NO3_rate, ...      time rate of change
Dout(iThadv) == 17*T    ! ..., NO3_hadv, ...      horizontal total advection
Dout(iTxadv) == 17*F    ! ..., NO3_xadv, ...      horizontal XI-advection
Dout(iTyadv) == 17*F    ! ..., NO3_yadv, ...      horizontal ETA-advection
Dout(iTvadv) == 17*T    ! ..., NO3_vadv, ...      vertical advection
Dout(iThdif) == 17*F    ! ..., NO3_hdiff, ...     horizontal total diffusion
Dout(iTxdif) == 17*F    ! ..., NO3_xdiff, ...     horizontal XI-diffusion
Dout(iTydif) == 17*F    ! ..., NO3_ydiff, ...     horizontal ETA-diffusion
Dout(iTsdif) == 17*F    ! ..., NO3_sdiff, ...     horizontal S-diffusion
Dout(iTvdif) == 17*T    ! ..., NO3_vdiff, ...     vertical diffusion

! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! biological processes diagnostics terms into DIAGNOSTIC output file [Ngrids].

Dout(iCOfx) == T        ! CO2_airsea         air-sea CO2 flux
Dout(iDNIT) == T        ! denitrification    denitrification flux
Dout(ipCO2) == T        ! pCO2               CO2 partial pressure
Dout(iO2fx) == T        ! O2_airsea          air-sea O2 flux
Dout(iPPro) == T        ! P_Production       primary production
Dout(iNO3u) == T        ! NO3_uptake         NO3 uptake
Dout(iPAR)  == T        ! iPAR               Photo-Active Radiation

!== USECOS diagnostics ========================================================
Dout(iNbur) == T        ! nitrogen burial
Dout(iCbe)  == F        ! BUGGY; DO NOT USE (psl20180528)
Dout(iCbot) == T        ! carbon flux reaching bed
Dout(iCbur) == T        ! carbon burial
Dout(iPPCe) == T        ! carbon excess productivity
Dout(iwcNf) == T        ! NH4_oxidation      NH4 oxidation to NO3
Dout(iwcdeN)== T        ! NO3_wc_denitrif    NO3 water column denitrification
Dout(iSoxy) == T        ! O2_bottom          Bottom oxygen flux
Dout(iphsu) == T        ! ph_surface         Surface pH
!
!  GLOSSARY:
!  =========
!
!------------------------------------------------------------------------------
! Fennel et al (2006), Nitrogen-based Biological Model Parameters. Currently,
! it can be configured with 12 biological tracers:
!
! idbio( 1)     NO3               Nitrate concentration
! idbio( 2)     NH4               Ammonium concentration
! idbio( 3)     chlorophyll       Chorophyll concentration
! idbio( 4)     phytoplankton     Phytoplankton biomass
! idbio( 5)     zooplankton       Zooplankton biomass
! idbio( 6)     LdetritusN        Large detritus N-concentration
! idbio( 7)     SdetritusN        Small detritus N-concentration
! idbio( 8)     LdetritusC        Large detritus C-concentration     if CARBON
! idbio( 9)     SdetritusC        Small detritus C-concentration     if CARBON
! idbio(10)     TIC               Total inorganic carbon             if CARBON
! idbio(11)     alkalinity        Alkalinity                         if CARBON
! idbio(12)     oxygen            Oxygen concentration               if OXYGEN
!
!------------------------------------------------------------------------------
!
!  Lbiology       Switch to control the computation of a particular module
!                   within nested and/or multiple connected grids. By default
!                   this switch is set to TRUE in "mod_scalars" for all grids.
!                   Ngrids values are expected. The USER has the option, for
!                   example, to compute the biology in just one of the nested
!                   grids. If so, this switch needs to be consistent with the
!                   dimension parameter NBT in "mod_param".  In order to make
!                   the model more efficient in memory usage, NBT(:) should
!                   be zero in such grids.
!
!  BioIter        Maximum number of iterations to achieve convergence of
!                   the nonlinear solution.
!
!  AttSW          Light attenuation due to seawater [1/m].
!
!  AttChl         Light attenuation by chlorophyll [1/(mg_Chl m2)].
!
!  PARfrac        Fraction of shortwave radiation that is photosynthetically
!                   active (nondimensional).
!
!  Vp0            Eppley temperature-limited and light-limited growth tuning
!                   parameter [nondimensional].
!
!  I_thNH4        Radiation threshold for nitrification inhibition [Watts/m2].
!
!  D_p5HN4        Half-saturation radiation for nitrification inhibition
!                   [Watts/m2].
!
!  NitriR         Nitrification rate: oxidation of NH4 to NO3 [day-1].
!
!  K_NO3          Inverse half-saturation for phytoplankton NO3 uptake
!                   [1/(millimole_N m-3)].
!
!  K_NH4          Inverse half-saturation for phytoplankton NH4 uptake
!                   [1/(millimole_N m-3)].
!
!  K_Phy          Zooplankton half-saturation, squared constant for ingestion
!                   [millimole_N m-3]^2.
!
!  Chl2C_m        Maximum chlorophyll to carbon ratio [mg_Chl/mg_C].
!
!  ChlMin         Chlorophyll minimum threshold value [mg_Chl/m3].  Set to
!                   zero to avoid limiting.
!
!  PhyCN          Phytoplankton Carbon:Nitrogen ratio [mole_C/mole_N].
!
!  PhyIP          Phytoplankton, NH4 inhibition parameter [1/(millimole_N)].
!
!  PhyIS          Phytoplankton, initial slope of P-I curve
!                   [1/(Watts m-2 day)].
!
!  PhyMin         Phytoplankton minimum threshold value [millimole_N/m3].
!                   Set to zero to avoid limiting.
!
!  PhyMR          Phytoplankton mortality rate [1/day].
!
!  ZooAE_N        Zooplankton Nitrogen assimilation efficiency
!                   [nondimensional].
!
!  ZooBM          Basal metabolism of zooplankton [1/day].
!
!  ZooCN          Zooplankton Carbon:Nitrogen ratio [mole_C/mole_N].
!
!  ZooER          Zooplankton specific excretion rate [1/day].
!
!  ZooGR          Zooplankton maximum growth rate [1/day].
!
!  ZooMin         Zooplankton minimum threshold value [millimole_N/m3].
!                   Set to zero to avoid limiting.
!
!  ZooMR          Zooplankton mortality rate [1/day].
!
!  LDeRRN         Large nitrogen detritus remineralization rate [day-1].
!
!  LDeRRC         Large carbon detritus remineralization rate [day-1].
!
!  CoagR          Coagulation rate: aggregation rate of SDeN + Phyt ==> LDeN
!                   [day-1].
!
!  SDeRRN         Small nitrogen detritus remineralization rate [day-1].
!
!  SDeRRC         Small carbon detritus remineralization rate [day-1].
!
!  wPhy           Vertical sinking velocity for phytoplankton [m/day].
!
!  wLDet          Vertical sinking velocity for large detritus
!                   [m/day].
!
!  wLDet          Vertical sinking velocity for large detritus
!                   [m/day].
!
!  pCO2air        CO2 partial pressure in the air (parts per million by
!                   volume).
!
!------------------------------------------------------------------------------
! Physical parameters. This file is configured for NBT=12.
!------------------------------------------------------------------------------
!
!  TNU2           Nonlinear model lateral, harmonic, constant, mixing
!                   coefficient (m2/s) for biological tracer variables;
!                   [1:NBT,1:Ngrids] values are expected. If variable
!                   horizontal diffusion is activated, TNU2 is the mixing
!                   coefficient for the largest grid-cell in the domain.
!
!  TNU4           Nonlinear model lateral, biharmonic, constant, mixing
!                   coefficient (m4/s) for biological tracer variables;
!                   [1:NBT,1:Ngrids] values are expected. If variable
!                   horizontal diffusion is activated, TNU4 is the mixing
!                   coefficient for the largest grid-cell in the domain.
!
!  ad_TNU2        Adjoint-based algorithms lateral, harmonic, constant,
!                   mixing coefficient (m2/s) for biological tracer variables;
!                   [1:NBT,1:Ngrids] values are expected. If variable
!                   horizontal diffusion is activated, ad_TNU2 is the mixing
!                   coefficient for the largest grid-cell in the domain.
!
!  ad_TNU4        Adjoint-based algorithms lateral, biharmonic, constant,
!                   mixing coefficient (m4/s) for biological tracer variables;
!                   [1:NBT,1:Ngrids] values are expected. If variable
!                   horizontal diffusion is activated, ad_TNU4 is the mixing
!                   coefficient for the largest grid-cell in the domain.
!
!  LtracerSponge  Logical switches (TRUE/FALSE) to increase/decrease horizontal
!                   diffusivity of biological tracers in specific areas of the
!                   domain. It can be used to specify sponge areas with larger
!                   horizontal mixing coefficients for damping of high
!                   frequency noise due to open boundary conditions or nesting.
!                   The CPP option SPONGE is now deprecated and replaced with
!                   this switch to facilitate or not sponge areas over a
!                   particular nested grid; [1:NBT,1:Ngrids] values are
!                   expected.
!
!                   The horizontal mixing distribution is specified in
!                   "ini_hmixcoef.F" as:
!
!                     diff2(i,j,itrc) = diff_factor(i,j) * diff2(i,j,itrc)
!                     diff4(i,j,itrc) = diff_factor(i,j) * diff4(i,j,itrc)
!
!                   The variable "diff_factor" can be read from the grid
!                   NetCDF file. Alternately, the horizontal diffusion in the
!                   sponge area can be set-up with analytical functions in
!                   "ana_sponge.h" using CPP ANA_SPONGE when these switches
!                   are turned ON for a particular grid.
!
!  AKT_BAK        Background vertical mixing coefficient (m2/s) for biological
!                   tracer variables, [1:NBT,1:Ngrids] values are expected.
!
!
!  ad_AKT_fac     Adjoint-based algorithms vertical mixing, basic state,
!                   scale factor (nondimensional) for biological tracer
!                   variables; [1:NBT,1:Ngrids] values are expected. In
!                   some applications, a smaller/larger values of vertical
!                   mixing are necessary for stability. It is only used
!                   when FORWARD_MIXING is activated.
!
!  TNUDG          Nudging time scale (days), [1:NBT,1:Ngrids].  Inverse scale
!                   will be computed internally.
!
!------------------------------------------------------------------------------
! Lateral boundary conditions parameters.
!------------------------------------------------------------------------------
!
! The lateral boundary conditions are now specified with logical switches
! instead of CPP flags to allow nested grid configurations. Their values are
! load into structured array:
!
!    LBC(1:4, nLBCvar, Ngrids)
!
! where 1:4 are the number of boundary edges, nLBCvar are the number LBC state
! variables, and Ngrids is the number of nested grids. For Example, to apply
! gradient boundary conditions to any tracer we use:
!
!    LBC(iwest,  isTvar(itrc), ng) % gradient
!    LBC(ieast,  isTvar(itrc), ng) % gradient
!    LBC(isouth, isTvar(itrc), ng) % gradient
!    LBC(inorth, isTvar(itrc), ng) % gradient
!
! The lateral boundary conditions for biological tracers are entered with
! a keyword. This keyword is case insensitive and usually has three characters.
! However, it is possible to have compound keywords, if applicable. For example,
! the keyword "RadNud" implies radiation boundary condition with nudging. This
! combination is usually used in active/passive radiation conditions.
!
! It is possible to specify the lateral boundary conditions for all biological
! tracers in a compact form with a single entry.  For example, in a East-West
! periodic application we can just have:
!
!                   W       S       E       N
!                   e       o       a       o
!                   s       u       s       r
!                   t       t       t       t
!                           h               h
!
!                   1       2       3       4
!
!  LBC(isTvar) ==   Per     Clo     Per     Clo
!
! Then, the standard input processing routine will assume that all the
! biological tracers have the same lateral boundary condition specified by
! the single entry.
!
!   Keyword    Lateral Boundary Condition Type
!
!   Cla        Clamped                                _____N_____     j=Mm
!   Clo        Closed                                |     4     |
!   Gra        Gradient                              |           |
!   Nes        Nested                              1 W           E 3
!   Nud        Nudging                               |           |
!   Per        Periodic                              |_____S_____|
!   Rad        Radiation                                   2          j=1
!                                                   i=1         i=Lm
!
!  LBC(isTvar)    Biological Tracers, [1:4, 1:NBT, Ngrids] values are expected.
!
! Similarly, the adjoint-based algorithms (ADM, TLM, RPM) can have different
! lateral boundary conditions keywords:
!
!  ad_LBC(isTvar) Biological Tracers, [1:4, 1:NBT, Ngrids] values are expected.
!
!------------------------------------------------------------------------------
!  Tracer point Sources/Sink sources switches: [1:NBT,1:Ngrids].
!------------------------------------------------------------------------------
!
!  LtracerSrc     Logical switches (T/F) to activate biological tracer
!                   variables point Sources/Sinks.
!
!                     LtracerSrc(idbio( 1),ng)    Nitrate concentration
!                     LtracerSrc(idbio( 2),ng)    Ammonium concentration
!                     LtracerSrc(idbio( 3),ng)    Chorophyll concentration
!                     LtracerSrc(idbio( 4),ng)    Phytoplankton biomass
!                     LtracerSrc(idbio( 5),ng)    Zooplankton biomass
!                     LtracerSrc(idbio( 6),ng)    Large N-detritus
!                     LtracerSrc(idbio( 7),ng)    Small N-detritus
!                     LtracerSrc(idbio( 8),ng)    Large C-detritus
!                     LtracerSrc(idbio( 9),ng)    Small C-detritus
!                     LtracerSrc(idbio(10),ng)    Total inorganic carbon
!                     LtracerSrc(idbio(11),ng)    Alkalinity
!                     LtracerSrc(idbio(12),ng)    Oxygen concentration
!
!                   Recall that these switches are usually activated to add
!                   river runoff as a point source. At minimum, it is necessary
!                   to specify both temperature and salinity for all rivers.
!                   The other tracers are optional. The user needs to know the
!                   correspondence between biological variables and indices
!                   idbio(1:NBT) when activating one or more of these switches.
!
!                   These logical switches REPLACES and ELIMINATES the need to
!                   have or read the variable "river_flag(river)" in the input
!                   rivers forcing NetCDF file:
!
!                     double river_flag(river)
!                        river_flag:long_name = "river runoff tracer flag"
!                        river_flag:option_0 = "all tracers are off"
!                        river_flag:option_1 = "only temperature"
!                        river_flag:option_2 = "only salinity"
!                        river_flag:option_3 = "both temperature and salinity"
!                        river_flag:units = "nondimensional"
!
!                   This logic was too cumbersome and complicated when
!                   additional tracers are considered. However, this change
!                   is backward compatible.
!
!                   The LtracerSrc switch will be used to activate the reading
!                   of respective tracer variable from input river forcing
!                   NetCDF file. If you want to add other tracer variables
!                   (other than temperature and salinity) as a source for a
!                   particular river(s), you just need to specify such values
!                   on those river(s). Then, set the values to ZERO on the
!                   other river(s) that do NOT require such river forcing for
!                   that tracer. Recall that you need to specify the tracer
!                   values for all rivers, even if their values are zero.
!
!------------------------------------------------------------------------------
!  Tracer climatology processing switches: [1:NBT,1:Ngrids].
!------------------------------------------------------------------------------
!
!  LtracerCLM     Logical switches (T/F) to process biological tracer variables
!                   climatology.  The CPP option TCLIMATOLOGY is now obsolete
!                   and replaced with these switches to facilitate nesting
!                   applications. Currently, the CLIMA(ng)%tclm is used for
!                   horizontal mixing, sponges, and nudging.
!
!                     LtracerCLM(idbio( 1),ng)    Nitrate concentration
!                     LtracerCLM(idbio( 2),ng)    Ammonium concentration
!                     LtracerCLM(idbio( 3),ng)    Chorophyll concentration
!                     LtracerCLM(idbio( 4),ng)    Phytoplankton biomass
!                     LtracerCLM(idbio( 5),ng)    Zooplankton biomass
!                     LtracerCLM(idbio( 6),ng)    Large N-detritus
!                     LtracerCLM(idbio( 7),ng)    Small N-detritus
!                     LtracerCLM(idbio( 8),ng)    Large C-detritus
!                     LtracerCLM(idbio( 9),ng)    Small C-detritus
!                     LtracerCLM(idbio(10),ng)    Total inorganic carbon
!                     LtracerCLM(idbio(11),ng)    Alkalinity
!                     LtracerCLM(idbio(12),ng)    Oxygen concentration
!
!                   These switches also controls which climatology tracer
!                   fields needs to be processed.  So we may reduce the
!                   memory allocation for the CLIMA(ng)%tclm array.
!
!------------------------------------------------------------------------------
!  Logical switches for nudging to climatology: [1:NBT,1:Ngrids].
!------------------------------------------------------------------------------
!
!  LnudgeTCLM     Logical switches (T/F) to activate the nugding of biological
!                   tracer variables climatology. These switches also control
!                   which biological tracer variables to nudge. The CPP option
!                   TCLM_NUDGING is now obsolete and replaced with these
!                   switches to facilitate nesting.
!
!                     LnudgeTCLM(idbio( 1),ng)    Nitrate concentration
!                     LnudgeTCLM(idbio( 2),ng)    Ammonium concentration
!                     LnudgeTCLM(idbio( 3),ng)    Chorophyll concentration
!                     LnudgeTCLM(idbio( 4),ng)    Phytoplankton biomass
!                     LnudgeTCLM(idbio( 5),ng)    Zooplankton biomass
!                     LnudgeTCLM(idbio( 6),ng)    Large N-detritus
!                     LnudgeTCLM(idbio( 7),ng)    Small N-detritus
!                     LnudgeTCLM(idbio( 8),ng)    Large C-detritus
!                     LnudgeTCLM(idbio( 9),ng)    Small C-detritus
!                     LnudgeTCLM(idbio(10),ng)    Total inorganic carbon
!                     LnudgeTCLM(idbio(11),ng)    Alkalinity
!                     LnudgeTCLM(idbio(12),ng)    Oxygen concentration
!
!                   User also needs to TURN ON the respective logical switches
!                   "LtracerCLM", described above, to process the required 3D
!                   biological tracer climatology data. This data can be set
!                   with analytical functions (ANA_TCLIMA) or read from input
!                   climatology NetCDF file(s).
!
!                   The nudging coefficients CLIMA(ng)%Tnudgcof can be set
!                   with analytical functions in "ana_nudgcoef.h"  using CPP
!                   option ANA_NUDGCOEF.  Otherwise, it will be read from
!                   NetCDF file NUDNAME.
!
!------------------------------------------------------------------------------
! Logical switches (T/F) to activate writing of fields into HISTORY file.
!------------------------------------------------------------------------------
!
!  Hout           Logical switches to write out biological fields into
!                   output HISTORY NetCDF file, [1:NBT,1:Ngrids] values
!                   are expected:
!
!                   Hout(idTvar)               biological tracers
!                   Hout(idTsur)               biological tracers surface flux
!
!                   idTvar(idbio( 1))=iNO3_    Nitrate concentration
!                   idTvar(idbio( 2))=iNH4_    Ammonium concentration
!                   idTvar(idbio( 3))=iChlo    Chorophyll concentration
!                   idTvar(idbio( 4))=iPhyt    Phytoplankton biomass
!                   idTvar(idbio( 5))=iZoop    Zooplankton biomass
!                   idTvar(idbio( 6))=iLDeN    Large detritus N-concentration
!                   idTvar(idbio( 7))=iSDeN    Small detritus N-concentration
!                   idTvar(idbio( 8))=iLDeC    Large detritus C-concentration
!                   idTvar(idbio( 9))=iSDeC    Small detritus C-concentration
!                   idTvar(idbio(10))=iTIC_    Total inorganic carbon
!                   idTvar(idbio(11))=iTAlk    Alkalinity
!                   idTvar(idbio(12))=iOxyg    Oxygen concentration
!
!------------------------------------------------------------------------------
! Logical switches (T/F) to activate writing of fields into QUICKSAVE file.
!------------------------------------------------------------------------------
!
!  Qout             Logical switches to write out biological fields into
!                     output QUICKSAVE NetCDF file, [1:NBT,1:Ngrids] values
!                     are expected:
!
!                     Qout(idTvar)      biological tracers
!                     Qout(idsurT)      surface biological tracers
!                     Qout(idTsur)      biological tracers surface flux
!
!                     The idTvar(idbio(:)), idsurR(idbio(:)), and
!                     idTsur(idbio(:)) indices are provided above.
!
!------------------------------------------------------------------------------
! Logical switches (T/F) to activate writing of fields into AVERAGE file.
!------------------------------------------------------------------------------
!
!  Aout           Logical switches to write out biological fields into
!                   output AVERAGE NetCDF file, [1:NBT,1:Ngrids] values
!                   are expected:
!
!                   Aout(idTvar)               biological tracers
!
!                   Aout(idTTav)               quadratic <t*t> tracers terms
!                   Aout(idUTav)               quadratic <u*t> tracers terms
!                   Aout(idVTav)               quadratic <v*t> tracers terms
!                   Aout(iHUTav)               tracer u-volume flux, <Huon*t>
!                   Aout(iHVTav)               tracer v-volume flux, <Hvom*t>
!
!                   The idTvar(idbio(:)) are the same to those in the HISTORY
!                   file.
!
!------------------------------------------------------------------------------
! Logical switches (T/F) to activate writing of time-averaged fields into
! DIAGNOSTIC file.
!------------------------------------------------------------------------------
!
!  Time-averaged, biological tracers  diagnostic terms, [1:NBT,Ngrids] values
!  expected: (if DIAGNOSTICS_TS)
!
!                 Dout(idDtrc(idbio(1:NBT),iT....),1:Ngrids)
!
!  Dout(iTrate)   Write out time rate of change.
!  Dout(iThadv)   Write out horizontal total advection.
!  Dout(iTxadv)   Write out horizontal  XI-advection.
!  Dout(iTyadv)   Write out horizontal ETA-advection.
!  Dout(iTvadv)   Write out vertical advection.
!  Dout(iThdif)   Write out horizontal total diffusion, if TS_DIF2 or TS_DIF4.
!  Dout(iTxdif)   Write out horizonta1  XI-diffusion, if TS_DIF2 or TS_DIF4.
!  Dout(iTydif)   Write out horizontal ETA-diffusion, if TS_DIF2 or TS_DIF4.
!  Dout(iTsdif)   Write out horizontal   S-diffusion, if TS_DIF2 or TS_DIF4 and
!                   rotated tensor (MIX_GEO_TS or MIX_ISO_TS).
!  Dout(iTvdif)   Write out vertical diffusion.
!
!
!  Time-accumulated biological processes diagnostics fields, [Ngrids] values
!  are expected:
!
!  Dout(iCOfx)    Write out air-sea CO2 flux.
!  Dout(iDNIT)    Write out denitrification flux.
!  Dout(ipCO2)    Write out CO2 partial pressure.
!  Dout(iO2fx)    Write out air-sea O2 flux.
!  Dout(iPPro)    Write out primary production.
!  Dout(iNO3u)    Write out NO3 uptake.
!  Dout(iSoxy)    Write out bottom oxygen flux (O2_bottom).
!  Dout(iphsu)    Write out surface pH (ph_surface).
!
