/[MITgcm]/MITgcm/verification/tutorial_deep_convection/code/mom_init_fixed.F
ViewVC logotype

Contents of /MITgcm/verification/tutorial_deep_convection/code/mom_init_fixed.F

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


Revision 1.2 - (show annotations) (download)
Tue Nov 5 13:53:27 2013 UTC (11 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
FILE REMOVED
- move to pkg/mom_common and model/src (previously in tutorial_deep_convection
  code) 2nd version of isotropic 3-D Smagorinsky code interface: strain and
  viscosity are locally declared in dynmics.F and pass as argument to CALC_GW;
  ensure that all field value that are used are set.

1 C $Header: /u/gcmpack/MITgcm/verification/tutorial_deep_convection/code/mom_init_fixed.F,v 1.1 2013/09/30 18:19:41 jmc Exp $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: MOM_INIT_FIXED
9
10 C !INTERFACE:
11 SUBROUTINE MOM_INIT_FIXED( myThid )
12
13 C !DESCRIPTION:
14 C Initialize fixed quantities
15 C for momentum (common to fluxform & vecinv) packages
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "SURFACE.h"
24 #include "MOM_VISC.h"
25
26 C !INPUT PARAMETERS:
27 C myThid :: my thread Id number
28 INTEGER myThid
29 CEOP
30
31 C !LOCAL VARIABLES:
32 C i,j,k,bi,bj :: loop counter
33 INTEGER i,j,k,bi,bj
34 _RL recip_dt
35 _RL twoThird
36
37 k = 1
38 twoThird = 2. _d 0 / 3. _d 0
39 recip_dt = 1. _d 0
40 IF ( deltaTmom.NE.0. ) recip_dt = 1. _d 0/deltaTmom
41
42 DO bj=myByLo(myThid), myByHi(myThid)
43 DO bi=myBxLo(myThid), myBxHi(myThid)
44
45 #ifdef ALLOW_3D_VISCAH
46 DO k=1,Nr
47 DO j=1-OLy,sNy+OLy
48 DO i=1-OLx,sNx+OLx
49 viscAhDfld(i,j,k,bi,bj) = 0. _d 0
50 viscAhZfld(i,j,k,bi,bj) = 0. _d 0
51 ENDDO
52 ENDDO
53 ENDDO
54 #endif
55 #ifdef ALLOW_3D_VISCA4
56 DO k=1,Nr
57 DO j=1-OLy,sNy+OLy
58 DO i=1-OLx,sNx+OLx
59 viscA4Dfld(i,j,k,bi,bj) = 0. _d 0
60 viscA4Zfld(i,j,k,bi,bj) = 0. _d 0
61 ENDDO
62 ENDDO
63 ENDDO
64 #endif
65 #ifdef ALLOW_NONHYDROSTATIC
66 C-- Set the horizontal viscosities to default value.
67 DO k=1,Nr
68 DO j=1-OLy,sNy+OLy
69 DO i=1-OLx,sNx+OLx
70 viscAh_W(i,j,k,bi,bj) = viscAhW
71 viscA4_W(i,j,k,bi,bj) = viscA4W
72 ENDDO
73 ENDDO
74 ENDDO
75 #endif /* ALLOW_NONHYDROSTATIC */
76
77 C-- Calculate length-scale factor (used in S/R MOM_CALC_VISC)
78 DO j=1-OLy,sNy+OLy
79 DO i=1-OLx,sNx+OLx
80 L2_D(i,j,bi,bj) = rA(i,j,bi,bj)
81 ENDDO
82 ENDDO
83 IF ( .NOT.useAreaViscLength ) THEN
84 DO j=1-OLy,sNy+OLy
85 DO i=1-OLx,sNx+OLx
86 IF ( recip_dxF(i,j,bi,bj).NE.0. .OR.
87 & recip_dyF(i,j,bi,bj).NE.0. ) THEN
88 L2_D(i,j,bi,bj) = 2. _d 0
89 & /((recip_dxF(i,j,bi,bj)**2+recip_dyF(i,j,bi,bj)**2))
90 ENDIF
91 ENDDO
92 ENDDO
93 ENDIF
94 DO j=1-OLy,sNy+OLy
95 DO i=1-OLx,sNx+OLx
96 L3_D(i,j,bi,bj) = L2_D(i,j,bi,bj)**1.5
97 L4rdt_D(i,j,bi,bj) = 0.03125 _d 0*recip_dt
98 & *L2_D(i,j,bi,bj)**2
99 ENDDO
100 ENDDO
101
102 DO j=1-OLy,sNy+OLy
103 DO i=1-OLx,sNx+OLx
104 L2_Z(i,j,bi,bj) = rAz(i,j,bi,bj)
105 ENDDO
106 ENDDO
107 IF ( .NOT.useAreaViscLength ) THEN
108 DO j=1-OLy,sNy+OLy
109 DO i=1-OLx,sNx+OLx
110 IF ( recip_dxV(i,j,bi,bj).NE.0. .OR.
111 & recip_dyU(i,j,bi,bj).NE.0. ) THEN
112 L2_Z(i,j,bi,bj) = 2. _d 0
113 & /((recip_dxV(i,j,bi,bj)**2+recip_dyU(i,j,bi,bj)**2))
114 ENDIF
115 ENDDO
116 ENDDO
117 ENDIF
118 DO j=1-OLy,sNy+OLy
119 DO i=1-OLx,sNx+OLx
120 L3_Z(i,j,bi,bj) = L2_Z(i,j,bi,bj)**1.5
121 L4rdt_Z(i,j,bi,bj) = 0.03125 _d 0*recip_dt
122 & *L2_Z(i,j,bi,bj)**2
123 ENDDO
124 ENDDO
125
126 #ifdef ALLOW_SMAG_3D
127 DO j=1-OLy,sNy+OLy
128 DO i=1-OLx,sNx+OLx
129 smag3D_hLsC(i,j,bi,bj) = rA (i,j,bi,bj)**twoThird
130 smag3D_hLsW(i,j,bi,bj) = rAw(i,j,bi,bj)**twoThird
131 smag3D_hLsS(i,j,bi,bj) = rAs(i,j,bi,bj)**twoThird
132 smag3D_hLsZ(i,j,bi,bj) = rAz(i,j,bi,bj)**twoThird
133 ENDDO
134 ENDDO
135 DO k=1,Nr
136 DO j=1-OLy,sNy+OLy
137 DO i=1-OLx,sNx+OLx
138 str11(i,j,k,bi,bj) = 0. _d 0
139 str22(i,j,k,bi,bj) = 0. _d 0
140 str33(i,j,k,bi,bj) = 0. _d 0
141 str12(i,j,k,bi,bj) = 0. _d 0
142 viscAh3d_00(i,j,k,bi,bj) = 0. _d 0
143 viscAh3d_12(i,j,k,bi,bj) = 0. _d 0
144 ENDDO
145 ENDDO
146 ENDDO
147 DO k=1,Nr+1
148 DO j=1-OLy,sNy+OLy
149 DO i=1-OLx,sNx+OLx
150 str13(i,j,k,bi,bj) = 0. _d 0
151 str23(i,j,k,bi,bj) = 0. _d 0
152 viscAh3d_13(i,j,k,bi,bj) = 0. _d 0
153 viscAh3d_23(i,j,k,bi,bj) = 0. _d 0
154 ENDDO
155 ENDDO
156 ENDDO
157 #endif /* ALLOW_SMAG_3D */
158
159 C- end bi,bj loops
160 ENDDO
161 ENDDO
162
163 #ifdef ALLOW_3D_VISCAH
164 IF ( viscAhDfile .NE. ' ' ) THEN
165 CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)
166 CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )
167 ENDIF
168 IF ( viscAhZfile .NE. ' ' ) THEN
169 CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)
170 CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )
171 ENDIF
172 #endif /* ALLOW_3D_VISCAH */
173 #ifdef ALLOW_3D_VISCA4
174 IF ( viscA4Dfile .NE. ' ' ) THEN
175 CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)
176 CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )
177 ENDIF
178 IF ( viscA4Zfile .NE. ' ' ) THEN
179 CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)
180 CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )
181 ENDIF
182 #endif /* ALLOW_3D_VISCA4 */
183
184 #ifdef ALLOW_DIAGNOSTICS
185 IF ( useDiagnostics ) THEN
186 CALL MOM_DIAGNOSTICS_INIT( myThid )
187 ENDIF
188 #endif /* ALLOW_DIAGNOSTICS */
189
190 RETURN
191 END

  ViewVC Help
Powered by ViewVC 1.1.22