| 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 |