Changeset 2105 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Aug 7, 2014, 9:14:27 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/physiq.F90
r2100 r2105 388 388 REAL dt_a(klon,klev) 389 389 REAL dq_a(klon,klev) 390 REAL, dimension(klon) :: www 390 391 REAL, SAVE :: alp_offset 391 392 !$OMP THREADPRIVATE(alp_offset) … … 2010 2011 ! proportionnel ??a w si <0 2011 2012 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2013 ! Estimation d'une vitesse verticale effective pour ALP 2014 www(1:klon)=0. 2015 do k=2,klev-1 2016 do i=1,klon 2017 www(i)=max(www(i),-omega(i,k)*RD*t_seri(i,k)/(RG*paprs(i,k)) & 2018 & *zw2(i,k)*zw2(i,k)) 2019 ! if (paprs(i,k)>pbase(i)) then 2020 ! calcul approche de la vitesse verticale en m/s 2021 ! www(i)=max(www(i),-omega(i,k)*RD*temp(i,k)/(RG*paprs(i,k)) 2022 ! endif 2023 ! Le 0.1 est en gros H / ps = 1e5 / 1e4 2024 enddo 2025 enddo 2026 do i=1,klon 2027 if (www(i)>0. .and. ale_bl(i)>0. ) www(i)=www(i)/ale_bl(i) 2028 enddo 2029 2030 2012 2031 do i = 1,klon 2013 2032 ALE(i) = max(ale_wake(i),Ale_bl(i)) … … 2020 2039 ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 2021 2040 else 2022 ALP(i)=alp_wake(i)+Alp_bl(i)+alp_offset*min(omega(i,6),0.) 2023 if (alp(i)<0.) then 2024 print*,'ALP ',alp(i),alp_wake(i) & 2025 ,Alp_bl(i),alp_offset*min(omega(i,6),0.) 2026 endif 2041 2042 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2043 ! _ _ 2044 ! Ajout d'une composante 3 * A * w w'2 a w'3 avec w=www : w max sous pbase 2045 ! ou A est la fraction couverte par les ascendances w' 2046 ! on utilise le fait que A * w'3 = ALP 2047 ! et donc A * w'2 ~ ALP / sqrt(ALE) (on ajoute 0.1 pour les 2048 ! singularites) 2049 ALP(i)=alp_wake(i)*(1.+3.*www(i)/( sqrt(ale_wake(i))+0.1) ) & 2050 & +alp_bl(i) *(1.+3.*www(i)/( sqrt(ale_bl(i)) +0.1) ) 2051 ! ALP(i)=alp_wake(i)+Alp_bl(i)+alp_offset*min(omega(i,6),0.) 2052 ! if (alp(i)<0.) then 2053 ! print*,'ALP ',alp(i),alp_wake(i) & 2054 ! ,Alp_bl(i),alp_offset*min(omega(i,6),0.) 2055 ! endif 2027 2056 endif 2028 2057 enddo 2029 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2030 2058 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2031 2059 2032 2060 endif … … 2258 2286 ENDDO 2259 2287 2260 if (iflag_wake==2) then2288 IF (iflag_wake==2) THEN 2261 2289 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2262 2290 DO k = 1,klev … … 2266 2294 ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/dtime 2267 2295 ENDDO 2268 endif 2296 ELSEIF (iflag_wake==3) THEN 2297 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2298 DO k = 1,klev 2299 DO i=1,klon 2300 IF (rneb(i,k)==0.) THEN 2301 ! On ne tient compte des tendances qu'en dehors des nuages (c'est �| dire 2302 ! a priri dans une region ou l'eau se reevapore). 2303 dt_dwn(i,k)= dt_dwn(i,k)+ & 2304 ok_wk_lsp(i)*d_t_lsc(i,k)/dtime 2305 dq_dwn(i,k)= dq_dwn(i,k)+ & 2306 ok_wk_lsp(i)*d_q_lsc(i,k)/dtime 2307 ENDIF 2308 ENDDO 2309 ENDDO 2310 ENDIF 2311 2269 2312 ! 2270 2313 !calcul caracteristiques de la poche froide
Note: See TracChangeset
for help on using the changeset viewer.