Difference between revisions of "Salinity and temperature nudging"
m (→Salt and Temperature Nudging in SELFE) |
|||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | == Salt and Temperature Nudging in | + | == 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.''' | '''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: | 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 | * 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 | + | * 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 | * Salinity initialization of the Bay-Delta project, which uses salt nudging to shorten long spin up times far upstream of the ocean boundary | ||
| Line 12: | Line 12: | ||
\frac{\partial \alpha}{\partial t} = F(\alpha,x,t) + W_{\alpha}(x,t)(\hat{\alpha_0} - \alpha) | \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 | + | 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}$ | $W_{\alpha} = w_{xy} \cdot w_{z}$ | ||
| − | The horizontal, vertical and time parameters for the model are described below. Observation quality | + | 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 == | == Files and Parameters == | ||
| Line 21: | Line 21: | ||
=== param.in === | === param.in === | ||
| − | ;inu_st: Enables nudging for inu_st = 1. | + | ;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 | + | ;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. | ;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. | ||
| Line 31: | Line 31: | ||
=== 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 ( | + | 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 | 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. | 2. an arbitrary value in salt_nu.in. | ||
| Line 39: | Line 39: | ||
open(35,file='salt_nu.in',form='unformatted') | open(35,file='salt_nu.in',form='unformatted') | ||
do istep=0,nsteps | do istep=0,nsteps | ||
| − | write(35)istep* | + | write(35)istep*step_nu ! time stamp in sec (starting from 0) |
do inode=1,np ! all nodes | do inode=1,np ! all nodes | ||
| − | write(35)( | + | write(35)(salt_nu(jvert,inode),jvert=1,nvrt) ! all vertical layers |
enddo | enddo | ||
enddo | enddo | ||
| + | Note that all floats must be in single precision. | ||
</nowiki> | </nowiki> | ||
Latest revision as of 12:28, 18 December 2014
Contents
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.