Changeset 1276
- Timestamp:
- Dec 7, 2009, 3:30:39 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/cv3_routines.F
r1139 r1276 72 72 c tau = 3000. 73 73 cc tau = 1800. 74 c tau= 2800. 74 75 tau=8000. 75 76 beta = 1.0 - delt/tau … … 2086 2087 cc---end jyg--- 2087 2088 c 2088 c--------retour à la formulation originale d' Emanuel.2089 c--------retour à la formulation originale d''Emanuel. 2089 2090 b6=bfac*50.*sigd(il)*(ph(il,i)-ph(il,i+1))*sigt*afac 2090 2091 c6=water(il,i+1)+bfac*wdtrain(il) … … 2092 2093 if(c6.gt.0.0)then 2093 2094 revap=0.5*(-b6+sqrt(b6*b6+4.*c6)) 2094 evap(il,i)=sigt*afac*revap 2095 water(il,i)=revap*revap 2095 water(il,i)=revap*revap !equation de conservation 2096 2096 else 2097 water(il,i) = 0. 2098 endif 2097 2099 cJYG/IM : ci-dessous formulation originale de KE 2098 2100 c evap(il,i)=-evap(il,i+1) … … 2104 2106 c lorsqu'il y a evaporation totale de la pluie 2105 2107 c 2106 evap(il,i)= +(wdtrain(il)+sigd(il)*wt(il,i)*water(il,i+1)) 2108 c evap(il,i)= +(wdtrain(il)+sigd(il)*wt(il,i)*water(il,i+1)) !itlmd(jyg) 2109 c : /(sigd(il)*(ph(il,i)-ph(il,i+1))*100.) 2110 c end if !itlmd(jyg) 2111 cjyg--- Dans tous les cas, evaporation = [tt ce qui entre dans la couche i] 2112 c moins [tt ce qui sort de la couche i] 2113 evap(il,i)= 2114 : (wdtrain(il)+sigd(il)*wt(il,i)*(water(il,i+1)-water(il,i))) 2107 2115 : /(sigd(il)*(ph(il,i)-ph(il,i+1))*100.) 2108 end if 2116 c 2109 2117 ccc 2110 2118 c *** calculate precipitating downdraft mass flux under *** -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/wake.F
r1139 r1276 221 221 REAL, dimension(klon) :: RRe1, RRe2 222 222 REAL :: RRd1, RRd2 223 REAL, DIMENSION(klon,klev) :: Th1, Th2, q1, q2 223 REAL, DIMENSION(klon,klev) :: Th1, Th2, q1, q2, T1 224 224 REAL, DIMENSION(klon,klev) :: D_Th1, D_Th2, D_dth 225 225 REAL, DIMENSION(klon,klev) :: D_q1, D_q2, D_dq … … 269 269 Crep_upper=0.9 270 270 Crep_sol=1.0 271 272 271 273 272 C Minimum value for |T_wake - T_undist|. Used for wake top definition … … 366 365 tu(i,k) = te(i,k) - deltatw(i,k)*sigmaw(i) 367 366 qu(i,k) = qe(i,k) - deltaqw(i,k)*sigmaw(i) 368 rhow(i,k) = p(i,k)/(rd*(t e(i,k)+deltatw(i,k)))367 rhow(i,k) = p(i,k)/(rd*(tu(i,k)+deltatw(i,k))) 369 368 dth(i,k) = deltatw(i,k)/ppi(i,k) 370 369 ENDDO … … 836 835 q1(i,k) = qe(i,k) - sigmaw(i) *deltaqw(i,k) ! undisturbed area 837 836 q2(i,k) = qe(i,k) + (1.-sigmaw(i))*deltaqw(i,k) ! wake 838 ENDIF 839 ENDDO 840 ENDDO 841 842 DO i=1,klon 843 D_Th1(i,1) = 0. 837 T1(i,k) = te(i,k) - sigmaw(i)*deltatw(i,k)! undisturb itlmd 838 ENDIF 839 ENDDO 840 ENDDO 841 842 DO i=1,klon 843 D_Th1(i,1) = 0. !!!itlmd : ne pas mettre if wk_adv cf nrlmd? 844 844 D_Th2(i,1) = 0. 845 845 D_dth(i,1) = 0. … … 912 912 $ -RRe2(i)*omg(i,k+1)*(1.-sigmaw(i))*D_Th2(i,k+1) ) 913 913 $ /(Ph(i,k)-Ph(i,k+1)) 914 $ -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*dp_deltomg(i,k) 914 $ -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)* 915 $ (omg(i,k)-omg(i,k+1))/(Ph(i,k)-Ph(i,k+1)) !instead of dp_deltomg(i,k) 915 916 $ )*ppi(i,k) 916 917 c … … 919 920 $ -RRe2(i)*omg(i,k+1)*(1.-sigmaw(i))*D_q2(i,k+1) ) 920 921 $ /(Ph(i,k)-Ph(i,k+1)) 921 $ -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*dp_deltomg(i,k) 922 $ -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)* 923 $ (omg(i,k)-omg(i,k+1))/(Ph(i,k)-Ph(i,k+1))!instead of dp_deltomg(i,k) 924 $ ) 925 ELSE IF(wk_adv(i) .AND. k .EQ. kupper(i)) THEN ! corr pour conserver l'eau 926 927 d_te(i,k) = dtimesub*( 928 $ ( RRe1(i)*omg(i,k )*sigmaw(i) *D_Th1(i,k)) 929 $ /(Ph(i,k)-Ph(i,k+1)) 930 $ )*ppi(i,k) 931 932 d_qe(i,k) = dtimesub*( 933 $ ( RRe1(i)*omg(i,k )*sigmaw(i) *D_q1(i,k)) 934 $ /(Ph(i,k)-Ph(i,k+1)) 922 935 $ ) 923 936 ENDIF … … 1226 1239 IF (dz(i) .GT. 0) THEN 1227 1240 z(i) = z(i)+dz(i) 1228 sum_thu(i) = sum_thu(i) + thu(i,k)*dz(i) 1229 sum_tu(i) = sum_tu(i) + tu(i,k)*dz(i) 1230 sum_qu(i) = sum_qu(i) + qu(i,k)*dz(i) 1231 sum_thvu(i) = sum_thvu(i) + thu(i,k)*(1.+eps*qu(i,k))*dz(i) 1241 sum_thu(i) = sum_thu(i) + th1(i,k)*dz(i) 1242 sum_tu(i) = sum_tu(i) + t1(i,k)*dz(i) 1243 sum_qu(i) = sum_qu(i) + q1(i,k)*dz(i) 1244 sum_thvu(i) = sum_thvu(i) + th1(i,k)*(1.+eps*q1(i,k))*dz(i)!itlmd 1245 1232 1246 sum_dth(i) = sum_dth(i) + dth(i,k)*dz(i) 1233 1247 sum_dq(i) = sum_dq(i) + deltaqw(i,k)*dz(i) … … 1300 1314 DO k = 1,klev 1301 1315 DO i=1,klon 1302 IF ( wk_adv(i) .AND. k .LE. kupper(i)-1) THEN1316 IF ( wk_adv(i) .AND. k .LE. kupper(i)) THEN !! corr conservation eau 1303 1317 dtls(i,k) = dtls(i,k)/dtime 1304 1318 dqls(i,k) = dqls(i,k)/dtime … … 1359 1373 tu(i,k) = te(i,k) - deltatw(i,k)*sigmaw(i) 1360 1374 qu(i,k) = qe(i,k) - deltaqw(i,k)*sigmaw(i) 1361 rhow(i,k) = p(i,k)/(rd*(t e(i,k)+deltatw(i,k)))1375 rhow(i,k) = p(i,k)/(rd*(tu(i,k)+deltatw(i,k))) 1362 1376 dth(i,k) = deltatw(i,k)/ppi(i,k) 1363 1377 ENDIF … … 1520 1534 ccc IF (sigmaw(i).GT.0.9) THEN 1521 1535 wape(i) = 0. 1536 cstar(i)= 0. !!corr itlmd 1522 1537 hw(i) = hwmin 1523 1538 sigmaw(i) = sigmad … … 1525 1540 ELSE 1526 1541 wape(i) = wape2(i) 1542 cstar(i)= cstar2(i) !!corr itlmd 1527 1543 ENDIF 1528 1544 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.