source: LMDZ6/trunk/libf/phylmd/albsno_mod.f90

Last change on this file was 6048, checked in by fhourdin, 6 weeks ago

Renommage des nom de fichiers incluant des modules

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1!
2! $Header$
3!
4MODULE albsno_mod
5
6CONTAINS
7
8SUBROUTINE albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow)
9!$gpum horizontal knon klon
10  USE clesphys_mod_h
11  IMPLICIT NONE
12
13
14! Input arguments
15!****************************************************************************************
16  INTEGER, INTENT(IN)                  :: klon, knon
17  REAL, INTENT(IN)                     :: dtime
18  REAL, DIMENSION(klon), INTENT(IN)    :: precip_snow
19
20! In/Output arguments
21!****************************************************************************************
22  REAL, DIMENSION(klon), INTENT(INOUT) :: agesno
23
24! Output arguments
25!****************************************************************************************
26  REAL, DIMENSION(klon), INTENT(OUT)   :: alb_neig_grid
27
28! Local variables
29!****************************************************************************************
30  INTEGER                              :: i, nv
31  INTEGER, PARAMETER                   :: nvm = 8
32  REAL                                 :: as
33  REAL, DIMENSION(klon,nvm)            :: veget
34  REAL, DIMENSION(nvm)       :: init 
35  REAL, DIMENSION(nvm)       :: decay
36
37!****************************************************************************************
38  init  = (/0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./)
39  decay = (/0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./)
40
41  if (albsno0>=0.) then
42     init(:)=albsno0
43     decay(:)=0.
44  endif
45
46  veget = 0.
47  veget(:,1) = 1.     ! desert partout
48  DO i = 1, knon
49     alb_neig_grid(i) = 0.0
50  ENDDO
51  DO nv = 1, nvm
52     DO i = 1, knon
53        as = init(nv)+decay(nv)*EXP(-agesno(i)/5.)
54        alb_neig_grid(i) = alb_neig_grid(i) + veget(i,nv)*as
55     ENDDO
56  ENDDO
57 
58
59! modilation en fonction de l'age de la neige
60  DO i = 1, knon
61     agesno(i)  = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)&
62          &             * EXP(-1.*MAX(0.0,precip_snow(i))*dtime/0.3)
63     agesno(i) =  MAX(agesno(i),0.0)
64  ENDDO
65 
66END SUBROUTINE albsno
67
68END MODULE albsno_mod
Note: See TracBrowser for help on using the repository browser.