/[lmdze]/trunk/libf/phylmd/albsno.f90
ViewVC logotype

Contents of /trunk/libf/phylmd/albsno.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 68 - (show annotations)
Wed Nov 14 16:59:30 2012 UTC (11 years, 6 months ago) by guez
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 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