Changeset 619
- Timestamp:
- Apr 15, 2005, 2:36:17 PM (20 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/concvl.F
r559 r619 7 7 . upwd,dnwd,dnwdbis,Ma,cape,tvp,iflag, 8 8 . pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr, 9 . qcondc,wd) 9 . qcondc,wd, 10 . pmflxr,pmflxs, 11 . da,phi,mp) 10 12 11 13 c … … 56 58 INTEGER ntra 57 59 REAL work1(klon,klev),work2(klon,klev) 60 REAL pmflxr(klon,klev+1),pmflxs(klon,klev+1) 58 61 c 59 62 REAL d_t(klon,klev),d_q(klon,klev),d_u(klon,klev),d_v(klon,klev) … … 65 68 REAL upwd(klon,klev),dnwd(klon,klev),dnwdbis(klon,klev) 66 69 REAL Ma(klon,klev),cape(klon),tvp(klon,klev) 70 real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) 67 71 INTEGER iflag(klon) 68 72 REAL rflag(klon) … … 101 105 DO i=1,klon 102 106 em_ph(i,k) = paprs(i,k) / 100.0 107 pmflxs(i,k)=0. 103 108 ENDDO 104 109 ENDDO … … 145 150 $ em_p,em_ph,iflag, 146 151 $ d_t,d_q,d_u,d_v,d_tra,rain, 147 $ cbmf,work1,work2, 148 $ dtime,Ma,upwd,dnwd,dnwdbis,qcondc,wd,cape) 152 $ pmflxr,cbmf,work1,work2, 153 $ kbas,ktop, 154 $ dtime,Ma,upwd,dnwd,dnwdbis,qcondc,wd,cape, 155 $ da,phi,mp) 149 156 150 157 C------------------------------------------------------------------ … … 163 170 ENDDO 164 171 ENDDO 165 172 DO itra = 1,ntra 173 DO k = 1, klev 174 DO i = 1, klon 175 d_tra(i,k,itra) =dtime*d_tra(i,k,itra) 176 ENDDO 177 ENDDO 178 ENDDO 166 179 c les traceurs ne sont pas mis dans cette version de convect4: 167 180 if (iflag_con.eq.4) then -
LMDZ4/trunk/libf/phylmd/cv3_routines.F
r597 r619 2164 2164 : ,ment,qent,uent,vent,nent,elij,traent,sig 2165 2165 : ,tv,tvp 2166 : ,iflag,precip, ft,fr,fu,fv,ftra2166 : ,iflag,precip,VPrecip,ft,fr,fu,fv,ftra 2167 2167 : ,upwd,dnwd,dnwd0,ma,mike,tls,tps,qcondc,wd) 2168 2168 implicit none … … 2197 2197 c outputs: 2198 2198 real precip(nloc) 2199 real VPrecip(nloc,nd+1) 2199 2200 real ft(nloc,nd), fr(nloc,nd), fu(nloc,nd), fv(nloc,nd) 2200 2201 real ftra(nloc,nd,ntra) … … 2228 2229 precip(il)=0.0 2229 2230 wd(il)=0.0 ! gust 2231 VPrecip(il,nd+1)=0. 2230 2232 enddo 2231 2233 2232 2234 do i=1,nd 2233 2235 do il=1,ncum 2236 VPrecip(il,i)=0.0 2234 2237 ft(il,i)=0.0 2235 2238 fr(il,i)=0.0 … … 2270 2273 enddo 2271 2274 2275 C *** CALCULATE VERTICAL PROFILE OF PRECIPITATIONs IN kg/m2/s === 2276 C 2277 c MAF rajout pour lessivage 2278 do k=1,nl 2279 do il=1,ncum 2280 if (k.le.inb(il)) then 2281 if (cvflag_grav) then 2282 VPrecip(il,k) = wt(il,k)*sigd*water(il,k)/grav 2283 else 2284 VPrecip(il,k) = wt(il,k)*sigd*water(il,k)/10. 2285 endif 2286 endif 2287 end do 2288 end do 2289 C 2272 2290 c 2273 2291 c *** Calculate downdraft velocity scale *** … … 3025 3043 SUBROUTINE cv3_uncompress(nloc,len,ncum,nd,ntra,idcum 3026 3044 : ,iflag 3027 : ,precip, sig,w03045 : ,precip,VPrecip,sig,w0 3028 3046 : ,ft,fq,fu,fv,ftra 3047 : ,inb 3029 3048 : ,Ma,upwd,dnwd,dnwd0,qcondc,wd,cape 3049 : ,da,phi,mp 3030 3050 : ,iflag1 3031 : ,precip1, sig1,w013051 : ,precip1,VPrecip1,sig1,w01 3032 3052 : ,ft1,fq1,fu1,fv1,ftra1 3053 : ,inb1 3033 3054 : ,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1 3034 : 3055 : ,da1,phi1,mp1) 3035 3056 implicit none 3036 3057 … … 3041 3062 integer idcum(nloc) 3042 3063 integer iflag(nloc) 3064 integer inb(nloc) 3043 3065 real precip(nloc) 3066 real VPrecip(nloc,nd+1) 3044 3067 real sig(nloc,nd), w0(nloc,nd) 3045 3068 real ft(nloc,nd), fq(nloc,nd), fu(nloc,nd), fv(nloc,nd) … … 3049 3072 real qcondc(nloc,nd) 3050 3073 real wd(nloc),cape(nloc) 3074 real da(nloc,nd),phi(nloc,nd,nd),mp(nloc,nd) 3051 3075 3052 3076 c outputs: 3053 3077 integer iflag1(len) 3078 integer inb1(len) 3054 3079 real precip1(len) 3080 real VPrecip1(len,nd+1) 3055 3081 real sig1(len,nd), w01(len,nd) 3056 3082 real ft1(len,nd), fq1(len,nd), fu1(len,nd), fv1(len,nd) … … 3060 3086 real qcondc1(nloc,nd) 3061 3087 real wd1(nloc),cape1(nloc) 3088 real da1(nloc,nd),phi1(nloc,nd,nd),mp1(nloc,nd) 3062 3089 3063 3090 c local variables: … … 3068 3095 iflag1(idcum(i))=iflag(i) 3069 3096 wd1(idcum(i))=wd(i) 3097 inb1(idcum(i))=inb(i) 3070 3098 cape1(idcum(i))=cape(i) 3071 3099 2000 continue … … 3073 3101 do 2020 k=1,nl 3074 3102 do 2010 i=1,ncum 3103 VPrecip1(idcum(i),k)=VPrecip(i,k) 3075 3104 sig1(idcum(i),k)=sig(i,k) 3076 3105 w01(idcum(i),k)=w0(i,k) … … 3084 3113 dnwd01(idcum(i),k)=dnwd0(i,k) 3085 3114 qcondc1(idcum(i),k)=qcondc(i,k) 3115 da1(idcum(i),k)=da(i,k) 3116 mp1(idcum(i),k)=mp(i,k) 3086 3117 2010 continue 3087 3118 2020 continue … … 3099 3130 c 2110 continue 3100 3131 c 2100 continue 3132 do j=1,nd 3133 do k=1,nd 3134 do i=1,ncum 3135 phi1(idcum(i),k,j)=phi(i,k,j) 3136 end do 3137 end do 3138 end do 3101 3139 3102 3140 return -
LMDZ4/trunk/libf/phylmd/cv_driver.F
r559 r619 5 5 & t1,q1,qs1,u1,v1,tra1, 6 6 & p1,ph1,iflag1,ft1,fq1,fu1,fv1,ftra1, 7 & precip1, 7 & precip1,VPrecip1, 8 8 & cbmf1,sig1,w01, 9 & delt,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1) 9 & icb1,inb1, 10 & delt,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1, 11 & da1,phi1,mp1) 10 12 C 11 13 implicit none … … 37 39 C ftra1 Real Output tracor tend 38 40 C precip1 Real Output precipitation 41 C VPrecip1 Real Output vertical profile of precipitations 39 42 C cbmf1 Real Output cloud base mass flux 40 43 C sig1 Real In/Out section adiabatic updraft … … 84 87 real precip1(len) 85 88 real cbmf1(len) 89 real VPrecip1(len,nd+1) 86 90 real Ma1(len,nd) 87 91 real upwd1(len,nd) … … 93 97 real cape1(len) 94 98 99 real da1(len,nd),phi1(len,nd,nd),mp1(len,nd) 100 real da(len,nd),phi(len,nd,nd),mp(len,nd) 95 101 real tra1(len,nd,ntra) 96 102 real ftra1(len,nd,ntra) … … 185 191 ! precip: Scalar convective precipitation rate (mm/day). 186 192 ! 193 ! VPrecip: Vertical profile of convective precipitation (kg/m2/s). 194 ! 187 195 ! wd: A convective downdraft velocity scale. For use in surface 188 196 ! flux parameterizations. See convect.ps file for details. … … 213 221 integer nk1(klon) 214 222 integer icb1(klon) 223 integer inb1(klon) 215 224 integer icbs1(klon) 216 225 … … 267 276 real ments(nloc,klev,klev), qents(nloc,klev,klev) 268 277 real sij(nloc,klev,klev), elij(nloc,klev,klev) 269 real mp(nloc,klev),qp(nloc,klev), up(nloc,klev), vp(nloc,klev)278 real qp(nloc,klev), up(nloc,klev), vp(nloc,klev) 270 279 real wt(nloc,klev), water(nloc,klev), evap(nloc,klev) 271 280 real b(nloc,klev), ft(nloc,klev), fq(nloc,klev) … … 275 284 real tps(nloc,klev), qprime(nloc), tprime(nloc) 276 285 real precip(nloc) 286 real VPrecip(nloc,klev+1) 277 287 real tra(nloc,klev,ntra), trap(nloc,klev,ntra) 278 288 real ftra(nloc,klev,ntra), traent(nloc,klev,klev,ntra) … … 324 334 clw(i,k)=0.0 325 335 gz1(i,k) = 0. 326 336 VPrecip1(i,k) = 0. 327 337 Ma1(i,k)=0.0 328 338 upwd1(i,k)=0.0 … … 346 356 wd1(i)=0.0 347 357 cape1(i)=0.0 358 VPrecip1(i,nd+1)=0.0 348 359 60 continue 349 360 … … 552 563 : ,ment,qent,uent,vent,nent,elij,traent,sig 553 564 : ,tv,tvp 554 o ,iflag,precip, ft,fq,fu,fv,ftra565 o ,iflag,precip,VPrecip,ft,fq,fu,fv,ftra 555 566 o ,upwd,dnwd,dnwd0,ma,mike,tls,tps,qcondc,wd) 556 567 endif … … 568 579 569 580 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 581 ! --- passive tracers 582 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 583 584 if (iflag_con.eq.3) then 585 CALL cv3_tracer(nloc,len,ncum,nd,nd, 586 : ment,sij,da,phi) 587 endif 588 589 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 570 590 ! --- UNCOMPRESS THE FIELDS 571 591 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 572 573 592 c set iflag1 =42 for non convective points 593 do i=1,len 594 iflag1(i)=42 595 end do 596 c 574 597 if (iflag_con.eq.3) then 575 598 CALL cv3_uncompress(nloc,len,ncum,nd,ntra,idcum 576 599 : ,iflag 577 : ,precip, sig,w0600 : ,precip,VPrecip,sig,w0 578 601 : ,ft,fq,fu,fv,ftra 602 : ,inb 579 603 : ,Ma,upwd,dnwd,dnwd0,qcondc,wd,cape 604 : ,da,phi,mp 580 605 o ,iflag1 581 o ,precip1, sig1,w01606 o ,precip1,VPrecip1,sig1,w01 582 607 o ,ft1,fq1,fu1,fv1,ftra1 583 o ,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1 ) 608 o ,inb1 609 o ,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1 610 o ,da1,phi1,mp1) 584 611 endif 585 612 … … 611 638 c -- si .TRUE., on rend la gravite plus explicite et eventuellement 612 639 c differente de 10.0 dans convect3: 613 cvflag_grav = . FALSE.640 cvflag_grav = .TRUE. 614 641 615 642 return … … 654 681 c ori t0 = RTT 655 682 t0 = 273.15 ! convect3 (RTT=273.16) 656 grav= 10. ! implicitely or explicitely used in convect3 683 c maf grav= 10. ! implicitely or explicitely used in convect3 684 grav= g ! implicitely or explicitely used in convect3 657 685 endif 658 686 -
LMDZ4/trunk/libf/phylmd/ini_histmth.h
r602 r619 538 538 . "ave(X)", zsto,zout) 539 539 c 540 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",541 . iim,jjmp1,nhori, klev,1,klev,nvert, 32,542 . "ave(X)", zsto,zout)543 c544 540 CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 545 541 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, … … 594 590 . "ave(X)", zsto,zout) 595 591 c 592 IF (iflag_con.GE.3) THEN 593 c 596 594 CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s", 597 595 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 598 596 . "ave(X)", zsto,zout) 599 597 c 598 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 599 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 600 . "ave(X)", zsto,zout) 601 c 600 602 CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s", 601 603 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, … … 605 607 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 606 608 . "ave(X)", zsto,zout) 609 ENDIF !iflag_con.GE.3 610 c 607 611 c 608 612 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", … … 741 745 c 742 746 if (nqmax.GE.3) THEN 743 DO iq=1,nqmax-2 744 IF (iq.LE.99) THEN 745 WRITE(str2,'(i2.2)') iq 746 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 747 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 748 . "ave(X)", zsto,zout) 749 ELSE 750 PRINT*, "Trop de traceurs" 751 CALL abort 752 ENDIF 747 DO iq=3,nqmax 748 iiq=niadv(iq) 749 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 750 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 751 . "ave(X)", zsto,zout) 753 752 ENDDO 754 753 ENDIF -
LMDZ4/trunk/libf/phylmd/physiq.F
r616 r619 212 212 REAL d_qx(klon,klev,nqmax) 213 213 REAL d_ps(klon) 214 real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) 214 215 215 216 INTEGER klevp1, klevm1 … … 769 770 REAL zx_t, zx_qs, zdelta, zcor, zfra, zlvdcp, zlsdcp 770 771 real zqsat(klon,klev) 771 INTEGER i, k, iq, ig, j, nsrf, ll772 INTEGER i, k, iq, ig, j, iiq, nsrf, ll 772 773 REAL t_coup 773 774 PARAMETER (t_coup=234.0) … … 795 796 INTEGER iflagctrl(klon) ! flag fonctionnement de convect 796 797 c -- convect43: 797 INTEGER ntra ! nb traceurs pour convect4.3798 INTEGER ntra ! nb traceurs 798 799 REAL pori_con(klon) ! pressure at the origin level of lifted parcel 799 800 REAL plcl_con(klon),dtma_con(klon),dtlcl_con(klon) … … 1153 1154 1154 1155 WRITE(lunout,*)"*** Convection de Kerry Emanuel 4.3 " 1155 WRITE(lunout,*)1156 . "On va utiliser le melange convectif des traceurs qui"1157 WRITE(lunout,*)"est calcule dans convect4.3"1158 WRITE(lunout,*)" !!! penser aux logical flags de phytrac"1159 1156 1160 1157 DO i = 1, klon … … 1167 1164 DO i = 1, klon 1168 1165 ibas_con(i) = 1 1169 itop_con(i) = klev+11166 itop_con(i) = 1 1170 1167 ENDDO 1171 1168 cIM15/11/02 rajout initialisation ibas_con,itop_con cf. SB =>END … … 1733 1730 ELSE IF (iflag_con.GE.3) THEN 1734 1731 c nb of tracers for the KE convection: 1735 if (nqmax .GE. 4) then 1736 ntra = nbtr 1737 else 1738 ntra = 1 1739 endif 1740 c 1732 c MAF la partie traceurs est faite dans phytrac 1733 c on met ntra=1 pour limiter les appels mais on peut 1734 c supprimer les calculs / ftra. 1735 ntra = 1 1741 1736 c sb, oct02: 1742 1737 c Schema de convection modularise et vectorise: … … 1747 1742 CALL concvl (iflag_con, 1748 1743 . dtime,paprs,pplay,t_seri,q_seri, 1749 . u_seri,v_seri,tr_seri,n btr,1744 . u_seri,v_seri,tr_seri,ntra, 1750 1745 . ema_work1,ema_work2, 1751 1746 . d_t_con,d_q_con,d_u_con,d_v_con,d_tr, … … 1753 1748 . upwd,dnwd,dnwd0, 1754 1749 . Ma,cape,tvp,iflagctrl, 1755 . pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd) 1750 . pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd, 1751 . pmflxr,pmflxs, 1752 . da,phi,mp) 1753 1756 1754 cIM cf. FH 1757 1755 clwcon0=qcondc 1756 pmfu(:,:)=upwd(:,:)+dnwd(:,:) 1758 1757 1759 1758 ELSE ! ok_cvl 1760 1759 c MAF conema3 ne contient pas les traceurs 1761 1760 CALL conema3 (dtime, 1762 1761 . paprs,pplay,t_seri,q_seri, 1763 . u_seri,v_seri,tr_seri,n btr,1762 . u_seri,v_seri,tr_seri,ntra, 1764 1763 . ema_work1,ema_work2, 1765 1764 . d_t_con,d_q_con,d_u_con,d_v_con,d_tr, … … 1885 1884 zx_ajustq=.FALSE. 1886 1885 c 1887 IF (nqmax.GT.2) THEN !--melange convectif de traceurs1888 c1889 IF (iflag_con .NE. 2 .AND. debut) THEN1890 WRITE(lunout,*)'Pour l instant, seul conflx fonctionne ',1891 $ 'avec traceurs', iflag_con1892 WRITE(lunout,*)' Mettre iflag_con',1893 $ ' = 2 dans run.def et repasser'1894 c CALL abort1895 ENDIF1896 c1897 ENDIF !--nqmax.GT.21898 c1899 c Appeler l'ajustement sec1900 c1901 1886 c=================================================================== 1902 1887 c Convection seche (thermiques ou ajustement) … … 2644 2629 c Calcul des tendances traceurs 2645 2630 c==================================================================== 2646 C Pascale : il faut quand meme apeller phytrac car il gere les sorties2647 cKE43 des traceurs => il faut donc mettre des flags a .false.2648 IF (iflag_con.GE.3) THEN2649 c on ajoute les tendances calculees par KE432650 cXXX OM on onhibe la convection sur les traceurs2651 DO iq=1, nqmax-2 ! Sandrine a -3 ???2652 cXXX OM on inhibe la convection sur les traceur2653 cXXX DO k = 1, nlev2654 cXXX DO i = 1, klon2655 cXXX tr_seri(i,k,iq) = tr_seri(i,k,iq) + d_tr(i,k,iq)2656 cXXX ENDDO2657 cXXX ENDDO2658 WRITE(iqn,'(i2.2)') iq2659 CALL minmaxqfi(tr_seri(1,1,iq),0.,1.e33,'couche lim iq='//iqn)2660 ENDDO2661 CMAF modif pour garder info du nombre de traceurs auxquels2662 C la physique s'applique2663 ELSE2664 CMAF modif pour garder info du nombre de traceurs auxquels2665 C la physique s'applique2666 2631 C 2667 call phytrac ( rnpb,2632 call phytrac (iflag_con,rnpb, 2668 2633 I itap, julien, gmtime, 2669 2634 I debut,lafin, … … 2680 2645 I ibas_con, 2681 2646 I pmflxr,pmflxs,prfl,psfl, 2682 #ifdef INCA 2647 I da,phi,mp, 2648 I upwd,dnwd, 2649 #ifdef INCA_CH4 2683 2650 I flxmass_w, 2684 2651 #endif 2685 2652 O tr_seri) 2686 ENDIF2687 2653 2688 2654 IF (offline) THEN -
LMDZ4/trunk/libf/phylmd/phytrac.F
r616 r619 4 4 c 5 5 c 6 SUBROUTINE phytrac ( rnpb,nstep,6 SUBROUTINE phytrac (iflag_con,rnpb,nstep, 7 7 I julien,gmtime, 8 8 I debutphy,lafin, … … 146 146 REAL flxmass_w(klon,klev) 147 147 #endif 148 integer iflag_con 148 149 149 150 cAA Rem : nbtr : nombre de vrais traceurs est defini dans dimphy.h … … 166 167 REAL pen_d(nlon,nlev) ! flux entraine dans le panache descendant 167 168 REAL pde_d(nlon,nlev) ! flux detraine dans le panache descendant 169 c KE 170 real da(nlon,nlev),phi(nlon,nlev,nlev),mp(nlon,nlev) 171 REAL upwd(nlon,nlev) ! saturated updraft mass flux 172 REAL dnwd(nlon,nlev) ! saturated downdraft mass flux 173 168 174 c 169 175 c Couche limite: … … 281 287 c 282 288 REAL d_tr(klon,klev), d_trs(klon) ! tendances de traceurs 283 REAL d_tr_cl(klon,klev) ! tendance de traceurs couche limite 284 REAL d_tr_cli(klon,klev,nbtr) ! tendance de traceurs CL pour chq traceur 285 REAL d_tr_cv(klon,klev) ! tendance de traceurs convection 286 REAL d_tr_cvi(klon,klev,nbtr) ! tendance de traceurs conv pour chq traceur 289 REAL d_tr_cl(klon,klev,nbtr) ! tendance de traceurs couche limite 290 REAL d_tr_cv(klon,klev,nbtr) ! tendance de traceurs conv pour chq traceur 287 291 REAL d_tr_th(klon,klev,nbtr) ! la tendance des thermiques 288 292 REAL d_tr_dec(klon,klev,nbtr) ! la tendance de la decroissance … … 528 532 529 533 c Abder 530 if(nqmax.gt.2) aerosol(3)=.true.534 ctestmaf if(nqmax.gt.2) aerosol(3)=.true. 531 535 532 536 do i=1,nlon … … 548 552 c====================================================================== 549 553 c print*,'Avant convection' 550 do it=1,nqmax551 WRITE(itn,'(i2)') it554 c do it=1,nqmax 555 c WRITE(itn,'(i2)') it 552 556 c call diagtracphy(tr_seri(:,:,it),paprs,'Avant conv'//itn) 553 enddo557 c enddo 554 558 555 559 if (convection) then … … 560 564 IF ( conv_flg(it) == 0 ) CYCLE 561 565 #endif 566 if (iflag_con.eq.2) then 567 c tiedke 562 568 CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, 563 . pplay, paprs, tr_seri(1,1,it), d_tr_cv) 569 . pplay, paprs, tr_seri(1,1,it), d_tr_cv(1,1,it)) 570 else if (iflag_con.eq.3) then 571 c KE 572 call cvltr(pdtphys, da, phi, mp, paprs,pplay, tr_seri(1,1,it), 573 . upwd,dnwd,d_tr_cv(1,1,it)) 574 endif 575 564 576 DO k = 1, nlev 565 577 DO i = 1, klon 566 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k) 567 d_tr_cvi(i,k,it)=d_tr_cv(i,k) 568 c print*,'en k i d_tr_cv=',k,i,d_tr_cv(i,k) 578 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k,it) 569 579 ENDDO 570 580 ENDDO 571 c WRITE(itn,'(i1)') it572 581 #ifdef INCA 573 582 CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = ' … … 676 685 e tautr(it),vdeptr(it), 677 686 e xlat, 678 s d_tr_cl ,d_trs)687 s d_tr_cl(1,1,it),d_trs) 679 688 DO k = 1, nlev 680 689 DO i = 1, klon 681 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cl(i,k) 682 d_tr_cli(i,k,it)=d_tr_cl(i,k) 690 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cl(i,k,it) 683 691 ENDDO 684 692 ENDDO … … 709 717 s tr_seri(1,1,it), source, 710 718 e paprs, pplay, delp, 711 s d_tr 719 s d_tr_cl(1,1,it)) 712 720 DO k = 1, nlev 713 721 DO i = 1, klon 714 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k) 715 d_tr_cli(i,k,it)=d_tr_cl(i,k) 722 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cl(i,k,it) 716 723 ENDDO 717 724 ENDDO 718 Cmaf provisoire suppression des prints719 725 Cmaf WRITE(itn,'(i1)') it 720 726 cmaf CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'cltracn it='//itn) -
LMDZ4/trunk/libf/phylmd/write_histmth.h
r602 r619 586 586 . iim*jjmp1*klev,ndex3d) 587 587 c 588 IF (iflag_con.GE.3) THEN 589 c 588 590 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 589 591 CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d, … … 602 604 . iim*jjmp1*klev,ndex3d) 603 605 c 606 ENDIF !iflag_con.GE.3 604 607 c 605 608 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) … … 763 766 c 764 767 IF (nqmax.GE.3) THEN 765 DO iq=1,nqmax-2 766 IF (iq.LE.99) THEN 767 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d) 768 WRITE(str2,'(i2.2)') iq 769 CALL histwrite(nid_mth,"trac"//str2,itau_w,zx_tmp_3d, 770 . iim*jjmp1*klev,ndex3d) 771 ELSE 772 PRINT*, "Trop de traceurs" 773 CALL abort 774 ENDIF 768 DO iq=3,nqmax 769 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 770 CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d, 771 . iim*jjmp1*klev,ndex3d) 775 772 ENDDO 776 773 ENDIF -
LMDZ4/trunk/libf/phylmd/write_histrac.h
r616 r619 248 248 CALL histwrite(nid_tra,"d_tr_th_"//tnom(it+2),itau_w,zx_tmp_3d, 249 249 . iim*(jjm+1)*klev,ndex3d) 250 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cv i(1,1,it),zx_tmp_3d)250 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cv(1,1,it),zx_tmp_3d) 251 251 CALL histwrite(nid_tra,"d_tr_cv_"//tnom(it+2),itau_w,zx_tmp_3d, 252 252 . iim*(jjm+1)*klev,ndex3d) 253 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cl i(1,1,it),zx_tmp_3d)253 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cl(1,1,it),zx_tmp_3d) 254 254 CALL histwrite(nid_tra,"d_tr_cl_"//tnom(it+2),itau_w,zx_tmp_3d, 255 255 . iim*(jjm+1)*klev,ndex3d)
Note: See TracChangeset
for help on using the changeset viewer.