! NEMURO Ecosystem Model Parameters. ! !svn $Id: nemuro.in 830 2017-01-24 21:21:11Z 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]. AttSW == 0.04d0 ! Light attenuation due to phytoplankton, self-shading coefficient, ! [m2/millimole_N]. AttPS == 0.04d0 ! small biomass AttPL == 0.04d0 ! large biomass ! Fraction of shortwave radiation that is photosynthetically active, ! [nondimensional]. PARfrac == 0.43d0 ! Phytoplankton photochemical reaction coefficient, initial slope of ! the P-I curve [1/(W/m2) 1/day]. AlphaPS == 0.01d0 ! small biomass AlphaPL == 0.01d0 ! large biomass ! Phytoplankton photoinhibition coefficient, [1/(W/m2) 1/day]. BetaPS == 4.5d-4 ! small biomass BetaPL == 4.5d-4 ! large biomass ! Phytoplankton maximum photosynthetic rate at 0 Celsius [1/day]. VmaxS == 0.4d0 ! small biomass VmaxL == 0.8d0 ! large biomass ! Phytoplankton half saturation constant for Nitrate [millimole_N/m3]. KNO3S == 1.0d0 ! small biomass KNO3L == 3.0d0 ! large biomass ! Phytoplankton half saturation constant for Ammonium [millimole_N/m3]. KNH4S == 0.1d0 ! small biomass KNH4L == 0.3d0 ! large biomass ! Phytoplankton half saturation constant for Silicate [millimole_Si/m3]. KSiL == 6.0d0 ! large biomass ! Phytoplankton Ammonium inhibition coefficient [m3/millimole_N]. PusaiS == 1.5d0 ! small biomass PusaiL == 1.5d0 ! large biomass ! Phytoplankton temperature coefficient for photosynthetic rate [1/Celsius]. KGppS == 6.93d-2 ! small biomass KGppL == 6.93d-2 ! large biomass ! Phytoplankton respiration rate at 0 Celsius [1/day]. ResPS0 == 0.03d0 ! small biomass ResPL0 == 0.03d0 ! large biomass ! Phytoplankton temperature coefficient for respiration [1/Celsius]. KResPS == 0.0519d0 ! small biomass KResPL == 0.0519d0 ! large biomass ! Phytoplankton ratio of extracellular excretion to photosynthesis ! [nondimensional]. GammaS == 0.135d0 ! small biomass GammaL == 0.135d0 ! large biomass ! Phytoplankton mortality rate at 0 Celsius [m3/millimole_N 1/day]. MorPS0 == 58.5d-3 ! small biomass MorPL0 == 29.0d-3 ! large biomass ! Phytoplankton temperature coefficient for mortality [1/Celsius]. KMorPS == 6.93d-2 ! small biomass KMorPL == 6.93d-2 ! large biomass ! Zooplankton maximum grazing rate at 0 Celsius [1/day]. GRmaxSps == 0.40d0 ! small Zoo on small phy GRmaxLps == 0.10d0 ! large Zoo on small Phy GRmaxLpl == 0.40d0 ! large Zoo on large Phy GRmaxLzs == 0.40d0 ! large Zoo on small Zoo GRmaxPpl == 0.20d0 ! predator Zoo on large Phy GRmaxPzs == 0.20d0 ! predator Zoo on small Zoo GRmaxPzl == 0.20d0 ! predator Zoo on large Zoo ! Zooplankton temperature coefficient for grazing [1/Celsius]. KGraS == 6.93d-2 ! small biomass KGraL == 6.93d-2 ! large biomass KGraP == 6.93d-2 ! predator biomass ! Zooplankton Ivlev constant [m3/millimole_N]. LamS == 1.4d0 ! small biomass LamL == 1.4d0 ! large biomass LamP == 1.4d0 ! predator biomass ! Zooplankton half-saturation coefficient (squared) for ingestion used ! only when the Holling-type grazing formulation is activated ! [millimole_N/m3]^2. KPS2ZS == 0.16d0 ! small Zoo on small Phy KPS2ZL == 0.16d0 ! large Zoo on small Phy KPL2ZL == 0.16d0 ! large Zoo on large Phy KZS2ZL == 0.16d0 ! large Zoo on small Zoo KPL2ZP == 0.16d0 ! predator Zoo on large Phy KZS2ZP == 0.16d0 ! predator Zoo on small Zoo KZL2ZP == 0.16d0 ! predator Zoo on large Zoo ! Zooplankton threshold value for grazing [millimole_N/m3]. PS2ZSstar == 4.3d-2 ! small Zoo on small Phy PS2ZLstar == 4.0d-2 ! large Zoo on small Phy PL2ZLstar == 4.0d-2 ! large Zoo on large Phy ZS2ZLstar == 4.0d-2 ! large Zoo on small Zoo PL2ZPstar == 4.0d-2 ! predator Zoo on large Phy ZS2ZPstar == 4.0d-2 ! predator Zoo on small Zoo ZL2ZPstar == 4.0d-2 ! predator Zoo on large Zoo ! Zooplankton grazing inhibition coefficient [m3/millimole_N]. PusaiPL == 4.605d0 ! predator Zoo on large Phy PusaiZS == 3.010d0 ! predator Zoo on small Zoo ! Zooplankton mortality rate at 0 Celsius [m3/millimole_N 1/day]. MorZS0 == 58.5d-3 ! small biomass MorZL0 == 58.5d-3 ! large biomass MorZP0 == 58.5d-3 ! predator biomass ! Zooplankton temperature coefficient for mortality [1/Celsius]. KMorZS == 0.0693d0 ! small biomass KMorZL == 0.0693d0 ! large biomass KMorZP == 0.0693d0 ! predator biomass ! Zooplankton assimilation efficiency [nondimemsional]. AlphaZS == 0.70d0 ! small biomass AlphaZL == 0.70d0 ! large biomass AlphaZP == 0.70d0 ! predator biomass ! Zooplankton growth efficiency [nondimensional]. BetaZS == 0.30d0 ! small biomass BetaZL == 0.30d0 ! large biomass BetaZP == 0.30d0 ! predator biomass ! Decomposition rates at 0 Celsius [1/day]. Nit0 == 0.03d0 ! NH4 nitrification VP2N0 == 0.10d0 ! PON to NH4 VP2D0 == 0.10d0 ! PON to DON VD2N0 == 0.20d0 ! DON to NH4 VO2S0 == 0.10d0 ! Opal to Silicate ! Temperature coefficients for decomposition [1/Celsius] KNit == 6.93d-2 ! NH4 nitrification KP2D == 6.93d-2 ! PON to DON KP2N == 6.93d-2 ! PON to NH4 KD2N == 6.93d-2 ! DON to NH4 KO2S == 6.93d-2 ! Opal to Silicate ! Si:N ratio [millimole_Si/millimole_N]. RSiN == 2.0d0 ! Settling (sinking) velocities [m/day]. setVPON == 40.0d0 ! PON setVOpal == 40.0d0 ! Opal ! Harmonic/biharmonic horizontal diffusion of biological tracer for ! nonlinear model and adjoint-based algorithms: [1:NBT,Ngrids]. TNU2 == 11*0.0d0 ! m2/s TNU4 == 11*0.0d0 ! m4/s ad_TNU2 == 11*0.0d0 ! m2/s ad_TNU4 == 11*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 == 11*F ! Vertical mixing coefficients for biological tracers for nonlinear ! model and basic state scale factor in adjoint-based algorithms: ! [1:NBT,Ngrids]. AKT_BAK == 11*1.0d-6 ! m2/s ad_AKT_fac == 11*1.0d0 ! nondimensional ! Nudging/relaxation time scales, inverse scales will be computed ! internally: [1:NBT,Ngrids]. TNUDG == 11*0.0d0 ! 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 LBC(isTvar) == Clo RadNud RadNud RadNud \ ! idbio( 1), nanophyto Clo RadNud RadNud RadNud \ ! idbio( 2), diatom Clo RadNud RadNud RadNud \ ! idbio( 3), microzoo Clo RadNud RadNud RadNud \ ! idbio( 4), mesozoo Clo RadNud RadNud RadNud \ ! idbio( 5), Pzooplankton Clo RadNud RadNud RadNud \ ! idbio( 6), NO3 Clo RadNud RadNud RadNud \ ! idbio( 7), NH4 Clo RadNud RadNud RadNud \ ! idbio( 8), PON Clo RadNud RadNud RadNud \ ! idbio( 9), DON Clo RadNud RadNud RadNud \ ! idbio(10), SiOH4 Clo RadNud RadNud RadNud ! idbio(11), opal ! Adjoint-based algorithms can have different lateral boundary ! conditions keywords. ad_LBC(isTvar) == Per Clo Per Clo \ ! idbio( 1), nanophyto Per Clo Per Clo \ ! idbio( 2), diatom Per Clo Per Clo \ ! idbio( 3), microzoo Per Clo Per Clo \ ! idbio( 4), mesozoo Per Clo Per Clo \ ! idbio( 5), Pzooplankton Per Clo Per Clo \ ! idbio( 6), NO3 Per Clo Per Clo \ ! idbio( 7), NH4 Per Clo Per Clo \ ! idbio( 8), PON Per Clo Per Clo \ ! idbio( 9), DON Per Clo Per Clo \ ! idbio(10), SiOH4 Per Clo Per Clo ! idbio(11), opal ! 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 == F F F F F F F F F F F ! Logical switches (TRUE/FALSE) to read and process biological tracer ! climatology fields: [NBT,Ngrids] values are expected. See glossary below ! for details. LtracerCLM == 11*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 == 11*F ! Logical switches (TRUE/FALSE) to activate writing of biological fields ! into HISTORY output file: [1:NBT,Ngrids]. Hout(idTvar) == 11*T ! ..., NO3, ... biological tracers Hout(idTsur) == 11*F ! ..., NO3_sflux, ... surface tracer flux ! Logical switches (TRUE/FALSE) to activate writing of biological fields ! into QUICKSAVE output file: [1:NBT,Ngrids]. Qout(idTvar) == 11*F ! ..., NO3, ... biological tracers Qout(idsurT) == 11*F ! ..., NO3_sur, ... surface biological tracer Qout(idTsur) == 11*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) == 11*T ! ..., NO3, ... biological tracer Aout(idTTav) == 11*F ! ..., NO3_2, ... quadratic tracer terms Aout(idUTav) == 11*F ! ..., u_NO3, ... quadratic tracer terms Aout(idVTav) == 11*F ! ..., v_NO3, ... quadratic tracer terms Aout(iHUTav) == 11*F ! ..., Huon_NO3, ... tracer volume flux, Aout(iHVTav) == 11*F ! ..., Hvom_NO3, ... tracer volume flux, ! Logical switches (TRUE/FALSE) to activate writing of time-averaged, ! biological tracer diagnostic terms into DIAGNOSTIC output file: ! [1:NBT,Ngrids]. Dout(iTrate) == 11*T ! ..., NO3_rate, ... time rate of change Dout(iThadv) == 11*T ! ..., NO3_hadv, ... horizontal total advection Dout(iTxadv) == 11*T ! ..., NO3_xadv, ... horizontal XI-advection Dout(iTyadv) == 11*T ! ..., NO3_yadv, ... horizontal ETA-advection Dout(iTvadv) == 11*T ! ..., NO3_vadv, ... vertical advection Dout(iThdif) == 11*T ! ..., NO3_hdiff, ... horizontal total diffusion Dout(iTxdif) == 11*T ! ..., NO3_xdiff, ... horizontal XI-diffusion Dout(iTydif) == 11*T ! ..., NO3_ydiff, ... horizontal ETA-diffusion Dout(iTsdif) == 11*T ! ..., NO3_sdiff, ... horizontal S-diffusion Dout(iTvdif) == 11*T ! ..., NO3_vdiff, ... vertical diffusion ! ! GLOSSARY: ! ========= ! !------------------------------------------------------------------------------ ! NEMURO Ecosystem Model Parameters, [1:Ngrids] values are expected. Currently, ! it can be configured with 11 biological tracers: ! ! idbio( 1) nanophytoplankton Nanophytoplankton biomass ! idbio( 2) diatom Diatom biomass ! idbio( 3) microzooplankton Microzooplankton biomass ! idbio( 4) mesozooplankton Mesozooplankton biomass ! idbio( 5) Pzooplankton Predactor zooplankton biomass ! idbio( 6) NO3 Nitrate concentration ! idbio( 7) NH4 Ammonium concentration ! idbio( 8) PON Particulate Organic Nitrogen concentration ! idbio( 9) DON Dissolved Organic Nitrogen concentration ! idbio(10) SiOH4 Silicate concentration ! idbio(11) opal Particulate organic silica concentration ! !------------------------------------------------------------------------------ ! ! 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. ! !------------------------------------------------------------------------------ ! Light Parameters, [1:Ngrids] values are expected. !------------------------------------------------------------------------------ ! ! AttSW Light attenuation due to seawater [1/m]. ! ! AttPS Light attenuation due to Small Phytoplankton, self-shading ! coefficient, [m2/millimole_N]. ! ! AttPL Light attenuation due to Large Phytoplankton, self-shading ! coefficient, [m2/millimole_N]. ! ! PARfrac Fraction of shortwave radiation that is photosynthetically ! active, [nondimensional]. ! ! AlphaPS Small Phytoplankton photochemical reaction coefficient: ! initial slope (low light) of the P-I curve (Platt et al, ! 1980), [1/(W/m2) 1/day]. ! ! AlphaPL Large Phytoplankton photochemical reaction coefficient: ! initial slope (low light) of the P-I curve (Platt et al., ! 1980), [1/(W/m2) 1/day]. ! ! BetaPS Small Phytoplankton photoinhibition coefficient (Platt ! et al., 1980), [1/(W/m2) 1/day]. Set it to zero for no ! inhibition. ! ! BetaPL Large Phytoplankton photoinhibition coefficient (Platt ! et al., 1980), [1/(W/m2) 1/day]. Set it to zero for no ! inhibition. ! !------------------------------------------------------------------------------ ! Phytoplankton Parameters, [1:Ngrids] values are expected. !------------------------------------------------------------------------------ ! ! VmaxS Maximum Small Phytoplankton photosynthetic rate [1/day] in ! the absence of photoinhibition under optimal light. ! ! VmaxL Maximum Large Phytoplankton photosynthetic rate [1/day] in ! the absence of photoinhibition under optimal light. ! ! KNO3S Small Phytoplankton half saturation constant for Nitrate, ! [millimole_N/m3]. ! ! KNO3L Large Phytoplankton half saturation constant for Nitrate, ! [millimole_N/m3]. ! ! KNH4S Small Phytoplankton half saturation constant for Ammonium, ! [millimole_N/m3]. ! ! KNH4L Large Phytoplankton half saturation constant for Ammonium, ! [millimole_N/m3]. ! ! KSiL Large Phytoplankton half saturation constant for Silicate, ! [millimole_Si/m3]. ! ! PusaiS Small Phytoplankton Ammonium inhibition coefficient, ! [m3/millimole_N]. ! ! PusaiL Large Phytoplankton Ammonium inhibition coefficient, ! [m3/millimole_N]. ! ! KGppS Small Phytoplankton temperature coefficient for ! photosynthetic rate, [1/Celsius]. ! ! KGppL Large Phytoplankton temperature coefficient for ! photosynthetic rate, [1/Celsius]. ! ! ResPS0 Small Phytoplankton respiration rate at 0 Celsius, [1/day]. ! ! ResPL0 Large Phytoplankton respiration rate at 0 Celsius, [1/day]. ! ! KResPS Small Phytoplankton temperature coefficient for respiration, ! [1/Celsius]. ! ! KResPL Large Phytoplankton temperature coefficient for respiration, ! [1/Celsius]. ! ! GammaS Small Phytoplankton ratio of extracellular excretion to ! photosynthesis [nondimensional]. ! ! GammaL Large Phytoplankton ratio of extracellular excretion to ! photosynthesis [nondimensional]. ! ! MorPS0 Small Phytoplankton mortality rate at 0 Celsius, ! [m3/millimole_N 1/day]. ! ! MorPL0 Large Phytoplankton mortality rate at 0 Celsius, ! [m3/millimole_N 1/day]. ! ! KMorPS Small Phytoplankton temperature coefficient for mortality, ! [1/Celsius]. ! ! KMorPL Large Phytoplankton temperature coefficient for mortality, ! [1/Celsius]. ! !------------------------------------------------------------------------------ ! Zooplankton parameters, [1:Ngrids] values are expected. !------------------------------------------------------------------------------ ! ! GRmaxSps Small Zooplankton maximum grazing rate on Small ! Phytoplankton at 0 Celsius, [1/day]. ! ! GRmaxLps Large Zooplankton maximum grazing rate on Small ! Phytoplankton at 0 Celsius, [1/day]. ! ! GRmaxLpl Large Zooplankton maximum grazing rate on Large ! Phytoplankton at 0 Celsius, [1/day]. ! ! GRmaxLzs Small Zooplankton maximum grazing rate on Small ! Zooplankton at 0 Celsius, [1/day]. ! ! GRmaxPpl Predator Zooplankton maximum grazing rate on Large ! Phytoplankton at 0 Celsius, [1/day]. ! ! GRmaxPzs Predator Zooplankton maximum grazing rate on Small ! Zooplankton at 0 Celsius, [1/day]. ! ! GRmaxPzl Predator Zooplankton maximum grazing rate on Large ! Phytoplankton at 0 Celsius, [1/day]. ! ! KGraS Small Zooplankton temperature coefficient for grazing, ! [1/Celsius]. ! ! KGraL Large Zooplankton temperature coefficient for grazing, ! [1/Celsius]. ! ! KGraP Predator Zooplankton temperature coefficient for grazing, ! [1/Celsius]. ! ! LamS Small Zooplankton Ivlev constant, [m3/millimole_N]. ! ! LamL Large Zooplankton Ivlev constant, [m3/millimole_N]. ! ! LamP Predator Zooplankton Ivlev constant, [m3/millimole_N]. ! ! KPS2ZS Small Zooplankton half-saturation, squared coefficient for ! ingestion on Small Phytoplankton [millimole_N/m3]^2. ! ! KPS2ZL Large Zooplankton half-saturation, squared coefficient for ! ingestion on Small Phytoplankton [millimole_N/m3]^2. ! ! KPL2ZL Large Zooplankton half-saturation, squared coefficient for ! ingestion on Large Phytoplankton [millimole_N/m3]^2. ! ! KZS2ZL Large Zooplankton half-saturation, squared coefficient for ! ingestion on Small Phytoplankton [millimole_N/m3]^2. ! ! KPL2ZP Predator Zooplankton half-saturation, squared coefficient for ! ingestion on Large Phytoplankton [millimole_N/m3]^2. ! ! KZS2ZP Predator Zooplankton half-saturation, squared coefficient for ! ingestion on Small Zooplankton [millimole_N/m3]^2. ! ! KZL2ZP Predator Zooplankton half-saturation, squared coefficient for ! ingestion on Large Zooplankton [millimole_N/m3]^2. ! ! PS2ZSstar Small Zooplankton threshold value for grazing on ! Small Phytoplankton, [millimole_N/m3]. ! ! PS2ZLstar Large Zooplankton threshold value for grazing on ! Small Phytoplankton, [millimole_N/m3]. ! ! PL2ZLstar Large Zooplankton threshold value for grazing on ! Large Phytoplankton, [millimole_N/m3]. ! ! ZS2ZLstar Large Zooplankton threshold value for grazing on ! Small Zooplankton, [millimole_N/m3]. ! ! PL2ZPstar Predator Zooplankton threshold value for grazing on ! Large Phytoplankton, [millimole_N/m3]. ! ! ZS2ZPstar Predator Zooplankton threshold value for grazing on ! Small Zooplankton, [millimole_N/m3]. ! ! ZL2ZPstar Small Zooplankton threshold value for grazing on ! Small Phytoplankton, [millimole_N/m3]. ! ! PusaiPL Predator Zooplankton grazing on Large Phytoplankton ! inhibition coefficient, [m3/millimole_N]. ! ! PusaiZS Predator Zooplankton grazing on Small Zooplankton ! inhibition coefficient, [m3/millimole_N]. ! ! MorZS0 Small Zooplankton mortality rate at 0 Celsius, ! [m3/millimole_N 1/day]. ! ! MorZL0 Large Zooplankton mortality rate at 0 Celsius, ! [m3/millimole_N 1/day]. ! ! MorZP0 Predator Zooplankton mortality rate at 0 Celsius, ! [m3/millimole_N 1/day]. ! ! KMorZS Small Zooplankton temperature coefficient for mortality, ! [1/Celsius]. ! ! KMorZL Large Zooplankton temperature coefficient for mortality, ! [1/Celsius]. ! ! KMorZP Predator Zooplankton temperature coefficient for mortality, ! [1/Celsius]. ! ! AlphaZS Small Zooplankton assimilation efficiency ! [nondimemsional]. ! ! AlphaZL Large Zooplankton assimilation efficiency ! [nondimemsional]. ! ! AlphaZP Predator Zooplankton assimilation efficiency ! [nondimemsional]. ! ! BetaZS Small Zooplankton growth efficiency ! [nondimensional]. ! ! BetaZL Large Zooplankton growth efficiency ! [nondimensional]. ! ! BetaZP Predator Zooplankton growth efficiency ! [nondimensional]. ! !------------------------------------------------------------------------------ ! Nutrient parameters. !------------------------------------------------------------------------------ ! ! Nit0 Nitrification (NH4 to NO3) rate at 0 Celsius, [1/day]. ! ! VP2N0 PON to NH4 decomposition rate at 0 Celsius, [1/day]. ! ! VP2D0 PON to DON decomposition rate at 0 Celsius, [1/day]. ! ! VD2N0 DON to NH4 decomposition rate at 0 Celsius, [1/day]. ! ! VO2S0 Opal to Silicate decomposition rate at 0 Celsius, [1/day]. ! ! KNit Temperature coefficient for nitrification (NH4 -> NO3) ! decomposition, [1/Celsius]. ! ! KP2D Temperature coefficient for PON to DON decomposition, ! [1/Celsius]. ! ! KP2N Temperature coefficient for PON to NH4 decomposition, ! [1/Celsius]. ! ! KD2N Temperature coefficient for DON to NH4 decomposition, ! [1/Celsius]. ! ! KO2S Temperature coefficient for Opal to Silicate decomposition, ! [1/Celsius]. ! ! RSiN Si:N ratio [millimole_Si/millimole_N]. ! ! setVPON PON Settling (sinking) velocity [m/day]. ! ! setVOpal Opal Settling (sinking) velocity [m/day]. ! !------------------------------------------------------------------------------ ! Physical Parameters, [1:NBT,1:Ngrids] values are expected. !------------------------------------------------------------------------------ ! ! 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) Small Phytoplankton biomass ! LtracerSrc(idbio( 2),ng) Large Phytoplankton biomass ! LtracerSrc(idbio( 3),ng) Small Zooplankton biomass ! LtracerSrc(idbio( 4),ng) Large Zooplankton biomass ! LtracerSrc(idbio( 5),ng) Predator Zooplankton biomass ! LtracerSrc(idbio( 6),ng) Nitrate concentration ! LtracerSrc(idbio( 7),ng) Ammonium concentration ! LtracerSrc(idbio( 8),ng) Particulate Organic Nitrogen ! LtracerSrc(idbio( 9),ng) Dissolved Organic Nitrogen ! LtracerSrc(idbio(10),ng) Silicate concentration ! LtracerSrc(idbio(11),ng) Particulate organic silica ! ! 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) Small Phytoplankton biomass ! LtracerCLM(idbio( 2),ng) Large Phytoplankton biomass ! LtracerCLM(idbio( 3),ng) Small Zooplankton biomass ! LtracerCLM(idbio( 4),ng) Large Zooplankton biomass ! LtracerCLM(idbio( 5),ng) Predator Zooplankton biomass ! LtracerCLM(idbio( 6),ng) Nitrate concentration ! LtracerCLM(idbio( 7),ng) Ammonium concentration ! LtracerCLM(idbio( 8),ng) Particulate Organic Nitrogen ! LtracerCLM(idbio( 9),ng) Dissolved Organic Nitrogen ! LtracerCLM(idbio(10),ng) Silicate concentration ! LtracerCLM(idbio(11),ng) Particulate organic silica ! ! 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) Small Phytoplankton biomass ! LnudgeTCLM(idbio( 2),ng) Large Phytoplankton biomass ! LnudgeTCLM(idbio( 3),ng) Small Zooplankton biomass ! LnudgeTCLM(idbio( 4),ng) Large Zooplankton biomass ! LnudgeTCLM(idbio( 5),ng) Predator Zooplankton biomass ! LnudgeTCLM(idbio( 6),ng) Nitrate concentration ! LnudgeTCLM(idbio( 7),ng) Ammonium concentration ! LnudgeTCLM(idbio( 8),ng) Particulate Organic Nitrogen ! LnudgeTCLM(idbio( 9),ng) Dissolved Organic Nitrogen ! LnudgeTCLM(idbio(10),ng) Silicate concentration ! LnuegeTCLM(idbio(11),ng) Particulate organic silica ! ! 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 files. !------------------------------------------------------------------------------ ! ! 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))=iSphy Small Phytoplankton biomass ! idTvar(idbio( 2))=iLphy Large Phytoplankton biomass ! idTvar(idbio( 3))=iSzoo Small Zooplankton biomass ! idTvar(idbio( 4))=iLzoo Large Zooplankton biomass ! idTvar(idbio( 5))=iPzoo Predator Zooplankton biomass ! idTvar(idbio( 6))=iNO3_ Nitrate concentration ! idTvar(idbio( 7))=iNH4_ Ammonium concentration ! idTvar(idbio( 8))=iPON_ Particulate Organic Nitrogen ! idTvar(idbio( 9))=iDON_ Dissolved Organic Nitrogen ! idTvar(idbio(10))=iSiOH Silicate concentration ! idTvar(idbio(11))=iopal Particulate organic silica ! !------------------------------------------------------------------------------ ! 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 tracers terms ! Aout(idUTav) quadratic tracers terms ! Aout(idVTav) quadratic tracers terms ! Aout(iHUTav) tracer u-volume flux, ! Aout(iHVTav) tracer v-volume flux, ! ! 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. !