/[MITgcm]/MITgcm/model/inc/DYNVARS.h
ViewVC logotype

Contents of /MITgcm/model/inc/DYNVARS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.50 - (show annotations) (download)
Mon Nov 28 22:55:00 2016 UTC (7 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.49: +16 -4 lines
File MIME type: text/plain
- add new common block to store velocity increment 3-D factor due to
  surf. pressure gradient when using Implicit bottom friction (& vert. visc);
  for now, only compiled when CPP option ALLOW_SOLVE4_PS_AND_DRAG is defined.

1 C $Header: /u/gcmpack/MITgcm/model/inc/DYNVARS.h,v 1.49 2015/01/20 20:43:29 jmc Exp $
2 C $Name: $
3
4 CBOP
5 C !ROUTINE: DYNVARS.h
6 C !INTERFACE:
7 C include "DYNVARS.h"
8 C !DESCRIPTION:
9 C \bv
10 C *==========================================================*
11 C | DYNVARS.h
12 C | o Dynamical model variables (common block DYNVARS_R)
13 C *==========================================================*
14 C | The value and two levels of time tendency are held for
15 C | each prognostic variable.
16 C *==========================================================*
17 C \ev
18 CEOP
19
20 C State Variables:
21 C etaN :: free-surface r-anomaly (r unit) at current time level
22 C uVel :: zonal velocity (m/s, i=1 held at western face)
23 C vVel :: meridional velocity (m/s, j=1 held at southern face)
24 C theta :: potential temperature (oC, held at pressure/tracer point)
25 C salt :: salinity (ppt, held at pressure/tracer point)
26 C gX, gxNm1 :: Time tendencies at current and previous time levels.
27 C etaH :: surface r-anomaly, advanced in time consistently
28 C with 2.D flow divergence (Exact-Conservation):
29 C etaH^n+1 = etaH^n - delta_t*Div.(H^n U^n+1)
30 C note: a) used with "exactConserv", necessary for Non-Lin free-surf and mixed
31 C forward/backward free-surf time stepping (e.g., Crank-Nickelson)
32 C b) same as etaN but not necessarily at the same time, e.g.:
33 C implicDiv2DFlow=1 => etaH=etaN ; =0 => etaH=etaN^(n-1);
34
35 #ifdef ALLOW_ADAMSBASHFORTH_3
36 COMMON /DYNVARS_R/
37 & etaN,
38 & uVel,vVel,wVel,theta,salt,
39 & gU, gV,
40 & guNm, gvNm, gtNm, gsNm
41 #else /* ALLOW_ADAMSBASHFORTH_3 */
42 COMMON /DYNVARS_R/
43 & etaN,
44 & uVel,vVel,wVel,theta,salt,
45 & gU, gV,
46 & guNm1,gvNm1,gtNm1,gsNm1
47 #endif /* ALLOW_ADAMSBASHFORTH_3 */
48 _RL etaN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
49 _RL uVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
50 _RL vVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
51 _RL wVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
52 _RL theta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
53 _RL salt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
54 _RL gU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
55 _RL gV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
56 #ifdef ALLOW_ADAMSBASHFORTH_3
57 _RL guNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2)
58 _RL gvNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2)
59 _RL gtNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2)
60 _RL gsNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2)
61 #else /* ALLOW_ADAMSBASHFORTH_3 */
62 _RL guNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
63 _RL gvNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
64 _RL gtNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
65 _RL gsNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
66 #endif /* ALLOW_ADAMSBASHFORTH_3 */
67
68 #ifdef USE_OLD_EXTERNAL_FORCING
69 COMMON /DYNVARS_OLD/
70 & gT, gS
71 _RL gT(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
72 _RL gS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
73 #endif
74
75 COMMON /DYNVARS_R_2/
76 & etaH
77 _RL etaH (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
78
79 #if (defined (ALLOW_3D_DIFFKR) || defined (ALLOW_DIFFKR_CONTROL))
80 C diffKr :: full 3D specification of Laplacian diffusion coeff.
81 C for mixing of tracers vertically ( units of r^2/s )
82 COMMON /DYNVARS_DIFFKR/
83 & diffKr
84 _RL diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
85 #endif
86
87 C The following blocks containing requires anomaly fields of control vars
88 C and related to Options:
89 C ALLOW_KAPGM_CONTROL , ALLOW_KAPREDI_CONTROL and ALLOW_BOTTOMDRAG_CONTROL
90 C have been moved to header file "CTRL_FIELDS.h"
91
92 #ifdef ALLOW_BL79_LAT_VARY
93 C BL79LatArray :: is used for latitudinal dependence of
94 C BryanLewis79 vertical diffusivity
95 COMMON /DYNVARS_BL79LatArray/ BL79LatArray
96 _RL BL79LatArray (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
97 #endif
98
99 C Diagnostic Variables:
100 C phiHydLow :: Phi-Hydrostatic at r-lower boundary
101 C (bottom in z-coordinates, top in p-coordinates)
102 C totPhiHyd :: total hydrostatic Potential (anomaly, for now),
103 C at cell center level ; includes surface contribution.
104 C (for diagnostic + used in Z-coord with EOS_funct_P)
105 C rhoInSitu :: In-Situ density anomaly [kg/m^3] at cell center level.
106 C hMixLayer :: Mixed layer depth [m]
107 C (for diagnostic + used GMRedi "fm07")
108 C IVDConvCount :: Impl.Vert.Diffusion convection counter:
109 C = 0 (not convecting) or 1 (convecting)
110 COMMON /DYNVARS_DIAG/
111 & phiHydLow, totPhiHyd,
112 & rhoInSitu,
113 & hMixLayer, IVDConvCount
114 _RL phiHydLow(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
115 _RL totPhiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
116 _RL rhoInSitu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
117 _RL hMixLayer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
118 _RL IVDConvCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
119
120 #ifdef ALLOW_SOLVE4_PS_AND_DRAG
121 C Variables for Implicit friction (& vert. visc) in 2-D pressure solver
122 C dU_psFacX :: zonal velocity increment factor from (implicit) surf.
123 C pressure gradient in X (no Units)
124 C dV_psFacY :: merid velocity increment factor from (implicit) surf.
125 C pressure gradient in Y (no Units)
126
127 COMMON /DYNVARS_DRAG_IN_PS/
128 & dU_psFacX, dV_psFacY
129 _RL dU_psFacX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
130 _RL dV_psFacY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
131 #endif /* ALLOW_SOLVE4_PS_AND_DRAG */

  ViewVC Help
Powered by ViewVC 1.1.22