MOM_memory.h

1! This file is part of MOM6, the Modular Ocean Model version 6.
2! See the LICENSE file for licensing information.
3! SPDX-License-Identifier: Apache-2.0
4
5!/// \brief Compile-time memory settings
6!/// \details This include file determines the compile-time memory settings.
7!/// There are several variants of this file and only one should be in the search path for compilation.
8!/// \file MOM_memory.h
9
10!/// The number of thickness grid points in the i-direction of the global domain.
11#define NIGLOBAL_ NONSENSE_NIGLOBAL
12!/// The number of thickness grid points in the j-direction of the global domain.
13#define NJGLOBAL_ NONSENSE_NJGLOBAL
14!/// The number of layers in the vertical direction.
15#define NK_ NONSENSE_NK
16
17!/// The number of processors in the i-direction.
18#define NIPROC_ NONSENSE_NIPROC
19
20!/// The number of processors in the j-direction.
21#define NJPROC_ NONSENSE_NJPROC
22
23!/// The maximum permitted number (each) of restart variables, time derivatives, etc.
24!/// This is mostly used for the size of pointer arrays, so it should be set generously.
25#ifndef MAX_FIELDS_
26#define MAX_FIELDS_ 50
27#endif
28
29!/// The number of memory halo cells on each side of the computational domain in the i-direction.
30#define NIHALO_ 2
31
32!/// The number of memory halo cells on each side of the computational domain in the j-direction.
33#define NJHALO_ 2
34
35!/// If SYMMETRIC_MEMORY_() is defined, the velocity point data domain includes every face of the thickness points.
36!/// In other words, some arrays are larger than others, depending on where they are on the staggered grid.
37#define SYMMETRIC_MEMORY_
38
39!/// If STATIC_MEMORY_ is defined, the principle variables have sizes that are statically determined at compile time.
40!/// Otherwise the sizes are not determined until run time.
41#undef STATIC_MEMORY_
42
43#include <MOM_memory_macros.h>