Back to home page

MITgcm

 
 

    


File indexing completed on 2021-04-08 05:12:21 UTC

view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
e4775240e5 Dimi*0001 #include "SALT_PLUME_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: SALT_PLUME_FORCING_SURF
                0005 C     !INTERFACE:
                0006       SUBROUTINE SALT_PLUME_FORCING_SURF(
                0007      I                            bi, bj, iMin, iMax, jMin, jMax,
                0008      I                            myTime,myIter,myThid )
762bde3a3e Dimi*0009 
e4775240e5 Dimi*0010 C     !DESCRIPTION: \bv
                0011 C     *==========================================================*
                0012 C     | S/R SALT_PLUME_FORCING_SURF
                0013 C     | o saltPlume is the amount of salt rejected by ice while freezing;
                0014 C     |   it is here subtracted from surfaceForcingS and will be redistributed
                0015 C     |   to multiple vertical levels later on as per Duffy et al. (GRL 1999)
                0016 C     *==========================================================*
                0017 C     \ev
                0018 
                0019 C     !USES:
                0020       IMPLICIT NONE
                0021 C     == Global variables ==
                0022 #include "SIZE.h"
                0023 #include "EEPARAMS.h"
                0024 #include "PARAMS.h"
1aca59cbdd Dimi*0025 #include "GRID.h"
e4775240e5 Dimi*0026 #include "FFIELDS.h"
                0027 #include "DYNVARS.h"
                0028 #include "SALT_PLUME.h"
                0029 
762bde3a3e Dimi*0030 C     !INPUT PARAMETERS:
                0031 C     bi,bj                :: tile indices
                0032 C     myTime               :: model time
                0033 C     myIter               :: time-step number
                0034 C     myThid               :: thread number
e4775240e5 Dimi*0035       INTEGER bi, bj, iMin, iMax, jMin, jMax
                0036       _RL myTime
                0037       INTEGER myIter
                0038       INTEGER myThid
762bde3a3e Dimi*0039 CEOP
                0040 
                0041 #ifdef ALLOW_SALT_PLUME
e4775240e5 Dimi*0042 C     !LOCAL VARIABLES:
                0043 C     i,j                  :: loop indices
                0044 C     ks                   :: surface level index
                0045       INTEGER i, j, ks
                0046       IF ( usingPCoords ) THEN
                0047          ks = Nr
                0048       ELSE
                0049          ks = 1
                0050       ENDIF
                0051 
                0052       DO j = jMin, jMax
1aca59cbdd Dimi*0053        DO i = iMin, iMax
1f89baba18 Patr*0054 #ifdef SALT_PLUME_VOLUME
                0055         SPforcS1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj)
                0056      &   *SPbrineSconst*rhoConst
                0057         SPforcT1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj)
                0058      &   *theta(i,j,1,bi,bj)*rhoConst
                0059      &   *HeatCapacity_Cp
                0060 
ba0b047096 Mart*0061 Cunits: surfaceForcingT [Kelvin.m/s], surfaceForcingS [g/kg.m/s]
1f89baba18 Patr*0062 C SPforcS1 has same unit as saltPlumeFlux [g/m2/s]=[g/kg kg/m2/s]
                0063 C SPforcT1: [W/m2]
                0064         surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
                0065      &      - SPforcS1(i,j,bi,bj) * mass2rUnit
                0066         surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj)
                0067      &      - SPforcT1(i,j,bi,bj) * mass2rUnit / HeatCapacity_Cp
                0068 #else /* SALT_PLUME_VOLUME */
1aca59cbdd Dimi*0069         surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj)
                0070      &       - saltPlumeFlux(i,j,bi,bj) * mass2rUnit
1f89baba18 Patr*0071 #endif /* SALT_PLUME_VOLUME */
1aca59cbdd Dimi*0072        ENDDO
e4775240e5 Dimi*0073       ENDDO
762bde3a3e Dimi*0074 #endif /* ALLOW_SALT_PLUME */
1aca59cbdd Dimi*0075 
e4775240e5 Dimi*0076       RETURN
                0077       END