Skip to content

ROMS Branches

Hernan G. Arango edited this page Feb 10, 2024 · 8 revisions

main

This branch includes the tagged versions and the latest stable release of ROMS. It contains the entire history of ROMS development and evolution.

How to use/download this branch:

git clone https://github.com/myroms/roms.git
cd roms
git checkout feature/main

or

 cd roms
 git tag
 git checkout roms-4.1

or

build_roms.sh -j 10 -b feature/main
cbuild_roms.sh -j 10 -b feature/main

develop

This is the main developing branch (default) of ROMS. It contains the latest stable version of ROMS development and is updated via the feature branches. It serves as an integration branch for new features or bug fixes. Notice that the feature branches use develop as the parent branch. Once satisfied, it is tagged and merged to the main branch.

git clone https://github.com/myroms/roms.git
cd roms

or

build_roms.sh -j 10 -b develop
cbuild_roms.sh -j 10 -b develop

feature/kernel

This branch includes significant updates to ROMS numerical kernels:

1. The ROMS barotropic kernel (step2d) includes the Generalized Forward-Backward 3rd-order Adams-Bashforth /4th-order Adams-Moulton (FB AB3-AM4) time stepping algorithm (Shchepetkin and McWilliams, 2005; 2009). Use the STEP2D_FB_AB3_AM4 option to activate this time-stepping algorithm. Notice that step2d.F module has the following logic:

  #ifdef NONLINEAR
  # if defined STEP2D_FB_AB3_AM4
  #  include "step2d_FB.h"
  # elif defined STEP2D_FB_LF_AM3
  #  include "step2d_FB_LF_AM3.h"
  # else
  #  include "step2d_LF_AM3.h"
  # endif
  #else
        MODULE step2d_mod
        END MODULE step2d_mod
  #endif

The new routine step2d_FB.h is more efficient, accurate, and compact. No predictor and corrector blocks exist in main2d or main3d. In 3D configurations (SOLVE3D), it suppresses the computation of momentum advection, Coriolis, and lateral viscosity terms because these terms are already included in the baroclinic-to-barotropic forcing arrays rufrc and rvfrc. It does not mean we are entirely omitting them, but it is a choice between recomputing them at every barotropic step or keeping them frozen during the fast-time stepping. However, in some coarse grid applications with larger baroclinic timestep (say, DT around 20 minutes or larger), adding the Coriolis term in the barotropic equations is useful since f*DT is no longer small. In such a case, we recommend activating STEP2D_CORIOLIS.

Currently, the FB AB3-AM4 only works for the nonlinear kernel. Although the TLM, RPM, and ADM versions are coded, we must determine the correct cycling logic for updating the time-stepping indices in the adjoint model.

How to use/download this branch:

git clone https://github.com/myroms/roms.git
cd roms
git checkout feature/kernel

or

build_roms.sh -j 10 -b feature/kernel
cbuild_roms.sh -j 10 -b feature/kernel

2. Implemented the adaptive, Courant-number-dependent implicit scheme for vertical advection (Shchepetkin, 2015). The vertical velocity is split into explicit (W) and implicit (Wi) parts that adjust automatically to the local flow conditions based on the Courant number for stability, allowing a larger timestep (DT). The 3D momentum equations will contain two vertical advection terms: explicit vertical advection using W in rhs3d.F, which is subject to the specified CPP option (UV_C4Vadvection by default), and implicit advection term using Wi in step3d_uv.F that is activated with OMEGA_IMPLICIT. Therefore, the vertical advection of tracers will include the vertical advection terms using W and Wi. Both terms are added separately, as in the momentum equations.

We are still working on the TLM, RPM, and ADM versions of omega.F. Thus, we cannot yet run variational data assimilation (4D-Var) with the new kernels. It is only possible in the multiple executables split 4D-Var to run the nonlinear trajectory used to linearize the TLM and ADM kernels.

Associated Options:

Option Description
STEP2D_FB_AB3_AM4 FB AB3-AM4 2D kernel time-stepping algorithm
STEP2D_CORIOLIS To include Coriolis term for DT > 20 minutes

References:

Shchepetkin, A.F. and J.C. McWilliams, 2005: The regional oceanic modeling system (ROMS): a split-explicit, free-surface, topography-following-coordinate oceanic model, Ocean Modelling, 9, 347-404, doi:10.1016/j.ocemod.2004.08.002.

Shchepetkin, A.F., and J.C. McWilliams, 2009: Computational kernel algorithms for fine-scale, multiprocess, longtime oceanic simulations, pp 121-183. In Handbook of Numerical Analysis: Computational Methods for the Atmosphere and Oceans, R.M. Teman and J.J. Tribbia, eds, Elsevier Science.

Shchepetkin, A.F., 2015: An adaptive, Courant-number-dependent implicit scheme for vertical advection in oceanic modeling, Ocean Modelling, 91, 38-69, doi:10.1016/j.ocemod.2015.03.006.

feature/wec

This branch includes the Vortex Force formulation of Uchiyama et al. (2010) that has been added to the ROMS nonlinear kernel, and it is based on COAWST implementation and improvements (Kumar et al., 2012). It can be used in nearshore or shallow coastal applications to allow the effect of waves on current and vice versa. It is activated with the option WEC_VF and requires wave-forcing data via an input NetCDF file or coupling to a wave model.

How to use/download this branch:

git clone https://github.com/myroms/roms.git
cd roms
git checkout feature/wec

or

build_roms.sh -j 10 -b feature/wec
cbuild_roms.sh -j 10 -b feature/wec

Associated Options:

Option Description
BOTTOM_STREAMING To activate wave-enhanced bottom streaming
ROLLER_SVENDSEN To activate wave roller based on Svendsen
ROLLER_MONO To activate wave roller for monochromatic waves
ROLLER_RENIERS To activate wave roller based on Reniers
SURFACE_STREAMING To activate wave-enhanced surface streaming
WAVE_MIXING To activate enhanced vertical viscosity mixing from waves
WDISS_CHURTHOR To activate wave dissipation from Church/Thorton
WDISS_GAMMA To activate wave dissipation when using InWave model
WDISS_ROELVINK To activate wave dissipation Roelvink when using InWave model
WDISS_THORGUZA To activate wave dissipation from Thorton/Guza
WDISS_WAVEMOD To activate wave dissipation from a wave model
WEC Internal ROMS algorithm
WEC_VF To activate wave-current stresses from Uchiyama et al. (2020)
WET_DRY To activate wetting and drying

References:

Kumar, N., G. Voulgaris, J.C. Warner, J.C., and M., Olabarrieta, 2012: Implementation of a vortex force formalism in the coupled ocean-atmosphere-wave-sediment transport (COAWST) modeling system for inner-shelf and surf-zone applications, Ocean Modeling, 47, 65-95, doi:10.1016/j.ocemod.2012.01.003

Uchiyama, Y., J.C. McWilliams, and A.F. Shchepetkin, 2010: Wave current interaction in an oceanic circulation model with a vortex-force formalism: Applications to surf zone, Ocean Modeling, 34, 16-35, doi: 10.1016/j.ocemod.2010.04.002.

Clone this wiki locally