LMDZ
icefrac_lsc_mod.F90
Go to the documentation of this file.
1 !
2 ! $Id$
3 !
5 
6 IMPLICIT NONE
7 
8 CONTAINS
9 !*******************************************************************
10 
11 SUBROUTINE icefrac_lsc(np,temp, sig, icefrac)
12  !
13  ! Compute the ice fraction 1-xliq (see e.g.
14  ! Doutriaux-Boucher & Quaas 2004, section 2.2.)
15  !
16  ! (JBM 3/14 8/14)
17 
18  include "nuage.h"
19 
20  ! nuage.h contains:
21  ! t_glace_min: if T < Tmin, the cloud is only made of water ice
22  ! t_glace_max: if T > Tmax, the cloud is only made of liquid water
23  ! exposant_glace: controls the sharpness of the transition
24  INTEGER :: np
25  REAL, DIMENSION(np), INTENT(IN) :: temp ! temperature
26  REAL, DIMENSION(np), INTENT(IN) :: sig
27  REAL, DIMENSION(np), INTENT(OUT) :: icefrac
28 
29  REAL :: sig0,www,tmin_tmp,icefrac_tmp
30  INTEGER :: ip
31 
32  sig0=0.8
33 
34  DO ip=1,np
35  www=(max(sig(ip)-sig0,0.))/(1.-sig0) ! w=1 at the surface and 0 for sig < sig0
36  tmin_tmp=www*t_glace_max+(1.-www)*t_glace_min
37  icefrac_tmp= 1.0 - (temp(ip)-tmin_tmp) / (t_glace_max-tmin_tmp)
38  icefrac_tmp = min(max(icefrac_tmp,0.0),1.0)
39  icefrac(ip) = icefrac_tmp**exposant_glace
40  ENDDO
41 
42  RETURN
43 END SUBROUTINE icefrac_lsc
44 
45 !*******************************************************************
46 !
47 END MODULE icefrac_lsc_mod
subroutine icefrac_lsc(np, temp, sig, icefrac)
!$Id t_glace_min REAL exposant_glace REAL rei_max REAL coefw_cld_cv REAL tmax_fonte_cv INTEGER iflag_cld_cv common nuagecom && t_glace_min
Definition: nuage.h:4
!$Id t_glace_max
Definition: nuage.h:4
!$Id t_glace_min REAL exposant_glace REAL rei_max REAL coefw_cld_cv REAL tmax_fonte_cv INTEGER iflag_cld_cv common nuagecom exposant_glace
Definition: nuage.h:4