[MITgcm-devel] Re: empmr

Jean-Michel Campin jmc at ocean.mit.edu
Thu May 24 17:52:02 EDT 2007


Hi Dimitris,

I am a little bit confused by the "no evaporation over se-ice":
It seems that a latent heat-flux is computed in seaice_budget_ice.F
but the implied evaporation is not applied to sea-ice ?
This would certainly make the Fresh-water budget easier (just
precip & runoff).
Thanks,
Jean-Michel

On Thu, May 24, 2007 at 02:23:52PM -0700, Dimitris Menemenlis wrote:
> Alan, for pkg/seaice, the routine to understand is seaice_growth.F
> 
> What is dumped into the ocean is:
> 
> >C NOW GET FRESH WATER FLUX
> >#ifdef ALLOW_ATM_TEMP
> >          EmPmR(I,J,bi,bj)  = maskC(I,J,kSurface,bi,bj)*(
> >     &         ( EVAP(I,J,bi,bj)-PRECIP(I,J,bi,bj) )
> >     &         * ( ONE - AREA(I,J,2,bi,bj) )
> >#ifdef ALLOW_RUNOFF
> >     &         - RUNOFF(I,J,bi,bj)
> >#endif
> >     &         + frWtrIce(I,J)*ICE2WATR/SEAICE_deltaTtherm
> >     &         )
> 
> that is, the fraction of "open-water" evaporation minus precipitation, plus 
> 100% of runoff, plus a term due to sea ice melting or freezing.
> 
> As far as I can see there is "no" evaporation over sea ice.
> 
> precipitation is dealt in the following way:
> 
> >          IF(FICE(I,J).GT.ZERO) THEN
> >C     freezing, add precip as snow
> >           HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj)+SEAICE_deltaTtherm*
> >     &            PRECIP(I,J,bi,bj)*AREA(I,J,2,bi,bj)*SDF
> >          ELSE
> >C     add precip as rain, water converted into equivalent m of 
> >C     ice by 1/ICE2WATR. 
> >C     Do not get confused by the sign: 
> >C     precip   > 0 for downward flux of fresh water
> >C     frWtrIce > 0 for more ice (corresponds to an upward "fresh water 
> >flux"),
> >C     so that here the rain is added *as if* it is melted ice (which is 
> >not C     true, but just a trick; physically the rain just runs as water 
> >C     through the ice into the ocean)
> >           frWtrIce(I,J) = frWtrIce(I,J)
> >     &            -PRECIP(I,J,bi,bj)*AREA(I,J,2,bi,bj)*
> >     &            SEAICE_deltaTtherm/ICE2WATR
> >          ENDIF
> 
> that is, if ice is growing add all precip as snow, else dump it as 
> freshwater in the ocean; this is done via the frWtrIce term above.  But 
> also note that "if" all the ice is melted via heat from mixed layer "and" 
> there is residual snow and residual heat in mixed layer, this residual eat 
> is used to melt some or all of the remaining snow:
> 
> >C     Now melt snow if there is residual heat left in surface level
> >C     Note that units of YNEG and frWtrIce are m of ice
> >cph( very sensitive bit here by JZ
> >          IF( RESID_HEAT(I,J) .GT. ZERO .AND.
> >     &       HSNOW(I,J,bi,bj) .GT. ZERO ) THEN
> >           GHEFF(I,J)       = MIN( HSNOW(I,J,bi,bj)/SDF/ICE2WATR,
> >     &                             RESID_HEAT(I,J) )
> >           YNEG(I,J,bi,bj)  = YNEG(I,J,bi,bj) +GHEFF(I,J)
> >           HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj)-GHEFF(I,J)*SDF*ICE2WATR
> >           frWtrIce(I,J)    = frWtrIce(I,J)   -GHEFF(I,J)
> >          ENDIF
> >cph)
> 
> if you use SEAICEuseFlooding, which you should, there is one more step 
> during which snow that is submerged is converted into sea ice:
> 
> >#ifdef ALLOW_SEAICE_FLOODING
> >        IF ( SEAICEuseFlooding ) THEN
> >C     convert snow to ice if submerged
> >         DO J=1,sNy
> >          DO I=1,sNx
> >           hDraft = (HSNOW(I,J,bi,bj)*330. _d 0
> >     &              +HEFF(I,J,1,bi,bj)*SEAICE_rhoIce)/1000. _d 0
> >           hFlood = hDraft - MIN(hDraft,HEFF(I,J,1,bi,bj))
> >           HEFF(I,J,1,bi,bj) = HEFF(I,J,1,bi,bj) + hFlood
> >           HSNOW(I,J,bi,bj)  = MAX(0. _d 0,
> >     &          HSNOW(I,J,bi,bj)-hFlood*ICE2SNOW)
> >          ENDDO
> >         ENDDO
> >        ENDIF
> >#endif /* ALLOW_SEAICE_FLOODING */
> 
> 
> 
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel



More information about the MITgcm-devel mailing list