Changeset 2077 for LMDZ5/trunk/libf/phylmd/nuage.F90
- Timestamp:
- Jul 3, 2014, 3:38:05 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/nuage.F90
r2006 r2077 5 5 cldtaupi, re, fl) 6 6 USE dimphy 7 USE microphys_mod ! cloud microphysics (JBM 3/14)7 USE icefrac_lsc_mod ! cloud microphysics (JBM 3/14) 8 8 IMPLICIT NONE 9 9 ! ====================================================================== … … 54 54 55 55 INTEGER i, k 56 REAL zflwp, zradef, zfice , zmsac56 REAL zflwp, zradef, zfice(klon), zmsac 57 57 58 58 REAL radius, rad_chaud … … 98 98 99 99 DO k = 1, klev 100 IF (iflag_t_glace.EQ.0) THEN 101 DO i = 1, klon 102 zfice(i) = 1.0 - (t(i,k)-t_glace_min_old)/(273.13-t_glace_min_old) 103 zfice(i) = min(max(zfice(i),0.0), 1.0) 104 zfice(i) = zfice(i)**exposant_glace_old 105 ENDDO 106 ELSE ! of IF (iflag_t_glace.EQ.0) 107 ! JBM: icefrac_lsc is now a function contained in microphys_mod 108 ! zfice(i) = icefrac_lsc(t(i,k), t_glace_min, & 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(:)) 112 ENDIF 113 100 114 DO i = 1, klon 101 115 rad_chaud = rad_chau1 … … 104 118 pclc(i, k) = max(pclc(i,k), seuil_neb) 105 119 zflwp = 1000.*pqlwp(i, k)/rg/pclc(i, k)*(paprs(i,k)-paprs(i,k+1)) 106 IF (iflag_t_glace.EQ.0) THEN107 zfice = 1.0 - (t(i,k)-t_glace_min_old)/(273.13-t_glace_min_old)108 zfice = min(max(zfice,0.0), 1.0)109 zfice = zfice**exposant_glace_old110 ELSE ! of IF (iflag_t_glace.EQ.0)111 ! JBM: icefrac_lsc is now a function contained in microphys_mod112 zfice = icefrac_lsc(t(i,k), t_glace_min, &113 t_glace_max, exposant_glace)114 ENDIF115 120 116 121 IF (ok_aie) THEN … … 150 155 ! effective radius as re/fl 151 156 ! 152 fl(i, k) = pclc(i, k)*(1.-zfice )157 fl(i, k) = pclc(i, k)*(1.-zfice(i)) 153 158 re(i, k) = rad_chaud*fl(i, k) 154 159 … … 159 164 ! cdnc. 160 165 radius = max(1.1E6*((pqlwp(i,k)*pplay(i,k)/(rd*t(i,k)))/(4./3.*rpi* & 161 1000.*cdnc_pi(i,k)))**(1./3.), 3.)*(1.-zfice ) + rad_froid*zfice166 1000.*cdnc_pi(i,k)))**(1./3.), 3.)*(1.-zfice(i)) + rad_froid*zfice(i) 162 167 cldtaupi(i, k) = 3.0/2.0*zflwp/radius 163 168 END IF ! ok_aie 164 169 165 radius = rad_chaud*(1.-zfice ) + rad_froid*zfice166 coef = coef_chau*(1.-zfice ) + coef_froi*zfice170 radius = rad_chaud*(1.-zfice(i)) + rad_froid*zfice(i) 171 coef = coef_chau*(1.-zfice(i)) + coef_froi*zfice(i) 167 172 pcltau(i, k) = 3.0/2.0*zflwp/radius 168 173 pclemi(i, k) = 1.0 - exp(-coef*zflwp)
Note: See TracChangeset
for help on using the changeset viewer.