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

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

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

revision 1.17 by mlosch, Mon Dec 19 16:30:09 2011 UTC revision 1.18 by mlosch, Thu Dec 22 12:35:02 2011 UTC
# Line 120  C     This is HICE_ACTUAL.GT.0. Line 120  C     This is HICE_ACTUAL.GT.0.
120  C     TB :: temperature in boundary layer (=freezing point temperature) (K)  C     TB :: temperature in boundary layer (=freezing point temperature) (K)
121        _RL TB         (1:sNx,1:sNy)        _RL TB         (1:sNx,1:sNy)
122  C  C
123        _RL D1, D1I, D3        _RL D1, D1I
124          _RL D3(1:sNx,1:sNy)
125        _RL TMELT, XKI, XKS, HCUT, XIO        _RL TMELT, XKI, XKS, HCUT, XIO
126        _RL SurfMeltTemp        _RL SurfMeltTemp
127  C     effective conductivity of combined ice and snow  C     effective conductivity of combined ice and snow
# Line 187  C     ICE LATENT HEAT CONSTANT Line 188  C     ICE LATENT HEAT CONSTANT
188        lhSublim = SEAICE_lhEvap + SEAICE_lhFusion        lhSublim = SEAICE_lhEvap + SEAICE_lhFusion
189        D1I=SEAICE_dalton*lhSublim*SEAICE_rhoAir        D1I=SEAICE_dalton*lhSublim*SEAICE_rhoAir
190    
 C     STEFAN BOLTZMAN CONSTANT TIMES EMISSIVITY  
       D3=SEAICE_emissivity*SEAICE_boltzmann  
   
191  C     MELTING TEMPERATURE OF ICE  C     MELTING TEMPERATURE OF ICE
192  #ifdef SEAICE_SOLVE4TEMP_LEGACY  #ifdef SEAICE_SOLVE4TEMP_LEGACY
193        TMELT        = 273.16  _d +00        TMELT        = 273.16  _d +00
# Line 265  C     Use a constant freezing temperatur Line 263  C     Use a constant freezing temperatur
263          TB(I,J) = celsius2K + SEAICE_freeze          TB(I,J) = celsius2K + SEAICE_freeze
264  #endif /* SEAICE_SOLVE4TEMP_LEGACY */  #endif /* SEAICE_SOLVE4TEMP_LEGACY */
265  #endif /* SEAICE_VARIABLE_FREEZING_POINT */  #endif /* SEAICE_VARIABLE_FREEZING_POINT */
266            IF(HSNOW_ACTUAL(I,J).GT.0.0) THEN
267    C     Stefan-Boltzman constant times emissivity
268             D3(I,J)=SEAICE_snow_emiss*SEAICE_boltzmann
269    #ifdef EXF_LWDOWN_WITH_EMISSIVITY
270    C     This is now [(1-emiss)*lwdown - lwdown]
271             lwdownloc(I,J) = SEAICE_snow_emiss*lwdownloc(I,J)
272    #else /* use the old hard wired inconsistent value  */
273             lwdownloc(I,J) = 0.97 _d 0*lwdownloc(I,J)
274    #endif /* EXF_LWDOWN_WITH_EMISSIVITY */
275            ELSE
276    C     Stefan-Boltzman constant times emissivity
277             D3(I,J)=SEAICE_ice_emiss*SEAICE_boltzmann
278    #ifdef EXF_LWDOWN_WITH_EMISSIVITY
279    C     This is now [(1-emiss)*lwdown - lwdown]
280             lwdownloc(I,J) = SEAICE_ice_emiss*lwdownloc(I,J)
281    #else /* use the old hard wired inconsistent value  */
282             lwdownloc(I,J) = 0.97 _d 0*lwdownloc(I,J)
283    #endif /* EXF_LWDOWN_WITH_EMISSIVITY */
284            ENDIF
285         ENDDO         ENDDO
286        ENDDO        ENDDO
287    
# Line 297  C     If actual snow thickness exceeds t Line 314  C     If actual snow thickness exceeds t
314  C     snow albedo  C     snow albedo
315           IF (HSNOW_ACTUAL(I,J) .GT. HCUT) THEN           IF (HSNOW_ACTUAL(I,J) .GT. HCUT) THEN
316            ALB(I,J) = ALB_SNOW(I,J)            ALB(I,J) = ALB_SNOW(I,J)
   
317  C     otherwise, use some combination of ice and snow albedo  C     otherwise, use some combination of ice and snow albedo
318  C     (What is the source of this formulation ?)  C     (What is the source of this formulation ?)
319           ELSE           ELSE
# Line 321  C     NOW DETERMINE FIXED FORCING TERM I Line 337  C     NOW DETERMINE FIXED FORCING TERM I
337           IF(HSNOW_ACTUAL(I,J).GT.0.0) THEN           IF(HSNOW_ACTUAL(I,J).GT.0.0) THEN
338  C     NO SW PENETRATION WITH SNOW  C     NO SW PENETRATION WITH SNOW
339            A1(I,J)=(1.0 _d 0 - ALB(I,J))*SWDOWN(I,J,bi,bj)            A1(I,J)=(1.0 _d 0 - ALB(I,J))*SWDOWN(I,J,bi,bj)
340       &         +lwdownLoc(I,J)*0.97 _d 0       &         +lwdownLoc(I,J)
341       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)
342           ELSE           ELSE
343  C        SW PENETRATION UNDER ICE  C        SW PENETRATION UNDER ICE
344            A1(I,J)=(1.0 _d 0 - ALB(I,J))*SWDOWN(I,J,bi,bj)            A1(I,J)=(1.0 _d 0 - ALB(I,J))*SWDOWN(I,J,bi,bj)
345       &         *(1.0 _d 0 - XIO*EXP(-1.5 _d 0*HICE_ACTUAL(I,J)))       &         *(1.0 _d 0 - XIO*EXP(-1.5 _d 0*HICE_ACTUAL(I,J)))
346       &         +lwdownLoc(I,J)*0.97 _d 0       &         +lwdownLoc(I,J)
347       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)
348           ENDIF           ENDIF
349  #endif /* ALLOW_DOWNWARD_RADIATION */  #endif /* ALLOW_DOWNWARD_RADIATION */
# Line 335  C        SW PENETRATION UNDER ICE Line 351  C        SW PENETRATION UNDER ICE
351  #else /* SEAICE_SOLVE4TEMP_LEGACY */  #else /* SEAICE_SOLVE4TEMP_LEGACY */
352    
353  C     The longwave radiative flux convergence  C     The longwave radiative flux convergence
354           F_lwd(I,J) = - 0.97 _d 0 * lwdownLoc(I,J)           F_lwd(I,J) = - lwdownLoc(I,J)
355    
356  C     Determine the fraction of shortwave radiative flux  C     Determine the fraction of shortwave radiative flux
357  C     remaining after scattering through the snow and ice at  C     remaining after scattering through the snow and ice at
# Line 453  C     Calculate the flux terms based on Line 469  C     Calculate the flux terms based on
469            F_c(I,J)    = -effConduct(I,J)*(TB(I,J)-tsurfLoc(I,J))            F_c(I,J)    = -effConduct(I,J)*(TB(I,J)-tsurfLoc(I,J))
470            F_lh(I,J)   = D1I*UG(I,J)*(qhice(I,J)-AQH(I,J,bi,bj))            F_lh(I,J)   = D1I*UG(I,J)*(qhice(I,J)-AQH(I,J,bi,bj))
471  #ifdef SEAICE_SOLVE4TEMP_LEGACY  #ifdef SEAICE_SOLVE4TEMP_LEGACY
472            A2(I,J)=-D1*UG(I,J)*t1-D1I*UG(I,J)*qhice(I,J)-D3*t4            A2(I,J)=-D1*UG(I,J)*t1-D1I*UG(I,J)*qhice(I,J)-D3(I,J)*t4
473            A3(I,J) = 4.0 _d 0 * D3 * t3 + effConduct(I,J) + D1*UG(I,J)            A3(I,J) = 4.0 _d 0*D3(I,J)*t3 + effConduct(I,J)+D1*UG(I,J)
474  #else /* SEAICE_SOLVE4TEMP_LEGACY */  #else /* SEAICE_SOLVE4TEMP_LEGACY */
475  C     A constant for SVP derivative w.r.t TICE  C     A constant for SVP derivative w.r.t TICE
476  C         cc3t = TEN **(aa1 / t1)  C         cc3t = TEN **(aa1 / t1)
# Line 475  c     F_lh_max, cap F_lh and decouple th Line 491  c     F_lh_max, cap F_lh and decouple th
491    
492    
493  c     d(F_ia)/d(TICE)  c     d(F_ia)/d(TICE)
494            dFiDTs1 = 4.0 _d 0 * D3*t3 + effConduct(I,J) + D1*UG(I,J)            dFiDTs1 = 4.0 _d 0*D3(I,J)*t3 + effConduct(I,J) + D1*UG(I,J)
495       &         + D1I*UG(I,J)*dqhice_dTice       &         + D1I*UG(I,J)*dqhice_dTice
496    
497            F_lwu(I,J)= t4 * D3            F_lwu(I,J)= t4 * D3(I,J)
498    
499            F_sens(I,J)= D1 * UG(I,J) * (t1 - atempLoc(I,J))            F_sens(I,J)= D1 * UG(I,J) * (t1 - atempLoc(I,J))
500    
# Line 600  C              over ice specific humidit Line 616  C              over ice specific humidit
616  #endif  #endif
617    
618           F_c(I,J)  = -effConduct(I,J) * (TB(I,J) - t1)           F_c(I,J)  = -effConduct(I,J) * (TB(I,J) - t1)
619           F_lwu(I,J)   = t4 * D3           F_lwu(I,J)   = t4 * D3(I,J)
620           F_sens(I,J)  = D1 * UG(I,J) * (t1 - atempLoc(I,J))           F_sens(I,J)  = D1 * UG(I,J) * (t1 - atempLoc(I,J))
621    
622  C              The flux between the ice/snow surface and the atmosphere.  C              The flux between the ice/snow surface and the atmosphere.
# Line 619  Cgf no additional dependency through sol Line 635  Cgf no additional dependency through sol
635           t4 = t2*t2           t4 = t2*t2
636           qhice(I,J)=QS1*(C1*t4+C2*t3 +C3*t2+C4*t1+C5)           qhice(I,J)=QS1*(C1*t4+C2*t3 +C3*t2+C4*t1+C5)
637    
638           A1(I,J)=0.3 _d 0 *SWDOWN(I,J,bi,bj)+lwdownLoc(I,J)*0.97 _d 0           A1(I,J)=0.3 _d 0 *SWDOWN(I,J,bi,bj)+lwdownLoc(I,J)
639       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)       &         +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)
640           A2(I,J)=-D1*UG(I,J)*t1-D1I*UG(I,J)*qhice(I,J)-D3*t4           A2(I,J)=-D1*UG(I,J)*t1-D1I*UG(I,J)*qhice(I,J)-D3(I,J)*t4
641    
642           F_ia(I,J)=-A1(I,J)-A2(I,J)           F_ia(I,J)=-A1(I,J)-A2(I,J)
643           IcePenetSWFlux(I,J)= 0. _d 0           IcePenetSWFlux(I,J)= 0. _d 0

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22