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

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

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

revision 1.8 by gforget, Wed Feb 17 00:21:35 2010 UTC revision 1.11 by jmc, Sun Jul 28 21:02:33 2013 UTC
# Line 22  C     !USES: Line 22  C     !USES:
22  #include "GRID.h"  #include "GRID.h"
23  #include "SURFACE.h"  #include "SURFACE.h"
24  #include "MOM_VISC.h"  #include "MOM_VISC.h"
 #if defined (ALLOW_3D_VISCAH) || defined (ALLOW_3D_VISCA4)  
 #include "DYNVARS.h"  
 #endif  
25    
26  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
27  C     myThid               :: thread number  C     myThid               :: my thread Id number
28        INTEGER myThid        INTEGER myThid
29  CEOP  CEOP
30    
31  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
32  C     i,j,k,bi,bj  :: loop counter  C     i,j,k,bi,bj  :: loop counter
33        INTEGER i,j,bi,bj        INTEGER i,j,k,bi,bj
34  #ifdef NONLIN_FRSURF        _RL recip_dt
35        INTEGER k  
36  #endif        k = 1
37          recip_dt = 1. _d 0
38          IF ( deltaTmom.NE.0. ) recip_dt = 1. _d 0/deltaTmom
39    
 #ifdef NONLIN_FRSURF  
 C-    used for side-drag:  
40        DO bj=myByLo(myThid), myByHi(myThid)        DO bj=myByLo(myThid), myByHi(myThid)
41         DO bi=myBxLo(myThid), myBxHi(myThid)         DO bi=myBxLo(myThid), myBxHi(myThid)
42    
43    #ifdef ALLOW_3D_VISCAH
44           DO k=1,Nr           DO k=1,Nr
45            DO j=1-Oly,sNy+Oly            DO j=1-OLy,sNy+OLy
46             DO i=1-Olx,sNx+Olx             DO i=1-OLx,sNx+OLx
47              h0FacC(i,j,k,bi,bj) = _hFacC(i,j,k,bi,bj)              viscAhDfld(i,j,k,bi,bj) = 0. _d 0
48              h0FacW(i,j,k,bi,bj) = _hFacW(i,j,k,bi,bj)              viscAhZfld(i,j,k,bi,bj) = 0. _d 0
             h0FacS(i,j,k,bi,bj) = _hFacS(i,j,k,bi,bj)  
49             ENDDO             ENDDO
50            ENDDO            ENDDO
51           ENDDO           ENDDO
52         ENDDO  #endif
53        ENDDO  #ifdef ALLOW_3D_VISCA4
54  #endif /* NONLIN_FRSURF */           DO k=1,Nr
55              DO j=1-OLy,sNy+OLy
56               DO i=1-OLx,sNx+OLx
57                viscA4Dfld(i,j,k,bi,bj) = 0. _d 0
58                viscA4Zfld(i,j,k,bi,bj) = 0. _d 0
59               ENDDO
60              ENDDO
61             ENDDO
62    #endif
63    #ifdef ALLOW_NONHYDROSTATIC
64    C--   Set the horizontal viscosities to default value.
65             DO k=1,Nr
66              DO j=1-OLy,sNy+OLy
67               DO i=1-OLx,sNx+OLx
68                viscAh_W(i,j,k,bi,bj) = viscAhW
69                viscA4_W(i,j,k,bi,bj) = viscA4W
70               ENDDO
71              ENDDO
72             ENDDO
73    #endif /* ALLOW_NONHYDROSTATIC */
74    
75         IF (deltaTmom.NE.0.) THEN  C--   Calculate length-scale factor (used in S/R MOM_CALC_VISC)
76          recip_dt = 1. _d 0/deltaTmom           DO j=1-OLy,sNy+OLy
77         ELSE            DO i=1-OLx,sNx+OLx
         recip_dt = 0. _d 0  
        ENDIF  
   
        DO bj=myByLo(myThid), myByHi(myThid)  
         DO bi=myBxLo(myThid), myBxHi(myThid)  
          DO j=1-Oly,sNy+Oly  
           DO i=1-Olx,sNx+Olx  
78              L2_D(i,j,bi,bj) = rA(i,j,bi,bj)              L2_D(i,j,bi,bj) = rA(i,j,bi,bj)
79            ENDDO            ENDDO
80           ENDDO           ENDDO
81           IF ( .NOT.useAreaViscLength ) THEN           IF ( .NOT.useAreaViscLength ) THEN
82            DO j=1-Oly,sNy+Oly            DO j=1-OLy,sNy+OLy
83             DO i=1-Olx,sNx+Olx             DO i=1-OLx,sNx+OLx
84              IF ( recip_dxF(i,j,bi,bj).NE.0. .OR.              IF ( recip_dxF(i,j,bi,bj).NE.0. .OR.
85       &           recip_dyF(i,j,bi,bj).NE.0. ) THEN       &           recip_dyF(i,j,bi,bj).NE.0. ) THEN
86                L2_D(i,j,bi,bj) = 2. _d 0                L2_D(i,j,bi,bj) = 2. _d 0
# Line 79  C-    used for side-drag: Line 89  C-    used for side-drag:
89             ENDDO             ENDDO
90            ENDDO            ENDDO
91           ENDIF           ENDIF
92           DO j=1-Oly,sNy+Oly           DO j=1-OLy,sNy+OLy
93            DO i=1-Olx,sNx+Olx            DO i=1-OLx,sNx+OLx
94              L3_D(i,j,bi,bj) = L2_D(i,j,bi,bj)**1.5              L3_D(i,j,bi,bj) = L2_D(i,j,bi,bj)**1.5
95              L4rdt_D(i,j,bi,bj) = 0.03125 _d 0*recip_dt              L4rdt_D(i,j,bi,bj) = 0.03125 _d 0*recip_dt
96       &                       *L2_D(i,j,bi,bj)**2       &                       *L2_D(i,j,bi,bj)**2
97            ENDDO            ENDDO
98           ENDDO           ENDDO
         ENDDO  
        ENDDO  
99    
100         DO bj=myByLo(myThid), myByHi(myThid)           DO j=1-OLy,sNy+OLy
101          DO bi=myBxLo(myThid), myBxHi(myThid)            DO i=1-OLx,sNx+OLx
          DO j=1-Oly,sNy+Oly  
           DO i=1-Olx,sNx+Olx  
102              L2_Z(i,j,bi,bj) = rAz(i,j,bi,bj)              L2_Z(i,j,bi,bj) = rAz(i,j,bi,bj)
103            ENDDO            ENDDO
104           ENDDO           ENDDO
105           IF ( .NOT.useAreaViscLength ) THEN           IF ( .NOT.useAreaViscLength ) THEN
106            DO j=1-Oly,sNy+Oly            DO j=1-OLy,sNy+OLy
107             DO i=1-Olx,sNx+Olx             DO i=1-OLx,sNx+OLx
108              IF ( recip_dxV(i,j,bi,bj).NE.0. .OR.              IF ( recip_dxV(i,j,bi,bj).NE.0. .OR.
109       &           recip_dyU(i,j,bi,bj).NE.0. ) THEN       &           recip_dyU(i,j,bi,bj).NE.0. ) THEN
110                L2_Z(i,j,bi,bj) = 2. _d 0                L2_Z(i,j,bi,bj) = 2. _d 0
# Line 107  C-    used for side-drag: Line 113  C-    used for side-drag:
113             ENDDO             ENDDO
114            ENDDO            ENDDO
115           ENDIF           ENDIF
116           DO j=1-Oly,sNy+Oly           DO j=1-OLy,sNy+OLy
117            DO i=1-Olx,sNx+Olx            DO i=1-OLx,sNx+OLx
118              L3_Z(i,j,bi,bj) = L2_Z(i,j,bi,bj)**1.5              L3_Z(i,j,bi,bj) = L2_Z(i,j,bi,bj)**1.5
119              L4rdt_Z(i,j,bi,bj) = 0.03125 _d 0*recip_dt              L4rdt_Z(i,j,bi,bj) = 0.03125 _d 0*recip_dt
120       &                       *L2_Z(i,j,bi,bj)**2       &                       *L2_Z(i,j,bi,bj)**2
121            ENDDO            ENDDO
122           ENDDO           ENDDO
123          ENDDO  
124    C-     end bi,bj loops
125         ENDDO         ENDDO
126          ENDDO
127    
128  #ifdef ALLOW_3D_VISCAH  #ifdef ALLOW_3D_VISCAH
129         IF ( viscAhDfile .NE. ' ' ) THEN        IF ( viscAhDfile .NE. ' ' ) THEN
130            CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)           CALL READ_FLD_XYZ_RL(viscAhDfile,' ',viscAhDfld,0,myThid)
131            CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )           CALL EXCH_3D_RL( viscAhDfld, Nr, myThid )
132         ENDIF        ENDIF
133         IF ( viscAhZfile .NE. ' ' ) THEN        IF ( viscAhZfile .NE. ' ' ) THEN
134            CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)           CALL READ_FLD_XYZ_RL(viscAhZfile,' ',viscAhZfld,0,myThid)
135            CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )           CALL EXCH_Z_3D_RL( viscAhZfld, Nr, myThid )
136         ENDIF        ENDIF
137  #endif  #endif /* ALLOW_3D_VISCAH */
138  #ifdef ALLOW_3D_VISCA4  #ifdef ALLOW_3D_VISCA4
139         IF ( viscA4Dfile .NE. ' ' ) THEN        IF ( viscA4Dfile .NE. ' ' ) THEN
140            CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)           CALL READ_FLD_XYZ_RL(viscA4Dfile,' ',viscA4Dfld,0,myThid)
141            CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )           CALL EXCH_3D_RL( viscA4Dfld, Nr, myThid )
142         ENDIF        ENDIF
143         IF ( viscA4Zfile .NE. ' ' ) THEN        IF ( viscA4Zfile .NE. ' ' ) THEN
144            CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)           CALL READ_FLD_XYZ_RL(viscA4Zfile,' ',viscA4Zfld,0,myThid)
145            CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )           CALL EXCH_Z_3D_RL( viscA4Zfld, Nr, myThid )
146         ENDIF        ENDIF
147  #endif  #endif /* ALLOW_3D_VISCA4 */
148    
149  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
150        IF ( useDiagnostics ) THEN        IF ( useDiagnostics ) THEN

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22