Introduction¶
The Structured and Unstructured grid Relocatable ocean platform for Forecasting (SURF) is an open-source, on-demand ocean numerical modeling platform designed for setting up, running and analysing high-resolution nested ocean models in any region within a large-scale Ocean Forecasting System. Designed for flexibility and ease of use, SURF enables users, including those with minimal technical expertise, to easily set up downscaling experiments using a clear and well-documented JSON configuration file. SURF can be operated on commercially available personal computers or laptops, ensuring broad accessibility and flexibility.
SURF integrates two state-of-the-art ocean models, the structured grid model NEMO (Nucleus for European Modelling of the Ocean) and the unstructured grid model SHYFEM (Shallow Water Hydrodynamic Finite Element Model). This User Guide covers the structured grid component of SURF, known as SURF-NEMO. For information on the unstructured grid component, SURF-SHYFEM, please refer to the corresponding manual, available here .
This manual provides step-by-step instructions for running the platform, along with detailed explanations of the scripts and data structures, enabling users to modify or extend SURF according to their needs.
The package also includes case studies, complete with input datasets for bathymetry, coastlines, atmospheric and tidal forcing, as well as coarser-resolution parent ocean data for initial and boundary conditions. Output datasets are also provided for validation and for checking the correct implementation.
For more information, please visit the SURF website at:
https://www.surf-platform.org
SURF-NEMO Relocatable ocean modelling platform¶
SURF-NEMO (Trotta et al. 2016, 2021) is a numerical platform designed for forecasting hydrodynamic and thermodynamic fields with high spatial and temporal resolution. It can be embedded into any region within a larger-scale ocean prediction system, which operates at a coarser resolution.
The platform utilizes a one-way nesting approach for downscaling, where coarser resolution parent model fields are interpolated onto the child grid, providing initial and lateral open boundary conditions for the fine-grid model. Additionally, it supports multiple nesting capabilities, allowing for consecutive nested models with progressively finer grid resolutions. Starting from a large-scale ocean model, it can achieve horizontal grid resolutions down to a few hundred meters. At each nesting level, the parent coarse-grid model supplies the initial and lateral boundary conditions for the nested SURF child components.
This relocatable ocean model system is intended to be a valuable tool for supporting various Decision Support Systems (DSS) that may require high-resolution ocean fields, such as oil spill monitoring, search and rescue operations, navigation routing, fisheries and tourism.
Virtual Machine Environment¶
SURF-NEMO is distributed as a Virtual Machine (VM) image created using VirtualBox. This VM contains all the necessary libraries and software required to set up, run, and analyze downscaling experiments. The source code includes the hydrodynamic NEMO model, along with several pre- and post-processing tools, all installed within the VM environment. Detailed instructions for downloading and installing the package are provided in Chapter 3.1 of the Installation Guide.
A virtual machine is a software-based system that emulates a computer's operating system with virtual access to hardware resources such as CPU, RAM, networking, and storage. The operating system running inside the VM is referred to as the guest, and it operates within a window on your physical computer’s operating system, known as the host.
The virtualization software used is the free and open-source Oracle VM VirtualBox, with the Debian Linux operating system installed inside the VM.
Virtual machines offer several advantages. They encapsulate an entire computing environment—operating system, applications, and data—within a single file. This makes setup easier compared to installing a full suite of software that must work together. A VM can be distributed as a pre-configured, ready-to-use system, simplifying both configuration and distribution. Additionally, VMs are versatile and can run on various hardware platforms.
Source Code¶
The SURF-NEMO source code is distributed as a compressed tar.gz archive, which includes the NEMO model code, a suite of pre- and post-processing tools, and a template user configuration file. Detailed instructions for downloading and installing the package are provided in Chapter 3.2 of the Installation Guide.
NEMO is an open-source ocean modeling framework, written in Fortran 90 and optimized for parallel execution using MPI-based domain decomposition. Simulation outputs are stored in the NetCDF format, a widely-adopted standard for scientific data storage and exchange.
SURF-NEMO includes a suite of preprocessing tools for tasks such as mesh generation, dataset downloading, and remapping of input data, including ocean data for initial and lateral boundary conditions, as well as atmospheric and tidal forcing. It also offers post-processing tools to visualize and analyze simulation results.
The pre- and post-processing scripts are developed in Julia, NCL, Python, and Fortran programming languages. To efficiently handle NetCDF datasets, the platform utilizes NetCDF Operators (NCO) and Climate Data Operators (CDO), both optimized for SURF to reduce computation time and ensure efficient memory usage. Currently, these pre- and post-processing tools operate in serial mode (i.e., executed on a single processor).
The structure of the SURF source code package is detailed in Appendix B.