/[MITgcm]/MITgcm/pkg/kl10/kl10_calc_diff.F
ViewVC logotype

Contents of /MITgcm/pkg/kl10/kl10_calc_diff.F

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


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

  ViewVC Help
Powered by ViewVC 1.1.22