Salinity and temperature nudging
Contents
Salt and Temperature Nudging in SELFE
Note: This entry only covers salt and temperature, although similar types of nudging is also available for hydrodynamic variables and tracers.
Salt and temperature nudging is available by means of analysis nudging (Newtonian relaxation). The nudging allows the model state to be reconciled with observations in four dimensions. There are three known examples of this nudging:
- CORIE applications on the Columbia River, assimilating NCOM results near the ocean boundary
- The SEMAME project, using nudging to couple ROMS on the California coast and SELFE on the San Francisco Bay-Delta in a common band along the coast. In this case velocity was also nudged.
- Salinity initialization of the Bay-Delta project, which uses salt nudging to shorten long spin up times far upstream of the ocean boundary
Formulation
The nudging formula is an analysis nudging model: $$ \frac{\partial \alpha}{\partial t} = F(\alpha,x,t) + W_{\alpha}(x,t)(\hat{\alpha_0} - \alpha) $$ where $\alpha$ comprises the state variables to be nudged at every location (node, side) and the $W_\alpha$ are relaxation weights that are decomposed: $W_{\alpha} = w_{xy} \cdot w_{z}$
The horizontal, vertical and time parameters for the model are described below. Observation quality and the global nudging factor are bundled into $w_{xy}$. Time weighting is constant, though data are linearly interpolated between observations.
Files and Parameters
The following files and parameters are used to include nudging
param.in
- inu_st
- Enables nudging for inu_st = 1.
- step_nu
- This is the nudging data time step, the rate at which new data are introduced to the model. It should be a multiple of the model time step. Nudging is performed every time step, through the entire simulation. Between data time steps, data is linearly interpolated.
- vnh1, vnh2, vnf1, vnf2
- These are parameters used to compose $w_z$ composing the relaxation weights. For a model location between the surface and depth of vnh1, vnf1 is used. Deeper than vnh1 but less than vnh2, the weight is interpolated between vnf1 and vnf2. At depths greater than vnh2, vnf2 is used.
x_nudge.gr3
The gr3 files represent the horizontal relaxation weights associated with each model node. Sides are given a horizontal relaxation interpolated from their nodes. Note that the weights may contain estimates of data availability and quality as well as scaling considerations. Hence, the weights may be related to the analysis methods that are used to prepare data (salt_nu.in and temp_nu.in)
salt_nu.in and temp_nu.in
These files contain the actual data used for the nudging. Nudging data are given for all nodes, not the locations of observations, and the analysis of data is assumed precalculated. The analysis quality of locations (ie lower far from any good observations) would thus be handled by: 1. a low assignment in the horizontal weight, probably with finite support so there are many zeros in this file 2. an arbitrary value in salt_nu.in.
The fortran format for creating an xxx_nu.in file is illustrated by this code block:
open(35,file='salt_nu.in',form='unformatted')
do istep=0,nsteps
write(35)istep*dt_nu ! time stamp in sec (starting from 0)
do inode=1,np ! all nodes
write(35)(saltout(jvert,inode),jvert=1,nvrt) ! all vertical layers
enddo
enddo