# 2.11.5. Vertical grid¶

As for the horizontal grid, we use the suffixes “c” and “f” to indicates faces and centers. Figure 2.9 (a) shows the default vertical grid used by the model. $$\Delta r_f$$ is the difference in $$r$$ (vertical coordinate) between the faces (i.e. $$\Delta r_f \equiv - \delta_k r$$ where the minus sign appears due to the convention that the surface layer has index $$k=1$$.).

The vertical grid is calculated in subroutine INI_VERTICAL_GRID and specified via the vector delR in namelist PARM04. The units of “r” are either meters or Pascals depending on the isomorphism being used which in turn is dependent only on the choice of equation of state.

There are alternative namelist vectors delZ and delP which dictate whether z- or p- coordinates are to be used but we intend to phase this out since they are redundant.

The reciprocals $$\Delta r_f^{-1}$$ and $$\Delta r_c^{-1}$$ are pre-calculated (also in subroutine INI_VERTICAL_GRID). All vertical grid descriptors are stored in common blocks in GRID.h.

The above grid Figure 2.9 (a) is known as the cell centered approach because the tracer points are at cell centers; the cell centers are mid-way between the cell interfaces. This discretization is selected when the thickness of the levels are provided (delR, parameter file data, namelist PARM04) An alternative, the vertex or interface centered approach, is shown in Figure 2.9 (b). Here, the interior interfaces are positioned mid-way between the tracer nodes (no longer cell centers). This approach is formally more accurate for evaluation of hydrostatic pressure and vertical advection but historically the cell centered approach has been used. An alternative form of subroutine INI_VERTICAL_GRID is used to select the interface centered approach This form requires to specify $$Nr+1$$ vertical distances delRc (parameter file data, namelist PARM04, e.g. ideal_2D_oce/input/data) corresponding to surface to center, $$Nr-1$$ center to center, and center to bottom distances.

$$\Delta r_f , \Delta r_c$$ : drF, drC ( GRID.h )
$$\Delta r_f^{-1} , \Delta r_c^{-1}$$ : recip_drF, recip_drC ( GRID.h )

# 2.11.6. Topography: partially filled cells¶

Adcroft et al. (1997) [AHM97] presented two alternatives to the step-wise finite difference representation of topography. The method is known to the engineering community as intersecting boundary method. It involves allowing the boundary to intersect a grid of cells thereby modifying the shape of those cells intersected. We suggested allowing the topography to take on a piece-wise linear representation (shaved cells) or a simpler piecewise constant representation (partial step). Both show dramatic improvements in solution compared to the traditional full step representation, the piece-wise linear being the best. However, the storage requirements are excessive so the simpler piece-wise constant or partial-step method is all that is currently supported.

Figure 2.10 shows a schematic of the x-r plane indicating how the thickness of a level is determined at tracer and u points. The physical thickness of a tracer cell is given by $$h_c(i,j,k) \Delta r_f(k)$$ and the physical thickness of the open side is given by $$h_w(i,j,k) \Delta r_f(k)$$. Three 3-D descriptors $$h_c$$, $$h_w$$ and $$h_s$$ are used to describe the geometry: hFacC, hFacW and hFacS respectively. These are calculated in subroutine INI_MASKS_ETC along with there reciprocals recip_hFacC, recip_hFacW and recip_hFacS.

The non-dimensional fractions (or h-facs as we call them) are calculated from the model depth array and then processed to avoid tiny volumes. The rule is that if a fraction is less than hFacMin then it is rounded to the nearer of $$0$$ or hFacMin or if the physical thickness is less than hFacMinDr then it is similarly rounded. The larger of the two methods is used when there is a conflict. By setting hFacMinDr equal to or larger than the thinnest nominal layers, $$\min{(\Delta z_f)}$$, but setting hFacMin to some small fraction then the model will only lop thick layers but retain stability based on the thinnest unlopped thickness; $$\min{(\Delta z_f,hFacMinDr)}$$.

S/R :filelink:INI_MASKS_ETC

$$h_c , h_w , h_s$$ : hFacC, hFacW, hFacS ( GRID.h )
$$h_c^{-1} , h_w^{-1} , h_s^{-1}$$ : recip_hFacC, recip_hFacW, recip_hFacS ( GRID.h )