| 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 === | 
| 70 | 
        ENDDO | 
        ENDDO | 
| 71 | 
       ENDDO | 
       ENDDO | 
| 72 | 
 c salinity tracer: | 
 c salinity tracer: | 
| 73 | 
       if ( (SItrName(iTr).EQ.'salinity').AND.  | 
       if ( (SItrName(iTr).EQ.'salinity').AND. | 
| 74 | 
      &      (SItrFromOceanFrac(iTr).GT.ZERO) ) then | 
      &      (SItrFromOceanFrac(iTr).GT.ZERO) ) then | 
| 75 | 
        DO J=1,sNy | 
        DO J=1,sNy | 
| 76 | 
         DO I=1,sNx | 
         DO I=1,sNx | 
| 195 | 
       if (SItrMate(iTr).EQ.'HEFF') then | 
       if (SItrMate(iTr).EQ.'HEFF') then | 
| 196 | 
         WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'FX' | 
         WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'FX' | 
| 197 | 
         tmpscal1=-ONE/SEAICE_deltaTtherm*SEAICE_rhoIce | 
         tmpscal1=-ONE/SEAICE_deltaTtherm*SEAICE_rhoIce | 
| 198 | 
         CALL DIAGNOSTICS_SCALE_FILL(SItrBucket(1-oLx,1-oLy,bi,bj,iTr), | 
         CALL DIAGNOSTICS_SCALE_FILL(SItrBucket(1-OLx,1-OLy,bi,bj,iTr), | 
| 199 | 
      &   tmpscal1, 1, diagName,0,1,2,bi,bj,myThid) | 
      &   tmpscal1, 1, diagName,0,1,2,bi,bj,myThid) | 
| 200 | 
       endif | 
       endif | 
| 201 | 
 #endif | 
 #endif | 
| 210 | 
 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 | 
| 211 | 
 #ifdef ALLOW_SALT_PLUME | 
 #ifdef ALLOW_SALT_PLUME | 
| 212 | 
 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 | 
| 213 | 
           saltPlumeFlux(I,J,bi,bj) = MAX(ZERO,saltFlux(I,J,bi,bj))                                                       | 
           saltPlumeFlux(I,J,bi,bj) = MAX(ZERO,saltFlux(I,J,bi,bj)) | 
| 214 | 
      &      *SPsalFRAC*(salt(I,j,ks,bi,bj)-SItrFromOcean(i,j)) | 
      &      *SPsalFRAC*(salt(I,j,ks,bi,bj)-SItrFromOcean(i,j)) | 
| 215 | 
 #endif | 
 #endif | 
| 216 | 
          ENDDO | 
          ENDDO | 
| 217 | 
         ENDDO | 
         ENDDO | 
| 218 | 
       endif | 
       endif | 
| 219 | 
        | 
  | 
| 220 | 
       DO J=1,sNy | 
       DO J=1,sNy | 
| 221 | 
        DO I=1,sNx | 
        DO I=1,sNx | 
| 222 | 
 #ifdef ALLOW_SITRACER_DEBUG_DIAG | 
 #ifdef ALLOW_SITRACER_DEBUG_DIAG | 
| 227 | 
         SItrBucket(i,j,bi,bj,iTr)=0. _d 0 | 
         SItrBucket(i,j,bi,bj,iTr)=0. _d 0 | 
| 228 | 
        ENDDO | 
        ENDDO | 
| 229 | 
       ENDDO | 
       ENDDO | 
| 230 | 
        | 
  | 
| 231 | 
 c TAF? elseif (SItrMate(iTr).EQ.'AREA') then | 
 c TAF? elseif (SItrMate(iTr).EQ.'AREA') then | 
| 232 | 
  | 
  | 
| 233 | 
 c 4) diagnostics | 
 c 4) diagnostics |