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

Contents 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 - (show 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 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