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

Annotation 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 - (hide annotations) (download)
Tue Nov 5 13:53:27 2013 UTC (11 years, 3 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 jmc 1.2 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 jmc 1.1 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