# Salinity and temperature nudging

## Salt and Temperature Nudging in SCHISM

Note: This entry only covers salt and temperature, although similar types of nudging are 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 SESAME project, using nudging to couple ROMS on the California coast and SCHISM 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, $\hat{\alpha_0}$ are the analysis data to be assimilated, $F()$ represents the ordinary SCHISM dynamics and the $W_\alpha$ are relaxation weights that are in turn the product of horizontal and vertical contributions: $W_{\alpha} = w_{xy} \cdot w_{z}$

The horizontal, vertical and time parameters for the model are described below. Observation quality is 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 = 2 (if inu_st=1, the state is nudged to i.c. and no *_nu.in are needed).
step_nu
This is the nudging data time step, the rate at which new data are introduced to the model. It needn't 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 (i.e. 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*step_nu     ! time stamp in sec (starting from 0)
do inode=1,np           ! all nodes
write(35)(salt_nu(jvert,inode),jvert=1,nvrt)   ! all vertical layers
enddo
enddo
Note that all floats must be in single precision.