
Frank Giraldo

Distinguished Professor of Applied Mathematics
Naval Postgraduate School
Monterey, California 93943 USA
The Nonhydrostatic Unified Model of the Ocean (NUMO)
Welcome to the NUMO page. Additional information on NUMO can be found at the University of California at Santa Cruz website (click here: NUMO). Let us begin with a brief explanation of what exactly is NUMO.
What is NUMO
NUMO is an incompressible Navier-Stokes solver specifically designed to solve the equations for applications in nonhydrostatic ocean modeling. NUMO uses the entire NUMA framework and so it leverages the entire NUMA spatial discretization methods, grid generation, parallelization strategy, time-integration, and high-performance computing approach. On the right, we show an example of the type of application that inspired the construction of NUMO. The Greenland landmass can be found in panel a). Panel b) shows a fjord we may be interested in resolving, and panel c) shows a zoomed in version of the unstructured grid which, in turn, can be zoomed in further in panel d) to the part of the fjord that touches the landmass. In the figure below, we show a larger version of the fjord-ocean grid shown in panel c).
h-NUMO is a new code that uses a hydrostatic approximation in order to produce a code that is more performant. This code was developed by Yao Gahounzo while he was a PhD student at Boise State University working under the supervision of Assoc. Prof. Michal Kopera (a former NRC postdoc working under Distinguished Prof. Frank Giraldo at the Naval Postgraduate School (NPS)).
A new version of h-NUMO has recently been developed at NPS (let's refer to it as h-NUMO-NPS) that leverages entropy-stable discontinuous Galerkin methods, and exploits both CPU and GPU architectures. This new model relies on fully implicit methods and is fully differentiable, meaning that adjoints are automatically available.
What can NUMO be used for
NUMO can be used for simulating nonhydrostatic ocean processes. In particular, we have used it to better understand the plumes formed at the interface between land-ice and ocean water (as occurs in the Greenland fjords). The paper describing some of these capabilities can be found here [Springer Nature].
h-NUMO and h-NUMO-NPS simulate the hydrostatic ocean processes. We envision also adding nonhydrostatic processes to h-NUMO-NPS.
Who built NUMO
NUMO was designed and constructed by my group in the Department of Applied Mathematics at the Naval Postgraduate School. Dr. Michal Kopera, my former National Research Council postdoc, formerly at the University of California at Santa Cruz, is now at Boise State University (BSU) in Idaho and is Co-Principal Investigator of the NUMO model and its primary developer. We also collaborated with Professor Wieslaw Maslowski of the Oceanography department at the Naval Postgraduate School on issues related to ocean modeling during various phases of the NUMO project. Former BSU PhD student Yao Gahounzo worked with Prof. Kopera to improve/extend NUMO using more realistic boundary conditions and extended this work to the hydrostatic ocean (called h-NUMO); this work can be found here [PDF] and is housed in a public Github repo ([Github Link]).
h-NUMO-NPS is a new code written in the Julia programming language in order to leverage the implicit nonlinear solvers available in Julia that are also GPU-enabled. Currently, it is being housed in a private Github repo [Github Link].
Who funded NUMO
NUMO was funded by the SCIDAC program of the Department of Energy from 2016-2018. The Office of Naval Research (ONR) funded the Fortran version of h-NUMO, in collaboration with Michal Kopera at Boise State University and Eric Chassignet and Alan Wallcraft at Florida State University, COAPS.
h-NUMO-NPS (name yet to be decided) is currently unfunded but if interested, we accept all forms of payment 😁
NUMO Governing Equations
NUMO solves the equations for simulating nonhydrostatic ocean applications, specifically for modeling narrow fjords in Greenland. To remain as general as possible, we used the 3D incompressible Navier-Stokes equations using the divergence-free continuity equation, and the momentum equation, along with a few tracer equations.
h-NUMO and h-NUMO-NPS aim to build a more performant code that can be used for hydrostatic ocean modeling. Moreover, h-NUMO-NPS will include capability for both regional and global ocean modeling within the hydrostatic to nonhydrostatic regime.
Numerical Methods in NUMO
NUMO uses continuous (CG) and discontinuous Galerkin (DG) methods for approximating the spatial derivatives in the incompressible Navier-Stokes equations. The time-derivatives are solved using implicit methods. The implicit methods require the use of iterative solvers (e.g., conjugate gradient and GMRES) along with preconditioners. All of this machinery is leveraged from the NUMA framework. However, the time-integrators are different since we require projection methods specifically designed for the incompressible Navier-Stokes equations (INSE). Currently, we are using stiffly-stable implicit methods based on backwards difference formulas.
h-NUMO uses classical discontinuous Galerkin methods in space with split-explicit methods in time to decouple the barotropic and baroclinic modes.
h-NUMO-NPS uses entropy-stable discontinuous Galerkin methods in space that are guaranteed to remain stable under steep gradients without the need for artificial diffusion. The time-integration used are fully-implicit methods which require nonlinear solvers. We have designed h-NUMO-NPS to be fully differentiable which facilitates adjoints and gradients for use in, e.g., data assimilation methods and machine learning back propagation.
NUMO Grids
NUMO only uses hexahedral grids (i.e., cube elements). Therefore it becomes non-trivial to construct grids of the type shown in the figures on the right. To this end, we use the GMSH grid-generation software.
Here is a sample mesh on the right of an idealized fjord.
NUMO HPC Performance
Currently NUMO can fully exploit massively parallel architectures in CPU-only mode. To run on CPU-only, NUMO relies on the NUMA framework and uses MPI+OpenMP. NUMO and h-NUMO can be extended to CPU-GPU using the OpenACC approach recently leveraged by NUMA; the work on h-NUMO on GPUs is underway in collaboration with Yao Gahounzo and NPS.
h-NUMO-NPS has been designed from the beginning to be scalable on GPU architectures.
NUMO Simulations
Below are two classical lock-exchange simulations with NUMO. The one on the left is run on a uniform grid and the right one on the idealized fjord grid shown above.
h-NUMO-NPS simulations will be uploaded in mid 2026.


