/[lmdze]/trunk/phylmd/Interface_surf/albsno.f
ViewVC logotype

Diff of /trunk/phylmd/Interface_surf/albsno.f

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

trunk/phylmd/albsno.f revision 116 by guez, Thu Dec 4 16:35:03 2014 UTC trunk/phylmd/Interface_surf/albsno.f revision 305 by guez, Tue Sep 11 11:08:38 2018 UTC
# Line 6  module albsno_m Line 6  module albsno_m
6    
7  contains  contains
8    
9    SUBROUTINE albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow)    SUBROUTINE albsno(agesno, alb_neig, snow_fall)
10    
11      INTEGER klon, knon      use comconst, only: dtphys
     REAL dtime  
     REAL, DIMENSION(klon):: alb_neig_grid, agesno, precip_snow  
12    
13      ! Local:      REAL, intent(inout):: agesno(:) ! (knon)
14        real, intent(out):: alb_neig(:) ! (knon)
15      INTEGER, PARAMETER :: nvm = 8      real, intent(in):: snow_fall(:) !(knon)
     REAL veget(klon, nvm)  
   
     INTEGER i, nv  
   
     REAL init(nvm), decay(nvm)  
     REAL as  
     DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./  
     DATA decay /0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./  
16    
17      !------------------------------------------------------------------------      !------------------------------------------------------------------------
18    
19      veget = 0.      ! D\'esert partout:
20      veget(:, 1) = 1. ! desert partout      alb_neig = 0.55 + 0.3 * EXP(- agesno / 5.)
21      DO i = 1, knon  
22         alb_neig_grid(i) = 0.0      ! Modulation en fonction de l'\^age de la neige :
23      ENDDO      agesno = max((agesno + (1. - agesno / 50.) * dtphys / 86400.) &
24      DO nv = 1, nvm           * EXP(- MAX(0., snow_fall) * dtphys / 0.3), 0.)
        DO i = 1, knon  
           as = init(nv)+decay(nv)*EXP(-agesno(i)/5.)  
           alb_neig_grid(i) = alb_neig_grid(i) + veget(i, nv)*as  
        ENDDO  
     ENDDO  
   
     !! modilation en fonction de l'age de la neige  
   
     DO i = 1, knon  
        agesno(i) = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)&  
             & * EXP(-1.*MAX(0.0, precip_snow(i))*dtime/0.3)  
        agesno(i) = MAX(agesno(i), 0.0)  
     ENDDO  
25    
26    END SUBROUTINE albsno    END SUBROUTINE albsno
27    

Legend:
Removed from v.116  
changed lines
  Added in v.305

  ViewVC Help
Powered by ViewVC 1.1.21