Changeset 1864 for LMDZ5/branches/testing/libf/phylmd/cva_driver.F
- Timestamp:
- Sep 11, 2013, 11:45:01 AM (11 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1797-1799,1801-1811,1813-1834,1836,1838-1840,1842-1860
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/cva_driver.F
r1795 r1864 3 3 ! 4 4 SUBROUTINE cva_driver(len,nd,ndp1,ntra,nloc, 5 & iflag_con,iflag_mix, 5 & iflag_con,iflag_mix,iflag_ice_thermo, 6 6 & iflag_clos,delt, 7 7 & t1,q1,qs1,t1_wake,q1_wake,qs1_wake,s1_wake, … … 52 52 C iflag_con Integer Input version of convect (3/4) 53 53 C iflag_mix Integer Input version of mixing (0/1/2) 54 C iflag_ice_thermo Integer Input accounting for ice thermodynamics (0/1) 54 55 C iflag_clos Integer Input version of closure (0/1) 55 56 C delt Real Input time step … … 155 156 integer iflag_con 156 157 integer iflag_mix 158 integer iflag_ice_thermo 157 159 integer iflag_clos 158 160 real delt … … 381 383 real buoybase1(klon) 382 384 385 real lf1(klon,klev) ,lf1_wake(klon,klev) 383 386 real lv1(klon,klev) ,lv1_wake(klon,klev) 384 387 real cpn1(klon,klev),cpn1_wake(klon,klev) … … 419 422 real gz(nloc,klev),h(nloc,klev) ,hm(nloc,klev) 420 423 real h_wake(nloc,klev),hm_wake(nloc,klev) 421 real lv(nloc,klev) ,cpn(nloc,klev)422 real lv_wake(nloc,klev), cpn_wake(nloc,klev)424 real lv(nloc,klev), lf(nloc,klev), cpn(nloc,klev) 425 real lv_wake(nloc,klev), lf_wake(nloc,klev), cpn_wake(nloc,klev) 423 426 real p(nloc,klev),ph(nloc,klev+1),tv(nloc,klev) ,tp(nloc,klev) 424 427 real tv_wake(nloc,klev) … … 430 433 real sig(nloc,klev), w0(nloc,klev), ptop2(nloc) 431 434 real hp(nloc,klev), ep(nloc,klev), sigp(nloc,klev) 432 real frac(nloc),buoy(nloc,klev)435 real buoy(nloc,klev) 433 436 real cape(nloc) 434 437 real cin(nloc) … … 444 447 real sigd(nloc) 445 448 ! real mp(nloc,klev), qp(nloc,klev), up(nloc,klev), vp(nloc,klev) 446 ! real wt(nloc,klev), water(nloc,klev), evap(nloc,klev) 449 ! real wt(nloc,klev), water(nloc,klev), evap(nloc,klev), ice(nloc,klev) 447 450 ! real b(nloc,klev), sigd(nloc) 448 451 ! save mp,qp,up,vp,wt,water,evap,b 449 452 real, save, allocatable :: mp(:,:),qp(:,:),up(:,:),vp(:,:) 450 real, save, allocatable :: wt(:,:),water(:,:),evap(:,:), b(:,:) 451 c$OMP THREADPRIVATE(mp,qp,up,vp,wt,water,evap,b) 453 real, save, allocatable :: wt(:,:),water(:,:),evap(:,:) 454 real, save, allocatable :: ice(:,:),fondue(:,:), b(:,:) 455 real, save, allocatable :: frac(:,:), faci(:,:) 456 c$OMP THREADPRIVATE(mp,qp,up,vp,wt,water,evap,ice,fondue,b,frac,faci) 452 457 real ft(nloc,klev), fq(nloc,klev) 453 458 real ftd(nloc,klev), fqd(nloc,klev) … … 496 501 allocate(mp(nloc,klev), qp(nloc,klev), up(nloc,klev)) 497 502 allocate(vp(nloc,klev), wt(nloc,klev), water(nloc,klev)) 503 allocate(ice(nloc,klev), fondue(nloc,klev)) 498 504 allocate(evap(nloc,klev), b(nloc,klev)) 505 allocate(frac(nloc,klev), faci(nloc,klev)) 499 506 first=.false. 500 507 endif … … 502 509 c (common cvflag) 503 510 504 CALL cv_flag 511 CALL cv_flag(iflag_ice_thermo) 505 512 506 513 c -- set thermodynamical constants: … … 610 617 ! print*,'t1, q1 ',t1,q1 611 618 CALL cv3_prelim(len,nd,ndp1,t1,q1,p1,ph1 ! nd->na 612 o ,lv1, cpn1,tv1,gz1,h1,hm1,th1)619 o ,lv1,lf1,cpn1,tv1,gz1,h1,hm1,th1) 613 620 614 621 c 615 622 CALL cv3_prelim(len,nd,ndp1,t1_wake,q1_wake,p1,ph1 ! nd->na 616 o ,lv1_wake, cpn1_wake,tv1_wake,gz1_wake623 o ,lv1_wake,lf1_wake,cpn1_wake,tv1_wake,gz1_wake 617 624 o ,h1_wake,bid,th1_wake) 618 625 … … 755 762 : ,u1,v1,gz1,th1,th1_wake 756 763 : ,tra1 757 : ,h1 ,lv1 758 : ,h1_wake,lv1_wake, cpn1_wake ,tv1_wake764 : ,h1 ,lv1, lf1,cpn1 ,p1,ph1,tv1 ,tp1,tvp1,clw1 765 : ,h1_wake,lv1_wake,lf1_wake,cpn1_wake ,tv1_wake 759 766 : ,sig1,w01,ptop21 760 767 : ,Ale1,Alp1 … … 765 772 o ,u,v,gz,th,th_wake 766 773 o ,tra 767 o ,h ,lv ,cpn ,p,ph,tv ,tp,tvp,clw768 o ,h_wake,lv_wake, cpn_wake ,tv_wake774 o ,h ,lv, lf ,cpn ,p,ph,tv ,tp,tvp,clw 775 o ,h_wake,lv_wake,lf_wake,cpn_wake ,tv_wake 769 776 o ,sig,w0,ptop2 770 777 o ,Ale,Alp ) … … 800 807 CALL cv3_undilute2(nloc,ncum,nd,icb,icbs,nk !na->nd 801 808 : ,tnk,qnk,gznk,hnk,t,q,qs,gz 802 : ,p,h,tv,lv,pbase,buoybase,plcl 803 o ,inb,tp,tvp,clw,hp,ep,sigp,buoy) 809 : ,p,h,tv,lv,lf,pbase,buoybase,plcl 810 o ,inb,tp,tvp,clw,hp,ep,sigp,buoy 811 : ,frac) 804 812 805 813 endif … … 816 824 !------------------------------------------------------------------- 817 825 IF (iflag_con .eq. 3) THEN 826 if ((iflag_ice_thermo.eq.1).and.(iflag_mix.ne.0)) then 827 write(*,*) " iflag_ice_thermo==1 requires iflag_mix==0", 828 & " but iflag_mix=",iflag_mix, ". Might as well stop here." 829 stop 830 endif 818 831 IF (iflag_mix .ge. 1 ) THEN 819 832 CALL zilch(supmax,nloc*klev) … … 877 890 IF (iflag_mix.eq.0) THEN 878 891 CALL cv3_mixing(nloc,ncum,nd,nd,ntra,icb,nk,inb ! na->nd 879 : ,ph,t,q,qs,u,v,tra,h,lv, qnk892 : ,ph,t,q,qs,u,v,tra,h,lv,lf,frac,qnk 880 893 : ,unk,vnk,hp,tv,tvp,ep,clw,m,sig 881 894 o ,ment,qent,uent,vent,nent,sigij,elij,ments,qents,traent) … … 913 926 CALL cv3_unsat(nloc,ncum,nd,nd,ntra,icb,inb,iflag ! na->nd 914 927 : ,t_wake,q_wake,qs_wake,gz,u,v,tra,p,ph 915 : ,th_wake,tv_wake,lv_wake, cpn_wake928 : ,th_wake,tv_wake,lv_wake,lf_wake,cpn_wake 916 929 : ,ep,sigp,clw 917 930 : ,m,ment,elij,delt,plcl,coef_clos 918 o ,mp,qp,up,vp,trap,wt,water,evap,b,sigd 931 o ,mp,qp,up,vp,trap,wt,water,evap,fondue,ice 932 : ,faci,b,sigd 919 933 o ,wdtrainA,wdtrainM) ! RomP 920 934 endif … … 943 957 : ,icb,inb,delt 944 958 : ,t,q,t_wake,q_wake,s_wake,u,v,tra 945 : ,gz,p,ph,h,hp,lv, cpn,th,th_wake959 : ,gz,p,ph,h,hp,lv,lf,cpn,th,th_wake 946 960 : ,ep,clw,m,tp,mp,qp,up,vp,trap 947 : ,wt,water, evap,b,sigd961 : ,wt,water,ice,evap,fondue,faci,b,sigd 948 962 : ,ment,qent,hent,iflag_mix,uent,vent 949 963 : ,nent,elij,traent,sig … … 1043 1057 return 1044 1058 end 1045
Note: See TracChangeset
for help on using the changeset viewer.