Coupling ice and ocean models to better simulate the impact of ice fractures in the Southern Ocean
The below case study shares some of the technical details and outcomes of the scientific and HPC-focused programming support provided to a research project through NeSI’s Consultancy Service.
This service supports projects across a range of domains, with an aim to lift researchers’ productivity, efficiency, and skills in research computing. If you are interested to learn more or apply for Consultancy support, visit our Consultancy Service page.
Research background
Dr Stefan Jendersie and Dr Rafa Santana want to couple the neXt generation Sea Ice Model (neXtSIM), an MPI code written in C++, with the Regional Ocean Modelling System (ROMS, Fortran) to simulate ice fractures and the ocean response to those around Antarctica.
Sea ice acts as a thermal insulator, reducing heat transfer between the ocean and the atmosphere, particularly during winter, by creating a layer that prevents the warm ocean water from losing heat to the cold polar air. Ice fractures allow for a direct connection between the ocean and the colder atmosphere. Hence, the atmosphere can cool down ocean waters, increasing its density and transporting oxygen and carbon to the deep ocean.
Project challenges
neXtSIM is a sea ice model that uses brittle rheologies to model ice dynamics on a Lagrangian (moving) mesh. neXtSIM is unique among sea-ice models in its focus on fractures and ridges. To faithfully model sea-ice cracks and their effects on the thermodynamic balance of the sea ice itself neXtSIM must be coupled to an ocean model, e.g. the Regional Ocean Modelling System (ROMS).
Coupling two components is challenging. First, the components typically run in parallel using their own communicator; second, they often use different grids; third, they need to exchange information periodically as the simulation proceeds. In addition, the components may be written in a different programming language, as is the case of neXtSIM and ROMS. Finally, there is the risk of encountering deadlocks at runtime, i.e. conditions where the simulation hangs because both components expect to receive a message or try to send a message to the other component at the same time.
What was done
Research software engineers Alex Pletzer and Chris Scott developed an Apptainer container, which has all the software dependencies required to compile and run the two individual models ROMS and neXtSIM, and the coupling software.
Leveraging the OASIS3-MCT coupling infrastructure, they demonstrated how neXtSIM could be coupled to an ocean model.
Main outcomes
A programming environment allowing for the coupling of ice and ocean components, which is portable across platforms. By developing mock ice and ocean models, the researchers can couple their code within a simplified setting, exploring different coupling strategies without the complexities of a fully coupled system. Future work will involve modifying the ROMS ocean model by injecting OASIS3-MCT calls for inter-component communication.
The team successfully implemented a neXtSIM run that couples to a mock ocean instance. The image below shows the first results of neXtSIM coupled to the mock ocean.

The colours represent the thickness of newly formed (young) sea ice on 6th of January of 2013. On the left, the standalone sea ice configuration. In the centre, neXtSIM is coupled to a mock ocean with temperature of -1oC. Some young sea ice is formed (0.005 m) but melts because of the warm atmosphere (forcing ERA5). On the right, the mock ocean is super cooled (-2oC) and the entire grid is covered in thicker young sea ice (0.2 m). Note: the second and third simulations are not realistic configurations. They are only tests to identify whether neXtSIM and mock ocean are in fact communicating.
Researcher feedback
"The endeavour to couple two such sophisticated numerical models is simply impossible without the full support of an experienced research focussed software engineer. As model users and researchers are able to navigate inside the programming code of our models and make code modifications. But when it comes to communication between MPI processes or passing of data between two separate programs for example our knowledge and skill set is insufficient just like that of most numerical modellers would be.
"This consultancy project goes far beyond “support”. As part of the process Alex and Chris have taught us a lot about how the components work together and how to start programming the required changes ourselves. So a secondary outcome of this project is an effective knowledge transfer, building our ability to make required changes to the coupler and the models in the future."
- Dr Stefan Jendersie, Research Fellow, Victoria University of Wellington
Do you want to bring your research to the next level? We can help. Send an email to support@nesi.org.nz to learn more about our Consultancy support or visit our Consultancy Service page.