7 & t1,q1,qs1,t1_wake,q1_wake,qs1_wake,s1_wake,
11 & sig1feed1,sig2feed1,wght1,
12 o iflag1,ft1,fq1,fu1,fv1,ftra1,
13 & precip1,kbas1,ktop1,
14 & cbmf1,plcl1,plfc1,wbeff1,
17 & ma1,mip1,vprecip1,upwd1,dnwd1,dnwd01,
21 & plim11,plim21,asupmax1,supmax01,asupmaxmin1
23 & da1,phi1,mp1,phi21,d1a1,dam1,sigij1,clw1,
24 & elij1,evap1,ep1,epmlmmm1,eplamm1,
25 & wdtraina1,wdtrainm1)
145 #include "dimensions.h"
164 real qs1_wake(len,nd)
168 real tra1(len,nd,ntra)
183 real ftra1(len,nd,ntra)
198 real vprecip1(len,nd+1)
216 real asupmax1(len,nd)
218 real asupmaxmin1(len)
219 integer lalim_conv(len)
221 real wdtraina1(len,nd), wdtrainm1(len,nd)
222 real da1(len,nd),phi1(len,nd,nd),mp1(len,nd)
223 real epmlmmm1(len,nd,nd),eplamm1(len,nd)
224 real evap1(len,nd),ep1(len,nd)
225 real sigij1(len,nd,nd),elij1(len,nd,nd)
226 real phi21(len,nd,nd)
227 real d1a1(len,nd), dam1(len,nd)
360 integer nword1,nword2,nword3,nword4
367 logical,
save :: debut=.true.
383 real lv1(klon,
klev) ,lv1_wake(klon,
klev)
384 real cpn1(klon,
klev),cpn1_wake(klon,
klev)
385 real tv1(klon,
klev) ,tv1_wake(klon,
klev)
386 real gz1(klon,
klev) ,gz1_wake(klon,
klev)
387 real hm1(klon,
klev) ,hm1_wake(klon,
klev)
388 real h1(klon,
klev) ,h1_wake(klon,
klev)
391 real th1(klon,
klev) ,th1_wake(klon,
klev)
409 integer iflag(nloc),nk(nloc),icb(nloc)
410 integer nent(nloc,
klev)
412 integer inb(nloc), inbis(nloc)
414 real cbmf(nloc),plcl(nloc),plfc(nloc),wbeff(nloc)
416 real t_wake(nloc,
klev),q_wake(nloc,
klev),qs_wake(nloc,
klev)
420 real h_wake(nloc,
klev),hm_wake(nloc,
klev)
422 real lv_wake(nloc,
klev),cpn_wake(nloc,
klev)
424 real tv_wake(nloc,
klev)
427 real pbase(nloc), buoybase(nloc), th(nloc,
klev)
428 real th_wake(nloc,
klev)
430 real sig(nloc,
klev), w0(nloc,
klev), ptop2(nloc)
442 real supmax(nloc,
klev)
443 real ale(nloc),alp(nloc),coef_clos(nloc)
449 real,
save,
allocatable :: mp(:,:),qp(:,:),up(:,:),vp(:,:)
450 real,
save,
allocatable :: wt(:,:),water(:,:),evap(:,:), b(:,:)
457 real tps(nloc,
klev), qprime(nloc), tprime(nloc)
460 real vprecip(nloc,
klev+1)
461 real tra(nloc,
klev,ntra), trap(nloc,
klev,ntra)
463 real qcondc(nloc,
klev)
465 real plim1(nloc),plim2(nloc)
466 real asupmax(nloc,
klev)
468 real asupmaxmin(nloc)
470 real tnk(nloc),qnk(nloc),gznk(nloc)
472 real hnk(nloc),unk(nloc),vnk(nloc)
475 real wdtraina(nloc,
klev),wdtrainm(nloc,
klev)
476 real da(len,nd),phi(len,nd,nd)
479 real d1a(len,nd), dam(len,nd)
482 logical,
save :: first=.true.
484 CHARACTER (LEN=20) :: modname=
'cva_driver'
485 CHARACTER (LEN=80) :: abort_message
497 allocate(vp(nloc,
klev), wt(nloc,
klev), water(nloc,
klev))
498 allocate(evap(nloc,
klev), b(nloc,
klev))
572 sig1(il,nd)=sig1(il,nd)+1.
573 sig1(il,nd)=amin1(sig1(il,nd),12.1)
608 print*,
'Emanuel version 3 nouvelle'
612 o ,lv1,cpn1,tv1,gz1,h1,hm1,th1)
615 CALL
cv3_prelim(len,nd,ndp1,t1_wake,q1_wake,p1,ph1
616 o ,lv1_wake,cpn1_wake,tv1_wake,gz1_wake
617 o ,h1_wake,bid,th1_wake)
622 print*,
'Emanuel version 4 '
624 o ,lv1,cpn1,tv1,gz1,h1,hm1)
636 if(sig1feed1.eq.sig2feed1)
then
637 write(
lunout,*)
'impossible de choisir sig1feed=sig2feed'
638 write(
lunout,*)
'changer la valeur de sig2feed dans physiq.def'
644 p1feed1(
i)=sig1feed1*ph1(
i,1)
645 p2feed1(
i)=sig2feed1*ph1(
i,1)
666 CALL
cv3_feed(len,nd,t1,q1,u1,v1,p1,ph1,hm1,gz1
667 i ,p1feed1,p2feed1,wght1
668 o ,wghti1,tnk1,thnk1,qnk1,qsnk1,unk1,vnk1
669 o ,cpnk1,hnk1,nk1,icb1,icbmax,iflag1,gznk1,plcl1)
677 CALL
cv_feed(len,nd,t1,q1,qs1,p1,hm1,gz1
678 o ,nk1,icb1,icbmax,iflag1,tnk1,qnk1,gznk1,plcl1)
693 o ,gznk1,tp1,tvp1,clw1,icbs1)
698 CALL
cv_undilute1(len,nd,t1,q1,qs1,gz1,p1,nk1,icb1,icbmax
710 CALL
cv3_trigger(len,nd,icb1,plcl1,p1,th1,tv1,tvp1,thnk1
711 o ,pbase1,buoybase1,iflag1,sig1,w01)
722 CALL
cv_trigger(len,nd,icb1,cbmf1,tv1,tvp1,iflag1)
732 if(iflag1(
i).eq.0)
then
751 : ,iflag1,nk1,icb1,icbs1
752 : ,plcl1,tnk1,qnk1,gznk1,hnk1,unk1,vnk1
753 : ,wghti1,pbase1,buoybase1
754 : ,t1,q1,qs1,t1_wake,q1_wake,qs1_wake,s1_wake
755 : ,u1,v1,gz1,th1,th1_wake
757 : ,h1 ,lv1 ,cpn1 ,p1,ph1,tv1 ,tp1,tvp1,clw1
758 : ,h1_wake,lv1_wake,cpn1_wake ,tv1_wake
762 o ,plcl,tnk,qnk,gznk,hnk,unk,vnk
763 o ,wghti,pbase,buoybase
764 o ,t,
q,qs,t_wake,q_wake,qs_wake,s_wake
767 o ,h ,lv ,cpn ,p,ph,tv ,tp,tvp,clw
768 o ,h_wake,lv_wake,cpn_wake ,tv_wake
780 : ,cbmf1,plcl1,tnk1,qnk1,gznk1
781 : ,t1,q1,qs1,u1,v1,gz1
782 : ,h1,lv1,cpn1,p1,ph1,tv1,tp1,tvp1,clw1
784 o ,cbmf,plcl,tnk,qnk,gznk
785 o ,t,
q,qs,
u,
v,gz,h,lv,cpn,p,ph,tv,tp,tvp,clw
801 : ,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 : ,tnk,qnk,gznk,t,
q,qs,gz
811 o ,inb,inbis,tp,tvp,clw,hp,ep,sigp,
frac)
818 IF (iflag_mix .ge. 1 )
THEN
821 : ,ph,t,
q,qs,
u,
v,tra,h,lv,qnk
822 : ,unk,vnk,hp,tv,tvp,ep,clw,sig
823 : ,ment,qent,hent,uent,vent,nent
824 : ,sigij,elij,supmax,ments,qents,traent)
839 : ,pbase,p,ph,tv,buoy
840 o ,sig,w0,cape,
m,iflag)
843 ok_inhib = iflag_mix .EQ. 2
846 print *,
' pas d appel cv3p_closure'
854 : ,pbase,plcl,p,ph,tv,tvp,buoy
855 : ,supmax,ok_inhib,ale,alp
856 o ,sig,w0,ptop2,cape,cin,
m,iflag,coef_clos
857 : ,plim1,plim2,asupmax,supmax0
858 : ,asupmaxmin,cbmf,plfc,wbeff)
860 print *,
'cv3p1_closure-> plfc,wbeff ', plfc(1),wbeff(1)
866 : ,tv,tvp,p,ph,dph,plcl,cpn
877 IF (iflag_mix.eq.0)
THEN
878 CALL
cv3_mixing(nloc,ncum,nd,nd,ntra,icb,nk,inb
879 : ,ph,t,
q,qs,
u,
v,tra,h,lv,qnk
880 : ,unk,vnk,hp,tv,tvp,ep,clw,
m,sig
881 o ,ment,qent,uent,vent,nent,sigij,elij,ments,qents,traent)
886 print *,
' cv3_mixscale-> '
892 CALL
cv_mixing(nloc,ncum,nd,icb,nk,inb,inbis
893 : ,ph,t,
q,qs,
u,
v,h,lv,qnk
894 : ,hp,tv,tvp,ep,clw,cbmf
895 o ,
m,ment,qent,uent,vent,nent,sigij,elij)
899 print *,
' cv_mixing ->'
910 print *,
' cva_driver -> cv3_unsat '
913 CALL
cv3_unsat(nloc,ncum,nd,nd,ntra,icb,inb,iflag
914 : ,t_wake,q_wake,qs_wake,gz,
u,
v,tra,p,ph
915 : ,th_wake,tv_wake,lv_wake,cpn_wake
917 : ,
m,ment,elij,delt,plcl,coef_clos
918 o ,mp,qp,up,vp,trap,wt,water,evap,b,
sigd
919 o ,wdtraina,wdtrainm)
923 CALL
cv_unsat(nloc,ncum,nd,inb,t,
q,qs,gz,
u,
v,p,ph
924 : ,h,lv,ep,sigp,clw,
m,ment,elij
925 o ,iflag,mp,qp,up,vp,wt,water,evap)
929 print *,
'cv_unsat-> '
944 : ,t,
q,t_wake,q_wake,s_wake,
u,
v,tra
945 : ,gz,p,ph,h,hp,lv,cpn,th,th_wake
946 : ,ep,clw,
m,tp,mp,qp,up,vp,trap
947 : ,wt,water,evap,b,
sigd
948 : ,ment,qent,hent,iflag_mix,uent,vent
949 : ,nent,elij,traent,sig
951 : ,iflag,precip,vprecip,ft,fq,fu,fv,ftra
952 : ,cbmf,upwd,dnwd,dnwd0,ma,mip
958 print *,
' cv3_yield -> fqd(1) = ',fqd(1,1)
962 CALL
cv_yield(nloc,ncum,nd,nk,icb,inb,delt
964 : ,gz,p,ph,h,hp,lv,cpn
965 : ,ep,clw,
frac,
m,mp,qp,up,vp
967 : ,ment,qent,uent,vent,nent,elij
969 o ,iflag,wd,qprime,tprime
970 o ,precip,cbmf,ft,fq,fu,fv,ma,qcondc)
981 : ment,sigij,da,phi,phi2,d1a,dam,
982 : ep,vprecip,elij,clw,epmlmmm,eplamm,
997 : ,precip,cbmf,plcl,plfc,wbeff,sig,w0,ptop2
999 : ,
sigd,ma,mip,vprecip,upwd,dnwd,dnwd0
1000 ; ,qcondc,wd,cape,cin
1003 : ,plim1,plim2,asupmax,supmax0
1005 : ,da,phi,mp,phi2,d1a,dam,sigij
1006 : ,clw,elij,evap,ep,epmlmmm,eplamm
1007 : ,wdtraina,wdtrainm
1008 o ,iflag1,kbas1,ktop1
1009 o ,precip1,cbmf1,plcl1,plfc1,wbeff1,sig1,w01,ptop21
1010 o ,ft1,fq1,fu1,fv1,ftra1
1011 o ,sigd1,ma1,mip1,vprecip1,upwd1,dnwd1,dnwd01
1012 o ,qcondc1,wd1,cape1,cin1
1015 o ,plim11,plim21,asupmax1,supmax01
1017 o ,da1,phi1,mp1,phi21,d1a1,dam1,sigij1
1018 o ,clw1,elij1,evap1,ep1,epmlmmm1,eplamm1
1019 o ,wdtraina1,wdtrainm1)
1037 print *,
' cv_compress -> '