CROCO is a new oceanic modeling system built upon ROMS_AGRIF and the non-hydrostatic kernel of SNH  gradually including algorithms from MARS3D. CROCO project contains source code and croco_tools pre-and-post-processing matlab toolbox. CROCO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. CROCO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  


CROCO stable release V1.0 (26 June 2018):  Download croco-v1.0 CROCO_TOOLS stable release V1.0 (26 June 2018):  Download croco_tools-v1.0 CROCO_TOOLS uses several Matlab Utilities, and Datasets also available for download.

Known problems and fixes :

29 July 2019
  • In croco_tools/Rivers : Update and Bug fix in River (  Bug fixes in the T/S_src seasonal cycle ;  Bug fix in direction/sense in case of not using all the rivers detected ; New rivers detection criteria, new plots, ..)
  • In croco_tools/Aforc_NCEP : Update url security level https
  • In croco_tools/Oforc_OGCM : Bug fix  to download SODA oceanic data using make_OGCM ; ( use Opendap_tools_noloaddap ;  cancel dimension shifting for 3D variables )

17 June 2019 :
  • In croco/OCEAN, fixes in analytical.F : bug fix and improvements from the development branch. Thanks to P. Marchesiello
    • the treatment of the ramp when using the cpp keys #define PSOURCE_NCFILE and /or #define PSOURCE_NCFILE_TS
    • other stuff …
  • In croco_tools/Rivers ; Thanks to Joaquim Ballabrera and Lionel Renault.
    • Fixes in make_runoff.m :  A bug in the way the runoff forcing file is created  has been identified. It impact the way do the time interpolation of the runoff flow and concentration when using the cpp keys  PSOURCE_NCFILES and/or PSOURCE_NCFILE_TS
Fixes in check_domain_runoff.m  : to manage rotated grid.
05 September 2018 : in croco/OCEAN, fixes in get_psource_ts.F  . Thanks to S. Pous
30 July 2018 : in croco/OCEAN, fixes in read_inp.F : to read wind stress from files in case of #define BULK_FLUX  and #!define BULK_SMFLUX


26 June 2018 : CROCO V1.0 RELEASE

CROCO sources and CROCO_TOOLS (the follow-on of ROMS_TOOLS) are now distributed separately (for croco_tools releases, see associated tab at ).

CROCO has now a new architecture tree. The OCEAN directory contains the sources.

New in CROCO v1.0 (associated cppkey names and dedicated configuration in cppdefs.h are presented):

  • Non-hydrostatic kernel: a (3D) non-Boussinesq “fast-mode” is available.  
    • #define NBQ
    • Dedicated configurations : #define TANK, ACOUSTIC, GRAV_ADJ (NBQ), KH_INST, S2DV, MILES
    • set CSOUND_NBQ (sound speed) to a minimum of 5 times the max external gravity wave phase speed (sqrt(gh)). Max is real sound speed of 1500 m/s. Lower sound speed allows larger time steps.
    • cppdefs.h: choice of the full scheme (NBQ_PRECISE) or for faster integration a simplified one (NBQ_PERF). In this case, the vertical grid and some non-dominant terms of the fast mode equations are only updated at the internal (slow) step. NBQ_PERF is the default option and is recommended for submesoscale applications (>10m resolution), while NBQ_PRECISE should be used for LES applications (e.g., KH_INST)
    • cppdefs.h: choice of advection scheme for vertical velocity w includes TVD and WENO (see below); default choice is W_HADV_C4 and W_VADV_SPLINES for horizontal and vertical advection respectively (see cppdefs_dev.h for default choices).
    • AGRIF nesting (1-WAY for now) is possible with NBQ and for NBQ integration in child grid only: #define NBQ_CHILD_ONLY
  • Updated Ocean-Wave-Atmosphere coupling using the generic coupler OASIS3-MCT  
    • #define OA_COUPLING and/or #define OW_COUPLING
    • See specific documentation for coupling in the Documentation section of our website ;  ; dedicated Coupling_tools are also available in croco_tools
  • Updated Wave-Current interactions (McWilliams et al., JFM 2004)  
    • #define MRL_WCI
    • Dedicated configuration : SHOREFACE
  • Built-in wave propagation model (WKB) for nearshore applications
    • #define WKB_WAVE
  • Updates in sediments modules based on Warner et al. (2008): bedload transport, hydro-morphodynamics coupling and morphological acceleration factor
    • #define SEDIMENT and associated cppkeys
    • Dedicated configuration :  FLUME, RIP
  • Additional IO module (XIOS) providing more flexibility and better performances for HPC
    • # define XIOS
  • Choice of monotonic horizontal and vertical advection schemes for all variables (WENO5 &  TVD)
  • Semi-implicit vertical advection for avoiding CFL limitation associated with “hot spots” (Shchepetkin, OM 2015)
    • # define  VADV_ADAPT_IMP
  • GLS turbulent closure sub-model (in addition to KPP)  
    • # define GLS_MIXING_2017
  • Wave‐induced (non breaking) vertical mixing in KPP modified according to Wang et al. (JGR 2010) based on Qiao et al (JPO 2004)  
    • # define WAVE_NONBRK_VMIX_QIAO in mrl_wci.F
  • Basic 3D Smagorinsky model for LES-type applications   
    • # define UV_VIS_SMAGO_3D (with NBQ)
  • Built-in diffusion in barotropic time stepping as an alternative to fast mode filtering (used in NBQ applications)  
    • # define M2FILTER_NONE
  • Updated PISCES version (Aumont et Bopp, GBC 2006)  
    • # define PISCES
  • New vertical coordinate (not dependent on minimum depth), by default,  suited for decreasing pressure gradient errors in the thermocline above steep topography (Shchepetkin and McWilliams, 2009)
    • # define NEW_S_COORD
  • Dedicated log output file croco.log
    • # define LOGFILE

ROMS_AGRIF  is not maintained anymore and we strongly encourage ROMS_AGRIF users to switch  to CROCO.

Known problems and fixes : 

30 July 2018 : Fix in read_inp.F to read wind stress from files in case of #define BULK_FLUX  and #!define BULK_SMFLUX


  • 28 June 2018:  CROCO_TOOLS V1.0 RELEASE

    • – former OASIS directory has been moved to Junk/oasis_old_scripts as new tools are available in Coupling_tools directory
  • March 2018: New tools:

    • – Coupling_tools scripts: scripts to help you build and run a coupled configuration
    • – croco_pytools: Python scripts, some are equivalent of croco Preprocessing_tools
    • – new default s vertical coordinate (vtransform=2, #define NEW_S_COORD) and new values of theta_s, theta_b and hc accordingly
    • – new topographic filter adapted from ucla tools
    • – all matlab utilities moved to new UTILITIES directory


  • 4 Feb. 2016 : In Aforc_NCEP/, if you were using the ROMSTOOLS v3.1.1, there was a bug in the download_CFSR.m routines.
    • We were downloading heat fluxes variable for Upward Long wave, Downward and Upward Short wave. We were using the variables AT THE TOP OF THE ATMOSPHERE that was inducing large biais in SST in all the CFSR simulation. To use the right fluxes at THE SURFACE OF THE OCEAN, the vname values in download_CFSR.m
    • Here are the fixes:

Access the  CROCO project on Inria GITLAB.

The following items are then available on our Git server :

  • the CROCO ocean model
  • the pre- and post- processing tools CROCO_TOOLS

We strongly advise non-developers to stick on the tar file available on the front page of the site


Request an account on the Gitlab

Only if not already registered:

Once login, request an access to the project


Finally get the code

Join the commits mailing list

Developers and advanced users can subscribe to the mailing list to follow the developments.  To subscribe to this mailing-list, simply send an email to . To unsubscribe the mailing list, simply send an email to