npzd iron.in: Difference between revisions
No edit summary (change visibility) |
No edit summary (change visibility) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<div class="title">NPZD-Iron Biological Model Input Script - <span class="red">npzd_iron.in</span></div> | <div class="title">NPZD-Iron Biological Model Input Script - <span class="red">npzd_iron.in</span></div> | ||
The <span class="red">npzd_iron.in</span> file sets the parameters for the '''Fiechter et al. NPZD''' model. The name of this file is set by the [[Variables#bparnam|BPARNAM]] keyword in the [[ | The <span class="red">npzd_iron.in</span> file sets the parameters for the '''Fiechter et al. NPZD''' model. The name of this file is set by the [[Variables#bparnam|BPARNAM]] keyword in the [[roms.in]] file. A default <span class="red">npzd_iron.in</span> standard input ASCII file can be found in the '''User/External''' subdirectory of the ROMS source code. In order to include the '''Fiechter et al. NPZD''' model in ROMS you must set [[Variables#bparnam|BPARNAM]] correctly and activate the [[NPZD_IRON]] [[Options|CPP option]]. | ||
Line 41: | Line 41: | ||
|iron | |iron | ||
|- | |- | ||
|align="right" | | |align="right" | 6 | ||
|iFphy | |iFphy | ||
|Phytoplankton Iron concentration | |Phytoplankton Iron concentration | ||
Line 69: | Line 69: | ||
*Initial concentration for analytical uniform initial conditions, [millimole/m<sup>3</sup>]. It is only used when [[Options#ANA_BIOLOGY|ANA_BIOLOGY]] is activated. | *Initial concentration for analytical uniform initial conditions, [millimole/m<sup>3</sup>]. It is only used when [[Options#ANA_BIOLOGY|ANA_BIOLOGY]] is activated. | ||
:<div class="box">[[Variables#BioIni|BioIni(iNO3_) | :<div class="box">[[Variables#BioIni|BioIni]](iNO3_) == 17.0d0 ! nitrate<br />[[Variables#BioIni|BioIni]](iPhyt) == 1.0d0 ! phytoplankton<br />[[Variables#BioIni|BioIni]](iZoop) == 1.0d0 ! zooplankton<br />[[Variables#BioIni|BioIni]](iSDet) == 1.0d0 ! detritus<br />[[Variables#BioIni|BioIni]](iFdis) == 0.0d0 ! dissolved iron<br />[[Variables#BioIni|BioIni]](iFphy) == 0.0d0 ! iron in phytoplankton</div> | ||
*Fraction of shortwave radiation that is photosynthetically active, [nondimensional], {0.43d0}. | *Fraction of shortwave radiation that is photosynthetically active, [nondimensional], {0.43d0}. | ||
Line 141: | Line 141: | ||
*Lateral, constant, harmonic/biharmonic horizontal diffusion of biological tracer for nonlinear model and adjoint-based algorithms: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | *Lateral, constant, harmonic/biharmonic horizontal diffusion of biological tracer for nonlinear model and adjoint-based algorithms: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | ||
:<div class="box"> | :<div class="box"> [[Variables#TNU2|TNU2]] == 6*5.0d0 ! m<sup>2</sup>/s<br /> [[Variables#TNU4|TNU4]] == 6*0.0d0 ! m<sup>4</sup>/s<br /><br /> [[Variables#ad_TNU2|ad_TNU2]] == 6*0.0d0 ! m<sup>2</sup>/s<br /> [[Variables#ad_TNU4|ad_TNU4]] == 6*0.0d0 ! m<sup>4</sup>/s</div> | ||
*Vertical mixing coefficients for biological tracers: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | *Vertical mixing coefficients for biological tracers: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | ||
:<div class="box"> | :<div class="box"> [[Variables#AKT_BAK|AKT_BAK]] == 6*1.0d-6 ! m<sup>2</sup>/s<br /><br /> [[Variables#ad_AKT_fac|ad_AKT_fac]] == 6*1.0d0 ! nondimensional</div> | ||
*Nudging/relaxation time scales, inverse scales will be computed internally: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | *Nudging/relaxation time scales, inverse scales will be computed internally: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | ||
:<div class="box"> [[Variables#TNUDG|TNUDG]] == 6*0.0d0 ! days</div> | :<div class="box"> [[Variables#TNUDG|TNUDG]] == 6*0.0d0 ! days</div> | ||
*Logical switches to specify which variables to consider on tracers point Sources/Sinks (like river runoff): [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected.The switches correspond to the [[#var_tab|Variable Index Table]] at the top of this page. | *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.<div class="box">Keyword Advection Algorithm<br /><br />A4 4th-order Akima (horizontal/vertical)<br />C2 2nd-order centered differences (horizontal/vertical)<br />C4 4th-order centered differences (horizontal/vertical)<br />HSIMT 3th-order HSIMT with TVD limiter (horizontal/vertical)<br />MPDATA recursive flux corrected MPDATA (horizontal/vertical)<br />SPLINES parabolic splines reconstruction (only vertical)<br />SU3 split third-order upstream (horizontal/vertical)<br />U3 3rd-order upstresm-bias (only horizontal)</div>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|roms.in Tracer Advection Schemes]] section. [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values are expected.<div class="box"> [[Variables#Hadvection|Hadvection]] == HSIMT \ ! [[Variables#idbio|idbio]](1), NO3<br /> HSIMT \ ! [[Variables#idbio|idbio]](2), phytoplankton<br /> HSIMT \ ! [[Variables#idbio|idbio]](3), zooplankton<br /> HSIMT \ ! [[Variables#idbio|idbio]](4), detritus<br /> HSIMT \ ! [[Variables#idbio|idbio]](5), phytoplanktonFe<br /> HSIMT ! [[Variables#idbio|idbio]](6), iron<br /><br /> [[Variables#Vadvection|Vadvection]] == HSIMT \ ! [[Variables#idbio|idbio]](1), NO3<br /> HSIMT \ ! [[Variables#idbio|idbio]](2), phytoplankton<br /> HSIMT \ ! [[Variables#idbio|idbio]](3), zooplankton<br /> HSIMT \ ! [[Variables#idbio|idbio]](4), detritus<br /> HSIMT \ ! [[Variables#idbio|idbio]](5), phytoplanktonFe<br /> HSIMT ! [[Variables#idbio|idbio]](6), iron</div> | ||
:<div class="box"> | |||
*Adjoint-based algorithms can have different horizontal and vertical schemes for biological tracers.[1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values are expected.<div class="box">[[Variables#ad_Hadvection|ad_Hadvection]] == U3 ! [[Variables#idbio|idbio]](:), compact<br /><br />[[Variables#ad_Vadvection|ad_Vadvection]] == C4 ! [[Variables#idbio|idbio]](:), compact</div> | |||
*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:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values. The boundary order is: '''1'''=west, '''2'''=south, '''3'''=east, and '''4'''=north. That is, anticlockwise starting at the western boundary.<br /><br />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.<br /><br />{{note}}'''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 the single entry.<div class="box"><span class="twilightBlue">! Keyword Lateral Boundary Condition Type<br />!<br />! Cla Clamped _____N_____ j=Mm<br />! Clo Closed | 4 |<br />! Gra Gradient | |<br />! Nes Nested 1 W E 3<br />! Nud Nudging | |<br />! Per Periodic |_____S_____|<br />! Rad Radiation 2 j=1<br />! i=1 i=Lm<br />! W S E N<br />! e o a o<br />! s u s r<br />! t t t t<br />! h h<br />!<br />! 1 2 3 4</span><br /><br /> [[Variables#LBC|LBC]](isTvar) == Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 1), NO3<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 2), phytoplankton<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 3), zooplankton<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 4), detritus<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 5), phytoplanktonFe<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 6), iron</div> | |||
*Adjoint-based algorithms can have different lateral boundary conditions keywords.<div class="box">[[Variables#ad_LBC|ad_LBC]](isTvar) == Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 1), NO3<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 2), phytoplankton<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 3), zooplankton<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 4), detritus<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 5), phytoplanktonFe<br /> Per Clo Per Clo \ ! [[Variables#idbio|idbio]]( 6), iron</div> | |||
*Logical switches to specify which variables to process for tracers climatology: [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. The switches correspond to the [[#var_tab|Variable Index Table]] at the top of this page. | |||
:<div class="box"> [[Variables#LtracerCLM|LtracerCLM]] == 6*F</div> | |||
*Logical switches to specify which variables to consider on tracers point Sources/Sinks (like river runoff): [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. The switches correspond to the [[#var_tab|Variable Index Table]] at the top of this page. | |||
:<div class="box"> [[Variables#LtracerSrc|LtracerSrc]] == 6*F</div> | |||
*Logical switches to activate writing of biological fields into history output file. [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. The switches correspond to the [[#var_tab|Variable Index Table]] at the top of this page. | |||
:<div class="box"> [[Variables#Hout|Hout]](idTvar) == 6*T ! NO3, ... biological tracer<br /> [[Variables#Hout|Hout]](idTvar) == 6*F ! NO3_sflux, ... surface tracer flux</div> | |||
*Logical switches to activate writing of biological fields into quicksave output file. [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. The switches correspond to the [[#var_tab|Variable Index Table]] at the top of this page. | |||
:<div class="box"> [[Variables#Qout|Qout]](idTvar) == 6*F ! NO3, ... biological tracer<br /> [[Variables#Qout|Qout]](idsurT) == 6*F ! NO3_sur, ... surface biological tracer<br /> [[Variables#Qout|Qout]](idTvar) == 6*F ! NO3_sflux, ... surface tracer flux</div> | |||
*Logical switches to activate writing of time-averaged fields into averages output file. [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | |||
:<div class="box"> [[Variables#Aout|Aout]](idTvar) == 6*T ! NO3, ... biological tracer</div> | |||
*Logical switches to activate writing of biological | *Logical switches to activate writing of time-averaged, biological tracer diagnostic terms into the diagnostic output file. [1:[[Variables#NBT|NBT]],[[Variables#Ngrids|Ngrids]]] values expected. | ||
:<div class="box"> [[Variables#Dout|Dout]](iTrate) == 6*T ! NO3_rate, ... time rate of change<br /> [[Variables#Dout|Dout]](iThadv) == 6*T ! NO3_hadv, ... horizontal total advection<br /> [[Variables#Dout|Dout]](iTxadv) == 6*T ! NO3_xadv, ... horizontal XI-advection<br /> [[Variables#Dout|Dout]](iTyadv) == 6*T ! NO3_yadv, ... horizontal ETA-advection<br /> [[Variables#Dout|Dout]](iTvadv) == 6*T ! NO3_vadv, ... vertical advection<br /> [[Variables#Dout|Dout]](iThdif) == 6*T ! NO3_hdiff, ... horizontal total diffusion<br /> [[Variables#Dout|Dout]](iTxdif) == 6*T ! NO3_xdiff, ... horizontal XI-diffusion<br /> [[Variables#Dout|Dout]](iTydif) == 6*T ! NO3_ydiff, ... horizontal ETA-diffusion<br /> [[Variables#Dout|Dout]](iTsdif) == 6*T ! NO3_sdiff, ... horizontal S-diffusion<br /> [[Variables#Dout|Dout]](iTvdif) == 6*T ! NO3_vdiff, ... vertical diffusion</div> |
Latest revision as of 16:48, 16 January 2020
The npzd_iron.in file sets the parameters for the Fiechter et al. NPZD model. The name of this file is set by the BPARNAM keyword in the roms.in file. A default npzd_iron.in standard input ASCII file can be found in the User/External subdirectory of the ROMS source code. In order to include the Fiechter et al. NPZD model in ROMS you must set BPARNAM correctly and activate the NPZD_IRON 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 |
5 | iFdis | Dissolved iron concentration | mmol/m3 | iron |
6 | iFphy | Phytoplankton Iron concentration | mmol/m3 | phytoplanktonFe |
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 NPZD-Iron model equations and representative parameters may be found in:
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.
- 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.067d0 ! k_ext
- Light attenuation due to phytoplankton, self-shading coefficient, [m2/millimole_N], {0.0095d0}.
- AttPhy == 0.04d0 ! k_extP
- Phytoplankton, initial slope of P-I curve [m2/W], {0.025d0}.
- PhyIS == 0.02d0 ! alpha
- Nitrate uptake rate, [1/day], {1.0d0}.
- Vm_NO3 == 1.0d0 !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 [1/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.52d0}.
- ZooGR == 0.65d0 ! 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 == 0.1d0 ! delta
- Vertical sinking velocity for phytoplankton, [m/day], {0.0d0}.
- wPhy == 0.0d0 ! wP
- Detrital sinking rate, [m/day], {8.0d0}.
- wDet == 5.0d0 ! wD
- Iron uptake timescale, [day], {1.0d0}.
- T_Fe == 1.0d0 ! T_Fe
- Empirical Fe:C power, [nondimensional], {0.6d0}.
- A_Fe == 0.6d0 ! A_Fe
- Empirical Fe:C coefficient, [1/M-C], {64.0d0}.
- B_Fe == 64.0d0 ! B_Fe
- Fe:C at F=0.5, [muM-Fe/M-C], {16.9d0}.
- K_FeC == 16.9d0 ! K_FeC
- Fe remineralization rate, [1/day], {1.0d0}.
- FeRR == 0.5d0 ! FeRR
- If applicable, dissolved Fe relaxation (nudging) parameters to simulate Fe source over the shelf (h <= FeHmin).
- FeHmin == 200.0d0 ! minimum depth(m)
FeNudgTime == 5.0d ! nudging time (days)
FeMax == 2.0d0 ! Fe value (mmole/m3) to nudge
- Lateral, constant, harmonic/biharmonic horizontal diffusion of biological tracer for nonlinear model and adjoint-based algorithms: [1:NBT,Ngrids] values expected.
- Nudging/relaxation time scales, inverse scales will be computed internally: [1:NBT,Ngrids] values expected.
- TNUDG == 6*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 AlgorithmThe 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.
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)Hadvection == HSIMT \ ! idbio(1), NO3
HSIMT \ ! idbio(2), phytoplankton
HSIMT \ ! idbio(3), zooplankton
HSIMT \ ! idbio(4), detritus
HSIMT \ ! idbio(5), phytoplanktonFe
HSIMT ! idbio(6), iron
Vadvection == HSIMT \ ! idbio(1), NO3
HSIMT \ ! idbio(2), phytoplankton
HSIMT \ ! idbio(3), zooplankton
HSIMT \ ! idbio(4), detritus
HSIMT \ ! idbio(5), phytoplanktonFe
HSIMT ! idbio(6), iron
- Adjoint-based algorithms can have different horizontal and vertical schemes for biological tracers.[1:NBT,Ngrids] values are expected.
- 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.
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 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
Per Clo Per Clo \ ! idbio( 5), phytoplanktonFe
Per Clo Per Clo \ ! idbio( 6), iron
- Adjoint-based algorithms can have different lateral boundary conditions keywords.
- 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 == 6*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 == 6*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.
- 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.
- Logical switches to activate writing of time-averaged fields into averages output file. [1:NBT,Ngrids] values expected.
- Aout(idTvar) == 6*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) == 6*T ! NO3_rate, ... time rate of change
Dout(iThadv) == 6*T ! NO3_hadv, ... horizontal total advection
Dout(iTxadv) == 6*T ! NO3_xadv, ... horizontal XI-advection
Dout(iTyadv) == 6*T ! NO3_yadv, ... horizontal ETA-advection
Dout(iTvadv) == 6*T ! NO3_vadv, ... vertical advection
Dout(iThdif) == 6*T ! NO3_hdiff, ... horizontal total diffusion
Dout(iTxdif) == 6*T ! NO3_xdiff, ... horizontal XI-diffusion
Dout(iTydif) == 6*T ! NO3_ydiff, ... horizontal ETA-diffusion
Dout(iTsdif) == 6*T ! NO3_sdiff, ... horizontal S-diffusion
Dout(iTvdif) == 6*T ! NO3_vdiff, ... vertical diffusion