/[MITgcm]/MITgcm/pkg/mom_common/mom_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_common/mom_init_fixed.F

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


Revision 1.12 - (show annotations) (download)
Tue Nov 5 13:31:50 2013 UTC (10 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint65, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
Changes since 1.11: +14 -1 lines
- move here (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 #endif /* ALLOW_SMAG_3D */
136
137 C- end bi,bj loops
138 ENDDO
139 ENDDO
140
141 #ifdef ALLOW_3D_VISCAH
142 IF ( viscAhDfile .NE. ' ' ) THEN
143 CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)
144 CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )
145 ENDIF
146 IF ( viscAhZfile .NE. ' ' ) THEN
147 CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)
148 CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )
149 ENDIF
150 #endif /* ALLOW_3D_VISCAH */
151 #ifdef ALLOW_3D_VISCA4
152 IF ( viscA4Dfile .NE. ' ' ) THEN
153 CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)
154 CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )
155 ENDIF
156 IF ( viscA4Zfile .NE. ' ' ) THEN
157 CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)
158 CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )
159 ENDIF
160 #endif /* ALLOW_3D_VISCA4 */
161
162 #ifdef ALLOW_DIAGNOSTICS
163 IF ( useDiagnostics ) THEN
164 CALL MOM_DIAGNOSTICS_INIT( myThid )
165 ENDIF
166 #endif /* ALLOW_DIAGNOSTICS */
167
168 RETURN
169 END

  ViewVC Help
Powered by ViewVC 1.1.22