About

About

The CROCO Community Service is an ocean modeling platform developed and maintained by a network of researchers and engineers from multiple institutions and scientific disciplines. It is closely linked to the ILICO Research Infrastructure (the France’s multi-agency Research Infrastructure for coastal ocean observation), CROCO being awarded the INSU Community Code label in early 2025.

Software Components

The service is built around the CROCO model (approximately 150,000 lines of Fortran code), which includes:

  • A numerical core for ocean dynamics using primitive equations (classical, wave-averaged, pseudo-compressible, or quasi-hydrostatic) and Navier–Stokes equations.
  • Integration with the AGRIF library for grid refinement.
  • Sediment transport modules (MUSTANG and USGS).
  • The OBSTRUCTIONS module for representing physical barriers and vegetation.
  • Coupling with biogeochemical models (PISCES, BioEBUS, BLOOM, ECO3M).
  • Built-in diagnostic tools for momentum, vorticity, energy, tracer transport, and time–frequency analysis.
  • Interfaces with the OASIS coupler (CERFACS) and the XIOS I/O library (IPSL).

A developer test suite, demonstration configurations, and pre-/post-processing utilities are also provided.

User Services

Beyond the software itself, the CROCO team provides user support through:

Organization & Governance

CROCO’s governance is structured as follows:

  • Coordination team – Rachid Benshila, Swen Jullien, and Franck Dumas, ensuring links with the OSUs (OMP and IUEM) and the two co-hosting institutes, Ifremer and Shom.
  • Steering Committee – 11 members from all supporting institutions. This body meets monthly (mainly online) to set scientific and strategic priorities, in coordination with ILICO’s quarterly input.
  • Development Committee – Coordinates and implements model improvements.

The Steering Committee, together with the Development Committee, defines a phased development roadmap. To prioritise developments CROCO leverages the Steering Committee’s senior scientific expertise and access to ILICO’s scientific committee, supplemented by user feedback from biannual meetings and dedicated thematic workshops.

Operational teams:

  • Development (lead: R. Benshila) – Core and external code integration, testing, community method development, pre/post-processing tool improvement, and coordination with governance on the development roadmap.
  • Code dissemination (leads: S. Le Gac, S. Jullien, G. Cambon) – Documentation maintenance, researcher training, and user meeting organization.

Cross-cutting working groups:

  • Environmental impact (lead: X. Capet) – Assessing and mitigating the environmental footprint of CROCO operations.
  • Model evolution (lead: R. Benshila) – Exploring new programming languages, adapting to emerging architectures, and integrating with innovative approaches such as AI. This group includes external experts (e.g., from NEMO, HPC, and architecture specialists).

Code Access and Documentation

The official entry point for CROCO software, tools, and documentation is croco-ocean.org.

  • Source code hosting – Publicly available on the Inria GitLab in several repositories:
    • croco – Fortran computational code.
    • croco_doc – Documentation and tutorials.
    • croco_tools – MATLAB utilities
    • croco_pytools – Python utilities.
  • Stable releases – The download section provides links to download or clone the desired version.
  • Development versions – Publicly accessible but provided “as is” with no stability guarantee.
  • Documentation – Always up-to-date HTML version (auto-generated at each code update) and a downloadable PDF version.
  • Tutorials and training material – Available online, including datasets for simple and advanced realistic configurations.
  • Data resources – Atmospheric and oceanic reanalyses, bathymetry, and tidal atlases available via the website.
  • License and citation – Free to use; users should cite the CROCO DOI via Zenodo.

The code and tools are open source. The parts of the code inherited from the ROMS model are made available under the conditions of the MIT/X license, those inherited from the AGRIF library under the terms of the CeCILL-C license. The Matlab tools are made available under the terms of the GNU license, the Python tools under the terms of the GPL3 license.

How to Contribute

The CROCO project welcomes contributions from the community, whether in the form of bug fixes, new features, improved documentation, or enhanced tools.

CROCO follows a structured Git/GitLab-based workflow:

  • Protected branches (main and release) – Editable only by a restricted team to safeguard stability.
  • Development branches – Dedicated to specific fixes, enhancements, or new features.
  • Releases are synchronized across all repositories to ensure code–documentation–tools consistency.

Quality control is based on three levels:

  1. Automated continuous integration – Tests compilation (gfortran, Intel), parallel modes (OpenMP, MPI), and multiple idealized/realistic configurations.
  2. Peer review – Conducted via GitLab merge requests before integration into main branches.
  3. Advanced validation – Physical validation against reference results, analytical solutions, or observations, either manually or via planned automated diagnostics.

Monthly developer meetings and an annual in-person workshop coordinate the development roadmap and technical work.

Access for developers

CROCO gitlab can be accessed through login for developers, to be able to create new development branches, issues, merge requests… This access is subject to moderation and association/collaboration with one of the members of the development team.

  1. Fist-time user access to Inria gitlab
    • Request an account on Gitlab: if you are not already registered, please send a request to register and access the code, and the reason you request access to use CROCO development repositories to: croco-gitlab-register@inria.fr
    • Once your login is available, if you have not access to the project yet, request access to https://gitlab.inria.fr/croco-ocean/
  2. See useful infos here [ you must be logged in to https://gitlab.inria.fr/croco-ocean ]
  3. Join the developer mailing list. To subscribe, simply send an email to sympa_inria@inria.fr with the subject: subscribe croco-commits@inria.fr First name Last name. Leave the body of the message empty.

Contribution workflow

  1. Create a dedicated development branch or fork the repository.
  2. Implement and test your changes locally.
  3. Ensure automated tests pass.
  4. Submit a merge request via GitLab with a clear description.
  5. Participate in peer review until approval and integration.

Search