CROCO solves the primitive equations in an Earth-centered rotating environment. It is discretized in coastline- and terrain-following curvilinear coordinates using high-order numerical methods. It is a split-explicit, free-surface ocean model, where short time steps are used to advance the surface elevation and barotropic momentum, with a much larger time step used for temperature, salinity, and baroclinic momentum.
The complete time stepping algorithm is described in Shchepetkin and McWilliams (2005); see also Soufflet et al. (2016). The model has a 2-way time-averaging procedure for the barotropic mode, which satisfies the 3D continuity equation. The specially designed 3rd order predictor-corrector time step algorithm allows a substantial increase in the permissible time-step size.
Combined with the 3rd order time-stepping, a 3rd- or 5th-order, upstream-biased horizontal advection scheme (alternatively WENO or TVD for monotonicity preservation) allows the generation of steep gradients, enhancing the effective resolution of the solution for a given grid size (Shchepetkin and McWilliams, 1998; Soufflet et al., 2016; Menesguen et al., 2018, Borges et al., 2008). Because of the implicit diffusion in upstream advection schemes, explicit lateral viscosity is not needed in CROCO for damping numerical dispersion errors.
For vertical advection, SPLINE or WENO5 schemes are proposed (besides lower-order schemes). For SPLINES (default), an option for an adaptive, Courant-number-dependent implicit scheme is propose that has the advantage to render vertical advection unconditionally stable while maintaining good accuracy in locations with small Courant numbers (Shchepetkin, 2015). This is also available for tracers.
Tracers are treated similarly to momentum. A 3rd- or 5th-order upstream-biased horizontal advection scheme is implemented, but in regional configurations the diffusion part of this scheme is rotated along isopycnal surfaces to avoid spurious diapycnal mixing and loss of water masses (Marchesiello et al., 2009; Lemarié et al., 2012). For regional/coastal applications, a highly accurate pressure gradient scheme (Shchepetkin and McWilliams, 2003) limits the other type of errors (besides spurious diacpynal mixing) frequently associated with terrain-following coordinate models.
If a lateral boundary faces the open ocean, an active, implicit, upstream biased, radiation condition connects the model solution to the surroundings (Marchesiello et al., 2001). It comes with sponge layers for a better transition between interior and boundary solutions (explicit Laplacian diffusion and/or newtonian damping)
For nearshore problems, where waves becomes the dominant forcing of circulation, a vortex-force formalism for the interaction of surface gravity waves and currents is implemented in CROCO (Uchiyama et al., 2010).
CROCO can be used either as a Boussinesq/hystrostatic model, or a non-hydrostatic/non-Boussinesq model (NBQ; Auclair et al., 2018). The NBQ solver is relevant in problems from a few tens of meters to LES or DNS resolutions. It comes with shock-capturing advection schemes (WENO5, TVD) and fully 3D turbulent closure schemes (GLS, Smagorinsky).
CROCO includes a variety of additional features, e.g., 1D turbulent closure schemes (KPP, GLS) for surface and benthic boundary layers and interior mixing; wetting and drying; sediment and biological models; AGRIF interface for 2-way nesting; OASIS coupler for ocean-waves-atmosphere coupling…