2006 journal article
A nonhydrostatic primitive-equation model for studying small-scale processes: An object-oriented approach
CONTINENTAL SHELF RESEARCH, 26(12-13), 1416–1432.
A nonhydrostatic model for simulating small-scale processes in the ocean is described. The model is developed using the object-oriented approach. The system is modeled as a set of cooperating objects to manage both the behavioral and information complexity associated with modeling oceanic processes. Objects are storage variables that are created based on classes. A class defines the variables and routines that are members of all objects of that class. The program accesses data stored in these objects using the defined interfaces. Because both data and function are accessed through objects, the model is better organized than one written in a procedural language. The program is easier to understand, debug, maintain, and evolve. Abstraction of the data in the nonhydrostatic model is implemented in both C++ and Matlab. Three examples obtained from the Matlab version of the code illustrate the capabilities of the model in cases where nonhydrostatic effects are important. The model successfully simulates nonhydrostatic atmospheric lee waves, internal waves at a discharge plume, and internal solitary waves generated by tidal flow over a sill. These examples show that the model is capable of studying strongly nonlinear, nonhydrostatic flow processes.