- Timestamp:
- Feb 11, 2008, 10:35:01 AM (17 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 3 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/physiq.F
r901 r904 27 27 USE vampir 28 28 USE pbl_surface_mod, ONLY : pbl_surface 29 USE phys_local_var_mod ! Variables internes non sauvegardees de la physique 29 30 30 31 … … 1163 1164 c vdf: couche limite (Vertical DiFfusion) 1164 1165 REAL d_t_con(klon,klev),d_q_con(klon,klev) 1166 REAL d_t_wake(klon,klev),d_q_wake(klon,klev) 1165 1167 REAL,SAVE,ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:) 1166 1168 c$OMP THREADPRIVATE(d_u_con,d_v_con) … … 1172 1174 REAL d_t_oli(klon,klev) !tendances dues a oro et lif 1173 1175 REAL rneb(klon,klev) 1176 1177 ! tendance nulles 1178 REAL du0(klon,klev),dv0(klon,klev),dq0(klon,klev),dql0(klon,klev) 1179 1174 1180 c 1175 1181 ********************************************************* … … 1262 1268 c 1263 1269 c Variables locales pour effectuer les appels en serie 1264 c1265 REAL t_seri(klon,klev), q_seri(klon,klev)1266 REAL ql_seri(klon,klev),qs_seri(klon,klev)1267 REAL u_seri(klon,klev), v_seri(klon,klev)1268 1270 c 1269 1271 REAL tr_seri(klon,klev,nbtr) … … 1651 1653 1652 1654 first=.false. 1653 endif 1654 1655 1656 print*, '=================================================' 1657 print*, 'Allocation des variables locales non sauvegardees' 1658 call phys_local_var_init 1659 print*, '=================================================' 1655 1660 1661 endif ! fisrt 1662 1656 1663 modname = 'physiq' 1657 1664 cIM … … 2075 2082 c **************** Fin de IF ( debut ) *************** 2076 2083 c 2084 2085 ! Tendances bidons pour les processus qui n'affectent pas certaines 2086 ! variables. 2087 du0(:,:)=0. 2088 dv0(:,:)=0. 2089 dq0(:,:)=0. 2090 dql0(:,:)=0. 2077 2091 c 2078 2092 c Mettre a zero des variables de sortie (pour securite) … … 2333 2347 c 2334 2348 c 2335 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc2336 2337 2349 pctsrf(:,:) = pctsrf_new(:,:) 2338 2350 2339 DO k = 1, klev 2340 DO i = 1, klon 2341 t_seri(i,k) = t_seri(i,k) + d_t_vdf(i,k) 2342 q_seri(i,k) = q_seri(i,k) + d_q_vdf(i,k) 2343 u_seri(i,k) = u_seri(i,k) + d_u_vdf(i,k) 2344 v_seri(i,k) = v_seri(i,k) + d_v_vdf(i,k) 2345 ENDDO 2346 ENDDO 2351 !----------------------------------------------------------------------------------------- 2352 ! ajout des tendances de la diffusion turbulente 2353 CALL add_phys_tend(d_u_vdf,d_v_vdf,d_t_vdf,d_q_vdf,dql0,'vdf') 2354 !----------------------------------------------------------------------------------------- 2347 2355 2348 2356 if (mydebug) then … … 2612 2620 c . d_u_con, d_v_con) 2613 2621 2614 DO k = 1, klev 2615 DO i = 1, klon 2616 t_seri(i,k) = t_seri(i,k) + d_t_con(i,k) 2617 q_seri(i,k) = q_seri(i,k) + d_q_con(i,k) 2618 u_seri(i,k) = u_seri(i,k) + d_u_con(i,k) 2619 v_seri(i,k) = v_seri(i,k) + d_v_con(i,k) 2620 ENDDO 2621 ENDDO 2622 !----------------------------------------------------------------------------------------- 2623 ! ajout des tendances de la diffusion turbulente 2624 CALL add_phys_tend(d_u_con,d_v_con,d_t_con,d_q_con,dql0,'con') 2625 !----------------------------------------------------------------------------------------- 2622 2626 2623 2627 if (mydebug) then … … 2719 2723 o ,wake_ddeltat,wake_ddeltaq) 2720 2724 c 2721 cIncrementation des tendances de la poche froide 2722 DO k = 1, klev 2723 DO i = 1, klon 2724 t_seri(i,k) = t_seri(i,k) + dt_wake(i,k)*dtime 2725 q_seri(i,k) = q_seri(i,k) + dq_wake(i,k)*dtime 2726 ENDDO 2727 ENDDO 2725 !----------------------------------------------------------------------------------------- 2726 ! ajout des tendances des poches froides 2727 ! Faire rapidement disparaitre l'ancien dt_wake pour garder un d_t_wake 2728 ! coherent avec les autres d_t_... 2729 d_t_wake(:,:)=dt_wake(:,:)*dtime 2730 d_q_wake(:,:)=dq_wake(:,:)*dtime 2731 CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,'wake') 2732 !----------------------------------------------------------------------------------------- 2728 2733 2729 2734 endif … … 2815 2820 endif 2816 2821 2817 t_seri(:,:) = t_seri(:,:) + d_t_ajsb(:,:) 2818 q_seri(:,:) = q_seri(:,:) + d_q_ajsb(:,:) 2822 !----------------------------------------------------------------------------------------- 2823 ! ajout des tendances de l'ajustement sec ou des thermiques 2824 CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,'ajsb') 2819 2825 d_t_ajs(:,:)=d_t_ajs(:,:)+d_t_ajsb(:,:) 2820 2826 d_q_ajs(:,:)=d_q_ajs(:,:)+d_q_ajsb(:,:) 2827 2828 !----------------------------------------------------------------------------------------- 2821 2829 2822 2830 endif … … 2966 2974 WHERE (rain_lsc < 0) rain_lsc = 0. 2967 2975 WHERE (snow_lsc < 0) snow_lsc = 0. 2976 !----------------------------------------------------------------------------------------- 2977 ! ajout des tendances de la diffusion turbulente 2978 CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,'lsc') 2979 !----------------------------------------------------------------------------------------- 2968 2980 DO k = 1, klev 2969 2981 DO i = 1, klon 2970 t_seri(i,k) = t_seri(i,k) + d_t_lsc(i,k)2971 q_seri(i,k) = q_seri(i,k) + d_q_lsc(i,k)2972 ql_seri(i,k) = ql_seri(i,k) + d_ql_lsc(i,k)2973 2982 cldfra(i,k) = rneb(i,k) 2974 2983 IF (.NOT.new_oliq) cldliq(i,k) = ql_seri(i,k) … … 3435 3444 c 3436 3445 c ajout des tendances 3437 DO k = 1, klev 3438 DO i = 1, klon 3439 t_seri(i,k) = t_seri(i,k) + d_t_oro(i,k) 3440 u_seri(i,k) = u_seri(i,k) + d_u_oro(i,k) 3441 v_seri(i,k) = v_seri(i,k) + d_v_oro(i,k) 3442 ENDDO 3443 ENDDO 3446 !----------------------------------------------------------------------------------------- 3447 ! ajout des tendances de la trainee de l'orographie 3448 CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,'oro') 3449 !----------------------------------------------------------------------------------------- 3444 3450 c 3445 3451 ENDIF ! fin de test sur ok_orodr … … 3473 3479 s d_t_lif, d_u_lif, d_v_lif) 3474 3480 c 3475 c ajout des tendances 3476 DO k = 1, klev 3477 DO i = 1, klon 3478 t_seri(i,k) = t_seri(i,k) + d_t_lif(i,k) 3479 u_seri(i,k) = u_seri(i,k) + d_u_lif(i,k) 3480 v_seri(i,k) = v_seri(i,k) + d_v_lif(i,k) 3481 ENDDO 3482 ENDDO 3481 !----------------------------------------------------------------------------------------- 3482 ! ajout des tendances de la portance de l'orographie 3483 CALL add_phys_tend(d_u_lif,d_v_lif,d_t_lif,dq0,dql0,'lif') 3484 !----------------------------------------------------------------------------------------- 3483 3485 c 3484 3486 ENDIF ! fin de test sur ok_orolf … … 3888 3890 . t_ancien, q_ancien, rnebcon, ratqs, clwcon, 3889 3891 . pbl_tke) 3892 open(97,form="unformatted",file="finbin") 3893 write(97) u_seri,v_seri,t_seri,q_seri 3894 close(97) 3890 3895 ENDIF 3891 3896
Note: See TracChangeset
for help on using the changeset viewer.