# Regional Ocean Modeling System

Regional Ocean Modeling System (ROMS) is a free-surface, terrain-following, primitive equations ocean model widely used by the scientific community for a diverse range of applications. The model is developed and supported by researchers at the Rutgers University, University of California Los Angeles and contributors worldwide.
ROMS is used to model how a given region of the ocean responds to physical forcings such as heating or wind. It can also be used to model how a given ocean system responds to inputs like sediment, freshwater, ice, or nutrients, requiring coupled models nested within the ROMS framework.

## Framework

ROMS is a 4D modeling system. It is a 3-dimensional model (a 2D horizontal grid and a vertical grid) that can be run over a given amount of time, time being the 4th dimension. It is gridded into vertical levels that make up the water column and horizontal cells that make up the coordinates of the 2D cartesian plane of the model region.

### Kernel

Central to the ROMS framework are four models that form what is called the dynamical/numerical core or kernel:
* Non-Linear Model kernel (NLM): NLROMS
* Perturbation Tangent Linear Model kernel (TLM): TLROMS
* Finite-amplitude tangent linear Representer Model kernel (RPM): RPROMS
* Adjoint Model kernel (ADM): ADROMS

### Vertical grid

The vertical grid is a hybrid stretched grid. It is hybrid in that its stretching intervals fall somewhere between the two extremes of 1) the evenly-spaced sigma grid used by the Princeton Ocean Model and 2) a true z-grid with a static depth interval . The vertical grid can be squeezed or stretched to increase or decrease the resolution for an area of interest, such as a thermocline or bottom boundary layer. Grid stretching in the vertical direction follows bottom topography, allowing for the idealized flow of water over features such as seamounts. The numbering of the vertical grid goes from the bottom waters upward to the air-water interface: the bottom water level is level 1 and the topmost surface water level is the highest number (such as level 20). With a coupled sediment module, the numbering of the sediment seabed levels goes from the sediment-water interface downward: the topmost seabed level is level 1 and the deepest seabed level is the highest number.

### Horizontal grid

The horizontal grid is a structured grid, meaning that it has a rectangular 4-sided grid cell structure. The horizontal grid is also an orthogonal curvilinear grid, meaning that it maximizes ocean grid cells of interest and minimizes extra land grid cells. The horizontal grid is also a staggered grid or Arakawa-C grid, where the velocities in the north-south and east-west directions are calculated at the edges of each grid cell, while the values for scalar variables such as density are calculated at the center of each grid cell, known as "rho-points."

### Physics

In both the vertical and horizontal directions, the default equations use centered, second-order finite difference schemes. Higher order schemes are available if desired, for example using parabolic spline reconstruction.
In general, the physical schemes used by ROMS are based on three governing equations:
* Continuity
* Conservation of momentum (Navier-Stokes)
* Transport equations of tracer variables (such as salinity and temperature)
Equations are coupled to solve for five unknowns at each location in the model grid using numerical solutions:
* East-west velocity (u)
* North-south velocity (v)
* Vertical velocity (w)
* Salinity
* Temperature

## Source code

ROMS uses an open-access source code that can be downloaded by filling out an online request form. It runs on C-processing and was developed for shared computing uses. To download the source code a user must create an account and file a request with the developers on the ROMS website.

## Input and output
### Input

Boundaries such as coastlines can be specified for a given region using land- and sea-masking. The top vertical boundary, the air-sea interface, uses an interaction scheme developed by Fairall et al. (1996). The bottom vertical boundary, the sediment-water interface, uses a bottom stress or bottom-boundary-layer scheme developed by Styles and Glenn (2000).
Inputs that are needed for an implementer to run ROMS for a specific ocean region include:
* Bathymetry and coastline
* Freshwater input
* Wind
* Tides
* Open boundary forcings (idealized, such as a reanalysis product, or specific data)
* Heat flux
* Physical mixing (see above)
The programming framework of ROMS is split into three parts: Initialize, Run, and Finalize, which is standard for the Earth System Modeling Framework (ESMF). "Run" is the largest of these three parts, where the user chooses which options they want to use and assimilates data if desired. The model run must be initialized or compiled before it is run.

### Output

The output format of model run files is netCDF. Model output is often visualized using independent secondary programming software such as MATLAB or Python. Simple visualization software such as NASA's Panoply Data Viewer can also be used to visualize model output for teaching or demonstration purposes.

## User options

The general approach of ROMS gives model implementers a high level of freedom and responsibility. One approach cannot meet the needs of all the diverse applications the model is currently used for. Therefore, it is up to each model implementer (either an individual or a research group) to choose how they want to use each of the available options. Options include choices such as:
* Mixing formulations in the horizontal and vertical directions
* Vertical grid stretching
* Processing mode (serial, parallel with MPI, or parallel with OpenMP)
* Debugging turned on or off
When using ROMS, if an implementer runs into a problem or bug, they can report it to the ROMS forum.

## Applications

The versatility of ROMS has been proven in its diverse applications to different systems and regions. It is best applied to mesoscale systems, or those systems that can be mapped at high resolution, such as 1-km to 100-km grid spacing.

### Coupled model applications

Biogeochemical, bio-optical, sea ice, sediment, and other models can be embedded within the ROMS framework to study specific processes. These are usually developed for specific regions of the world's oceans but can be applied elsewhere. For example, the sea ice application of ROMS was originally developed for the Barents Sea Region.
ROMS modeling efforts are increasingly being coupled with observational platforms, such as buoys, satellites, and ship-mounted underway sampling systems, to provide more accurate forecasting of ocean conditions.

### Regional applications

There is an ever-growing number of applications of ROMS to particular regions of the world's oceans. These integrated ocean modeling systems use ROMS for the circulation component, and add other variables and processes of interest. A few examples are:
* Coupled Ocean-Atmosphere-Wave-Sediment Transport (COAWST)
* Experimental System for Predicting Shelf and Slope Optics (ESPRESSO)
* New York Harbor Observing and Prediction System (NYHOPS)
* Chesapeake Bay Estuarine Carbon & Biogeochemistry (ChesROMS ECB)
* Climatic indices in the Gulf of Alaska
* LiveOcean daily forecast model of the NE Pacific and Salish Sea
* The Western Mediterranean OPerational forecasting system (WMOP)