/[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

revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC revision 116 by guez, Thu Dec 4 16:35:03 2014 UTC
# Line 1  Line 1 
1  module albsno_m  module albsno_m
2    
3    ! From phylmd/interface_surf.F90,v 1.8 2005/05/25 13:10:09    ! From phylmd/interface_surf.F90, version 1.8 2005/05/25 13:10:09
4    
5    IMPLICIT none    IMPLICIT none
6    
7  contains  contains
8    
9    SUBROUTINE albsno(klon, knon,dtime,agesno,alb_neig_grid, precip_snow)    SUBROUTINE albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow)
10    
11        INTEGER klon, knon
12        REAL dtime
13        REAL, DIMENSION(klon):: alb_neig_grid, agesno, precip_snow
14    
15        ! Local:
16    
     INTEGER :: klon, knon  
17      INTEGER, PARAMETER :: nvm = 8      INTEGER, PARAMETER :: nvm = 8
18      REAL   :: dtime      REAL veget(klon, nvm)
     REAL, dimension(klon,nvm) :: veget  
     REAL, DIMENSION(klon) :: alb_neig_grid, agesno, precip_snow  
19    
20      INTEGER :: i, nv      INTEGER i, nv
21    
22      REAL, DIMENSION(nvm),SAVE :: init, decay      REAL init(nvm), decay(nvm)
23      REAL :: as      REAL as
24      DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./      DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./
25      DATA decay/0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./      DATA decay /0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./
26    
27        !------------------------------------------------------------------------
28    
29      veget = 0.      veget = 0.
30      veget(:,1) = 1.     ! desert partout      veget(:, 1) = 1. ! desert partout
31      DO i = 1, knon      DO i = 1, knon
32         alb_neig_grid(i) = 0.0         alb_neig_grid(i) = 0.0
33      ENDDO      ENDDO
34      DO nv = 1, nvm      DO nv = 1, nvm
35         DO i = 1, knon         DO i = 1, knon
36            as = init(nv)+decay(nv)*EXP(-agesno(i)/5.)            as = init(nv)+decay(nv)*EXP(-agesno(i)/5.)
37            alb_neig_grid(i) = alb_neig_grid(i) + veget(i,nv)*as            alb_neig_grid(i) = alb_neig_grid(i) + veget(i, nv)*as
38         ENDDO         ENDDO
39      ENDDO      ENDDO
40      !  
41      !! modilation en fonction de l'age de la neige      !! modilation en fonction de l'age de la neige
42      !  
43      DO i = 1, knon      DO i = 1, knon
44         agesno(i)  = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)&         agesno(i) = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)&
45              &             * EXP(-1.*MAX(0.0,precip_snow(i))*dtime/0.3)              & * EXP(-1.*MAX(0.0, precip_snow(i))*dtime/0.3)
46         agesno(i) =  MAX(agesno(i),0.0)         agesno(i) = MAX(agesno(i), 0.0)
47      ENDDO      ENDDO
48    
49    END SUBROUTINE albsno    END SUBROUTINE albsno

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

  ViewVC Help
Powered by ViewVC 1.1.21