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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 68 - (hide annotations)
Wed Nov 14 16:59:30 2012 UTC (11 years, 6 months ago) by guez
Original Path: trunk/libf/phylmd/albsno.f90
File size: 1178 byte(s)
Split "flincom.f90" into "flinclo.f90", "flinfindcood.f90",
"flininfo.f90" and "flinopen_nozoom.f90", in directory
"IOIPSL/Flincom".

Renamed "etat0_lim" to "ce0l", as in LMDZ.

Split "readsulfate.f" into "readsulfate.f90", "readsulfate_preind.f90"
and "getso4fromfile.f90".

In etat0, renamed variable q3d to q, as in "dynredem1". Replaced calls
to Flicom procedures by calls to NetCDF95.

In leapfrog, added call to writehist.

Extracted ASCII art from "grid_noro" into a file
"grid_noro.txt". Transformed explicit-shape local arrays into
automatic arrays, so that test on values of iim and jjm is no longer
needed. Test on weight:
          IF (weight(ii, jj) /= 0.) THEN
is useless. There is already a test before:
    if (any(weight == 0.)) stop "zero weight in grid_noro"

In "aeropt", replaced duplicated lines with different values of inu by
a loop on inu.

Removed arguments of "conf_phys". Corresponding variables are now
defined in "physiq", in a namelist. In "conf_phys", read a namelist
instead of using getin.

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

  ViewVC Help
Powered by ViewVC 1.1.21