npzd Powell.in

From WikiROMS
Jump to navigationJump to search
Powell NPZD Biological Model Input Script - npzd_Powell.in

The npzd_Powell.in file sets the parameters for the Powell et al. NPZD model. The name of this file is set by the BPARNAM keyword in the roms.in file. A default npzd_Powell.in standard input ASCII file can be found in the User/External subdirectory of the ROMS source code. In order to include the Powell et al. NPZD model in ROMS you must set BPARNAM correctly and activate the NPZD_POWELL CPP option.


# index Description Units NetCDF variable
1 iNO3_ Nitrate concentration mmol/m3 NO3
2 iPhyt Phytoplankton biomass mmol/m3 phytoplankton
3 iZoop Zooplankton biomass mmol/m3 zooplankton
4 iSDet Detritus concentration mmol/m3 detritus


The "#" column denotes the internal index number within the idbio array while the "index" column is the index within the tracer array t(:,:,:,:,index).


The Powell NPZD model equations and representative parameters may be found in:


Note Notice: Detailed information about ROMS input script file syntax can be found here.


Biological Model Parameters

Input parameter units are specified within brackets ([ ])and default values are specified within braces ({ }).

  • This switch to control the computation of npzd_Franks within nested and/or multiple connected grids. By default this switch is set to TRUE in mod_scalars.F 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.F. In order to make the model more efficient in memory usage, NBT(:) should be zero in such grids.
Lbiology == T
  • Maximum number of iterations to achieve convergence of the nonlinear solution.
BioIter == 1
  • Initial concentration for analytical uniform initial conditions, [millimole/m3]. It is only used when ANA_BIOLOGY is activated.
BioIni(iNO3_) == 17.0d0  ! nitrate
BioIni(iPhyt) == 1.0d0  ! phytoplankton
BioIni(iZoop) == 1.0d0  ! zooplankton
BioIni(iSDet) == 1.0d0  ! detritus
  • Fraction of shortwave radiation that is photosynthetically active, [nondimensional], {0.43d0}.
PARfrac == 0.43d0
  • Light attenuation due to seawater, [1/m], {0.067d0}.
AttSW == 0.0067d0  ! k_ext
  • Light attenuation due to phytoplankton, self-shading coefficient, [m2/millimole_N], {0.0095d0}.
AttPhy == 0.0095d0  ! k_extP
  • Phytoplankton, initial slope of P-I curve [m2/W], {0.025d0}.
PhyIS == 0.025d0  ! alpha
  • Nitrate uptake rate, [1/day], {1.5d0}.
Vm_NO3 == 1.5d0  ! Vm
  • Phytoplankton mortality rate to Detritus pool, [1/day], {0.1d0}.
PhyMRD == 0.1d0  ! sigmaD
  • Phytoplankton mortality rate to Nitrogen pool, [1/day], {0.0d0}.
PhyMRN == 0.0d0  ! sigmaN
  • Half-saturation for phytoplankton nitrate uptake [millimole_N m-3], {1.0d0}.
K_NO3 == 1.0d0  ! k_N
  • Ivlev constant for zooplankton grazing parameterization [Nondimensional], {14*0.06=0.84d0}
Ivlev == 0.84d0
  • Zooplankton grazing rate, [1/day], {0.52}.
ZooGR == 0.52d0  ! R_m
  • Zooplankton excretion efficiency to Detritus pool [nondimensional], {0.3d0}
ZooEED == 0.0d0  ! gammaD
  • Zooplankton excretion efficiency to Nitrogen pool [nondimensional], {0.3d0}
ZooEEN == 0.3d0  ! gammaN
  • Zooplankton mortality rate to Detritus pool, [1/day], {0.0d0}.
ZooMRD == 0.145d0  ! zetaD
  • Zooplankton mortality rate to Nitrogen pool, [1/day], {0.145d0}.
ZooMRN == 0.0d0  ! zetaN
  • Detritus remineralization rate, [1/day], {0.1d0}.
DetRR == 1.03d0  ! delta
  • Vertical sinking velocity for phytoplankton [m/day], {0.0d0}.
wPhy == 0.0d0  ! wP
  • Detrital sinking rate, [m/day], {8.0d0}.
wDet == 8.0d0  ! wD
  • Lateral, constant, harmonic/biharmonic horizontal diffusion of biological tracer for nonlinear model and adjoint-based algorithms: [1:NBT,Ngrids] values expected.
TNU2 == 4*5.0d0  ! m2/s
TNU4 == 4*0.0d0  ! m4/s

ad_TNU2 == 4*0.0d0  ! m2/s
ad_TNU4 == 4*0.0d0  ! m4/s
  • Vertical mixing coefficients for biological tracers: [1:NBT,Ngrids] values expected.
AKT_BAK == 4*1.0d-6  ! m2/s

ad_AKT_fac == 4*1.0d0  ! nondimensional
  • Nudging/relaxation time scales, inverse scales will be computed internally: [1:NBT,Ngrids] values expected.
TNUDG == 4*0.0d0  ! days
  • Set horizontal and vertical advection schemes for biological tracers. A different advection scheme is allowed for each tracer. For example, a positive-definite (monotonic) algorithm can be activated for salinity and biological tracers, while a different one is set for temperature.
    Keyword Advection Algorithm

    A4 4th-order Akima (horizontal/vertical)
    C2 2nd-order centered differences (horizontal/vertical)
    C4 4th-order centered differences (horizontal/vertical)
    HSIMT 3th-order HSIMT with TVD limiter (horizontal/vertical)
    MPDATA recursive flux corrected MPDATA (horizontal/vertical)
    SPLINES parabolic splines reconstruction (only vertical)
    SU3 split third-order upstream (horizontal/vertical)
    U3 3rd-order upstresm-bias (only horizontal)
    The user has the option of specifying the full Keyword or the first two letters, regardless if using uppercase or lowercase. If nested grids, specify values for each grid. For more details please read the roms.in Tracer Advection Schemes section. [1:NBT,Ngrids] values are expected.
    Hadvection == HSIMT \  ! idbio(1), NO3
    HSIMT \  ! idbio(2), phytoplankton
    HSIMT \  ! idbio(3), zooplankton
    HSIMT  ! idbio(4), detritus

    Vadvection == HSIMT \  ! idbio(1), NO3
    HSIMT \  ! idbio(2), phytoplankton
    HSIMT \  ! idbio(3), zooplankton
    HSIMT  ! idbio(4), detritus
  • The lateral boundary conditions are entered with a keyword. 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.

    NoteNotice: 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 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) == Per Clo Per Clo \  ! idbio( 1), NO3
    Per Clo Per Clo \  ! idbio( 2), phytoplankton
    Per Clo Per Clo \  ! idbio( 3), zooplankton
    Per Clo Per Clo \  ! idbio( 4), detritus
  • Adjoint-based algorithms can have different lateral boundary conditions keywords.
    ad_LBC(isTvar) == Per Clo Per Clo \  ! idbio( 1), NO3
    Per Clo Per Clo \  ! idbio( 2), phytoplankton
    Per Clo Per Clo \  ! idbio( 3), zooplankton
    Per Clo Per Clo \  ! idbio( 4), detritus
  • Logical switches to specify which variables to process for tracers climatology: [1:NBT,Ngrids] values expected. The switches correspond to the Variable Index Table at the top of this page.
LtracerCLM == 4*F
  • Logical switches to specify which variables to consider on tracers point Sources/Sinks (like river runoff): [1:NBT,Ngrids] values expected. The switches correspond to the Variable Index Table at the top of this page.
    LtracerSrc == 4*F
  • Logical switches to activate writing of biological fields into history output file. [1:NBT,Ngrids] values expected. The switches correspond to the Variable Index Table at the top of this page.
Hout(idTvar) == 4*T  ! NO3, ... biological tracer
Hout(idTvar) == 4*F  ! NO3_sflux, ... surface tracer flux
  • Logical switches to activate writing of biological fields into quicksave output file. [1:NBT,Ngrids] values expected. The switches correspond to the Variable Index Table at the top of this page.
Qout(idTvar) == 4*F  ! NO3, ... biological tracer
Qout(idsurT) == 4*F  ! NO3_sur, ... surface biological tracer
Qout(idTvar) == 4*F  ! NO3_sflux, ... surface tracer flux
  • Logical switches to activate writing of time-averaged fields into averages output file. [1:NBT,Ngrids] values expected.
Aout(idTvar) == 4*T  ! NO3, ... biological tracer
  • Logical switches to activate writing of time-averaged, biological tracer diagnostic terms into the diagnostic output file. [1:NBT,Ngrids] values expected.
Dout(iTrate) == 4*T  ! NO3_rate, ... time rate of change
Dout(iThadv) == 4*T  ! NO3_hadv, ... horizontal total advection
Dout(iTxadv) == 4*T  ! NO3_xadv, ... horizontal XI-advection
Dout(iTyadv) == 4*T  ! NO3_yadv, ... horizontal ETA-advection
Dout(iTvadv) == 4*T  ! NO3_vadv, ... vertical advection
Dout(iThdif) == 4*T  ! NO3_hdiff, ... horizontal total diffusion
Dout(iTxdif) == 4*T  ! NO3_xdiff, ... horizontal XI-diffusion
Dout(iTydif) == 4*T  ! NO3_ydiff, ... horizontal ETA-diffusion
Dout(iTsdif) == 4*T  ! NO3_sdiff, ... horizontal S-diffusion
Dout(iTvdif) == 4*T  ! NO3_vdiff, ... vertical diffusion