/[MITgcm]/MITgcm/pkg/my82/my82_calc_diff.F
ViewVC logotype

Contents of /MITgcm/pkg/my82/my82_calc_diff.F

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


Revision 1.5 - (show annotations) (download)
Mon Feb 23 21:20:15 2015 UTC (9 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, HEAD
Changes since 1.4: +4 -4 lines
- change background vertical diffusivity in vertical mixing pkgs ggl90,
  kl10, my82 and pp81 from temperature diffusivity to salinity diffusivity.
  This makes ptracers default diffusivity (that uses salt diffKr) more
  consistent with vertical mixing schemes.

1 C $Header: /u/gcmpack/MITgcm/pkg/my82/my82_calc_diff.F,v 1.4 2009/01/20 00:26:04 jmc Exp $
2 C $Name: $
3
4 #include "MY82_OPTIONS.h"
5
6 SUBROUTINE MY82_CALC_DIFF(
7 I bi,bj,iMin,iMax,jMin,jMax,kArg,kSize,
8 U KappaRx,
9 I myThid)
10
11 C /==========================================================\
12 C | SUBROUTINE MY82_CALC_DIFF |
13 C | o Add contrubution to net diffusivity from MY82 mixing |
14 C \==========================================================/
15 IMPLICIT NONE
16
17 C == GLobal variables ==
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "GRID.h"
22 #ifdef ALLOW_3D_DIFFKR
23 #include "DYNVARS.h"
24 #endif
25 #include "MY82.h"
26
27 C == Routine arguments ==
28 C bi, bj, :: tile indices
29 C iMin,iMax :: Range of points for which calculation is done
30 C jMin,jMax :: Range of points for which calculation is done
31 C kArg :: = 0 -> do the k-loop here and treat all levels
32 C > 0 -> k-loop is done outside and treat only level k=kArg
33 C kSize :: 3rd Dimension of the vertical diffusivity array KappaRx
34 C KappaRx :: vertical diffusivity array
35 C myThid :: Instance number for this innvocation of MY82_CALC_DIFF
36
37 INTEGER bi,bj,iMin,iMax,jMin,jMax,kArg,kSize
38 _RL KappaRx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize)
39 INTEGER myThid
40
41 #ifdef ALLOW_MY82
42
43 C == Local variables ==
44 C i,j,k :: Loop counters
45 INTEGER i,j,k
46
47 C-- Add Vertical diffusivity contribution from MY82
48 IF ( kArg .EQ. 0 ) THEN
49 C- do all levels :
50 DO k=1,MIN(Nr,kSize)
51 DO j=jMin,jMax
52 DO i=iMin,iMax
53 KappaRx(i,j,k) = KappaRx(i,j,k)
54 & +( MYdiffKr(i,j,k,bi,bj)
55 #ifdef ALLOW_3D_DIFFKR
56 & - diffKr(i,j,k,bi,bj) )
57 #else
58 & - diffKrNrS(k) )
59 #endif
60 ENDDO
61 ENDDO
62 ENDDO
63 ELSE
64 C- do level k=kArg only :
65 k = MIN(kArg,kSize)
66 DO j=jMin,jMax
67 DO i=iMin,iMax
68 KappaRx(i,j,k) = KappaRx(i,j,k)
69 & +( MYdiffKr(i,j,kArg,bi,bj)
70 #ifdef ALLOW_3D_DIFFKR
71 & - diffKr(i,j,kArg,bi,bj) )
72 #else
73 & - diffKrNrS(kArg) )
74 #endif
75 ENDDO
76 ENDDO
77 ENDIF
78
79 #endif /* ALLOW_MY82 */
80
81 RETURN
82 END

  ViewVC Help
Powered by ViewVC 1.1.22