Generalized Operator Modelling of the Ocean (GOMO) is a three-dimensional ocean model based on OpenArray which is a simple operator library for the decoupling of ocean modelling and parallel computing.
The fundamental equations and algorithms of GOMO are derived from POM2k (Blumberg and Mellor, 1987). GOMO features bottom-following, free-surface, staggered Arakawa C-grid. To effectively evolve the rapid surface fluctuations, GOMO uses the mode-splitting algorithm to address the fast propagating surface gravity waves and slow propagating internal waves in barotropic (external) and baroclinic (internal) modes, respectively. The details of the continuous governing equations, the corresponding operator expression form and the descriptions of all the variables used in GOMO are listed in the ./docs folder.
GOMO is composed of 42 Fortran files (.F90), a header file (.h), a single namelist file (.txt), and a makefile. Pre-processing processing package written in Matlab is located in ./pre. You can use the package to produce the input file for the ideal test--seamount. The default input file seamount65_49_21.nc is located at the directory ./bin/data.
For more details, please see the paper (https://www.geosci-model-dev-discuss.net/gmd-2019-28/) and the simple user mannual of OpenArraylocated at ./docs.
To compile GOMO, the following software are required:
- OpenArray ( It is available at https://github.com/hxmhuang/OpenArray_CXX).
- Fortran 90 or Fortran 95 compiler.
- gcc/g++ compiler version 6.1.0 or higher.
- Intel icc/icpc compiler version 2017 or higher.
- GNU make version 3.81 or higher.
- Message Passing Interface (MPI) library.
- Parallel NetCDF library version 1.7.0 or higher.
- Armadillo, a C++ library for linear algebra & scientific computing, version 8.200.2 or higher.
- Boost C++ Libraries, version 1.65.1 or higher.
Before compiling GOMO, OpenArray is required, other required software and library is the same with that of OpenArray (Shown as Section 2 in the User Mannual of OpenArray). After the installation of required software and OpenArray is done, it is fairly easy to compile GOMO, the basic steps are as follows:
- Download GOMO from GitHub: git clone https://github.com/hxmhuang/GOMO.git;
- Set environment variables to specify path to the required software and library;
- Change the directory into GOMO folder and create a ./lib folder. Open makefile and set the path to the libopenarray.a and openarray.mod of OpenArray;
- Make. According to the installation guide of OpenArray, makefiles for Linux and Mac OS are provided: For Linux: make -f makefile.linux; For Mac OS: make -f makefile.macos
After compiling, the executable file ./bin/GOMO will be generated. Within the directory ./bin where GOMO and config.txt files exist, type: ./GOMO or mpirun -np N ./GOMO