/[MITgcm]/MITgcm/pkg/seaice/seaice_tracer_phys.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_tracer_phys.F

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

revision 1.6 by gforget, Thu Feb 16 01:28:58 2012 UTC revision 1.10 by jmc, Sun Aug 11 02:31:12 2013 UTC
# Line 5  C $Name$ Line 5  C $Name$
5    
6  CStartOfInterface  CStartOfInterface
7        SUBROUTINE SEAICE_TRACER_PHYS( myTime, myIter, myThid )        SUBROUTINE SEAICE_TRACER_PHYS( myTime, myIter, myThid )
8  C     /=======================================================\  C     *=======================================================*
9  C     | SUBROUTINE seaice_tracer_phys                         |  C     | SUBROUTINE seaice_tracer_phys
10  C     | o Time step SItr/SItrEFF as a result of               |  C     | o Time step SItr/SItrEFF as a result of
11  C     |   seaice thermodynamics and specific tracer physics   |  C     |   seaice thermodynamics and specific tracer physics
12  C     \=======================================================/  C     *=======================================================*
13        IMPLICIT NONE        IMPLICIT NONE
14    
15  C     === Global variables ===  C     === Global variables ===
16  #include "SIZE.h"  #include "SIZE.h"
17  #include "EEPARAMS.h"  #include "EEPARAMS.h"
18    #include "PARAMS.h"
19  #include "FFIELDS.h"  #include "FFIELDS.h"
20  #include "DYNVARS.h"  #include "DYNVARS.h"
21  #include "SEAICE_SIZE.h"  #include "SEAICE_SIZE.h"
# Line 70  c ====================================== Line 71  c ======================================
71         ENDDO         ENDDO
72        ENDDO        ENDDO
73  c salinity tracer:  c salinity tracer:
74        if ( (SItrName(iTr).EQ.'salinity').AND.        if ( (SItrName(iTr).EQ.'salinity').AND.
75       &      (SItrFromOceanFrac(iTr).GT.ZERO) ) then       &      (SItrFromOceanFrac(iTr).GT.ZERO) ) then
76         DO J=1,sNy         DO J=1,sNy
77          DO I=1,sNx          DO I=1,sNx
# Line 173  c salinity tracer: no specific process Line 174  c salinity tracer: no specific process
174  c "ice concentration" tracer: no specific process  c "ice concentration" tracer: no specific process
175        elseif (SItrName(iTr).EQ.'ridge') then        elseif (SItrName(iTr).EQ.'ridge') then
176  c simple, made up, ice surface roughness index prototype  c simple, made up, ice surface roughness index prototype
 #ifndef SEAICE_GROWTH_LEGACY  
177         DO J=1,sNy         DO J=1,sNy
178          DO I=1,sNx          DO I=1,sNx
179  c ridging increases roughness  c ridging increases roughness
# Line 187  c ice melt reduces ridges/roughness Line 187  c ice melt reduces ridges/roughness
187            SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)*tmpscal1            SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)*tmpscal1
188          ENDDO          ENDDO
189         ENDDO         ENDDO
 #endif  
190        endif        endif
191  c 3) ice-ocean tracer exchange/mapping to external variables  c 3) ice-ocean tracer exchange/mapping to external variables
192  c ==========================================================  c ==========================================================
193  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
194        if (SItrMate(iTr).EQ.'HEFF') then        IF ( useDiagnostics .AND. SItrMate(iTr).EQ.'HEFF') THEN
195          WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'FX'          WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'Fx'
196          tmpscal1=-ONE/SEAICE_deltaTtherm*SEAICE_rhoIce          tmpscal1=-ONE/SEAICE_deltaTtherm*SEAICE_rhoIce
197          CALL DIAGNOSTICS_SCALE_FILL(SItrBucket(1-oLx,1-oLy,bi,bj,iTr),          CALL DIAGNOSTICS_SCALE_FILL(SItrBucket(1-OLx,1-OLy,bi,bj,iTr),
198       &   tmpscal1, 1, diagName,0,1,2,bi,bj,myThid)       &   tmpscal1, 1, diagName,0,1,2,bi,bj,myThid)
199        endif        ENDIF
200  #endif  #endif
201    
202        if ( (SItrName(iTr).EQ.'salinity').AND.        if ( (SItrName(iTr).EQ.'salinity').AND.
# Line 210  c salinity tracer: salt flux Line 209  c salinity tracer: salt flux
209  c note: at this point of the time step, that is the correct sign  c note: at this point of the time step, that is the correct sign
210  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
211  c should work for both constant and variable ice salinity -- to be tested  c should work for both constant and variable ice salinity -- to be tested
212            saltPlumeFlux(I,J,bi,bj) = MAX(ZERO,saltFlux(I,J,bi,bj))                                                                  saltPlumeFlux(I,J,bi,bj) = MAX(ZERO,saltFlux(I,J,bi,bj))
213       &      *SPsalFRAC*(salt(I,j,ks,bi,bj)-SItrFromOcean(i,j))       &      *SPsalFRAC*(salt(I,j,ks,bi,bj)-SItrFromOcean(i,j))
214  #endif  #endif
215           ENDDO           ENDDO
216          ENDDO          ENDDO
217        endif        endif
218          
219        DO J=1,sNy        DO J=1,sNy
220         DO I=1,sNx         DO I=1,sNx
221  #ifdef ALLOW_SITRACER_DEBUG_DIAG  #ifdef ALLOW_SITRACER_DEBUG_DIAG
# Line 227  c empty bucket Line 226  c empty bucket
226          SItrBucket(i,j,bi,bj,iTr)=0. _d 0          SItrBucket(i,j,bi,bj,iTr)=0. _d 0
227         ENDDO         ENDDO
228        ENDDO        ENDDO
229          
230  c TAF? elseif (SItrMate(iTr).EQ.'AREA') then  c TAF? elseif (SItrMate(iTr).EQ.'AREA') then
231    
232  c 4) diagnostics  c 4) diagnostics

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22