belli is a new physics package in MITgcm, allowing for simulations to investigate underwater acoustics. This code, based in Modern Fortran, is a ray-trace simulation of sound propagation.
The package interacts with the MITgcm kernel during initialisation, time-stepping, and in post-processing.
Development is up to date with MITgcm checkpoint69f
MITgcm code modifications are saved in belli/mitgcm_code:
- adds
useBELLItoPARAMS.h - inserts
pkg/BELLIinforward_step.F - allows for
SVELandSLDas GCM diagnostics usingpkg/diagnosticswith optionalpkg/mnc - opens
pkg/BELLIfor inclusion in TAF TL and AD models, can be used with and withoutpkg/ecco
belli is dependent on the following packages:
calfor storing times of sound transmissionscostfor aggregation of acoustic cost function contributions
For input, you will be asked to generate range points along a 2D plane between
a source and receiver. The number of range points can vary from 2 to N, and is saved in b_ranges. The position of a receiver must be contained within the ranges specified, see image below for context. At ray fan initialisation, the tracing step size is 10% the maximum ocean depth defined in your .bty file.
- DOC: create minimal documentation to help user get started with MITgcm+belli
- PYTHON: add simple input file generation
- FORTRAN77: add simple verification problem
- PYTHON: add synthetic observation data file generation
- PYTHON: creat esimple analysis document
@software{belli,
author={Ivana Escobar},
title = {{belli}: Underwater Acoustics for MITgcm},
version = {0.6},
year = {2026},
url = {https://github.com/IvanaEscobar/belli/tree/v0.6}
}
