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

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

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

revision 1.2 by jmc, Sun Oct 17 23:12:31 2004 UTC revision 1.3 by jmc, Fri Oct 22 01:41:35 2004 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "MY82_OPTIONS.h"  #include "MY82_OPTIONS.h"
5    
6        SUBROUTINE MY82_CALC_DIFF(        SUBROUTINE MY82_CALC_DIFF(
7       I        bi,bj,iMin,iMax,jMin,jMax,K,       I        bi,bj,iMin,iMax,jMin,jMax,kArg,kSize,
8       I        maskUp,       U        KappaRx,
      U        KappaRT,KappaRS,  
9       I        myThid)       I        myThid)
10    
11  C     /==========================================================\  C     /==========================================================\
# Line 21  C     == GLobal variables == Line 20  C     == GLobal variables ==
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #include "DYNVARS.h"  #include "DYNVARS.h"
22  #include "GRID.h"  #include "GRID.h"
23    #ifdef ALLOW_MY82
24    #include "MY82.h"
25    #endif
26    
27  C     == Routine arguments ==  C     == Routine arguments ==
28  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation  C     bi, bj,   :: tile indices
29  C     maskUp  - land/water mask for Wvel points (above tracer level)  C     iMin,iMax :: Range of points for which calculation is done
30  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS  C     jMin,jMax :: Range of points for which calculation is done
31  C  C     kArg      :: = 0 -> do the k-loop here and treat all levels
32        INTEGER bi,bj,iMin,iMax,jMin,jMax,K  C                  > 0 -> k-loop is done outside and treat only level k=kArg
33        _RS maskUp(1-Olx:sNx+Olx,1-Oly:sNy+Oly)  C     kSize     :: 3rd Dimension of the vertical diffusivity array KappaRx
34        _RL KappaRT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  C     KappaRx   :: vertical diffusivity array
35        _RL KappaRS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  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        INTEGER myThid
40    
41  #ifdef ALLOW_MY82  #ifdef ALLOW_MY82
 #include "MY82.h"  
42    
43  C     == Local variables ==  C     == Local variables ==
44  C     I, J, K - Loop counters  C     i,j,k     :: Loop counters
45        INTEGER i,j        INTEGER i,j,k
46    
47        DO j=jMin,jMax  C--   Add Vertical diffusivity contribution from MY82
48         DO i=iMin,iMax        IF ( kArg .EQ. 0 ) THEN
49          KappaRT(i,j,k) = KappaRT(i,j,k)+maskUp(i,j)*  C-    do all levels :
50       &                   ( MYdiffKr(i,j,k,bi,bj)          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  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
56       &                     - diffKr(i,j,k,bi,bj) )       &                     - diffKr(i,j,k,bi,bj) )
57  #else  #else
58       &                     - diffKrNrT(k) )       &                     - diffKrNrT(k) )
59  #endif  #endif
60         ENDDO            ENDDO
61        ENDDO           ENDDO
62            ENDDO
63        DO j=jMin,jMax        ELSE
64         DO i=iMin,iMax  C-    do level k=kArg only :
65          KappaRS(i,j,k) = KappaRS(i,j,k)+maskUp(i,j)*           k = MIN(kArg,kSize)
66       &                   ( MYdiffKr(i,j,k,bi,bj)           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  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))
71       &                     - diffKr(i,j,k,bi,bj) )       &                     - diffKr(i,j,kArg,bi,bj) )
72  #else  #else
73       &                     - diffKrNrS(k) )       &                     - diffKrNrT(kArg) )
74  #endif  #endif
75         ENDDO            ENDDO
76        ENDDO           ENDDO
77          ENDIF
78    
79  #endif /* ALLOW_MY82 */  #endif /* ALLOW_MY82 */
80    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22