source: LMDZ5/trunk/libf/phylmd/albsno.F90 @ 1905

Last change on this file since 1905 was 1894, checked in by idelkadi, 11 years ago

1) Patchs for idealized terra- and aqua-planets simulations.
ablsno.F90, imposing snow albedo at albsno0 if >= 0. (default val. : -1)
pbl_surface_mod.F90 : zero evaporation if either qsol0 (for terra-planets) or

evap0 (for aqua-planets) = 0.

2) New flag iflag_fisrtilp_qsat=0/1 for fisrtilp.F90, fisrtilp.h:

temperature dependency of qsat for iterative procedure
temporary flag to switch between the old (CMIP5, =0) and new versions (=1) versions :
zcond(i) = MAX(0.0,zqn(i)-zqs(i))/(1.+iflag_fisrtilp_qsat*zdqs(i))
=1 should be avoided because it creates significant supersaturation.
Both options are wrong (ongoing work ...)

clesphys.h, conf_phys_m.F90 : new parameters, iflag_fisrtilp_qsat, albsno0 and evap0

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.9 KB
Line 
1!
2! $Header$
3!
4SUBROUTINE albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow)
5
6  IMPLICIT NONE
7
8  INCLUDE "clesphys.h"
9
10! Input arguments
11!****************************************************************************************
12  INTEGER, INTENT(IN)                  :: klon, knon
13  REAL, INTENT(IN)                     :: dtime
14  REAL, DIMENSION(klon), INTENT(IN)    :: precip_snow
15
16! In/Output arguments
17!****************************************************************************************
18  REAL, DIMENSION(klon), INTENT(INOUT) :: agesno
19
20! Output arguments
21!****************************************************************************************
22  REAL, DIMENSION(klon), INTENT(OUT)   :: alb_neig_grid
23
24! Local variables
25!****************************************************************************************
26  INTEGER                              :: i, nv
27  INTEGER, PARAMETER                   :: nvm = 8
28  REAL                                 :: as
29  REAL, DIMENSION(klon,nvm)            :: veget
30  REAL, DIMENSION(nvm),SAVE            :: init, decay
31  !$OMP THREADPRIVATE(init, decay)
32
33  DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./
34  DATA decay/0.30, 0.67, 0.63, 0.45, 0.40, 0.14, 0.06, 1./
35!****************************************************************************************
36
37  if (albsno0>=0.) then
38     init(:)=albsno0
39     decay(:)=0.
40  endif
41
42  veget = 0.
43  veget(:,1) = 1.     ! desert partout
44  DO i = 1, knon
45     alb_neig_grid(i) = 0.0
46  ENDDO
47  DO nv = 1, nvm
48     DO i = 1, knon
49        as = init(nv)+decay(nv)*EXP(-agesno(i)/5.)
50        alb_neig_grid(i) = alb_neig_grid(i) + veget(i,nv)*as
51     ENDDO
52  ENDDO
53 
54
55! modilation en fonction de l'age de la neige
56  DO i = 1, knon
57     agesno(i)  = (agesno(i) + (1.-agesno(i)/50.)*dtime/86400.)&
58          &             * EXP(-1.*MAX(0.0,precip_snow(i))*dtime/0.3)
59     agesno(i) =  MAX(agesno(i),0.0)
60  ENDDO
61 
62END SUBROUTINE albsno
Note: See TracBrowser for help on using the repository browser.