/[MITgcm]/MITgcm/pkg/land/land_stepfwd.F
ViewVC logotype

Diff of /MITgcm/pkg/land/land_stepfwd.F

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

revision 1.2 by jmc, Thu Mar 11 14:42:00 2004 UTC revision 1.6 by jmc, Thu Jun 3 16:43:14 2004 UTC
# Line 44  C     == Local variables == Line 44  C     == Local variables ==
44  C     i,j,k        :: loop counters  C     i,j,k        :: loop counters
45  C     kp1          :: k+1  C     kp1          :: k+1
46  C     grd_HeatCp   :: Heat capacity of the ground [J/m3/K]  C     grd_HeatCp   :: Heat capacity of the ground [J/m3/K]
47    C     enthalpGrdW  :: enthalpy of ground water [J/m3]
48  C     fieldCapac   :: field capacity (of water) [m]  C     fieldCapac   :: field capacity (of water) [m]
49  C     mWater       :: water content of the ground [kg/m3]  C     mWater       :: water content of the ground [kg/m3]
50  C     fractRunOff  :: fraction of water in excess which leaves as runoff  C     groundWnp1   :: hold temporary future soil moisture []
51  C     grdWexcess   :: ground water in excess [m/s]  C     grdWexcess   :: ground water in excess [m/s]
52  C     groundWnp1   :: hold temporary future soil moisture  C     fractRunOff  :: fraction of water in excess which leaves as runoff
 C     enthalpGrdW  :: enthalpy of ground water [J/m3]  
53  C     flxkup       :: downward flux of water, upper interface (k-1,k)  C     flxkup       :: downward flux of water, upper interface (k-1,k)
54  C     flxdwn       :: downward flux of water, lower interface (k,k+1)  C     flxdwn       :: downward flux of water, lower interface (k,k+1)
55  C     flxEng       :: downward energy flux associated with water flux  C     flxEngU      :: downward energy flux associated with water flux (W/m2)
56    C                     upper interface (k-1,k)
57    C     flxEngL      :: downward energy flux associated with water flux (W/m2)
58    C                     lower interface (k,k+1)
59  C     temp_af      :: ground temperature if above freezing  C     temp_af      :: ground temperature if above freezing
60  C     temp_bf      :: ground temperature if below freezing  C     temp_bf      :: ground temperature if below freezing
61  C     mPmE         :: hold temporary (liquid) Precip minus Evap [kg/m2/s]  C     mPmE         :: hold temporary (liquid) Precip minus Evap [kg/m2/s]
# Line 62  C     mSnow        :: mass of snow Line 65  C     mSnow        :: mass of snow
65  C     dMsn         :: mass of melting snow [kg/m2]  C     dMsn         :: mass of melting snow [kg/m2]
66  C     snowPrec     :: snow precipitation [kg/m2/s]  C     snowPrec     :: snow precipitation [kg/m2/s]
67  C     hNewSnow     :: fresh snow accumulation [m]  C     hNewSnow     :: fresh snow accumulation [m]
68    C     dhSnowMx     :: potential snow increase [m]
69    C     dhSnow       :: effective snow increase [m]
70    C     mIceDt       :: ground-ice growth rate (<- excess of snow) [kg/m2/s]
71  C     ageFac       :: snow aging factor [1]  C     ageFac       :: snow aging factor [1]
72        _RL grd_HeatCp, fieldCapac, mWater        _RL grd_HeatCp, enthalpGrdW
73        _RL fractRunOff, grdWexcess, groundWnp1, enthalpGrdW        _RL fieldCapac, mWater
74          _RL groundWnp1, grdWexcess, fractRunOff
75        _RL flxkup(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL flxkup(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
76        _RL flxkdw(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL flxkdw(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
77        _RL flxEng(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL flxEngU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
78        _RL temp_af, temp_bf, mPmE, enWfx, enGr1        _RL flxEngL, temp_af, temp_bf, mPmE, enWfx, enGr1
79        _RL mSnow, dMsn, snowPrec, hNewSnow, ageFac        _RL mSnow, dMsn, snowPrec  
80          _RL hNewSnow, dhSnowMx, dhSnow, mIceDt, ageFac
81        INTEGER i,j,k,kp1        INTEGER i,j,k,kp1
82    
83    #ifdef LAND_DEBUG
84          LOGICAL dBug
85          INTEGER iprt,jprt,lprt
86          DATA iprt, jprt , lprt / 19 , 20 , 6 /
87     1010 FORMAT(A,I3,1P4E11.3)
88    #endif
89    
90        IF (land_calc_grT .AND. .NOT.land_impl_grT ) THEN        IF (land_calc_grT .AND. .NOT.land_impl_grT ) THEN
91  C--   Step forward ground temperature:  C--   Step forward ground temperature:
92    
# Line 115  C--   step forward ground temperature: e Line 130  C--   step forward ground temperature: e
130    
131  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
132    
133          IF ( land_calc_grW .OR. land_calc_snow ) THEN
134    C--   Initialize run-off arrays.
135            DO j=1,sNy
136             DO i=1,sNx
137               land_runOff(i,j,bi,bj) = 0. _d 0
138               land_enRnOf(i,j,bi,bj) = 0. _d 0
139             ENDDO
140            ENDDO
141          ENDIF
142    
143  #ifdef LAND_OLD_VERSION  #ifdef LAND_OLD_VERSION
144        IF ( .TRUE. ) THEN        IF ( .TRUE. ) THEN
145  #else  #else
146        IF ( land_calc_snow ) THEN        IF ( land_calc_grW ) THEN
147  #endif  #endif
148  C--   need (later on) ground temp. to be consistent with updated enthalpy:  C--   need (later on) ground temp. to be consistent with updated enthalpy:
149          DO k=1,land_nLev          DO k=1,land_nLev
# Line 127  C--   need (later on) ground temp. to be Line 152  C--   need (later on) ground temp. to be
152             IF ( land_frc(i,j,bi,bj).GT.0. ) THEN             IF ( land_frc(i,j,bi,bj).GT.0. ) THEN
153              mWater = land_rhoLiqW*land_waterCap              mWater = land_rhoLiqW*land_waterCap
154       &              *land_groundW(i,j,k,bi,bj)       &              *land_groundW(i,j,k,bi,bj)
155                mWater = MAX( mWater, 0. _d 0 )
156              grd_HeatCp = land_heatCs + land_CpWater*mWater              grd_HeatCp = land_heatCs + land_CpWater*mWater
157              temp_bf = (land_enthalp(i,j,k,bi,bj)+land_Lfreez*mWater)              temp_bf = (land_enthalp(i,j,k,bi,bj)+land_Lfreez*mWater)
158       &                                           / grd_HeatCp       &                                           / grd_HeatCp
159              temp_af =  land_enthalp(i,j,k,bi,bj) / grd_HeatCp              temp_af =  land_enthalp(i,j,k,bi,bj) / grd_HeatCp
160              land_groundT(i,j,k,bi,bj) =              land_groundT(i,j,k,bi,bj) =
161       &              MIN( temp_bf, MAX(temp_af, 0. _d 0) )       &              MIN( temp_bf, MAX(temp_af, 0. _d 0) )
162    #ifdef LAND_DEBUG
163                dBug = bi.eq.lprt .AND. i.EQ.iprt .AND. j.EQ.jprt
164                IF (dBug) write(6,1010)
165         &        'LAND_STEPFWD: k,temp,af,bf=',
166         &       k,land_groundT(i,j,k,bi,bj),temp_af,temp_bf
167    #endif
168             ENDIF             ENDIF
169            ENDDO            ENDDO
170           ENDDO           ENDDO
# Line 148  C--   Step forward Snow thickness (also Line 180  C--   Step forward Snow thickness (also
180             mPmE  = land_Pr_m_Ev(i,j,bi,bj)             mPmE  = land_Pr_m_Ev(i,j,bi,bj)
181             enWfx = land_EnWFlux(i,j,bi,bj)             enWfx = land_EnWFlux(i,j,bi,bj)
182             enGr1 = land_enthalp(i,j,1,bi,bj)*land_dzF(1)             enGr1 = land_enthalp(i,j,1,bi,bj)*land_dzF(1)
183    #ifdef LAND_DEBUG
184               dBug = bi.eq.lprt .AND. i.EQ.iprt .AND. j.EQ.jprt
185               IF (dBug) write(6,1010)
186         &       'LAND_STEPFWD:mPmE,enWfx,enGr1/dt,hSnow=',0,
187         &       mPmE,enWfx,enGr1/land_deltaT,land_hSnow(i,j,bi,bj)
188    #endif
189  C-    snow aging:  C-    snow aging:
190             land_snowAge(i,j,bi,bj) =             land_snowAge(i,j,bi,bj) =
191       &         ( land_deltaT + land_snowAge(i,j,bi,bj)*ageFac )       &         ( land_deltaT + land_snowAge(i,j,bi,bj)*ageFac )
192             IF ( enWfx.LT.0. ) THEN             IF ( enWfx.LT.0. ) THEN
193  C-    snow precip in excess (Snow > Evap) :  C-    snow precip in excess ( > Evap of snow) or snow prec & Evap of Liq.Water:
194  C     => start to melt (until ground at freezing point) and then accumulate  C     => start to melt (until ground at freezing point) and then accumulate
195              snowPrec = -enWfx -MAX( enGr1/land_deltaT, 0. _d 0 )              snowPrec = -enWfx -MAX( enGr1/land_deltaT, 0. _d 0 )
196              snowPrec = MAX( snowPrec*recip_Lfreez , 0. _d 0 )  C-    snow accumulation cannot be larger that net precip
197                snowPrec = MAX( 0. _d 0 ,
198         &                      MIN( snowPrec*recip_Lfreez, mPmE ) )
199              mPmE = mPmE - snowPrec              mPmE = mPmE - snowPrec
200              flxEng(i,j) = enWfx + land_Lfreez*snowPrec              flxEngU(i,j) = enWfx + land_Lfreez*snowPrec
201              hNewSnow = land_deltaT * snowPrec / land_rhoSnow              hNewSnow = land_deltaT * snowPrec / land_rhoSnow
             land_hSnow(i,j,bi,bj) = land_hSnow(i,j,bi,bj) + hNewSnow  
202  C-    refresh snow age:  C-    refresh snow age:
203              land_snowAge(i,j,bi,bj) = land_snowAge(i,j,bi,bj)              land_snowAge(i,j,bi,bj) = land_snowAge(i,j,bi,bj)
204       &                          *EXP( -hNewSnow/hNewSnowAge )       &                          *EXP( -hNewSnow/hNewSnowAge )
205    C-    update snow thickness:
206    c           land_hSnow(i,j,bi,bj) = land_hSnow(i,j,bi,bj) + hNewSnow
207    C     glacier & ice-sheet missing: excess of snow put directly into run-off
208                dhSnowMx = MAX( 0. _d 0,
209         &                      land_hMaxSnow - land_hSnow(i,j,bi,bj) )
210                dhSnow = MIN( hNewSnow, dhSnowMx )
211                land_hSnow(i,j,bi,bj) = land_hSnow(i,j,bi,bj) + dhSnow
212                mIceDt = land_rhoSnow * (hNewSnow-dhSnow) / land_deltaT
213                land_runOff(i,j,bi,bj) = mIceDt/land_rhoLiqW
214                land_enRnOf(i,j,bi,bj) = -mIceDt*land_Lfreez
215    #ifdef LAND_DEBUG
216                IF (dBug) write(6,1010)
217         &        'LAND_STEPFWD: 3,snP,mPmE,hNsnw,hSnw=',
218         &         3,snowPrec,mPmE,hNewSnow,land_hSnow(i,j,bi,bj)
219    #endif
220             ELSE             ELSE
221  C-    rain precip (whatever Evap is) or Evap exceeds snow precip :  C-    rain precip (whatever Evap is) or Evap of snow exceeds snow precip:
222  C     => snow melts or sublimates  C     => snow melts or sublimates
223  c           snowMelt = MIN( enWfx*recip_Lfreez ,  c           snowMelt = MIN( enWfx*recip_Lfreez ,
224  c    &                 land_hSnow(i,j,bi,bj)*land_rhoSnow/land_deltaT )  c    &                 land_hSnow(i,j,bi,bj)*land_rhoSnow/land_deltaT )
# Line 173  c    &                 land_hSnow(i,j,bi Line 227  c    &                 land_hSnow(i,j,bi
227              IF ( dMsn .GE. mSnow ) THEN              IF ( dMsn .GE. mSnow ) THEN
228                dMsn = mSnow                dMsn = mSnow
229                land_hSnow(i,j,bi,bj) = 0. _d 0                land_hSnow(i,j,bi,bj) = 0. _d 0
230                flxEng(i,j) = enWfx - land_Lfreez*mSnow/land_deltaT                flxEngU(i,j) = enWfx - land_Lfreez*mSnow/land_deltaT
231              ELSE              ELSE
232                flxEng(i,j) = 0. _d 0                flxEngU(i,j) = 0. _d 0
233                land_hSnow(i,j,bi,bj) = land_hSnow(i,j,bi,bj)                land_hSnow(i,j,bi,bj) = land_hSnow(i,j,bi,bj)
234       &                              - dMsn / land_rhoSnow       &                              - dMsn / land_rhoSnow
235              ENDIF              ENDIF
236  c           IF (mPmE.GT.0.) land_snowAge(i,j,bi,bj) = timeSnowAge  c           IF (mPmE.GT.0.) land_snowAge(i,j,bi,bj) = timeSnowAge
237              mPmE = mPmE + dMsn/land_deltaT              mPmE = mPmE + dMsn/land_deltaT
238    #ifdef LAND_DEBUG
239                IF (dBug) write(6,1010)
240         &        'LAND_STEPFWD: 4,dMsn,mPmE,hSnw,enWfx=',
241         &         4,dMsn,mPmE,land_hSnow(i,j,bi,bj),flxEngU(i,j)
242    #endif
243             ENDIF             ENDIF
244             flxkup(i,j) = mPmE/land_rhoLiqW             flxkup(i,j) = mPmE/land_rhoLiqW
245  c          land_Pr_m_Ev(i,j,bi,bj) = mPmE  c          land_Pr_m_Ev(i,j,bi,bj) = mPmE
# Line 199  c          ENDIF Line 258  c          ENDIF
258          DO j=1,sNy          DO j=1,sNy
259           DO i=1,sNx           DO i=1,sNx
260             flxkup(i,j) = land_Pr_m_Ev(i,j,bi,bj)/land_rhoLiqW             flxkup(i,j) = land_Pr_m_Ev(i,j,bi,bj)/land_rhoLiqW
261             flxEng(i,j) = 0. _d 0             flxEngU(i,j) = 0. _d 0
262           ENDDO           ENDDO
263          ENDDO          ENDDO
264        ENDIF        ENDIF
# Line 219  C--   Step forward ground Water: Line 278  C--   Step forward ground Water:
278         ENDIF         ENDIF
279         fieldCapac = land_waterCap*land_dzF(k)         fieldCapac = land_waterCap*land_dzF(k)
280    
        IF (k.EQ.1) THEN  
         DO j=1,sNy  
          DO i=1,sNx  
            land_runOff(i,j,bi,bj) = 0. _d 0  
            land_enRnOf(i,j,bi,bj) = 0. _d 0  
          ENDDO  
         ENDDO  
        ELSE  
         DO j=1,sNy  
          DO i=1,sNx  
            flxkup(i,j) = flxkdw(i,j)  
          ENDDO  
         ENDDO  
        ENDIF  
   
281         DO j=1,sNy         DO j=1,sNy
282          DO i=1,sNx          DO i=1,sNx
283           IF ( land_frc(i,j,bi,bj).GT.0. ) THEN           IF ( land_frc(i,j,bi,bj).GT.0. ) THEN
284    #ifdef LAND_DEBUG
285              dBug = bi.eq.lprt .AND. i.EQ.iprt .AND. j.EQ.jprt
286    #endif
287    
288    #ifdef LAND_OLD_VERSION
289              IF ( .TRUE. ) THEN
290               IF ( k.EQ.land_nLev ) THEN
291    #else
292              IF ( land_groundT(i,j,k,bi,bj).LT.0. _d 0 ) THEN
293    C-     Frozen level: only account for upper level fluxes
294               IF ( flxkup(i,j) .LT. 0. _d 0 ) THEN
295    C-     Step forward soil moisture (& enthapy), level k :
296                land_groundW(i,j,k,bi,bj) = land_groundW(i,j,k,bi,bj)
297         &       + land_deltaT * flxkup(i,j) / fieldCapac
298                IF ( land_calc_snow )
299         &      land_enthalp(i,j,k,bi,bj) = land_enthalp(i,j,k,bi,bj)
300         &       + land_deltaT * flxEngU(i,j) / land_dzF(k)
301               ELSE
302    C-     Frozen level: incoming water flux goes directly into run-off
303                land_runOff(i,j,bi,bj) = land_runOff(i,j,bi,bj)
304         &                             + flxkup(i,j)
305                land_enRnOf(i,j,bi,bj) = land_enRnOf(i,j,bi,bj)
306         &                             + flxEngU(i,j)
307               ENDIF
308    C-     prepare fluxes for next level:
309               flxkup(i,j)  = 0. _d 0
310               flxEngU(i,j) = 0. _d 0
311    
312              ELSE
313    
314    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
315  C-     Diffusion flux of water, lower interface (k,k+1):  C-     Diffusion flux of water, lower interface (k,k+1):
316            flxkdw(i,j) = fieldCapac*             IF ( k.EQ.land_nLev .OR.
317       &                ( land_groundW(i,j,k,bi,bj)       &         land_groundT(i,j,kp1,bi,bj).LT.0. _d 0 ) THEN
318       &                 -land_groundW(i,j,kp1,bi,bj) )  #endif /* LAND_OLD_VERSION */
319       &                / land_wTauDiff  C-     no Diffusion of water if one level is frozen :
320                 flxkdw(i,j) = 0. _d 0
321                 flxEngL =     0. _d 0
322               ELSE
323                 flxkdw(i,j) = fieldCapac*
324         &                   ( land_groundW(i,j,k,bi,bj)
325         &                    -land_groundW(i,j,kp1,bi,bj) )
326         &                   / land_wTauDiff
327    C-     energy flux associated with water flux: take upwind Temp
328                 IF ( flxkdw(i,j).GE.0. ) THEN
329                  flxEngL = flxkdw(i,j)*land_rhoLiqW*land_CpWater
330         &                 *land_groundT(i,j,k,bi,bj)
331                 ELSE
332                  flxEngL = flxkdw(i,j)*land_rhoLiqW*land_CpWater
333         &                 *land_groundT(i,j,kp1,bi,bj)
334                 ENDIF
335               ENDIF
336    
337  C-     Step forward soil moisture, level k :  C-     Step forward soil moisture, level k :
338            groundWnp1 = land_groundW(i,j,k,bi,bj)             groundWnp1 = land_groundW(i,j,k,bi,bj)
339       &       + land_deltaT * (flxkup(i,j)-flxkdw(i,j)) / fieldCapac       &       + land_deltaT * (flxkup(i,j)-flxkdw(i,j)) / fieldCapac
340            land_groundW(i,j,k,bi,bj) = MIN(1. _d 0, groundWnp1)  
341    #ifdef LAND_DEBUG
342               IF(dBug)write(6,1010)'LAND_STEPFWD: grdW-1,fx_ku,kd,grdW-1='
343         &      ,5,land_groundW(i,j,k,bi,bj)-1.,
344         &         flxkup(i,j),flxkdw(i,j),groundWnp1-1.
345    #endif
346    
347    C-     Water in excess will leave as run-off or go to level below
348               land_groundW(i,j,k,bi,bj) = MIN(1. _d 0, groundWnp1)
349               grdWexcess = ( groundWnp1 - MIN(1. _d 0, groundWnp1) )
350         &                 *fieldCapac/land_deltaT
351    
352  C-     Run off: fraction 1-fractRunOff enters level below  C-     Run off: fraction 1-fractRunOff enters level below
353            grdWexcess = ( groundWnp1 - MIN(1. _d 0, groundWnp1) )             land_runOff(i,j,bi,bj) = land_runOff(i,j,bi,bj)
354       &                *fieldCapac/land_deltaT       &                        + fractRunOff*grdWexcess
           land_runOff(i,j,bi,bj) = land_runOff(i,j,bi,bj)  
      &                           + fractRunOff*grdWexcess  
   
           IF ( land_calc_snow ) THEN  
 C-     account for water fluxes in energy budget:  
            enthalpGrdW = land_enthalp(i,j,k,bi,bj)  
      &                 - land_heatCs*land_groundT(i,j,k,bi,bj)  
            land_enRnOf(i,j,bi,bj) = land_enRnOf(i,j,bi,bj)  
      &                            + fractRunOff*grdWexcess*enthalpGrdW  
            land_enthalp(i,j,k,bi,bj) = land_enthalp(i,j,k,bi,bj)  
      &          + ( flxEng(i,j) - (flxkdw(i,j)+grdWexcess)*enthalpGrdW  
      &            )*land_deltaT/land_dzF(k)  
           ELSE  
            enthalpGrdW = 0. _d 0  
           ENDIF  
355  C-     prepare fluxes for next level:  C-     prepare fluxes for next level:
356            flxkdw(i,j) = flxkdw(i,j)             flxkup(i,j) = flxkdw(i,j)
357       &                + (1. _d 0-fractRunOff)*grdWexcess       &              + (1. _d 0-fractRunOff)*grdWexcess
358            flxEng(i,j) = flxkdw(i,j)*enthalpGrdW  
359               IF ( land_calc_snow ) THEN
360                enthalpGrdW = land_rhoLiqW*land_CpWater
361         &                   *land_groundT(i,j,k,bi,bj)
362    C--    Account for water fluxes in energy budget: update ground Enthalpy
363                land_enthalp(i,j,k,bi,bj) = land_enthalp(i,j,k,bi,bj)
364         &         + ( flxEngU(i,j) - flxEngL - grdWexcess*enthalpGrdW
365         &           )*land_deltaT/land_dzF(k)
366    
367                land_enRnOf(i,j,bi,bj) = land_enRnOf(i,j,bi,bj)
368         &                        + fractRunOff*grdWexcess*enthalpGrdW
369    C-     prepare fluxes for next level:
370                flxEngU(i,j) = flxEngL
371         &              + (1. _d 0-fractRunOff)*grdWexcess*enthalpGrdW
372               ENDIF
373    #ifdef LAND_DEBUG
374               IF (dBug) write(6,1010) 'LAND_STEPFWD: Temp,FlxE,FlxW=',
375         &      7, land_groundT(i,j,k,bi,bj), flxEngU(i,j), flxkup(i,j)
376    #endif
377              ENDIF
378    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
379    #ifdef LAND_DEBUG
380               IF (dBug) write(6,1010) 'LAND_STEPFWD: RO,enRO=',
381         &      8, land_runOff(i,j,bi,bj),land_enRnOf(i,j,bi,bj)
382    #endif
383    
384           ENDIF           ENDIF
385          ENDDO          ENDDO
# Line 281  C--   step forward ground Water: end Line 391  C--   step forward ground Water: end
391    
392  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
393    
394        IF (land_calc_grT ) THEN        IF ( land_calc_grT ) THEN
395  C--   Compute ground temperature from enthalpy :  C--   Compute ground temperature from enthalpy (if not already done):
396    
397         DO k=1,land_nLev         DO k=1,land_nLev
398          DO j=1,sNy          DO j=1,sNy
# Line 290  C--   Compute ground temperature from en Line 400  C--   Compute ground temperature from en
400  C-     Ground Heat capacity, layer k:  C-     Ground Heat capacity, layer k:
401            mWater = land_rhoLiqW*land_waterCap            mWater = land_rhoLiqW*land_waterCap
402       &            *land_groundW(i,j,k,bi,bj)       &            *land_groundW(i,j,k,bi,bj)
403              mWater = MAX( mWater, 0. _d 0 )
404            grd_HeatCp = land_heatCs + land_CpWater*mWater            grd_HeatCp = land_heatCs + land_CpWater*mWater
405  C         temperature below freezing:  C         temperature below freezing:
406            temp_bf = (land_enthalp(i,j,k,bi,bj)+land_Lfreez*mWater)            temp_bf = (land_enthalp(i,j,k,bi,bj)+land_Lfreez*mWater)

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22