/[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.8 - (show annotations) (download)
Wed Feb 17 00:21:35 2010 UTC (14 years, 7 months ago) by gforget
Branch: MAIN
Changes since 1.7: +25 -1 lines
ALLOW_3D_VISCAH/ALLOW_3D_VISCA4 => 3D specification of Viscosity
   => addition to the viscosity field as computed by others schemes

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_init_fixed.F,v 1.7 2009/09/17 21:16:21 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 #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 #ifdef NONLIN_FRSURF
38 INTEGER k
39 #endif
40
41 #ifdef NONLIN_FRSURF
42 C- used for side-drag:
43 DO bj=myByLo(myThid), myByHi(myThid)
44 DO bi=myBxLo(myThid), myBxHi(myThid)
45 DO k=1,Nr
46 DO j=1-Oly,sNy+Oly
47 DO i=1-Olx,sNx+Olx
48 h0FacC(i,j,k,bi,bj) = _hFacC(i,j,k,bi,bj)
49 h0FacW(i,j,k,bi,bj) = _hFacW(i,j,k,bi,bj)
50 h0FacS(i,j,k,bi,bj) = _hFacS(i,j,k,bi,bj)
51 ENDDO
52 ENDDO
53 ENDDO
54 ENDDO
55 ENDDO
56 #endif /* NONLIN_FRSURF */
57
58 IF (deltaTmom.NE.0.) THEN
59 recip_dt = 1. _d 0/deltaTmom
60 ELSE
61 recip_dt = 0. _d 0
62 ENDIF
63
64 DO bj=myByLo(myThid), myByHi(myThid)
65 DO bi=myBxLo(myThid), myBxHi(myThid)
66 DO j=1-Oly,sNy+Oly
67 DO i=1-Olx,sNx+Olx
68 L2_D(i,j,bi,bj) = rA(i,j,bi,bj)
69 ENDDO
70 ENDDO
71 IF ( .NOT.useAreaViscLength ) THEN
72 DO j=1-Oly,sNy+Oly
73 DO i=1-Olx,sNx+Olx
74 IF ( recip_dxF(i,j,bi,bj).NE.0. .OR.
75 & recip_dyF(i,j,bi,bj).NE.0. ) THEN
76 L2_D(i,j,bi,bj) = 2. _d 0
77 & /((recip_dxF(i,j,bi,bj)**2+recip_dyF(i,j,bi,bj)**2))
78 ENDIF
79 ENDDO
80 ENDDO
81 ENDIF
82 DO j=1-Oly,sNy+Oly
83 DO i=1-Olx,sNx+Olx
84 L3_D(i,j,bi,bj) = L2_D(i,j,bi,bj)**1.5
85 L4rdt_D(i,j,bi,bj) = 0.03125 _d 0*recip_dt
86 & *L2_D(i,j,bi,bj)**2
87 ENDDO
88 ENDDO
89 ENDDO
90 ENDDO
91
92 DO bj=myByLo(myThid), myByHi(myThid)
93 DO bi=myBxLo(myThid), myBxHi(myThid)
94 DO j=1-Oly,sNy+Oly
95 DO i=1-Olx,sNx+Olx
96 L2_Z(i,j,bi,bj) = rAz(i,j,bi,bj)
97 ENDDO
98 ENDDO
99 IF ( .NOT.useAreaViscLength ) THEN
100 DO j=1-Oly,sNy+Oly
101 DO i=1-Olx,sNx+Olx
102 IF ( recip_dxV(i,j,bi,bj).NE.0. .OR.
103 & recip_dyU(i,j,bi,bj).NE.0. ) THEN
104 L2_Z(i,j,bi,bj) = 2. _d 0
105 & /((recip_dxV(i,j,bi,bj)**2+recip_dyU(i,j,bi,bj)**2))
106 ENDIF
107 ENDDO
108 ENDDO
109 ENDIF
110 DO j=1-Oly,sNy+Oly
111 DO i=1-Olx,sNx+Olx
112 L3_Z(i,j,bi,bj) = L2_Z(i,j,bi,bj)**1.5
113 L4rdt_Z(i,j,bi,bj) = 0.03125 _d 0*recip_dt
114 & *L2_Z(i,j,bi,bj)**2
115 ENDDO
116 ENDDO
117 ENDDO
118 ENDDO
119
120 #ifdef ALLOW_3D_VISCAH
121 IF ( viscAhDfile .NE. ' ' ) THEN
122 CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)
123 CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )
124 ENDIF
125 IF ( viscAhZfile .NE. ' ' ) THEN
126 CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)
127 CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )
128 ENDIF
129 #endif
130 #ifdef ALLOW_3D_VISCA4
131 IF ( viscA4Dfile .NE. ' ' ) THEN
132 CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)
133 CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )
134 ENDIF
135 IF ( viscA4Zfile .NE. ' ' ) THEN
136 CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)
137 CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )
138 ENDIF
139 #endif
140
141 #ifdef ALLOW_DIAGNOSTICS
142 IF ( useDiagnostics ) THEN
143 CALL MOM_DIAGNOSTICS_INIT( myThid )
144 ENDIF
145 #endif /* ALLOW_DIAGNOSTICS */
146
147 RETURN
148 END

  ViewVC Help
Powered by ViewVC 1.1.22