ROMS Branches - myroms/roms GitHub Wiki

main

This branch includes the tagged versions and the latest release of ROMS. It contains the entire history of ROMS development and evolution. However, it doesn't include the latest stable version of ROMS and is not recommended for use.

How to use/download this branch:

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

or

 cd roms
 git tag
 git checkout roms-4.1

or

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

develop

This is the central developing branch (default) of ROMS. It contains the latest stable version of ROMS development and is updated via 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. Infrequently, 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, which adjust automatically to the local flow conditions based on the Courant number for stability, allowing a larger time step (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.