| 1 | sannino | 1.1 | C $Header: /u/gcmpack/MITgcm/model/inc/GRID.h,v 1.30 2005/07/20 22:24:52 jmc Exp $ | 
| 2 |  |  | C $Name:  $ | 
| 3 |  |  | C | 
| 4 |  |  | CBOP | 
| 5 |  |  | C    !ROUTINE: GRID.h | 
| 6 |  |  | C    !INTERFACE: | 
| 7 |  |  | C    include GRID.h | 
| 8 |  |  | C    !DESCRIPTION: \bv | 
| 9 |  |  | C     *==========================================================* | 
| 10 |  |  | C     | GRID.h | 
| 11 |  |  | C     | o Header file defining model grid. | 
| 12 |  |  | C     *==========================================================* | 
| 13 |  |  | C     | Model grid is defined for each process by reference to | 
| 14 |  |  | C     | the arrays set here. | 
| 15 |  |  | C     | Notes | 
| 16 |  |  | C     | ===== | 
| 17 |  |  | C     | The standard MITgcm convention of westmost, southern most | 
| 18 |  |  | C     | and upper most having the (1,1,1) index is used here. | 
| 19 |  |  | C     | i.e. | 
| 20 |  |  | C     |---------------------------------------------------------- | 
| 21 |  |  | C     | (1)  Plan view schematic of model grid (top layer i.e. ) | 
| 22 |  |  | C     |      ================================= ( ocean surface ) | 
| 23 |  |  | C     |                                        ( or top of     ) | 
| 24 |  |  | C     |                                        ( atmosphere    ) | 
| 25 |  |  | C     |      This diagram shows the location of the model | 
| 26 |  |  | C     |      prognostic variables on the model grid. The "T" | 
| 27 |  |  | C     |      location is used for all tracers. The figure also | 
| 28 |  |  | C     |      shows the southern most, western most indexing | 
| 29 |  |  | C     |      convention that is used for all model variables. | 
| 30 |  |  | C     | | 
| 31 |  |  | C     | | 
| 32 |  |  | C     |             V(i=1,                     V(i=Nx, | 
| 33 |  |  | C     |               j=Ny+1,                    j=Ny+1, | 
| 34 |  |  | C     |               k=1)                       k=1) | 
| 35 |  |  | C     |                /|\                       /|\  "PWX" | 
| 36 |  |  | C     |       |---------|------------------etc..  |---- *--- | 
| 37 |  |  | C     |       |                     |                   *  | | 
| 38 |  |  | C     |"PWY"*******************************etc..  **********"PWY" | 
| 39 |  |  | C     |       |                     |                   *  | | 
| 40 |  |  | C     |       |                     |                   *  | | 
| 41 |  |  | C     |       |                     |                   *  | | 
| 42 |  |  | C     |U(i=1, ==>       x           |             x     *==>U | 
| 43 |  |  | C     |  j=Ny,|      T(i=1,         |          T(i=Nx,  *(i=Nx+1, | 
| 44 |  |  | C     |  k=1) |        j=Ny,        |            j=Ny,  *  |j=Ny, | 
| 45 |  |  | C     |       |        k=1)         |            k=1)   *  |k=1) | 
| 46 |  |  | C     | | 
| 47 |  |  | C     |       .                     .                      . | 
| 48 |  |  | C     |       .                     .                      . | 
| 49 |  |  | C     |       .                     .                      . | 
| 50 |  |  | C     |       e                     e                   *  e | 
| 51 |  |  | C     |       t                     t                   *  t | 
| 52 |  |  | C     |       c                     c                   *  c | 
| 53 |  |  | C     |       |                     |                   *  | | 
| 54 |  |  | C     |       |                     |                   *  | | 
| 55 |  |  | C     |U(i=1, ==>       x           |             x     *  | | 
| 56 |  |  | C     |  j=2, |      T(i=1,         |          T(i=Nx,  *  | | 
| 57 |  |  | C     |  k=1) |        j=2,         |            j=2,   *  | | 
| 58 |  |  | C     |       |        k=1)         |            k=1)   *  | | 
| 59 |  |  | C     |       |                     |                   *  | | 
| 60 |  |  | C     |       |        /|\          |            /|\    *  | | 
| 61 |  |  | C     |      -----------|------------------etc..  |-----*--- | 
| 62 |  |  | C     |       |       V(i=1,        |           V(i=Nx, *  | | 
| 63 |  |  | C     |       |         j=2,        |             j=2,  *  | | 
| 64 |  |  | C     |       |         k=1)        |             k=1)  *  | | 
| 65 |  |  | C     |       |                     |                   *  | | 
| 66 |  |  | C     |U(i=1, ==>       x         ==>U(i=2,       x     *==>U | 
| 67 |  |  | C     |  j=1, |      T(i=1,         |  j=1,    T(i=Nx,  *(i=Nx+1, | 
| 68 |  |  | C     |  k=1) |        j=1,         |  k=1)      j=1,   *  |j=1, | 
| 69 |  |  | C     |       |        k=1)         |            k=1)   *  |k=1) | 
| 70 |  |  | C     |       |                     |                   *  | | 
| 71 |  |  | C     |       |        /|\          |            /|\    *  | | 
| 72 |  |  | C     |"SB"++>|---------|------------------etc..  |-----*--- | 
| 73 |  |  | C     |      /+\      V(i=1,                    V(i=Nx, * | 
| 74 |  |  | C     |       +         j=1,                      j=1,  * | 
| 75 |  |  | C     |       +         k=1)                      k=1)  * | 
| 76 |  |  | C     |     "WB"                                      "PWX" | 
| 77 |  |  | C     | | 
| 78 |  |  | C     |   N, y increasing northwards | 
| 79 |  |  | C     |  /|\ j increasing northwards | 
| 80 |  |  | C     |   | | 
| 81 |  |  | C     |   | | 
| 82 |  |  | C     |   ======>E, x increasing eastwards | 
| 83 |  |  | C     |             i increasing eastwards | 
| 84 |  |  | C     | | 
| 85 |  |  | C     |    i: East-west index | 
| 86 |  |  | C     |    j: North-south index | 
| 87 |  |  | C     |    k: up-down index | 
| 88 |  |  | C     |    U: x-velocity (m/s) | 
| 89 |  |  | C     |    V: y-velocity (m/s) | 
| 90 |  |  | C     |    T: potential temperature (oC) | 
| 91 |  |  | C     | "SB": Southern boundary | 
| 92 |  |  | C     | "WB": Western boundary | 
| 93 |  |  | C     |"PWX": Periodic wrap around in X. | 
| 94 |  |  | C     |"PWY": Periodic wrap around in Y. | 
| 95 |  |  | C     |---------------------------------------------------------- | 
| 96 |  |  | C     | (2) South elevation schematic of model grid | 
| 97 |  |  | C     |     ======================================= | 
| 98 |  |  | C     |     This diagram shows the location of the model | 
| 99 |  |  | C     |     prognostic variables on the model grid. The "T" | 
| 100 |  |  | C     |     location is used for all tracers. The figure also | 
| 101 |  |  | C     |     shows the upper most, western most indexing | 
| 102 |  |  | C     |     convention that is used for all model variables. | 
| 103 |  |  | C     | | 
| 104 |  |  | C     |      "WB" | 
| 105 |  |  | C     |       + | 
| 106 |  |  | C     |       + | 
| 107 |  |  | C     |      \+/       /|\                       /|\       . | 
| 108 |  |  | C     |"UB"++>|-------- | -----------------etc..  | ----*--- | 
| 109 |  |  | C     |       |    rVel(i=1,        |        rVel(i=Nx, *  | | 
| 110 |  |  | C     |       |         j=1,        |             j=1,  *  | | 
| 111 |  |  | C     |       |         k=1)        |             k=1)  *  | | 
| 112 |  |  | C     |       |                     |                   *  | | 
| 113 |  |  | C     |U(i=1, ==>       x         ==>U(i=2,       x     *==>U | 
| 114 |  |  | C     |  j=1, |      T(i=1,         |  j=1,    T(i=Nx,  *(i=Nx+1, | 
| 115 |  |  | C     |  k=1) |        j=1,         |  k=1)      j=1,   *  |j=1, | 
| 116 |  |  | C     |       |        k=1)         |            k=1)   *  |k=1) | 
| 117 |  |  | C     |       |                     |                   *  | | 
| 118 |  |  | C     |       |        /|\          |            /|\    *  | | 
| 119 |  |  | C     |       |-------- | -----------------etc..  | ----*--- | 
| 120 |  |  | C     |       |    rVel(i=1,        |        rVel(i=Nx, *  | | 
| 121 |  |  | C     |       |         j=1,        |             j=1,  *  | | 
| 122 |  |  | C     |       |         k=2)        |             k=2)  *  | | 
| 123 |  |  | C     | | 
| 124 |  |  | C     |       .                     .                      . | 
| 125 |  |  | C     |       .                     .                      . | 
| 126 |  |  | C     |       .                     .                      . | 
| 127 |  |  | C     |       e                     e                   *  e | 
| 128 |  |  | C     |       t                     t                   *  t | 
| 129 |  |  | C     |       c                     c                   *  c | 
| 130 |  |  | C     |       |                     |                   *  | | 
| 131 |  |  | C     |       |                     |                   *  | | 
| 132 |  |  | C     |       |                     |                   *  | | 
| 133 |  |  | C     |       |                     |                   *  | | 
| 134 |  |  | C     |       |        /|\          |            /|\    *  | | 
| 135 |  |  | C     |       |-------- | -----------------etc..  | ----*--- | 
| 136 |  |  | C     |       |    rVel(i=1,        |        rVel(i=Nx, *  | | 
| 137 |  |  | C     |       |         j=1,        |             j=1,  *  | | 
| 138 |  |  | C     |       |         k=Nr)       |             k=Nr) *  | | 
| 139 |  |  | C     |U(i=1, ==>       x         ==>U(i=2,       x     *==>U | 
| 140 |  |  | C     |  j=1, |      T(i=1,         |  j=1,    T(i=Nx,  *(i=Nx+1, | 
| 141 |  |  | C     |  k=Nr)|        j=1,         |  k=Nr)     j=1,   *  |j=1, | 
| 142 |  |  | C     |       |        k=Nr)        |            k=Nr)  *  |k=Nr) | 
| 143 |  |  | C     |       |                     |                   *  | | 
| 144 |  |  | C     |"LB"++>============================================== | 
| 145 |  |  | C     |                                               "PWX" | 
| 146 |  |  | C     | | 
| 147 |  |  | C     | Up   increasing upwards. | 
| 148 |  |  | C     |/|\                                                       . | 
| 149 |  |  | C     | | | 
| 150 |  |  | C     | | | 
| 151 |  |  | C     | =====> E  i increasing eastwards | 
| 152 |  |  | C     | |         x increasing eastwards | 
| 153 |  |  | C     | | | 
| 154 |  |  | C     |\|/ | 
| 155 |  |  | C     | Down,k increasing downwards. | 
| 156 |  |  | C     | | 
| 157 |  |  | C     | Note: r => height (m) => r increases upwards | 
| 158 |  |  | C     |       r => pressure (Pa) => r increases downwards | 
| 159 |  |  | C     | | 
| 160 |  |  | C     | | 
| 161 |  |  | C     |    i: East-west index | 
| 162 |  |  | C     |    j: North-south index | 
| 163 |  |  | C     |    k: up-down index | 
| 164 |  |  | C     |    U: x-velocity (m/s) | 
| 165 |  |  | C     | rVel: z-velocity ( units of r ) | 
| 166 |  |  | C     |       The vertical velocity variable rVel is in units of | 
| 167 |  |  | C     |       "r" the vertical coordinate. r in m will give | 
| 168 |  |  | C     |       rVel m/s. r in Pa will give rVel Pa/s. | 
| 169 |  |  | C     |    T: potential temperature (oC) | 
| 170 |  |  | C     | "UB": Upper boundary. | 
| 171 |  |  | C     | "LB": Lower boundary (always solid - therefore om|w == 0) | 
| 172 |  |  | C     | "WB": Western boundary | 
| 173 |  |  | C     |"PWX": Periodic wrap around in X. | 
| 174 |  |  | C     |---------------------------------------------------------- | 
| 175 |  |  | C     | (3) Views showing nomenclature and indexing | 
| 176 |  |  | C     |     for grid descriptor variables. | 
| 177 |  |  | C     | | 
| 178 |  |  | C     |      Fig 3a. shows the orientation, indexing and | 
| 179 |  |  | C     |      notation for the grid spacing terms used internally | 
| 180 |  |  | C     |      for the evaluation of gradient and averaging terms. | 
| 181 |  |  | C     |      These varaibles are set based on the model input | 
| 182 |  |  | C     |      parameters which define the model grid in terms of | 
| 183 |  |  | C     |      spacing in X, Y and Z. | 
| 184 |  |  | C     | | 
| 185 |  |  | C     |      Fig 3b. shows the orientation, indexing and | 
| 186 |  |  | C     |      notation for the variables that are used to define | 
| 187 |  |  | C     |      the model grid. These varaibles are set directly | 
| 188 |  |  | C     |      from the model input. | 
| 189 |  |  | C     | | 
| 190 |  |  | C     | Figure 3a | 
| 191 |  |  | C     | ========= | 
| 192 |  |  | C     |       |------------------------------------ | 
| 193 |  |  | C     |       |                       | | 
| 194 |  |  | C     |"PWY"********************************* etc... | 
| 195 |  |  | C     |       |                       | | 
| 196 |  |  | C     |       |                       | | 
| 197 |  |  | C     |       |                       | | 
| 198 |  |  | C     |       |                       | | 
| 199 |  |  | C     |       |                       | | 
| 200 |  |  | C     |       |                       | | 
| 201 |  |  | C     |       |                       | | 
| 202 |  |  | C     | | 
| 203 |  |  | C     |       .                       . | 
| 204 |  |  | C     |       .                       . | 
| 205 |  |  | C     |       .                       . | 
| 206 |  |  | C     |       e                       e | 
| 207 |  |  | C     |       t                       t | 
| 208 |  |  | C     |       c                       c | 
| 209 |  |  | C     |       |-----------v-----------|-----------v----------|- | 
| 210 |  |  | C     |       |                       |                      | | 
| 211 |  |  | C     |       |                       |                      | | 
| 212 |  |  | C     |       |                       |                      | | 
| 213 |  |  | C     |       |                       |                      | | 
| 214 |  |  | C     |       |                       |                      | | 
| 215 |  |  | C     |       u<--dxF(i=1,j=2,k=1)--->u           t          | | 
| 216 |  |  | C     |       |/|\       /|\          |                      | | 
| 217 |  |  | C     |       | |         |           |                      | | 
| 218 |  |  | C     |       | |         |           |                      | | 
| 219 |  |  | C     |       | |         |           |                      | | 
| 220 |  |  | C     |       |dyU(i=1,  dyC(i=1,     |                      | | 
| 221 |  |  | C     | ---  ---|--j=2,---|--j=2,-----------------v----------|- | 
| 222 |  |  | C     | /|\   | |  k=1)   |  k=1)     |          /|\         | | 
| 223 |  |  | C     |  |    | |         |           |          dyF(i=2,    | | 
| 224 |  |  | C     |  |    | |         |           |           |  j=1,    | | 
| 225 |  |  | C     |dyG(   |\|/       \|/          |           |  k=1)    | | 
| 226 |  |  | C     |   i=1,u---        t<---dxC(i=2,j=1,k=1)-->t          | | 
| 227 |  |  | C     |   j=1,|                       |           |          | | 
| 228 |  |  | C     |   k=1)|                       |           |          | | 
| 229 |  |  | C     |  |    |                       |           |          | | 
| 230 |  |  | C     |  |    |                       |           |          | | 
| 231 |  |  | C     | \|/   |           |<---dxV(i=2,j=1,k=1)--\|/         | | 
| 232 |  |  | C     |"SB"++>|___________v___________|___________v__________|_ | 
| 233 |  |  | C     |       <--dxG(i=1,j=1,k=1)-----> | 
| 234 |  |  | C     |      /+\                                              . | 
| 235 |  |  | C     |       + | 
| 236 |  |  | C     |       + | 
| 237 |  |  | C     |     "WB" | 
| 238 |  |  | C     | | 
| 239 |  |  | C     |   N, y increasing northwards | 
| 240 |  |  | C     |  /|\ j increasing northwards | 
| 241 |  |  | C     |   | | 
| 242 |  |  | C     |   | | 
| 243 |  |  | C     |   ======>E, x increasing eastwards | 
| 244 |  |  | C     |             i increasing eastwards | 
| 245 |  |  | C     | | 
| 246 |  |  | C     |    i: East-west index | 
| 247 |  |  | C     |    j: North-south index | 
| 248 |  |  | C     |    k: up-down index | 
| 249 |  |  | C     |    u: x-velocity point | 
| 250 |  |  | C     |    V: y-velocity point | 
| 251 |  |  | C     |    t: tracer point | 
| 252 |  |  | C     | "SB": Southern boundary | 
| 253 |  |  | C     | "WB": Western boundary | 
| 254 |  |  | C     |"PWX": Periodic wrap around in X. | 
| 255 |  |  | C     |"PWY": Periodic wrap around in Y. | 
| 256 |  |  | C     | | 
| 257 |  |  | C     | Figure 3b | 
| 258 |  |  | C     | ========= | 
| 259 |  |  | C     | | 
| 260 |  |  | C     |       .                       . | 
| 261 |  |  | C     |       .                       . | 
| 262 |  |  | C     |       .                       . | 
| 263 |  |  | C     |       e                       e | 
| 264 |  |  | C     |       t                       t | 
| 265 |  |  | C     |       c                       c | 
| 266 |  |  | C     |       |-----------v-----------|-----------v--etc... | 
| 267 |  |  | C     |       |                       | | 
| 268 |  |  | C     |       |                       | | 
| 269 |  |  | C     |       |                       | | 
| 270 |  |  | C     |       |                       | | 
| 271 |  |  | C     |       |                       | | 
| 272 |  |  | C     |       u<--delX(i=1)---------->u           t | 
| 273 |  |  | C     |       |                       | | 
| 274 |  |  | C     |       |                       | | 
| 275 |  |  | C     |       |                       | | 
| 276 |  |  | C     |       |                       | | 
| 277 |  |  | C     |       |                       | | 
| 278 |  |  | C     |       |-----------v-----------------------v--etc... | 
| 279 |  |  | C     |       |          /|\          | | 
| 280 |  |  | C     |       |           |           | | 
| 281 |  |  | C     |       |           |           | | 
| 282 |  |  | C     |       |           |           | | 
| 283 |  |  | C     |       u        delY(j=1)      |           t | 
| 284 |  |  | C     |       |           |           | | 
| 285 |  |  | C     |       |           |           | | 
| 286 |  |  | C     |       |           |           | | 
| 287 |  |  | C     |       |           |           | | 
| 288 |  |  | C     |       |          \|/          | | 
| 289 |  |  | C     |"SB"++>|___________v___________|___________v__etc... | 
| 290 |  |  | C     |      /+\                                                 . | 
| 291 |  |  | C     |       + | 
| 292 |  |  | C     |       + | 
| 293 |  |  | C     |     "WB" | 
| 294 |  |  | C     | | 
| 295 |  |  | C     *==========================================================* | 
| 296 |  |  | C     \ev | 
| 297 |  |  | CEOP | 
| 298 |  |  |  | 
| 299 |  |  | C     Macros that override/modify standard definitions | 
| 300 |  |  | #include "GRID_MACROS.h" | 
| 301 |  |  |  | 
| 302 |  |  | C | 
| 303 |  |  | C--   COMMON /GRID_R/ REAL valued grid defining variables. | 
| 304 |  |  | C     dxC    - Cell center separation in X across western cell wall (m) | 
| 305 |  |  | C     dxG    - Cell face separation in X along southern cell wall (m) | 
| 306 |  |  | C     dxF    - Cell face separation in X thru cell center (m) | 
| 307 |  |  | C     dxV    - V-point separation in X across south-west corner of cell (m) | 
| 308 |  |  | C     dyC    - Cell center separation in Y across southern cell wall (m) | 
| 309 |  |  | C     dyG    - Cell face separation in Y along western cell wall (m) | 
| 310 |  |  | C     dyF    - Cell face separation in Y thru cell center (m) | 
| 311 |  |  | C     dyU    - U-point separation in Y across south-west corner of cell (m) | 
| 312 |  |  | C     drC    - Cell center separation along Z axis ( units of r ). | 
| 313 |  |  | C     drF    - Cell face separation along Z axis ( units of r ). | 
| 314 |  |  | C     Rcolumn  -Total thickness (in r_unit) of the fluid column | 
| 315 |  |  | C     R_low  - base of fluid in r_unit (Depth(m) / Pressure(Pa) at top Atmos.) | 
| 316 |  |  | C     Ro_surf- surface reference (at rest) position, r_unit. | 
| 317 |  |  | C     klowC  - index of the lowest "wet cell" (2D) | 
| 318 |  |  | C     hFac   - Fraction of cell in vertical which is open i.e how | 
| 319 |  |  | C              "lopped" a cell is (dimensionless scale factor). | 
| 320 |  |  | C              Note: The code needs terms like MIN(hFac,hFac(I+1)) | 
| 321 |  |  | C                    On some platforms it may be better to precompute | 
| 322 |  |  | C                    hFacW, hFacE, ... here than do MIN on the fly. | 
| 323 |  |  | C     gravitySign - indicates the direction of gravity relative to R direction | 
| 324 |  |  | C                  (= -1 for R=Z (Z increases upward, -gravity direction  ) | 
| 325 |  |  | C                  (= +1 for R=P (P increases downward, +gravity direction) | 
| 326 |  |  | C     rkSign - Vertical coordinate to vertical index orientation. | 
| 327 |  |  | C                 ( +1 same orientation, -1 opposite orientation ) | 
| 328 |  |  | C     globalArea :: Domain Integrated horizontal Area [m2] | 
| 329 |  |  | C     maskH  - cell Center full-column mask (= 2D mask) | 
| 330 |  |  | C     maskC  - cell Center land mask | 
| 331 |  |  | C     maskW  - West face land mask | 
| 332 |  |  | C     maskS  - South face land mask | 
| 333 |  |  | C     recip_dxC   - Recipricol of dxC | 
| 334 |  |  | C     recip_dxG   - Recipricol of dxG | 
| 335 |  |  | C     recip_dxF   - Recipricol of dxF | 
| 336 |  |  | C     recip_dxV   - Recipricol of dxV | 
| 337 |  |  | C     recip_dyC   - Recipricol of dxC | 
| 338 |  |  | C     recip_dyG   - Recipricol of dyG | 
| 339 |  |  | C     recip_dyF   - Recipricol of dyF | 
| 340 |  |  | C     recip_dyU   - Recipricol of dyU | 
| 341 |  |  | C     recip_drC   - Recipricol of drC | 
| 342 |  |  | C     recip_drF   - Recipricol of drF | 
| 343 |  |  | C     recip_Rcol  - Inverse of cell center column thickness (1/r_unit) | 
| 344 |  |  | C     recip_hFacC - Inverse of cell open-depth f[X,Y,Z] ( dimensionless ). | 
| 345 |  |  | C     recip_hFacW   rhFacC center, rhFacW west, rhFacS south. | 
| 346 |  |  | C     recip_hFacS   Note: This is precomputed here because it involves division. | 
| 347 |  |  | C     saFac  - Shallow atmosphere factor (dimensionless scale factor). | 
| 348 |  |  | C     xC     - X-coordinate of center of cell f[X,Y]. The units of xc, yc | 
| 349 |  |  | C              depend on the grid. They are not used in differencing or | 
| 350 |  |  | C              averaging but are just a convient quantity for I/O, | 
| 351 |  |  | C              diagnostics etc.. As such xc is in m for cartesian | 
| 352 |  |  | C              coordinates but degrees for spherical polar. | 
| 353 |  |  | C     yC     - Y-coordinate of center of cell f[X,Y]. | 
| 354 |  |  | C     yG     - Y-coordinate of corner of cell ( c-grid vorticity point) f[X,Y]. | 
| 355 |  |  | C     xC0, yC0 - West edge x coord  ( metres or degrees ) | 
| 356 |  |  | C                South edge y coord ( metres or degrees ) | 
| 357 |  |  | C     rA     - R-face are f[X,Y] ( m^2 ). | 
| 358 |  |  | C              Note: In a cartesian framework zA is simply dx*dy, | 
| 359 |  |  | C                    however we use zA to allow for non-globally | 
| 360 |  |  | C                    orthogonal coordinate frames (with appropriate | 
| 361 |  |  | C                    metric terms). | 
| 362 |  |  | C     rC     - R-coordinate of center of cell f[Z] (units of r). | 
| 363 |  |  | C     rF     - R-coordinate of face of cell f[Z] (units of r). | 
| 364 |  |  | C     tanPhiAtU - tan of the latitude at U point. Used for spherical polar | 
| 365 |  |  | C                 metric term in U equation. | 
| 366 |  |  | C     tanPhiAtV - tan of the latitude at V point. Used for spherical polar | 
| 367 |  |  | C                 metric term in V equation. | 
| 368 |  |  | cgmMASK( | 
| 369 |  |  | C     diff4k_msk    - define a mask for biharmonic hor. diffusion (1..any real > 0) | 
| 370 |  |  | C     diff4h_msk    - define a mask for harmonic hor. diffusion (1..any real > 0) | 
| 371 |  |  | C     viscA4_msk    - define a mask for biharmonic side viscosity (1..any real > 0) only Vector Invariant | 
| 372 |  |  | C     viscAh_msk    - define a mask for Laplacia side viscosity (1..any real > 0) only Vector Invariant | 
| 373 |  |  | C     viscA4_DZ_msk - define a mask for biharmonic hor. viscosity (1..any real > 0) only Vector Invariant | 
| 374 |  |  | C     bottom_msk    - define a mask for bottom drag (0 or 1) only for Vector Invariant | 
| 375 |  |  | C       side_msk    - define a mask for side drag (0 or 1)   only for Vector Invariant | 
| 376 |  |  | cgmMASK) | 
| 377 |  |  |  | 
| 378 |  |  |  | 
| 379 |  |  | C     angleCosC :: cosine of grid orientation angle relative to Geographic direction | 
| 380 |  |  | C                  at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) | 
| 381 |  |  | C     angleSinC :: sinus  of grid orientation angle relative to Geographic direction | 
| 382 |  |  | C                  at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) | 
| 383 |  |  | C     fCori     :: Coriolis parameter at grid Center point | 
| 384 |  |  | C     fCoriG    :: Coriolis parameter at grid Corner point | 
| 385 |  |  | C     fCoriCos  :: Coriolis Cos(phi) parameter at grid Center point (for NH) | 
| 386 |  |  | COMMON /GRID_I/ klowC | 
| 387 |  |  | INTEGER klowC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 388 |  |  |  | 
| 389 |  |  | COMMON /GRID_R/ | 
| 390 |  |  | &  cosfacU,cosfacV,sqcosfacU,sqcosfacV, | 
| 391 |  |  | &  gravitySign, rkSign, globalArea, | 
| 392 |  |  | &  dxC,dxF,dxG,dxV,dyC,dyF,dyG,dyU, | 
| 393 |  |  | &  R_low,Ro_surf,hFacC,hFacW,hFacS, | 
| 394 |  |  | &  recip_dxC,recip_dxF,recip_dxG,recip_dxV, | 
| 395 |  |  | &  recip_dyC,recip_dyF,recip_dyG,recip_dyU, | 
| 396 |  |  | &  recip_Rcol, | 
| 397 |  |  | &  recip_hFacC,recip_hFacW,recip_hFacS, | 
| 398 |  |  | &  saFac, | 
| 399 |  |  | &  xC,yC,rA,rAw,rAs,rAz,xG,yG, | 
| 400 |  |  | &  maskH, maskC,maskW,maskS, | 
| 401 |  |  | &  recip_rA,recip_rAw,recip_rAs,recip_rAz, | 
| 402 |  |  | &  tanPhiAtU, tanPhiAtV, angleCosC, angleSinC, | 
| 403 |  |  | &  drC,drF,recip_drC,recip_drF,rC,rF, | 
| 404 |  |  | &  xC0, yC0, | 
| 405 |  |  | &  fCori, fCoriG, fCoriCos, | 
| 406 |  |  | cgmMASK( | 
| 407 |  |  | &  diffk4_msk, viscA4_msk,viscA4_DZ_msk,viscAh_msk, | 
| 408 |  |  | &  diffkh_msk,bottom_msk ,side_msk,diffkr_msk, | 
| 409 |  |  | cgmMASK) | 
| 410 |  |  | cgmOASIS( | 
| 411 |  |  | &  XC_global,YC_global,XG_global,YG_global, | 
| 412 |  |  | &   maskC_global,maskS_global,maskW_global, | 
| 413 |  |  | &   rA_global,rAW_global,rAS_global ,rAZ_global | 
| 414 |  |  | cgmOASIS) | 
| 415 |  |  | _RL cosfacU(1-Oly:sNy+Oly,nSx,nSy) | 
| 416 |  |  | _RL cosfacV(1-Oly:sNy+Oly,nSx,nSy) | 
| 417 |  |  | _RL sqcosfacU(1-Oly:sNy+Oly,nSx,nSy) | 
| 418 |  |  | _RL sqcosfacV(1-Oly:sNy+Oly,nSx,nSy) | 
| 419 |  |  | _RL gravitySign | 
| 420 |  |  | _RL rkSign | 
| 421 |  |  | _RL globalArea | 
| 422 |  |  | _RS dxC            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 423 |  |  | _RS dxF            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 424 |  |  | _RS dxG            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 425 |  |  | _RS dxV            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 426 |  |  | _RS dyC            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 427 |  |  | _RS dyF            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 428 |  |  | _RS dyG            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 429 |  |  | _RS dyU            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 430 |  |  | _RS R_low          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 431 |  |  | _RS Ro_surf        (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 432 |  |  | _RS hFacC          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 433 |  |  | _RS hFacW          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 434 |  |  | _RS hFacS          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 435 |  |  | _RS recip_dxC      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 436 |  |  | _RS recip_dxF      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 437 |  |  | _RS recip_dxG      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 438 |  |  | _RS recip_dxV      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 439 |  |  | _RS recip_dyC      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 440 |  |  | _RS recip_dyF      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 441 |  |  | _RS recip_dyG      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 442 |  |  | _RS recip_dyU      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 443 |  |  | _RS recip_Rcol     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 444 |  |  | _RS recip_hFacC    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 445 |  |  | _RS recip_hFacW    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 446 |  |  | _RS recip_hFacS    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 447 |  |  | _RS xC             (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 448 |  |  | _RS xG             (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 449 |  |  | _RS yC             (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 450 |  |  | _RS yG             (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 451 |  |  | _RS rA             (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 452 |  |  | _RS rAw            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 453 |  |  | _RS rAs            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 454 |  |  | _RS rAz            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 455 |  |  | _RS recip_rA       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 456 |  |  | _RS recip_rAw      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 457 |  |  | _RS recip_rAs      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 458 |  |  | _RS recip_rAz      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 459 |  |  | _RS maskH          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 460 |  |  | _RS maskC          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 461 |  |  | _RS maskW          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 462 |  |  | _RS maskS          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 463 |  |  | _RS tanPhiAtU      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 464 |  |  | _RS tanPhiAtV      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 465 |  |  | _RS angleCosC      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 466 |  |  | _RS angleSinC      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 467 |  |  | _RS drC            (1:Nr) | 
| 468 |  |  | _RS drF            (1:Nr) | 
| 469 |  |  | _RS recip_drC      (1:Nr) | 
| 470 |  |  | _RS recip_drF      (1:Nr) | 
| 471 |  |  | _RS saFac          (1:Nr) | 
| 472 |  |  | _RS rC             (1:Nr) | 
| 473 |  |  | _RS rF             (1:Nr+1) | 
| 474 |  |  | _RS xC0 | 
| 475 |  |  | _RS yC0 | 
| 476 |  |  | _RS fCori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 477 |  |  | _RS fCoriG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 478 |  |  | _RS fCoriCos(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 479 |  |  | cgmMASK( | 
| 480 |  |  | _RS   diffk4_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 481 |  |  | _RS    diffkh_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 482 |  |  | _RS    viscA4_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 483 |  |  | _RS    viscAh_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 484 |  |  | _RS    bottom_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 485 |  |  | _RS      side_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 486 |  |  | _RS viscA4_DZ_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 487 |  |  | _RS    diffkr_msk     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 488 |  |  | cgmMASK) | 
| 489 |  |  |  | 
| 490 |  |  |  | 
| 491 |  |  | cgmOASIS( | 
| 492 |  |  | _RL XC_global    (Nx,Ny) | 
| 493 |  |  | _RL YC_global    (Nx,Ny) | 
| 494 |  |  | _RL XG_global    (Nx,Ny) | 
| 495 |  |  | _RL YG_global    (Nx,Ny) | 
| 496 |  |  | _RL maskC_global (Nx,Ny) | 
| 497 |  |  | _RL maskS_global (Nx,Ny) | 
| 498 |  |  | _RL maskW_global (Nx,Ny) | 
| 499 |  |  | _RL rA_global    (Nx,Ny) | 
| 500 |  |  | _RL rAW_global   (Nx,Ny) | 
| 501 |  |  | _RL rAS_global   (Nx,Ny) | 
| 502 |  |  | _RL rAZ_global   (Nx,Ny) | 
| 503 |  |  | cgmOASIS) | 
| 504 |  |  |  | 
| 505 |  |  |  | 
| 506 |  |  |  | 
| 507 |  |  |  | 
| 508 |  |  | #ifdef ALLOW_NONHYDROSTATIC | 
| 509 |  |  | COMMON /GRID_NH/ | 
| 510 |  |  | &  recip_hFacU | 
| 511 |  |  | _RS recip_hFacU    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) | 
| 512 |  |  | #endif |