Back to home page

MITgcm

 
 

    


File indexing completed on 2022-04-10 05:09:16 UTC

view on githubraw file Latest commit 51575f66 on 2022-04-09 20:43:48 UTC
dfe2344b20 Alis*0001 #include "CPP_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: CONVECTIVELY_MIXTRACER
                0005 C !INTERFACE:
                0006       SUBROUTINE CONVECTIVELY_MIXTRACER(
ffb542dc9b Jean*0007      I                              bi, bj, k, weightA, weightB,
dfe2344b20 Alis*0008      U                              Tracer,
ffb542dc9b Jean*0009      I                              myThid )
dfe2344b20 Alis*0010 C !DESCRIPTION:
                0011 C Mixes a tracer over two layers according to the weights pre-calculated
                0012 C as a function of stability.
ffb542dc9b Jean*0013 C
dfe2344b20 Alis*0014 C Mixing is represented by:
ffb542dc9b Jean*0015 C                       T(k-1) = T(k-1) + A * ( T(k) - T(k-1) )
                0016 C                       T(k)   = T(k)   + B * ( T(k-1) - T(k) )
dfe2344b20 Alis*0017 
4dba04e5f3 Alis*0018 C !USES:
dfe2344b20 Alis*0019       IMPLICIT NONE
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 
4dba04e5f3 Alis*0023 C !INPUT/OUTPUT PARAMETERS:
ffb542dc9b Jean*0024 C     bi,bj,k :: indices
                0025 C     weightA :: weight for level k-1
                0026 C     weightB :: weight for level  k
                0027 C     myThid  :: my Thread Id number
dfe2344b20 Alis*0028       INTEGER bi,bj,k
                0029       _RL weightA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0030       _RL weightB(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
ffb542dc9b Jean*0031       _RL Tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
dfe2344b20 Alis*0032       INTEGER myThid
                0033 
51575f66de Mart*0034 #if (defined INCLUDE_CONVECT_CALL || defined INCLUDE_CONVECT_INI_CALL)
dfe2344b20 Alis*0035 
4dba04e5f3 Alis*0036 C !LOCAL VARIABLES:
dfe2344b20 Alis*0037 C     i,j      :: Loop counter
                0038 C     delTrac  :: Difference between tracer in each layer
                0039       INTEGER i,j
                0040       _RL delTrac
                0041 CEOP
                0042 
ffb542dc9b Jean*0043       DO j=1-OLy,sNy+OLy
                0044        DO i=1-OLx,sNx+OLx
dfe2344b20 Alis*0045 
                0046         delTrac=Tracer(i,j,k,bi,bj)-Tracer(i,j,k-1,bi,bj)
                0047         Tracer(i,j,k-1,bi,bj)=Tracer(i,j,k-1,bi,bj)
                0048      &                       +weightA(i,j)*delTrac
                0049         Tracer(i,j,k,bi,bj)=Tracer(i,j,k,bi,bj)
                0050      &                       -weightB(i,j)*delTrac
                0051 
                0052        ENDDO
                0053       ENDDO
                0054 
51575f66de Mart*0055 #endif /* INCLUDE_CONVECT_CALL or INCLUDE_CONVECT_INI_CALL */
dfe2344b20 Alis*0056 
                0057       RETURN
                0058       END