Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:43:12 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
e10b4e6008 Patr*0001 #include "SALT_PLUME_OPTIONS.h"
                0002 
                0003 CBOP 0
                0004 C     !ROUTINE: SALT_PLUME_TENDENCY_APPLY_T
                0005 C     !INTERFACE:
                0006       SUBROUTINE SALT_PLUME_TENDENCY_APPLY_T(
73b1dccda0 Jean*0007      U                      gT_arr,
                0008      I                      iMin,iMax,jMin,jMax, k, bi, bj,
                0009      I                      myTime, myIter, myThid )
e10b4e6008 Patr*0010 
                0011 C     !DESCRIPTION:
                0012 C     Add salt_plume tendency terms to T tendency.
                0013 C     Routine works for one level at a time.
                0014 C     SaltPlume is the amount of salt rejected by ice while freezing;
                0015 C     it is here redistributed to multiple vertical levels as per
                0016 C     Duffy et al. (GRL 1999).
                0017 
73b1dccda0 Jean*0018 C     !USES:
e10b4e6008 Patr*0019       IMPLICIT NONE
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
73b1dccda0 Jean*0023 #include "GRID.h"
                0024 c#include "DYNVARS.h"
e10b4e6008 Patr*0025 #include "SALT_PLUME.h"
                0026 
73b1dccda0 Jean*0027 C     !INPUT/OUTPUT PARAMETERS:
                0028 C     gT_arr    :: the tendency array
                0029 C     iMin,iMax :: Working range of x-index for applying forcing.
                0030 C     jMin,jMax :: Working range of y-index for applying forcing.
                0031 C     k         :: Current vertical level index
                0032 C     bi,bj     :: Current tile indices
                0033 C     myTime    :: Current time in simulation
                0034 C     myIter    :: Current iteration number
                0035 C     myThid    :: my Thread Id number
                0036       _RL     gT_arr(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0037       INTEGER iMin, iMax, jMin, jMax
                0038       INTEGER k, bi, bj
                0039       _RL     myTime
                0040       INTEGER myIter
                0041       INTEGER myThid
e10b4e6008 Patr*0042 CEOP
                0043 
                0044 #ifdef ALLOW_SALT_PLUME
                0045 #ifdef SALT_PLUME_VOLUME
                0046 
                0047 C     !LOCAL VARIABLES:
73b1dccda0 Jean*0048       INTEGER i, j
e10b4e6008 Patr*0049 Catn unit plumeEtend [m/s * kg/m3 * J/kg/degC * degC] = [W/m2]
                0050       _RL plumeEtend(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0051 
                0052 Catn define local Tfrz -1.9degC when sea-ice forms
                0053       DO j=jMin,jMax
                0054        DO i=iMin,iMax
73b1dccda0 Jean*0055         IF ( SaltPlumeDepth(i,j,bi,bj) .GT. ABS(rF(k)) ) THEN
                0056          plumeEtend(i,j) = SPforcingT(i,j,k,bi,bj)
                0057          gT_arr(i,j) = gT_arr(i,j) + plumeEtend(I,J)
                0058      &        *recip_drF(k)*mass2rUnit*_recip_hFacC(i,j,k,bi,bj)
e10b4e6008 Patr*0059      &        /HeatCapacity_Cp
                0060         ELSE
                0061          plumeEtend(i,j) = 0. _d 0
                0062         ENDIF
                0063        ENDDO
                0064       ENDDO
                0065 
                0066 #ifdef ALLOW_DIAGNOSTICS
                0067       IF ( useDiagnostics ) THEN
                0068        CALL DIAGNOSTICS_FILL (
73b1dccda0 Jean*0069      &      plumeEtend,'oceEPtnd',k,1,2,bi,bj,myThid )
e10b4e6008 Patr*0070       ENDIF
                0071 #endif /* ALLOW_DIAGNOSTICS */
73b1dccda0 Jean*0072 
e10b4e6008 Patr*0073 #endif /* SALT_PLUME_VOLUME */
                0074 #endif /* ALLOW_SALT_PLUME */
73b1dccda0 Jean*0075 
e10b4e6008 Patr*0076       RETURN
                0077       END