/[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.9 - (show annotations) (download)
Wed Feb 17 23:39:37 2010 UTC (14 years, 2 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint62c, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62u, checkpoint62t
Changes since 1.8: +25 -2 lines
ALLOW_3D_VISCAH/ALLOW_3D_VISCA4 bug fix

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_init_fixed.F,v 1.8 2010/02/17 00:21:35 gforget 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 #if defined (ALLOW_3D_VISCAH) || defined (ALLOW_3D_VISCA4)
26 #include "DYNVARS.h"
27 #endif
28
29 C !INPUT PARAMETERS:
30 C myThid :: thread number
31 INTEGER myThid
32 CEOP
33
34 C !LOCAL VARIABLES:
35 C i,j,k,bi,bj :: loop counter
36 INTEGER i,j,bi,bj
37 #if (defined (NONLIN_FRSURF) || \
38 defined (ALLOW_3D_VISCAH) || \
39 defined (ALLOW_3D_VISCA4))
40 INTEGER k
41 #endif
42
43 #ifdef NONLIN_FRSURF
44 C- used for side-drag:
45 DO bj=myByLo(myThid), myByHi(myThid)
46 DO bi=myBxLo(myThid), myBxHi(myThid)
47 DO k=1,Nr
48 DO j=1-Oly,sNy+Oly
49 DO i=1-Olx,sNx+Olx
50 h0FacC(i,j,k,bi,bj) = _hFacC(i,j,k,bi,bj)
51 h0FacW(i,j,k,bi,bj) = _hFacW(i,j,k,bi,bj)
52 h0FacS(i,j,k,bi,bj) = _hFacS(i,j,k,bi,bj)
53 ENDDO
54 ENDDO
55 ENDDO
56 ENDDO
57 ENDDO
58 #endif /* NONLIN_FRSURF */
59
60 #if defined (ALLOW_3D_VISCAH) || defined (ALLOW_3D_VISCA4)
61 DO bj=myByLo(myThid), myByHi(myThid)
62 DO bi=myBxLo(myThid), myBxHi(myThid)
63 DO k=1,Nr
64 DO j=1-Oly,sNy+Oly
65 DO i=1-Olx,sNx+Olx
66 #ifdef ALLOW_3D_VISCAH
67 viscAhDfld(i,j,k,bi,bj) = 0. _d 0
68 viscAhZfld(i,j,k,bi,bj) = 0. _d 0
69 #endif
70 #ifdef ALLOW_3D_VISCA4
71 viscA4Dfld(i,j,k,bi,bj) = 0. _d 0
72 viscA4Zfld(i,j,k,bi,bj) = 0. _d 0
73 #endif
74 ENDDO
75 ENDDO
76 ENDDO
77 ENDDO
78 ENDDO
79 #endif /* ALLOW_3D_VISCAH */
80
81 IF (deltaTmom.NE.0.) THEN
82 recip_dt = 1. _d 0/deltaTmom
83 ELSE
84 recip_dt = 0. _d 0
85 ENDIF
86
87 DO bj=myByLo(myThid), myByHi(myThid)
88 DO bi=myBxLo(myThid), myBxHi(myThid)
89 DO j=1-Oly,sNy+Oly
90 DO i=1-Olx,sNx+Olx
91 L2_D(i,j,bi,bj) = rA(i,j,bi,bj)
92 ENDDO
93 ENDDO
94 IF ( .NOT.useAreaViscLength ) THEN
95 DO j=1-Oly,sNy+Oly
96 DO i=1-Olx,sNx+Olx
97 IF ( recip_dxF(i,j,bi,bj).NE.0. .OR.
98 & recip_dyF(i,j,bi,bj).NE.0. ) THEN
99 L2_D(i,j,bi,bj) = 2. _d 0
100 & /((recip_dxF(i,j,bi,bj)**2+recip_dyF(i,j,bi,bj)**2))
101 ENDIF
102 ENDDO
103 ENDDO
104 ENDIF
105 DO j=1-Oly,sNy+Oly
106 DO i=1-Olx,sNx+Olx
107 L3_D(i,j,bi,bj) = L2_D(i,j,bi,bj)**1.5
108 L4rdt_D(i,j,bi,bj) = 0.03125 _d 0*recip_dt
109 & *L2_D(i,j,bi,bj)**2
110 ENDDO
111 ENDDO
112 ENDDO
113 ENDDO
114
115 DO bj=myByLo(myThid), myByHi(myThid)
116 DO bi=myBxLo(myThid), myBxHi(myThid)
117 DO j=1-Oly,sNy+Oly
118 DO i=1-Olx,sNx+Olx
119 L2_Z(i,j,bi,bj) = rAz(i,j,bi,bj)
120 ENDDO
121 ENDDO
122 IF ( .NOT.useAreaViscLength ) THEN
123 DO j=1-Oly,sNy+Oly
124 DO i=1-Olx,sNx+Olx
125 IF ( recip_dxV(i,j,bi,bj).NE.0. .OR.
126 & recip_dyU(i,j,bi,bj).NE.0. ) THEN
127 L2_Z(i,j,bi,bj) = 2. _d 0
128 & /((recip_dxV(i,j,bi,bj)**2+recip_dyU(i,j,bi,bj)**2))
129 ENDIF
130 ENDDO
131 ENDDO
132 ENDIF
133 DO j=1-Oly,sNy+Oly
134 DO i=1-Olx,sNx+Olx
135 L3_Z(i,j,bi,bj) = L2_Z(i,j,bi,bj)**1.5
136 L4rdt_Z(i,j,bi,bj) = 0.03125 _d 0*recip_dt
137 & *L2_Z(i,j,bi,bj)**2
138 ENDDO
139 ENDDO
140 ENDDO
141 ENDDO
142
143 #ifdef ALLOW_3D_VISCAH
144 IF ( viscAhDfile .NE. ' ' ) THEN
145 CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)
146 CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )
147 ENDIF
148 IF ( viscAhZfile .NE. ' ' ) THEN
149 CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)
150 CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )
151 ENDIF
152 #endif
153 #ifdef ALLOW_3D_VISCA4
154 IF ( viscA4Dfile .NE. ' ' ) THEN
155 CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)
156 CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )
157 ENDIF
158 IF ( viscA4Zfile .NE. ' ' ) THEN
159 CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)
160 CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )
161 ENDIF
162 #endif
163
164 #ifdef ALLOW_DIAGNOSTICS
165 IF ( useDiagnostics ) THEN
166 CALL MOM_DIAGNOSTICS_INIT( myThid )
167 ENDIF
168 #endif /* ALLOW_DIAGNOSTICS */
169
170 RETURN
171 END

  ViewVC Help
Powered by ViewVC 1.1.22