Changeset 1322 for LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/physiq.F
- Timestamp:
- Mar 12, 2010, 11:54:11 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/physiq.F
r1311 r1322 625 625 REAL q_undi(klon,klev) ! humidite moyenne dans la zone non perturbee 626 626 c 627 REAL wake_pe(klon) ! Wake potential energy - WAPE 627 cjyg 628 ccc REAL wake_pe(klon) ! Wake potential energy - WAPE 628 629 629 630 REAL wake_gfl(klon) ! Gust Front Length … … 641 642 REAL dt_a(klon,klev) 642 643 REAL dq_a(klon,klev) 644 REAL, SAVE :: alp_offset 645 c$OMP THREADPRIVATE(alp_offset) 646 643 647 c 644 648 cRR:fin declarations poches froides … … 1188 1192 . iflag_thermals_ed,iflag_thermals_optflux, 1189 1193 c nv flags pour la convection et les poches froides 1190 . iflag_coupl,iflag_clos,iflag_wake, read_climoz) 1194 . iflag_coupl,iflag_clos,iflag_wake, read_climoz, 1195 & alp_offset) 1191 1196 call phys_state_var_init(read_climoz) 1192 1197 print*, '=================================================' … … 2021 2026 c 2022 2027 ccalcul de ale_wake et alp_wake 2023 do i = 1,klon 2024 if (iflag_wake.eq.1) then 2025 ale_wake(i) = 0.5*wake_cstar(i)**2 2026 alp_wake(i) = wake_fip(i) 2027 else 2028 ale_wake(i) = 0. 2029 alp_wake(i) = 0. 2030 endif 2031 enddo 2028 if (iflag_wake.eq.1) then 2029 if (itap .le. it_wape_prescr) then 2030 do i = 1,klon 2031 ale_wake(i) = wape_prescr 2032 alp_wake(i) = fip_prescr 2033 enddo 2034 else 2035 do i = 1,klon 2036 cjyg ALE=WAPE au lieu de ALE = 1/2 Cstar**2 2037 ccc ale_wake(i) = 0.5*wake_cstar(i)**2 2038 ale_wake(i) = wake_pe(i) 2039 alp_wake(i) = wake_fip(i) 2040 enddo 2041 endif 2042 else 2043 do i = 1,klon 2044 ale_wake(i) = 0. 2045 alp_wake(i) = 0. 2046 enddo 2047 endif 2032 2048 ccombinaison avec ale et alp de couche limite: constantes si pas de couplage, valeurs calculees 2033 2049 cdans le thermique sinon 2034 2050 if (iflag_coupl.eq.0) then 2035 if (debut) print*,'ALE et ALP imposes' 2051 if (debut.and.prt_level.gt.9) 2052 $ WRITE(lunout,*)'ALE et ALP imposes' 2036 2053 do i = 1,klon 2037 2054 con ne couple que ale … … 2046 2063 do i = 1,klon 2047 2064 ALE(i) = max(ale_wake(i),Ale_bl(i)) 2048 ALP(i) = alp_wake(i) + Alp_bl(i) 2065 c avant ALP(i) = alp_wake(i) + Alp_bl(i) 2066 ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 2049 2067 c write(20,*)'ALE',ALE(i),Ale_bl(i),ale_wake(i) 2050 2068 c write(21,*)'ALP',ALP(i),Alp_bl(i),alp_wake(i) … … 2289 2307 2290 2308 endif 2309 c 2310 c=================================================================== 2311 cJYG 2312 IF (ip_ebil_phy.ge.2) THEN 2313 ztit='after wake' 2314 CALL diagetpq(airephy,ztit,ip_ebil_phy,2,2,dtime 2315 e , t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,paprs,pplay 2316 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 2317 call diagphy(airephy,ztit,ip_ebil_phy 2318 e , zero_v, zero_v, zero_v, zero_v, zero_v 2319 e , zero_v, zero_v, zero_v, ztsol 2320 e , d_h_vcol, d_qt, d_ec 2321 s , fs_bound, fq_bound ) 2322 END IF 2323 2291 2324 c print*,'apres callwake iflag_cldcon=', iflag_cldcon 2292 2325 c … … 2402 2435 e , t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,paprs,pplay 2403 2436 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 2437 call diagphy(airephy,ztit,ip_ebil_phy 2438 e , zero_v, zero_v, zero_v, zero_v, zero_v 2439 e , zero_v, zero_v, zero_v, ztsol 2440 e , d_h_vcol, d_qt, d_ec 2441 s , fs_bound, fq_bound ) 2404 2442 END IF 2405 2443 … … 2450 2488 enddo 2451 2489 tau_overturning_th(:)=zmax_th(:)/max(0.5*wmax_th(:),0.1) 2452 print*,'TAU TH OK ',tau_overturning_th(1),detr_therm(1,3) 2490 if(prt_level.ge.9) 2491 & write(lunout,*)'TAU TH OK ', 2492 & tau_overturning_th(1),detr_therm(1,3) 2453 2493 2454 2494 c On impose que l'air autour de la fraction couverte par le thermique … … 2561 2601 2562 2602 ! les ratqs sont une combinaison de ratqss et ratqsc 2563 ! write(lunout,*)'PHYLMD NOUVEAU TAU_RATQS ',tau_ratqs 2603 if(prt_level.ge.9) 2604 $ write(lunout,*)'PHYLMD NOUVEAU TAU_RATQS ',tau_ratqs 2564 2605 2565 2606 if (tau_ratqs>1.e-10) then … … 2785 2826 e , t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,paprs,pplay 2786 2827 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 2828 call diagphy(airephy,ztit,ip_ebil_phy 2829 e , zero_v, zero_v, zero_v, zero_v, zero_v 2830 e , zero_v, zero_v, zero_v, ztsol 2831 e , d_h_vcol, d_qt, d_ec 2832 s , fs_bound, fq_bound ) 2787 2833 END IF 2788 2834 c … … 2992 3038 itaprad = itaprad + 1 2993 3039 2994 if (iflag_radia.eq.0 ) then3040 if (iflag_radia.eq.0 .and. prt_level.ge.9) then 2995 3041 print *,'--------------------------------------------------' 2996 3042 print *,'>>>> ATTENTION rayonnement desactive pour ce cas' … … 3195 3241 e , t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,paprs,pplay 3196 3242 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 3243 call diagphy(airephy,ztit,ip_ebil_phy 3244 e , zero_v, zero_v, zero_v, zero_v, zero_v 3245 e , zero_v, zero_v, zero_v, ztsol 3246 e , d_h_vcol, d_qt, d_ec 3247 s , fs_bound, fq_bound ) 3197 3248 END IF 3198 3249 c … … 3262 3313 IF (offline) THEN 3263 3314 3264 print*,'Attention on met a 0 les thermiques pour phystoke' 3265 call phystokenc ( 3315 IF (prt_level.ge.9) 3316 $ print*,'Attention on met a 0 les thermiques pour phystoke' 3317 call phystokenc ( 3266 3318 I nlon,klev,pdtphys,rlon,rlat, 3267 3319 I t,pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
Note: See TracChangeset
for help on using the changeset viewer.