/[MITgcm]/MITgcm/pkg/thsice/thsice_step_fwd.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_step_fwd.F

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

revision 1.34 by jmc, Wed Feb 8 14:48:03 2012 UTC revision 1.35 by jmc, Wed Feb 8 22:32:24 2012 UTC
# Line 60  C-- Use fluxes hold in commom blocks Line 60  C-- Use fluxes hold in commom blocks
60  C- input:  C- input:
61  C     icFlxSW :: net short-wave heat flux (+=down) below sea-ice, into ocean  C     icFlxSW :: net short-wave heat flux (+=down) below sea-ice, into ocean
62  C     icFlxAtm  :: net Atmospheric surf. heat flux over sea-ice [W/m2], (+=down)  C     icFlxAtm  :: net Atmospheric surf. heat flux over sea-ice [W/m2], (+=down)
63  C     icFrwAtm  :: evaporation over sea-ice to the atmosphere [kg/m2/s] (+=up)  C     icFrwAtm  :: evaporation over sea-ice to the atmosphere   [kg/m2/s] (+=up)
64  C- output  C- output
65  C     icFlxAtm  :: net Atmospheric surf. heat flux over ice+ocean [W/m2], (+=down)  C     icFlxAtm  :: net Atmospheric surf. heat flux over ice+ocean [W/m2], (+=down)
66  C     icFrwAtm  :: net fresh-water flux (E-P) from the atmosphere [m/s] (+=up)  C     icFrwAtm  :: net fresh-water flux (E-P) from the atmosphere [kg/m2/s] (+=up)
67        INTEGER bi,bj        INTEGER bi,bj
68        INTEGER iMin, iMax        INTEGER iMin, iMax
69        INTEGER jMin, jMax        INTEGER jMin, jMax
# Line 78  C     !LOCAL VARIABLES: Line 78  C     !LOCAL VARIABLES:
78  C     === Local variables ===  C     === Local variables ===
79  C     iceFrac   :: fraction of grid area covered in ice  C     iceFrac   :: fraction of grid area covered in ice
80  C     flx2oc    :: net heat flux from the ice to the ocean (+=down) [W/m2]  C     flx2oc    :: net heat flux from the ice to the ocean (+=down) [W/m2]
81  C     frw2oc    :: fresh-water flux from the ice to the ocean  C     frw2oc    :: fresh-water flux from the ice to the ocean (+=down)
82  C     fsalt     :: mass salt flux to the ocean  C     fsalt     :: mass salt flux to the ocean                (+=down)
83    C     frzSeaWat :: seawater freezing rate (expressed as mass flux) [kg/m^2/s]
84  C     frzmltMxL :: ocean mixed-layer freezing/melting potential [W/m2]  C     frzmltMxL :: ocean mixed-layer freezing/melting potential [W/m2]
85  C     tFrzOce   :: sea-water freezing temperature [oC] (function of S)  C     tFrzOce   :: sea-water freezing temperature [oC] (function of S)
86  C     isIceFree :: true for ice-free grid-cell that remains ice-free  C     isIceFree :: true for ice-free grid-cell that remains ice-free
# Line 90  C     snowFac   :: snowing refreshing-ag Line 91  C     snowFac   :: snowing refreshing-ag
91        _RL     flx2oc   (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     flx2oc   (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
92        _RL     frw2oc   (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     frw2oc   (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
93        _RL     fsalt    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     fsalt    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
94          _RL     frzSeaWat(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
95        _RL     tFrzOce  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     tFrzOce  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
96        _RL     frzmltMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     frzmltMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
97        _RL ageFac        _RL ageFac
# Line 132  C-    Initialise Line 134  C-    Initialise
134  #else  #else
135            saltFlux(i,j,bi,bj) = 0. _d 0            saltFlux(i,j,bi,bj) = 0. _d 0
136  #endif  #endif
137              frzSeaWat(i,j) = 0. _d 0
138  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
139            iceFrac(i,j) = 0.            iceFrac(i,j) = 0.
140            flx2oc(i,j) = 0. _d 0            flx2oc(i,j) = 0. _d 0
# Line 239  CADJ STORE iceMask(:,:,bi,bj) = comlev1_ Line 242  CADJ STORE iceMask(:,:,bi,bj) = comlev1_
242       U          snowHeight(siLo,sjLo,bi,bj), Tsrf(siLo,sjLo,bi,bj),       U          snowHeight(siLo,sjLo,bi,bj), Tsrf(siLo,sjLo,bi,bj),
243       U          Qice1(siLo,sjLo,bi,bj), Qice2(siLo,sjLo,bi,bj),       U          Qice1(siLo,sjLo,bi,bj), Qice2(siLo,sjLo,bi,bj),
244       U          icFrwAtm(siLo,sjLo,bi,bj), frzmltMxL, flx2oc,       U          icFrwAtm(siLo,sjLo,bi,bj), frzmltMxL, flx2oc,
245       O          frw2oc, fsalt,       O          frw2oc, fsalt, frzSeaWat,
246       I          myTime, myIter, myThid )       I          myTime, myIter, myThid )
247    
248  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 286  c#endif Line 289  c#endif
289       &                    +  opFrac*EmPmR(i,j,bi,bj)       &                    +  opFrac*EmPmR(i,j,bi,bj)
290            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)            saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j)
291  #endif  #endif
292    C-    All seawater freezing (no reduction by surf. melting) from CALC_THICKN
293    c         frzSeaWat(i,j) = icFrac*frzSeaWat(i,j)
294    C-    Net seawater freezing (underestimated if there is surf. melting or rain)
295              frzSeaWat(i,j) = MAX( -icFrac*frw2oc(i,j), 0. _d 0 )
296    
297  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
298            IF (dBug(i,j,bi,bj)) WRITE(6,1010)            IF (dBug(i,j,bi,bj)) WRITE(6,1010)
# Line 304  c#endif Line 311  c#endif
311         ENDDO         ENDDO
312        ENDDO        ENDDO
313    
 #ifdef ALLOW_SALT_PLUME  
       IF ( useSALT_PLUME ) THEN  
         CALL THSICE_SALT_PLUME(  
      I          iceMask(1-OLx,1-OLy,bi,bj),  
      I          sOceMxL(1-OLx,1-OLy,bi,bj),  
      I          frw2oc,  
      I          iMin,iMax, jMin,jMax, bi, bj,  
      I          0, myTime, myIter, myThid )  
       ENDIF  
 #endif /* ALLOW_SALT_PLUME */  
   
314  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
315  C    part.3 : freezing of sea-water  C    part.3 : freezing of sea-water
316  C     over ice-free fraction and what is left from ice-covered fraction  C     over ice-free fraction and what is left from ice-covered fraction
# Line 357  C--    Net fluxes : Line 353  C--    Net fluxes :
353            EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- frw2oc(i,j)            EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- frw2oc(i,j)
354            saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - fsalt(i,j)            saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - fsalt(i,j)
355  #endif  #endif
356              frzSeaWat(i,j) = frzSeaWat(i,j) + MAX(-frw2oc(i,j), 0. _d 0 )
357    
358  #ifdef ALLOW_DBUG_THSICE  #ifdef ALLOW_DBUG_THSICE
359            IF (dBug(i,j,bi,bj)) WRITE(6,1010)            IF (dBug(i,j,bi,bj)) WRITE(6,1010)
# Line 392  C--    Net fluxes : Line 389  C--    Net fluxes :
389  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
390        IF ( useSALT_PLUME ) THEN        IF ( useSALT_PLUME ) THEN
391          CALL THSICE_SALT_PLUME(          CALL THSICE_SALT_PLUME(
      I          frzmltMxL,  
392       I          sOceMxL(1-OLx,1-OLy,bi,bj),       I          sOceMxL(1-OLx,1-OLy,bi,bj),
393       I          frw2oc,       I          frzSeaWat,
394       I          iMin,iMax, jMin,jMax, bi, bj,       I          iMin,iMax, jMin,jMax, bi, bj,
395       I          1, myTime, myIter, myThid )       I          myTime, myIter, myThid )
396        ENDIF        ENDIF
397  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
398    

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.22