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

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

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

revision 1.147 by gforget, Fri Feb 3 13:34:31 2012 UTC revision 1.148 by gforget, Tue Feb 7 18:41:09 2012 UTC
# Line 225  C temporary variables available for the Line 225  C temporary variables available for the
225        PARAMETER ( nDim = 1 )        PARAMETER ( nDim = 1 )
226  #endif /* SEAICE_MULTICATEGORY */  #endif /* SEAICE_MULTICATEGORY */
227    
 #ifdef MCPHEE_OCEAN_ICE_HEAT_FLUX  
228  C     Factor by which we increase the upper ocean friction velocity (u*) when  C     Factor by which we increase the upper ocean friction velocity (u*) when
229  C     ice is absent in a grid cell  (dimensionless)  C     ice is absent in a grid cell  (dimensionless)
230        _RL MixedLayerTurbulenceFactor        _RL MixedLayerTurbulenceFactor
231    
 c     The Stanton number for the McPhee  
 c     ocean-ice heat flux parameterization (dimensionless)  
       _RL STANTON_NUMBER  
   
 c     A typical friction velocity beneath sea ice for the  
 c     McPhee heat flux parameterization (m/s)  
       _RL USTAR_BASE  
   
       _RL surf_theta  
 #endif  
   
232  #ifdef ALLOW_SITRACER  #ifdef ALLOW_SITRACER
233        INTEGER iTr        INTEGER iTr
234        CHARACTER*8   diagName        CHARACTER*8   diagName
# Line 253  c     Helper variables for diagnostics Line 241  c     Helper variables for diagnostics
241        _RL DIAGarrayD    (1:sNx,1:sNy)        _RL DIAGarrayD    (1:sNx,1:sNy)
242  #endif  #endif
243    
244    
245  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
246    
247  C ===================================================================  C ===================================================================
# Line 287  C     regularization constants Line 276  C     regularization constants
276        area_reg_sq = SEAICE_area_reg * SEAICE_area_reg        area_reg_sq = SEAICE_area_reg * SEAICE_area_reg
277        hice_reg_sq = SEAICE_hice_reg * SEAICE_hice_reg        hice_reg_sq = SEAICE_hice_reg * SEAICE_hice_reg
278    
 #ifdef MCPHEE_OCEAN_ICE_HEAT_FLUX  
       STANTON_NUMBER = 0.0056 _d 0  
       USTAR_BASE = 0.0125 _d 0  
 #endif  
   
279  C conversion factors to go from Q (W/m2) to HEFF (ice meters)  C conversion factors to go from Q (W/m2) to HEFF (ice meters)
280        convertQ2HI=SEAICE_deltaTtherm/QI        convertQ2HI=SEAICE_deltaTtherm/QI
281        convertHI2Q=1/convertQ2HI        convertHI2Q=1/convertQ2HI
# Line 832  CADJ STORE theta(:,:,:,bi,bj) = comlev1_ Line 816  CADJ STORE theta(:,:,:,bi,bj) = comlev1_
816    
817          DO J=1,sNy          DO J=1,sNy
818           DO I=1,sNx           DO I=1,sNx
   
819  #ifdef SEAICE_VARIABLE_FREEZING_POINT  #ifdef SEAICE_VARIABLE_FREEZING_POINT
820             TBC = -0.0575 _d 0*salt(I,J,kSurface,bi,bj) + 0.0901 _d 0             TBC = -0.0575 _d 0*salt(I,J,kSurface,bi,bj) + 0.0901 _d 0
821  #endif /* SEAICE_VARIABLE_FREEZING_POINT */  #endif /* SEAICE_VARIABLE_FREEZING_POINT */
822    c efficiency of turbulent fluxes : dependency to sign of THETA-TBC
 #ifdef MCPHEE_OCEAN_ICE_HEAT_FLUX  
   
 c     Bound the ocean temperature to be at or above the freezing point.  
            surf_theta = max(theta(I,J,kSurface,bi,bj), TBC)  
 #ifdef GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR  
            MixedLayerTurbulenceFactor = 12.5 _d 0 -  
      &            11.5 _d 0 *AREApreTH(I,J)  
 #else  
 c     If ice is present, MixedLayerTurbulenceFactor = 1.0, else 12.50  
            IF (AREApreTH(I,J) .GT. 0. _d 0) THEN  
                MixedLayerTurbulenceFactor = ONE  
             ELSE  
                MixedLayerTurbulenceFactor = 12.5 _d 0  
            ENDIF  
 #endif /* GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR */  
   
 c          The turbulent ocean-ice heat flux  
            a_QbyOCN(I,J) = -STANTON_NUMBER * USTAR_BASE * rhoConst *  
      &       HeatCapacity_Cp  *(surf_theta - TBC)*  
      &       MixedLayerTurbulenceFactor*maskC(i,j,kSurface,bi,bj)  
   
 c          The turbulent ocean-ice heat flux converted to meters  
 c          of potential ice melt  
            a_QbyOCN(I,J) = a_QbyOCN(I,J) * convertQ2HI  
   
 c          by design a_QbyOCN .LE. 0. so that initial ice growth cannot  
 c          be triggered by this term, which Ian says is better for adjoint  
 #else  
   
823             IF ( theta(I,J,kSurface,bi,bj) .GE. TBC ) THEN             IF ( theta(I,J,kSurface,bi,bj) .GE. TBC ) THEN
824               tmpscal1 = SEAICE_availHeatFrac                 tmpscal1 = SEAICE_availHeatFrac
825             ELSE             ELSE
826               tmpscal1 = SEAICE_availHeatFracFrz                 tmpscal1 = SEAICE_availHeatFracFrz
827             ENDIF             ENDIF
828             tmpscal1 = tmpscal1  c efficiency of turbulent fluxes : dependency to AREA (McPhee cases)
829               if ( (SEAICEturbFluxFormula.EQ.3).AND.
830         &        (AREApreTH(I,J) .GE. 0. _d 0) ) then
831                  MixedLayerTurbulenceFactor = ONE - AREApreTH(I,J) *
832         &        (MCPHEE_TAPER_FAC-1) / MCPHEE_TAPER_FAC
833               elseif ( (SEAICEturbFluxFormula.EQ.4).AND.
834         &        (AREApreTH(I,J) .LE. 0. _d 0) ) then
835                  MixedLayerTurbulenceFactor = MCPHEE_TAPER_FAC
836               else
837                  MixedLayerTurbulenceFactor = ONE
838               endif
839    c maximum turbulent flux, in ice meters
840               tmpscal2= - (HeatCapacity_Cp*rhoConst/QI)
841         &              * (theta(I,J,kSurface,bi,bj)-TBC)
842       &              * dRf(kSurface) * maskC(i,j,kSurface,bi,bj)       &              * dRf(kSurface) * maskC(i,j,kSurface,bi,bj)
843    c available turbulent flux
844             a_QbyOCN(i,j) = -tmpscal1 * (HeatCapacity_Cp*rhoConst/QI)             a_QbyOCN(i,j) =
845       &                   * (theta(I,J,kSurface,bi,bj)-TBC)       &      tmpscal1 * tmpscal2 * MixedLayerTurbulenceFactor
846               r_QbyOCN(i,j) = a_QbyOCN(i,j)
 #endif /* MCPHEE_OCEAN_ICE_HEAT_FLUX */  
   
           r_QbyOCN(i,j) = a_QbyOCN(i,j)  
   
847           ENDDO           ENDDO
848          ENDDO          ENDDO
849    

Legend:
Removed from v.1.147  
changed lines
  Added in v.1.148

  ViewVC Help
Powered by ViewVC 1.1.22