1 |
C $Header: /u/gcmpack/MITgcm/verification/tutorial_deep_convection/code/MOM_VISC.h,v 1.1 2013/09/30 18:19:41 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
C- Common file for length scales |
5 |
|
6 |
#ifdef ALLOW_MOM_COMMON |
7 |
|
8 |
C-- COMMON /MOM_VISC_PAR_L/ logical-type parameters for Momemtum viscosity |
9 |
C useHarmonicVisc :: harmonic horizontal viscosity is used |
10 |
C useBiharmonicVisc :: biharmonic horizontal viscosity is used |
11 |
C useVariableVisc :: variable (in space or time) viscosity is used |
12 |
COMMON /MOM_VISC_PAR_L/ |
13 |
& useHarmonicVisc, useBiharmonicVisc, useVariableVisc |
14 |
LOGICAL useHarmonicVisc, useBiharmonicVisc, useVariableVisc |
15 |
|
16 |
COMMON /MOM_VISC_LENGTH/ L2_D, L2_Z, |
17 |
& L3_D, L3_Z, |
18 |
& L4rdt_D, L4rdt_Z |
19 |
_RL L2_D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
20 |
_RL L2_Z(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
21 |
_RL L3_D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
22 |
_RL L3_Z(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
23 |
_RL L4rdt_D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
24 |
_RL L4rdt_Z(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
25 |
|
26 |
#ifdef ALLOW_SMAG_3D |
27 |
C smag3D_hLsC :: horiz. grid length scale (power 2/3) at grid cell center |
28 |
C smag3D_hLsW :: horiz. grid length scale (power 2/3) at western edge |
29 |
C smag3D_hLsS :: horiz. grid length scale (power 2/3) at southern egde |
30 |
C smag3D_hLsZ :: horiz. grid length scale (power 2/3) at grid cell corner |
31 |
COMMON /MOM_SMAG_3D_LENGTH/ |
32 |
& smag3D_hLsC, smag3D_hLsW, |
33 |
& smag3D_hLsS, smag3D_hLsZ |
34 |
_RS smag3D_hLsC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
35 |
_RS smag3D_hLsW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
36 |
_RS smag3D_hLsS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
37 |
_RS smag3D_hLsZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
38 |
|
39 |
C-- preliminary version: store everything in common block |
40 |
COMMON /MOM_SMAG_3D_STORE/ |
41 |
& str11, str22, str33, str12, str13, str23, |
42 |
& viscAh3d_00, viscAh3d_12, viscAh3d_13, viscAh3d_23 |
43 |
_RL str11(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
44 |
_RL str22(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
45 |
_RL str33(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
46 |
_RL str12(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
47 |
_RL str13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy) |
48 |
_RL str23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy) |
49 |
_RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
50 |
_RL viscAh3d_12(1-OLx:sNx+OLx,1-OLy:sNy+OLy, Nr, nSx,nSy) |
51 |
_RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy) |
52 |
_RL viscAh3d_23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1,nSx,nSy) |
53 |
#endif /* ALLOW_SMAG_3D */ |
54 |
|
55 |
#ifdef ALLOW_3D_VISCAH |
56 |
C viscAhDfld, viscAhZfld :: full 3D specification of Laplacian Viscosity |
57 |
C coeff. for mixing of momentum horizontally ( units of m^2/s ) |
58 |
COMMON /MOM_VISC_3D_VISCAH/ |
59 |
& viscAhDfld, viscAhZfld |
60 |
_RL viscAhDfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
61 |
_RL viscAhZfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
62 |
#endif |
63 |
|
64 |
#ifdef ALLOW_3D_VISCA4 |
65 |
C viscA4Dfld, viscA4Zfld :: full 3D specification of Bi-harmonic Viscosity |
66 |
C coeff. for mixing of momentum horizontally ( units of m^4/s ) |
67 |
COMMON /MOM_VISC_3D_VISCA4/ |
68 |
& viscA4Dfld, viscA4Zfld |
69 |
_RL viscA4Dfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
70 |
_RL viscA4Zfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
71 |
#endif |
72 |
|
73 |
#ifdef ALLOW_NONHYDROSTATIC |
74 |
C viscAh_W :: Horizontal harmonic viscosity for vertical momentum |
75 |
C viscA4_W :: Horizontal biharmonic viscosity for vertical momentum |
76 |
COMMON /MOM_VISC_NH/ |
77 |
& viscAh_W, viscA4_W |
78 |
_RL viscAh_W(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
79 |
_RL viscA4_W(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
80 |
#endif /* ALLOW_NONHYDROSTATIC */ |
81 |
|
82 |
#endif /* ALLOW_MOM_COMMON */ |