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

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

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


Revision 1.5 - (hide 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.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 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/my82/my82_calc_diff.F,v 1.4 2009/01/20 00:26:04 jmc Exp $
2 mlosch 1.1 C $Name: $
3    
4     #include "MY82_OPTIONS.h"
5    
6 jmc 1.4 SUBROUTINE MY82_CALC_DIFF(
7 jmc 1.3 I bi,bj,iMin,iMax,jMin,jMax,kArg,kSize,
8     U KappaRx,
9 mlosch 1.1 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 jmc 1.4 #include "GRID.h"
22     #ifdef ALLOW_3D_DIFFKR
23 mlosch 1.1 #include "DYNVARS.h"
24 jmc 1.4 #endif
25 jmc 1.3 #include "MY82.h"
26 mlosch 1.1
27     C == Routine arguments ==
28 jmc 1.3 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 jmc 1.5 _RL KappaRx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize)
39 mlosch 1.1 INTEGER myThid
40    
41     #ifdef ALLOW_MY82
42    
43     C == Local variables ==
44 jmc 1.3 C i,j,k :: Loop counters
45     INTEGER i,j,k
46 mlosch 1.1
47 jmc 1.3 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 jmc 1.4 #ifdef ALLOW_3D_DIFFKR
56 mlosch 1.1 & - diffKr(i,j,k,bi,bj) )
57     #else
58 jmc 1.5 & - diffKrNrS(k) )
59 mlosch 1.1 #endif
60 jmc 1.3 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 jmc 1.4 #ifdef ALLOW_3D_DIFFKR
71 jmc 1.3 & - diffKr(i,j,kArg,bi,bj) )
72 mlosch 1.1 #else
73 jmc 1.5 & - diffKrNrS(kArg) )
74 mlosch 1.1 #endif
75 jmc 1.3 ENDDO
76     ENDDO
77     ENDIF
78 mlosch 1.1
79     #endif /* ALLOW_MY82 */
80    
81     RETURN
82     END

  ViewVC Help
Powered by ViewVC 1.1.22