/[MITgcm]/MITgcm/pkg/gmredi/gmredi_calc_diff.F
ViewVC logotype

Diff of /MITgcm/pkg/gmredi/gmredi_calc_diff.F

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

revision 1.7 by heimbach, Fri Jan 10 00:48:39 2003 UTC revision 1.8 by jmc, Fri Oct 22 01:40:24 2004 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "GMREDI_OPTIONS.h"  #include "GMREDI_OPTIONS.h"
5    
6        SUBROUTINE GMREDI_CALC_DIFF(        SUBROUTINE GMREDI_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     /==========================================================\
12  C     | SUBROUTINE GMREDI_CALC_DIFF                              |  C     | SUBROUTINE GMREDI_CALC_DIFF                              |
13  C     | o Add contrubution to net diffusivity from GM/Redi       |  C     | o Add contribution to net diffusivity from GM/Redi       |
14  C     \==========================================================/  C     \==========================================================/
15        IMPLICIT NONE        IMPLICIT NONE
16    
# Line 20  C     == GLobal variables == Line 19  C     == GLobal variables ==
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #include "GRID.h"  #include "GRID.h"
22    #ifdef ALLOW_GMREDI
23    #include "GMREDI.h"
24    #endif
25    
26  C     == Routine arguments ==  C     == Routine arguments ==
27  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation  C     bi, bj,   :: tile indices
28  C     maskUp  - land/water mask for Wvel points (above tracer level)  C     iMin,iMax :: Range of points for which calculation is done
29  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS  C     jMin,jMax :: Range of points for which calculation is done
30    C     kArg      :: = 0 -> do the k-loop here and treat all levels
31    C                  > 0 -> k-loop is done outside and treat only level k=kArg
32    C     kSize     :: 3rd Dimension of the vertical diffusivity array KappaRx
33    C     KappaRx   :: vertical diffusivity array
34    C     myThid    :: Instance number for this innvocation of GMREDI_CALC_DIFF
35  C  C
36        INTEGER bi,bj,iMin,iMax,jMin,jMax,K        INTEGER bi,bj,iMin,iMax,jMin,jMax,kArg,kSize
37        _RS maskUp(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL KappaRx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSize)
       _RL KappaRT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  
       _RL KappaRS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  
38        INTEGER myThid        INTEGER myThid
39    
40  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
 #include "GMREDI.h"  
41    
42  C     == Local variables ==  C     == Local variables ==
43  C     I, J   - Loop counters  C     i,j,k     :: Loop counters
44        INTEGER i,j        INTEGER i,j,k
45    
46        DO j=jMin,jMax  C--   Add Vertical diffusivity contribution from GM/Redi
47         DO i=iMin,iMax        IF ( kArg .EQ. 0 ) THEN
48          KappaRT(i,j,k) = KappaRT(i,j,k)+maskUp(i,j)*Kwz(i,j,k,bi,bj)  C-    do all levels :
49         ENDDO          DO k=1,MIN(Nr,kSize)
50        ENDDO           DO j=jMin,jMax
51              DO i=iMin,iMax
52        DO j=jMin,jMax              KappaRx(i,j,k) = KappaRx(i,j,k)+Kwz(i,j,k,bi,bj)
53         DO i=iMin,iMax            ENDDO
54          KappaRS(i,j,k) = KappaRS(i,j,k)+maskUp(i,j)*Kwz(i,j,k,bi,bj)           ENDDO
55         ENDDO          ENDDO
56        ENDDO        ELSE
57    C-    do level k=kArg only :
58             k = MIN(kArg,kSize)
59             DO j=jMin,jMax
60              DO i=iMin,iMax
61                KappaRx(i,j,k) = KappaRx(i,j,k)+Kwz(i,j,kArg,bi,bj)
62              ENDDO
63             ENDDO
64          ENDIF
65    
66  #endif /* ALLOW_GMREDI */  #endif /* ALLOW_GMREDI */
67    

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22