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

Annotation 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 - (hide annotations) (download)
Wed Feb 17 00:21:35 2010 UTC (14 years, 3 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 gforget 1.8 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_init_fixed.F,v 1.7 2009/09/17 21:16:21 jmc Exp $
2 ce107 1.4 C $Name: $
3 jmc 1.1
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 jmc 1.2 C Initialize fixed quantities
15 jmc 1.1 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 jmc 1.2 #include "GRID.h"
23     #include "SURFACE.h"
24 dfer 1.5 #include "MOM_VISC.h"
25 gforget 1.8 #if defined (ALLOW_3D_VISCAH) || defined (ALLOW_3D_VISCA4)
26     #include "DYNVARS.h"
27     #endif
28 jmc 1.1
29     C !INPUT PARAMETERS:
30     C myThid :: thread number
31     INTEGER myThid
32     CEOP
33    
34 jmc 1.2 C !LOCAL VARIABLES:
35 jmc 1.6 C i,j,k,bi,bj :: loop counter
36 dfer 1.5 INTEGER i,j,bi,bj
37 jmc 1.2 #ifdef NONLIN_FRSURF
38 jmc 1.6 INTEGER k
39 jmc 1.2 #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 heimbach 1.3 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 jmc 1.2 ENDDO
52     ENDDO
53     ENDDO
54     ENDDO
55     ENDDO
56     #endif /* NONLIN_FRSURF */
57    
58 dfer 1.5 IF (deltaTmom.NE.0.) THEN
59 jmc 1.7 recip_dt = 1. _d 0/deltaTmom
60 dfer 1.5 ELSE
61 jmc 1.7 recip_dt = 0. _d 0
62 dfer 1.5 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 jmc 1.7 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 dfer 1.5 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 jmc 1.7 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 dfer 1.5 ENDDO
116     ENDDO
117     ENDDO
118     ENDDO
119 jmc 1.2
120 gforget 1.8 #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 jmc 1.1 #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