- Timestamp:
- Aug 22, 2014, 12:22:58 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/fisrtilp.F90
r2086 r2109 13 13 ! 14 14 USE dimphy 15 USE icefrac_lsc_mod ! c loud microphysics(JBM 3/14)15 USE icefrac_lsc_mod ! compute ice fraction (JBM 3/14) 16 16 IMPLICIT none 17 17 !====================================================================== … … 651 651 ! zfice(i) = zfice(i)**nexpo 652 652 if (iflag_t_glace.eq.1) then 653 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), & 654 t_glace_min,t_glace_max,exposant_glace,zfice(:)) 653 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 655 654 endif 656 655 … … 793 792 ELSE 794 793 if (iflag_t_glace.eq.1) then 795 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), & 796 t_glace_min,t_glace_max,exposant_glace,zfice(:)) 794 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 797 795 endif 798 796 if (iflag_fisrtilp_qsat.lt.1) then 799 797 DO i = 1, klon 800 ! JBM: icefrac_lsc is now a function contained in microphys_mod798 ! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod 801 799 ! zfice(i) = icefrac_lsc(zt(i), t_glace_min, & 802 800 ! t_glace_max, exposant_glace) … … 814 812 zt(i)=Tbef(i) 815 813 else 816 ! JBM: icefrac_lsc is now a function contained in microphys_mod814 ! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod 817 815 ! zfice(i) = icefrac_lsc(zt(i), t_glace_min, & 818 816 ! t_glace_max, exposant_glace) … … 853 851 ENDDO 854 852 ELSE ! of IF (iflag_t_glace.EQ.0) 855 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), & 856 t_glace_min,t_glace_max,exposant_glace,zfice(:)) 853 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 857 854 ! DO i = 1, klon 858 855 ! IF (rneb(i,k).GT.0.0) THEN 859 ! JBM: icefrac_lsc is now a function contained in microphys_mod856 ! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod 860 857 ! zfice(i) = icefrac_lsc(zt(i), t_glace_min, & 861 858 ! t_glace_max, exposant_glace) -
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 -
LMDZ5/trunk/libf/phylmd/newmicro.F90
r2077 r2109 12 12 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra 13 13 USE phys_state_var_mod, ONLY: rnebcon, clwcon 14 USE icefrac_lsc_mod ! c loud microphysics(JBM 3/14)14 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14) 15 15 IMPLICIT NONE 16 16 ! ====================================================================== … … 202 202 ELSE ! of IF (iflag_t_glace.EQ.0) 203 203 DO k = 1, klev 204 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1), & 205 & t_glace_min,t_glace_max,exposant_glace,zfice(:,k)) 204 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:,k)) 206 205 207 206 208 ! JBM: icefrac_lsc is now a function contained in microphys_mod207 ! JBM: icefrac_lsc is now contained icefrac_lsc_mod 209 208 ! zfice(i, k) = icefrac_lsc(t(i,k), t_glace_min, & 210 209 ! t_glace_max, exposant_glace) -
LMDZ5/trunk/libf/phylmd/nuage.F90
r2077 r2109 5 5 cldtaupi, re, fl) 6 6 USE dimphy 7 USE icefrac_lsc_mod ! c loud microphysics(JBM 3/14)7 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14) 8 8 IMPLICIT NONE 9 9 ! ====================================================================== … … 105 105 ENDDO 106 106 ELSE ! of IF (iflag_t_glace.EQ.0) 107 ! JBM: icefrac_lsc is now a function contained in microphys_mod107 ! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod 108 108 ! zfice(i) = icefrac_lsc(t(i,k), t_glace_min, & 109 109 ! t_glace_max, exposant_glace) 110 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1), & 111 & t_glace_min,t_glace_max,exposant_glace,zfice(:)) 110 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:)) 112 111 ENDIF 113 112
Note: See TracChangeset
for help on using the changeset viewer.