/[MITgcm]/MITgcm/pkg/ggl90/ggl90_calc_diff.F
ViewVC logotype

Annotation of /MITgcm/pkg/ggl90/ggl90_calc_diff.F

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


Revision 1.4 - (hide annotations) (download)
Fri Jan 30 02:23:56 2009 UTC (15 years, 4 months ago) by dfer
Branch: MAIN
CVS Tags: checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61i, checkpoint61t, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q
Changes since 1.3: +9 -1 lines
A few adjustments

1 dfer 1.4 C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_calc_diff.F,v 1.3 2004/10/22 01:42:06 jmc Exp $
2 mlosch 1.1 C $Name: $
3    
4     #include "GGL90_OPTIONS.h"
5    
6     SUBROUTINE GGL90_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 GGL90_CALC_DIFF |
13     C | o Add contrubution to net diffusivity from GGL90 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 "DYNVARS.h"
22     #include "GRID.h"
23 jmc 1.3 #ifdef ALLOW_GGL90
24     #include "GGL90.h"
25     #endif
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 GGL90_CALC_DIFF
36    
37     INTEGER bi,bj,iMin,iMax,jMin,jMax,kArg,kSize
38     _RL KappaRx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
39 mlosch 1.1 INTEGER myThid
40    
41     #ifdef ALLOW_GGL90
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 GGL90
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 dfer 1.4 #ifdef ALLOW_GGL90_SMOOTH
55     & +( GGL90diffKrS(i,j,k,bi,bj)
56     #else
57 jmc 1.3 & +( GGL90diffKr(i,j,k,bi,bj)
58 dfer 1.4 #endif
59 mlosch 1.1 #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
60     & - diffKr(i,j,k,bi,bj) )
61     #else
62 jmc 1.2 & - diffKrNrT(k) )
63 mlosch 1.1 #endif
64 jmc 1.3 ENDDO
65     ENDDO
66     ENDDO
67     ELSE
68     C- do level k=kArg only :
69     k = MIN(kArg,kSize)
70     DO j=jMin,jMax
71     DO i=iMin,iMax
72     KappaRx(i,j,k) = KappaRx(i,j,k)
73 dfer 1.4 #ifdef ALLOW_GGL90_SMOOTH
74     & +( GGL90diffKrS(i,j,kArg,bi,bj)
75     #else
76 jmc 1.3 & +( GGL90diffKr(i,j,kArg,bi,bj)
77 dfer 1.4 #endif
78 mlosch 1.1 #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
79 jmc 1.3 & - diffKr(i,j,kArg,bi,bj) )
80 mlosch 1.1 #else
81 jmc 1.3 & - diffKrNrT(kArg) )
82 mlosch 1.1 #endif
83 jmc 1.3 ENDDO
84     ENDDO
85     ENDIF
86 mlosch 1.1
87     #endif /* ALLOW_GGL90 */
88    
89     RETURN
90     END

  ViewVC Help
Powered by ViewVC 1.1.22