/[MITgcm]/MITgcm_contrib/SOSE/code_ad/calc_viscosity.F
ViewVC logotype

Annotation of /MITgcm_contrib/SOSE/code_ad/calc_viscosity.F

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


Revision 1.1 - (hide annotations) (download)
Fri Apr 23 19:55:11 2010 UTC (15 years, 3 months ago) by mmazloff
Branch: MAIN
CVS Tags: HEAD
original files

1 mmazloff 1.1 C $Header: /u/gcmpack/MITgcm/model/src/calc_viscosity.F,v 1.7 2004/09/16 09:35:11 mlosch Exp $
2     C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6    
7     CBOP
8     C !ROUTINE: CALC_VISCOSITY
9     C !INTERFACE:
10     SUBROUTINE CALC_VISCOSITY(
11     I bi,bj,iMin,iMax,jMin,jMax,
12     O KappaRU,KappaRV,
13     I myThid)
14    
15     C !DESCRIPTION: \bv
16     C *==========================================================*
17     C | SUBROUTINE CALC_VISCOSITY
18     C | o Calculate net vertical viscosity
19     C *==========================================================*
20     C \ev
21    
22     C !USES:
23     IMPLICIT NONE
24     C == GLobal variables ==
25     #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28     #include "DYNVARS.h"
29     #include "GRID.h"
30    
31     C !INPUT/OUTPUT PARAMETERS:
32     C == Routine arguments ==
33     C bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation
34     C myThid - Instance number for this innvocation of CALC_COMMON_FACTORS
35     C KappaRU :: Total vertical viscosity for zonal flow.
36     C KappaRV :: Total vertical viscosity for meridional flow.
37     INTEGER bi,bj,iMin,iMax,jMin,jMax
38     _RL KappaRU(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
39     _RL KappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
40     INTEGER myThid
41    
42     C !LOCAL VARIABLES:
43     C == Local variables ==
44     C I, J, K - Loop counters
45     INTEGER i,j,k
46     CMM(
47     INTEGER mm,klevbm,kplace
48     _RL MMKappaRUscale
49     CMM)
50     CEOP
51     DO k = 1,NR
52     DO j = 1-Oly, sNy+Oly
53     DO i = 1-Olx, sNx+Olx
54     CMM( what k is the last wet point
55     klevbm = 0
56     do mm = 1,Nr
57     if (rf(mm).GE.r_low(i,j,bi,bj)) then
58     klevbm = mm
59     endif
60     enddo
61     kplace=klevbm-k
62     CMM)
63     CMM( ARE WE NEAR THE BOTTOM
64     CMM kplace = 0 is first wet cell, 1 is second, etc
65     Cmm kplace GT 3 excludes bottom 4 cells
66     IF (kplace.GT.2) THEN
67     MMKappaRUscale = 1.D0
68     ELSE
69     MMKappaRUscale = 10.D0
70     ENDIF
71     CMM)
72    
73     KappaRU(i,j,k) = viscArNr(k)
74     CMM(
75     & *MMKappaRUscale
76     CMM)
77     KappaRV(i,j,k) = viscArNr(k)
78     CMM(
79     & *MMKappaRUscale
80     CMM)
81    
82     CMMold KappaRU(i,j,k) = viscAr
83     CMM(
84     CMMold & *MMKappaRUscale
85     CMM)
86     CMMols KappaRV(i,j,k) = viscAr
87     CMM(
88     CMMols & *MMKappaRUscale
89     CMM)
90     ENDDO
91     ENDDO
92    
93     #ifdef ALLOW_KPP
94     IF (useKPP) CALL KPP_CALC_VISC(
95     I bi,bj, iMin,iMax,jMin,jMax,K,
96     O KappaRU,KappaRV,
97     I myThid)
98     #endif
99    
100     #ifdef ALLOW_PP81
101     IF (usePP81) CALL PP81_CALC_VISC(
102     I bi,bj, iMin,iMax,jMin,jMax,K,
103     O KappaRU,KappaRV,
104     I myThid)
105     #endif
106    
107     #ifdef ALLOW_MY82
108     IF (useMY82) CALL MY82_CALC_VISC(
109     I bi,bj, iMin,iMax,jMin,jMax,K,
110     O KappaRU,KappaRV,
111     I myThid)
112     #endif
113    
114     #ifdef ALLOW_GGL90
115     IF (useGGL90) CALL GGL90_CALC_VISC(
116     I bi,bj, iMin,iMax,jMin,jMax,K,
117     O KappaRU,KappaRV,
118     I myThid)
119     #endif
120    
121     C-- end of k loop
122     ENDDO
123     RETURN
124     END

  ViewVC Help
Powered by ViewVC 1.1.22