Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:41:34 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
cd3138caa3 Jean*0001 #include "KPP_OPTIONS.h"
                0002 
                0003       SUBROUTINE KPP_CALC_DIFF_T( 
                0004      I        bi,bj,iMin,iMax,jMin,jMax,kArg,kSize,
a3b5d49db3 Dimi*0005      O        KappaRT,
cd3138caa3 Jean*0006      I        myThid)
                0007 
                0008 C     /==========================================================\
                0009 C     | SUBROUTINE KPP_CALC_DIFF_T                               |
a3b5d49db3 Dimi*0010 C     | o Return contribution to net diffusivity from KPP mixing |
cd3138caa3 Jean*0011 C     \==========================================================/
                0012       IMPLICIT NONE
                0013 
                0014 C     == GLobal variables ==
                0015 #include "SIZE.h"
                0016 #include "EEPARAMS.h"
                0017 #include "PARAMS.h"
                0018 #include "DYNVARS.h"
                0019 #include "GRID.h"
                0020 #ifdef ALLOW_KPP
                0021 #include "KPP.h"
                0022 #endif
                0023 
                0024 C     == Routine arguments ==
                0025 C     bi, bj,   :: tile indices
                0026 C     iMin,iMax :: Range of points for which calculation is done
                0027 C     jMin,jMax :: Range of points for which calculation is done
                0028 C     kArg      :: = 0 -> do the k-loop here and treat all levels
                0029 C                  > 0 -> k-loop is done outside and treat only level k=kArg
                0030 C     kSize     :: 3rd Dimension of the vertical diffusivity array KappaRT
                0031 C     KappaRT   :: vertical diffusivity array
                0032 C     myThid    :: Instance number for this innvocation of KPP_CALC_DIFF_T
                0033 C
                0034       INTEGER bi,bj,iMin,iMax,jMin,jMax,kArg,kSize
                0035       _RL KappaRT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSize)
                0036       INTEGER myThid
                0037 
                0038 #ifdef ALLOW_KPP
                0039 
                0040 C     == Local variables ==
                0041 C     i,j,k     :: Loop counters
                0042       INTEGER i,j,k
                0043 
a3b5d49db3 Dimi*0044 C--   Set vertical diffusivity contribution from KPP
cd3138caa3 Jean*0045       IF ( kArg .EQ. 0 ) THEN
                0046 C-    do all levels :
059d9fc14f Dimi*0047        DO k=1,MIN(Nr,kSize)
                0048         DO j=jMin,jMax
                0049          DO i=iMin,iMax
                0050           KappaRT(i,j,k) = KPPdiffKzT(i,j,k,bi,bj)
cd3138caa3 Jean*0051          ENDDO
                0052         ENDDO
059d9fc14f Dimi*0053        ENDDO
cd3138caa3 Jean*0054       ELSE
                0055 C-    do level k=kArg only :
059d9fc14f Dimi*0056        k = MIN(kArg,kSize)
                0057        DO j=jMin,jMax
                0058         DO i=iMin,iMax
                0059          KappaRT(i,j,k) = KPPdiffKzT(i,j,kArg,bi,bj)
                0060         ENDDO
                0061        ENDDO
cd3138caa3 Jean*0062       ENDIF
                0063 
                0064 #endif /* ALLOW_KPP */
                0065 
                0066       RETURN
                0067       END