Changeset 2109 for LMDZ5/trunk/libf/phylmd/icefrac_lsc_mod.F90
- Timestamp:
- Aug 22, 2014, 12:22:58 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/icefrac_lsc_mod.F90
r2077 r2109 4 4 MODULE icefrac_lsc_mod 5 5 6 IMPLICIT NONE 7 6 8 CONTAINS 7 9 !******************************************************************* 8 10 9 SUBROUTINE icefrac_lsc(np,temp, sig, tmin, tmax, nexpo,icefrac) 10 IMPLICIT NONE 11 SUBROUTINE icefrac_lsc(np,temp, sig, icefrac) 11 12 ! 12 13 ! Compute the ice fraction 1-xliq (see e.g. 13 14 ! Doutriaux-Boucher & Quaas 2004, section 2.2.) 14 15 ! 15 ! (JBM 3/14) 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 16 24 INTEGER :: np 17 25 REAL, DIMENSION(np), INTENT(IN) :: temp ! temperature … … 19 27 REAL, DIMENSION(np), INTENT(OUT) :: icefrac 20 28 21 REAL :: tmin ! if T < Tmin, the cloud is only made of water ice22 REAL :: tmax ! if T > Tmax, the cloud is only made of liquid water23 REAL :: nexpo ! controls the sharpness of the transition24 29 REAL :: sig0,www,tmin_tmp,icefrac_tmp 25 30 INTEGER :: ip … … 29 34 DO ip=1,np 30 35 www=(max(sig(ip)-sig0,0.))/(1.-sig0) ! w=1 at the surface and 0 for sig < sig0 31 tmin_tmp=www*t max+(1.-www)*tmin32 icefrac_tmp= 1.0 - (temp(ip)-tmin_tmp) / (t max-tmin_tmp)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) 33 38 icefrac_tmp = MIN(MAX(icefrac_tmp,0.0),1.0) 34 icefrac(ip) = icefrac_tmp** nexpo39 icefrac(ip) = icefrac_tmp**exposant_glace 35 40 ENDDO 36 41
Note: See TracChangeset
for help on using the changeset viewer.