ROMS
ROMS is a community model shared by a large user group around the world, with applications ranging from the study of entire ocean basins to coastal sub-regions.
Model introduction
ROMS incorporates advanced features and high-order numerics, allowing efficient and robust resolution of mesoscale dynamics in the oceanic and coastal domains. The model solves the free surface, hydrostatic, primitive equations of the fluid dynamics over variable topography using stretched; terrain-following coordinates in the vertical and orthogonal, curvilinear coordinates in the horizontal. This allows enhancement of the spatial resolution in the regions of interest.
Model parameters
Uses ports
This will be something that the CSDMS facility will add
Provides ports
This will be something that the CSDMS facility will add
Main equations
1) Equations of motion
a) Momentum balance in the x-directions, respectively
[math]\displaystyle{ {\frac{\partial u}{\partial t}} + \vec{v} \nabla u - fv = -{\frac{\partial \phi}{\partial x}} - {\frac{\partial}{\partial z}} \left ( \overline{u'w'} - \nu {\frac{\partial u}{\partial z}} \right ) + F_{u} + D_{u} }[/math] (1)
b) Momentum balance in the y-directions, respectively
[math]\displaystyle{ {\frac{\partial v}{\partial t}} + \vec{v} \nabla v + fu = -{\frac{\partial \phi}{\partial y}} - {\frac{\partial}{\partial z}} \left ( \overline{v'w'} - \nu {\frac{\partial v}{\partial z}} \right )+ F_{v} + D_{v} }[/math] (2)
c) Advective-diffusive equations for a scalar concentration field C(x,y,z,t) (e.g. salinity, temperature, or nutrients)
[math]\displaystyle{ {\frac{\partial C}{\partial t}} + \vec{v} \nabla C = {\frac{\partial}{\partial z}} \left ( \overline{C'w'} - \nu_{\theta} {\frac{\partial C}{\partial z}} \right )+ F_{C} + D_{C} }[/math] (3)
e) Equation of state
[math]\displaystyle{ \rho = \rho \left (T,S,P \right ) }[/math] (4)
f) Vertical momentum equation (assume that the vertical pressure gradient balances the buoyancy force)
[math]\displaystyle{ {\frac{\partial \phi}{\partial z}} = {\frac{- \rho g}{\rho_{o}}} }[/math] (5)
g) continuity equation for an incompressible fluid
[math]\displaystyle{ {\frac{\partial u}{\partial x}} + {\frac{\partial v}{\partial y}} + {\frac{\partial w}{\partial z}} = 0 }[/math] (6)
h) Reynolds stresses (an overbar represents a time average and a prime represents a fluctuation above the mean)
[math]\displaystyle{ \overline{u'w'} = - K_{M} {\frac{\partial u}{\partial z}} }[/math] (7)
[math]\displaystyle{ \overline{v'w'} = - K_{M} {\frac{\partial v}{\partial z}} }[/math] (8)
[math]\displaystyle{ \overline{C'w'} = - K_{C} {\frac{\partial C}{\partial z}} }[/math] (9)
2) Vertical boundary conditions a) top boundary condition ( z = ζ (x,y,t ))
[math]\displaystyle{ K_{m} {\frac{\partial u}{\partial z}} = \tau_{S}^x \left (x,y,t \right ) }[/math] (10)
[math]\displaystyle{ K_{m} {\frac{\partial v}{\partial z}} = \tau_{S}^y \left (x,y,t \right ) }[/math] (11)
[math]\displaystyle{ K_{C} {\frac{\partial C}{\partial z}} = {\frac{Q_{C}}{\rho_{o} c_{P}}} }[/math] (12)
[math]\displaystyle{ w = {\frac{\partial \zeta}{\partial t}} }[/math] (13)
b) bottom boundary condition (z = -h(x,y))
[math]\displaystyle{ K_{m}{\frac{\partial u}{\partial z}} = \tau _{b}^x \left (x,y,t \right ) }[/math] (14)
[math]\displaystyle{ K_{m}{\frac{\partial v}{\partial z}} = \tau _{b}^y \left (x,y,t \right ) }[/math] (15)
[math]\displaystyle{ K_{C}{\frac{\partial C}{\partial z}} = 0 }[/math] (16)
[math]\displaystyle{ -w + \vec{v} \nabla h = 0 }[/math] (17)
c) Horizontal boundary conditions (Eastern and western boundary)(considering biharmonic friction)
[math]\displaystyle{ {\frac{\partial}{\partial x}} \left ( {\frac{h \nu}{mn}}{\frac{\partial^2 u}{\partial x^2}} \right ) = 0 }[/math] (18)
Horizontal boundary conditions (Northern and southern boundary)
[math]\displaystyle{ {\frac{\partial}{\partial y}} \left ( {\frac{h \nu}{mn}}{\frac{\partial^2 u}{\partial y^2}} \right ) = 0 }[/math] (19)
3) Vertical transformation equations
a) vertical coordinate transformation (been available in ROMS since 1999)
[math]\displaystyle{ z \left (x,y,\sigma, t \right ) = S \left (x,y,\sigma \right )+ \zeta \left (x,y,t \right ) [1 + {\frac{S \left (x,y,\sigma \right )}{h \left (x,y\right )}}] }[/math] (20)
[math]\displaystyle{ S \left (x,y,\sigma \right ) = h_{c} \sigma + [h \left (x,y\right ) - h_{c}] C \left (\sigma \right) }[/math] (21)
[math]\displaystyle{ S \left (x,y,\sigma \right ) =\left\{\begin{matrix} 0 & \sigma = 0, C \left (\sigma \right ) = 0 \\ - h \left (x,y \right ) & \sigma = -1, C \left (\sigma \right ) = -1 \end{matrix}\right. }[/math] (22)
b) vertical coordinate transformation (been available in ROMS since 2005)
[math]\displaystyle{ z \left (x,y,\sigma,t \right ) = \zeta \left (x,y,t\right ) + [\zeta \left (x,y,t\right ) + h \left (x,y \right )] S \left (x,y,\sigma \right ) }[/math] (23)
[math]\displaystyle{ S \left (x,y,\delta \right ) = {\frac{h_{c} \delta + h \left (x,y \right ) C \left ( \delta \right )}{h_{c} + h \left (x,y\right )}} }[/math] (24)
[math]\displaystyle{ S \left (x,y,\sigma \right ) =\left\{\begin{matrix} 0 & \sigma = 0, C \left (\sigma \right ) = 0 \\ -1 & \sigma = -1, C \left (\sigma \right ) = -1 \end{matrix}\right. }[/math] (25)
unperturbed depth:
[math]\displaystyle{ \hat{z} \left (x,y,\sigma \right ) \equiv h \left (x,y \right ) S \left (x,y,\sigma \right ) = h \left (x,y\right )[{\frac{h_{c}\sigma + h \left (x,y\right ) C \left (\sigma \right )}{h_{c} +h \left (x,y \right )}}] }[/math] (26)
[math]\displaystyle{ d \hat{z} = d \sigma h \left (x,y\right ) [{\frac{h_{c}}{h_{c} + h \left (x,y\right )}}] }[/math] (27)
4) Vertical stretching functions
a) Vstretching = 1 (Song and Haidvogel (1994))
[math]\displaystyle{ C \left (\sigma \right ) = \left (1-\theta_{B}\right ) {\frac{sinh \left (\theta_{S}\sigma \right )}{sinh \theta_{S}}} + \theta_{B}[{\frac{tanh[\theta_{S}\left (\sigma +{\frac{1}{2}}\right )]}{2 tanh \left ({\frac{1}{2}} \theta_{S}\right )}} - {\frac{1}{2}}] }[/math] (28)
b) Vstretching = 2 (A.Shchepetkin (2005))
[math]\displaystyle{ C \left (\sigma \right ) = \mu C_{sur}\left (\sigma\right ) + \left (1-\mu \right ) C_{bot} \left (\sigma \right ) }[/math] (29)
[math]\displaystyle{ C_{sur} \left (\sigma \right ) = {\frac{1 - cosh \left (\theta_{S} \sigma \right )}{cosh \left (\theta_{S} \right ) - 1}} }[/math] (30)
[math]\displaystyle{ C_{bot} \left (\sigma \right ) = {\frac{sinh[\theta_{B}\left (\sigma + 1 \right )]}{sinh \left (\theta_{B}\right )}} - 1 }[/math] (31)
[math]\displaystyle{ \mu = \left (\sigma +1 \right )^\alpha [1 + {\frac{\alpha}{\beta}} \left ( 1 - \left ( \sigma + 1 \right )^\beta \right )] }[/math] (32)
c) Vstretching = 3 (R.Geyer function for high bottom layer resolution in relatively shallow applications)
[math]\displaystyle{ C \left (\sigma \right ) = \mu C_{bot} \left (\sigma \right ) + \left (1 - \mu \right ) C_{sur} \left (\sigma \right ) }[/math] (33)
[math]\displaystyle{ C_{sur} \left (\sigma \right ) = - {\frac{log[cosh \left (\gamma \right ) abs \left (\sigma \right ) ^\left (\theta_{S}\right )]}{log [cosh \left (\gamma \right )]}} }[/math] (34)
[math]\displaystyle{ C_{bot} \left (\sigma \right ) = {\frac{log [cosh \left (\gamma \right ) \left (\sigma + 1 \right )^ \left (\theta_{B}\right )]}{log [cosh \left (\gamma \right )]}} - 1 }[/math] (35)
[math]\displaystyle{ \mu = {\frac{1}{2}} [1 - tanh \left (\gamma \left (\sigma + {\frac{1}{2}}\right )\right )] }[/math] (36)
d) Vstretching = 4 (A. Shchepetkin (2010) UCLA-ROMS current function)
Surface refinement function
[math]\displaystyle{ \left\{\begin{matrix} C \left ( \sigma \right ) = {\frac{1 - cosh \left (\theta_{S}\sigma \right )}{cosh \left (\theta_{S}\right ) - 1}} & \theta_{S} \gt 0 \\ - \sigma ^2 & \theta_{S} \lt = 0 }[/math] (37)
Bottom refinement function
Symbol | Description | Unit |
---|---|---|
Du,Dv,DT,DS | diffusive terms | - |
Fu,Fv,FC | forcing terms | - |
f(x,y) | coriolis parameter | - |
g | acceleration of gravity | m/s2 |
h(x,y) | bottom depth | m |
ν,νθ | molecular viscosity and diffusivity | |
Km,KC | vertical eddy viscosity and diffusivity | - |
P | total pressure, approximately -ρo gz | |
Φ(x,y,z,t) | dynamic pressure, Φ = (P/ρo) | |
ρo + ρ(x,y,z,t) | total in situ density | |
S(x,y,z,t) | salinity | |
t | time | |
T(x,y,z,t) | potential temperature | |
u,v,w | the (x,y,z) components of vector velocity | - |
x,y | horizontal coordinate | |
z | vertical coordinate | |
ζ(x,y,t) | surface elevation | |
QC | surface concentration flux | - |
τS x, τS y | surface wind stress | |
τb x, τb y | bottom stress | - |
S(x,y,δ) | a nonlinear vertical transformation functional (in the vertical transformation equations) | |
ζ(x,y,t) | time-varying free-surface(in the vertical transformation equations) | |
h(x,y) | unperturbed water column thickness (in the vertical transformation equations) | |
σ | fractional vertical stretching coordinate (ranging from -1 <= δ <= 0) | |
C(σ) | nondimensional, monotonic, vertical stretching function (ranging from -1 <= C(δ) <= 0) | |
hc | a positive thickness controlling the stretching | |
Hz | vertical grid thickness, equals to Δz / Δδ |
Output
Symbol | Description | Unit |
---|---|---|
qbT | total volume gravel bedload transport rate per unit width summed over all sizes | L2 / T |
τsg * | Shields number based on surface geometric mean size | - |
Dsg | geometric mean size of the surface material | L |
σsg | geometric standard deviations of the surface materials | - |
Dlg | geometric mean size of the bedload | L |
σlg | geometric standard deviation of the bedload | - |
σl | arithmetic standard deviations of bedload materials | - |
σ | arithmetic standard deviations of the surface materials | - |
Dsx | grain size in the surface material, such that x percentage of the material is finer | L |
Dlx | grain size in the bedload material, such that x percentage of the material is finer | L |
σlx | arithmetic standard deviations of bedload materials | L |
Notes
1 In the Boussinesq approximation, density variations are neglected in the momentum equations except in their contribution to the buoyancy force in the vertical momentum equation.
2 In the vertical transformation equation, if equation (a) is used, the value of hc and other input vertical transformation parameters must be strictly defined. Since the beginning of ROMS, hc = min (hmin,Tcline) where hmin = minval(h) and Tcline is the stretching parameter. It is not possible to build the vertical stretching coordinates when hc > hmin and using transformation (a) because it yields Δz / Δδ < 0. This has been a legacy issue in ROMS for years, and you either consistent with the previous set-up of your application or change the value of Tcline in all input NetCDF files. Therefore, in new applications you need to be sure that Tcline <= hmin when using the transformation (a). However, if transformation (b) is used, hc can be any positive value. It works for both hc <= hmin, or hc > hmin.
Compared to equation (a), Shchepetkin (personal communication) points out that equation (b) has several advantages:
- Regardless of the design of C(σ), it behaves like equally-spaced sigma-coordinates in shallow regions, where h(x,y) << hc. This is advantageous because it avoids excessive resolution and associated CFL limitation is such areas.
- Near-surface refinement behaves more or less like geopotential coordinates in deep regions (level thicknesses, Hz, do not depend or weakly depend on bathymetry), while near-bottom like sigma coordinates (Hz is roughly proportional to depth). This reduces the extreme r-factors near the bottom and reduces pressure gradient errors.
- The true sigma-coordinate system is recovered as hc is close to infinity. This is useful when configuring applications with flat bathymetry and uniform level thickness. Practically, you can achieve this by setting Tcline to 1.0d+16 in ocean.in. This will set hc=1.0*1016. Although not necessary, we also recommend that you set θS=0 and θB=0.
In an undisturbed ocean state, corresponding to zero free-surface, z=S(x,y,σ). Shchepetkin and McWilliams (2005) denotes transformation (a) as an unperturbed coordinate system since all the depths are not affected by the displacements of the free-surface. This ensures that the vertical mass fluxes generated by a purely barotropic motion will vanish at every interface. On the other hand, for transformation equation (b), in an undistrubed ocean state, it yields unperturbed depths as equation (26) and (27), as a consequence, the uppermost grid box retains very little dependency from bathymetry in deep areas, where h_c << h(x,y). For example, if h_c = 250m and h(x,y) changes from 2000 to 6000m, the uppermost grid box changes only by a factor of 1.08 (less than 10%).
Now the transformation equation (b) is the default value for ROMS.
Examples
An example run with input parameters, BLD files, as well as a figure / movie of the output
Follow the next steps to include images / movies of simulations:
- Upload file: http://csdms.colorado.edu/wiki/Special:Upload
- Create link to the file on your page: [[Image:<file name>]].
See also: Help:Images or Help:Movies
Developer(s)
Name of the module developer(s)
References
Key papers
Links
Any link, eg. to the model questionnaire, etc.