4 SUBROUTINE cv_driver(len, nd, ndp1, ntra, iflag_con, t1, q1, qs1, u1, v1, &
 
    5     tra1, p1, ph1, iflag1, ft1, fq1, fu1, fv1, ftra1, precip1, vprecip1, &
 
    6     cbmf1, sig1, w01, icb1, inb1, delt, ma1, upwd1, dnwd1, dnwd01, qcondc1, &
 
    7     wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1, clw1, elij1, & 
 
    9     evap1, ep1, epmlmmm1, eplamm1, & 
 
  110   REAL tra1(len, nd, ntra)
 
  120   REAL ftra1(len, nd, ntra)
 
  125   REAL vprecip1(len, nd+1)
 
  133   REAL qcondc1(len, nd) 
 
  138   REAL wdtraina1(len, nd), wdtrainm1(len, nd)
 
  139   REAL sij1(len, nd, nd), elij1(len, nd, nd)
 
  140   REAL da1(len, nd), phi1(len, nd, nd), mp1(len, nd)
 
  142   REAL phi21(len, nd, nd)
 
  143   REAL d1a1(len, nd), dam1(len, nd)
 
  144   REAL epmlmmm1(len, nd, nd), eplamm1(len, nd)
 
  264   INTEGER i, k, n, il, j
 
  299   INTEGER iflag(nloc), nk(nloc), icb(nloc)
 
  300   INTEGER nent(nloc, 
klev)
 
  302   INTEGER inb(nloc), inbis(nloc)
 
  304   REAL cbmf(nloc), plcl(nloc), tnk(nloc), qnk(nloc), gznk(nloc)
 
  311   REAL pbase(nloc), buoybase(nloc), th(nloc, 
klev)
 
  313   REAL sig(nloc, 
klev), w0(nloc, 
klev)
 
  315   REAL frac(nloc), buoy(nloc, 
klev)
 
  322   REAL wt(nloc, 
klev), water(nloc, 
klev), evap(nloc, 
klev)
 
  325   REAL upwd(nloc, 
klev), dnwd(nloc, 
klev), dnwd0(nloc, 
klev)
 
  327   REAL tps(nloc, 
klev), qprime(nloc), tprime(nloc)
 
  329   REAL vprecip(nloc, 
klev+1)
 
  330   REAL tra(nloc, 
klev, ntra), trap(nloc, 
klev, ntra)
 
  331   REAL ftra(nloc, 
klev, ntra), traent(nloc, 
klev, 
klev, ntra)
 
  332   REAL qcondc(nloc, 
klev) 
 
  339   REAL d1a(nloc, 
klev), dam(nloc, 
klev)
 
  340   REAL wdtraina(nloc, 
klev), wdtrainm(nloc, 
klev)
 
  366   IF (iflag_con==30) 
THEN 
  370   IF (iflag_con==4) 
THEN 
  405   IF (iflag_con==30) 
THEN 
  407       sig1(il, nd) = sig1(il, nd) + 1.
 
  408       sig1(il, nd) = amin1(sig1(il,nd), 12.1)
 
  417   epmlmmm1(:, :, :) = 0.
 
  433   IF (iflag_con==30) 
THEN 
  437       , lv1, cpn1, tv1, gz1, h1, hm1, th1)
 
  440   IF (iflag_con==4) 
THEN 
  441     CALL cv_prelim(len, nd, ndp1, t1, q1, p1, ph1, lv1, cpn1, tv1, gz1, h1, &
 
  449   IF (iflag_con==30) 
THEN 
  450     CALL cv30_feed(len, nd, t1, q1, qs1, p1, ph1, hm1, gz1 & 
 
  452       , nk1, icb1, icbmax, iflag1, tnk1, qnk1, gznk1, plcl1)
 
  455   IF (iflag_con==4) 
THEN 
  456     CALL cv_feed(len, nd, t1, q1, qs1, p1, hm1, gz1, nk1, icb1, icbmax, &
 
  457       iflag1, tnk1, qnk1, gznk1, plcl1)
 
  467   IF (iflag_con==30) 
THEN 
  468     CALL cv30_undilute1(len, nd, t1, q1, qs1, gz1, plcl1, p1, nk1, icb1 & 
 
  469       , tp1, tvp1, clw1, icbs1)
 
  472   IF (iflag_con==4) 
THEN 
  473     CALL cv_undilute1(len, nd, t1, q1, qs1, gz1, p1, nk1, icb1, icbmax, tp1, &
 
  481   IF (iflag_con==30) 
THEN 
  482     CALL cv30_trigger(len, nd, icb1, plcl1, p1, th1, tv1, tvp1 & 
 
  484       , pbase1, buoybase1, iflag1, sig1, w01)
 
  487   IF (iflag_con==4) 
THEN 
  488     CALL cv_trigger(len, nd, icb1, cbmf1, tv1, tvp1, iflag1)
 
  497     IF (iflag1(i)==0) 
THEN 
  512     IF (iflag_con==30) 
THEN 
  513       CALL cv30_compress(len, nloc, ncum, nd, ntra, iflag1, nk1, icb1, icbs1, &
 
  514         plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, v1, &
 
  515         gz1, th1, tra1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, sig1, &
 
  516         w01, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, buoybase, t, &
 
  517         q, qs, u, v, gz, th, tra, h, lv, cpn, p, ph, tv, tp, tvp, clw, sig, &
 
  521     IF (iflag_con==4) 
THEN 
  522       CALL cv_compress(len, nloc, ncum, nd, iflag1, nk1, icb1, cbmf1, plcl1, &
 
  523         tnk1, qnk1, gznk1, t1, q1, qs1, u1, v1, gz1, h1, lv1, cpn1, p1, ph1, &
 
  524         tv1, tp1, tvp1, clw1, iflag, nk, icb, cbmf, plcl, tnk, qnk, gznk, t, &
 
  525         q, qs, u, v, gz, h, lv, cpn, p, ph, tv, tp, tvp, clw, dph)
 
  538     IF (iflag_con==30) 
THEN 
  540         , tnk, qnk, gznk, t, q, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, &
 
  541         inb, tp, tvp, clw, hp, ep, sigp, buoy)
 
  544     IF (iflag_con==4) 
THEN 
  545       CALL cv_undilute2(nloc, ncum, nd, icb, nk, tnk, qnk, gznk, t, q, qs, &
 
  546         gz, p, dph, h, tv, lv, inb, inbis, tp, tvp, clw, hp, ep, sigp, frac)
 
  553     IF (iflag_con==30) 
THEN 
  555         , pbase, p, ph, tv, buoy, sig, w0, cape, m)
 
  558     IF (iflag_con==4) 
THEN 
  559       CALL cv_closure(nloc, ncum, nd, nk, icb, tv, tvp, p, ph, dph, plcl, &
 
  567     IF (iflag_con==30) 
THEN 
  568       CALL cv30_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb & 
 
  570         , ph, t, q, qs, u, v, tra, h, lv, qnk, hp, tv, tvp, ep, clw, m, sig, &
 
  571         ment, qent, uent, vent, sij, elij, ments, qents, traent)
 
  574     IF (iflag_con==4) 
THEN 
  575       CALL cv_mixing(nloc, ncum, nd, icb, nk, inb, inbis, ph, t, q, qs, u, v, &
 
  576         h, lv, qnk, hp, tv, tvp, ep, clw, cbmf, m, ment, qent, uent, vent, &
 
  584     IF (iflag_con==30) 
THEN 
  586       CALL cv30_unsat(nloc, ncum, nd, nd, ntra, icb, inb & 
 
  587         , t, q, qs, gz, u, v, tra, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, &
 
  588         ment, elij, delt, plcl, mp, qp, up, vp, trap, wt, water, evap, b, &
 
  593     IF (iflag_con==4) 
THEN 
  594       CALL cv_unsat(nloc, ncum, nd, inb, t, q, qs, gz, u, v, p, ph, h, lv, &
 
  595         ep, sigp, clw, m, ment, elij, iflag, mp, qp, up, vp, wt, water, evap)
 
  604     IF (iflag_con==30) 
THEN 
  606         , icb, inb, delt, t, q, u, v, tra, gz, p, ph, h, hp, lv, cpn, th, ep, &
 
  607         clw, m, tp, mp, qp, up, vp, trap, wt, water, evap, b, ment, qent, &
 
  608         uent, vent, nent, elij, traent, sig, tv, tvp, iflag, precip, vprecip, &
 
  609         ft, fq, fu, fv, ftra, upwd, dnwd, dnwd0, ma, mike, tls, tps, qcondc, &
 
  613     IF (iflag_con==4) 
THEN 
  614       CALL cv_yield(nloc, ncum, nd, nk, icb, inb, delt, t, q, u, v, gz, p, &
 
  615         ph, h, hp, lv, cpn, ep, clw, frac, m, mp, qp, up, vp, wt, water, &
 
  616         evap, ment, qent, uent, vent, nent, elij, tv, tvp, iflag, wd, qprime, &
 
  617         tprime, precip, cbmf, ft, fq, fu, fv, ma, qcondc)
 
  624     IF (iflag_con==30) 
THEN 
  626       CALL cv30_tracer(nloc, len, ncum, nd, nd, ment, sij, da, phi, phi2, &
 
  627         d1a, dam, ep, vprecip, elij, clw, epmlmmm, eplamm, icb, inb)
 
  639     IF (iflag_con==30) 
THEN 
  640       CALL cv30_uncompress(nloc, len, ncum, nd, ntra, idcum, iflag, precip, &
 
  641         vprecip, evap, ep, sig, w0 & 
 
  642         , ft, fq, fu, fv, ftra, inb, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, &
 
  643         da, phi, mp, phi2, d1a, dam, sij & 
 
  644         , elij, clw, epmlmmm, eplamm & 
 
  645         , wdtraina, wdtrainm &     
 
  646         , iflag1, precip1, vprecip1, evap1, ep1, sig1, w01 & 
 
  647         , ft1, fq1, fu1, fv1, ftra1, inb1, ma1, upwd1, dnwd1, dnwd01, &
 
  648         qcondc1, wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1 & 
 
  649         , elij1, clw1, epmlmmm1, eplamm1 & 
 
  650         , wdtraina1, wdtrainm1) 
 
  653     IF (iflag_con==4) 
THEN 
  654       CALL cv_uncompress(nloc, len, ncum, nd, idcum, iflag, precip, cbmf, ft, &
 
  655         fq, fu, fv, ma, qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, &
 
  666 SUBROUTINE cv_flag(iflag_ice_thermo)
 
  671   INTEGER iflag_ice_thermo
 
  678   cvflag_ice = iflag_ice_thermo >= 1
 
  698   IF (iflag_con==4) 
THEN 
!$Id!Thermodynamical constants for t0 real clmcpv
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl t0
 
!$Id!Thermodynamical constants for cpv
 
!$Id!logical cvflag_grav logical cvflag_ice COMMON cvflag cvflag_grav
 
subroutine cv30_undilute1(len, nd, t, q, qs, gz, plcl, p, nk, icb, tp, tvp, clw, icbs)
 
!$Id mode_top_bound COMMON comconstr g
 
!$Id!Thermodynamical constants for t0 real cpvmcl
 
subroutine cv_closure(nloc, ncum, nd, nk, icb, tv, tvp, p, ph, dph, plcl, cpn, iflag, cbmf)
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl cpvmcl hrd
 
subroutine cv30_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, ph, t, rr, rs, u, v, tra, h, lv, qnk, hp, tv, tvp, ep, clw, m, sig, ment, qent, uent, vent, sij, elij, ments, qents, traent)
 
subroutine cv_mixing(nloc, ncum, nd, icb, nk, inb, inb1, ph, t, q, qs, u, v, h, lv, qnk, hp, tv, tvp, ep, clw, cbmf, m, ment, qent, uent, vent, nent, sij, elij)
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl cpvmcl clmci
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real ginv
 
!$Id!Thermodynamical constants for ci
 
!$Id!Thermodynamical constants for t0 real clmci real eps
 
subroutine cv_compress(len, nloc, ncum, nd, iflag1, nk1, icb1, cbmf1, plcl1, tnk1, qnk1, gznk1, t1, q1, qs1, u1, v1, gz1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, iflag, nk, icb, cbmf, plcl, tnk, qnk, gznk, t, q, qs, u, v, gz, h, lv, cpn, p, ph, tv, tp, tvp, clw, dph)
 
subroutine cv_prelim(len, nd, ndp1, t, q, p, ph, lv, cpn, tv, gz, h, hm)
 
!$Id!Thermodynamical constants for rrd
 
subroutine cv_trigger(len, nd, icb, cbmf, tv, tvp, iflag)
 
subroutine cv_undilute2(nloc, ncum, nd, icb, nk, tnk, qnk, gznk, t, q, qs, gz, p, dph, h, tv, lv, inb, inb1, tp, tvp, clw, hp, ep, sigp, frac)
 
subroutine cv_unsat(nloc, ncum, nd, inb, t, q, qs, gz, u, v, p, ph, h, lv, ep, sigp, clw, m, ment, elij, iflag, mp, qp, up, vp, wt, water, evap)
 
!$Id!Thermodynamical constants for cl
 
!$Id!Thermodynamical constants for t0 real clmcpd
 
subroutine cv_driver(len, nd, ndp1, ntra, iflag_con, t1, q1, qs1, u1, v1,tra1, p1, ph1, iflag1, ft1, fq1, fu1, fv1, ftra1, precip1, vprecip1,cbmf1, sig1, w01, icb1, inb1, delt, ma1, upwd1, dnwd1, dnwd01, qcondc1,wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1, clw1, elij1,
 
subroutine cv30_closure(nloc, ncum, nd, icb, inb, pbase, p, ph, tv, buoy, sig, w0, cape, m)
 
subroutine cv30_undilute2(nloc, ncum, nd, icb, icbs, nk, tnk, qnk, gznk, t, q, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, inb, tp, tvp, clw, hp, ep, sigp, buoy)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
subroutine cv30_prelim(len, nd, ndp1, t, q, p, ph, lv, cpn, tv, gz, h, hm, th)
 
subroutine cv30_feed(len, nd, t, q, qs, p, ph, hm, gz, nk, icb, icbmax, iflag, tnk, qnk, gznk, plcl)
 
subroutine cv30_unsat(nloc, ncum, nd, na, ntra, icb, inb, t, rr, rs, gz, u, v, tra, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, ment, elij, delt, plcl, mp, rp, up, vp, trap, wt, water, evap, b, wdtraina, wdtrainm)
 
subroutine cv_undilute1(len, nd, t, q, qs, gz, p, nk, icb, icbmax, tp, tvp, clw)
 
subroutine cv30_uncompress(nloc, len, ncum, nd, ntra, idcum, iflag, precip, vprecip, evap, ep, sig, w0, ft, fq, fu, fv, ftra, inb, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, da, phi, mp, phi2, d1a, dam, sij, elij, clw, epmlmmm, eplamm, wdtraina, wdtrainm, iflag1, precip1, vprecip1, evap1, ep1, sig1, w01, ft1, fq1, fu1, fv1, ftra1, inb1, ma1, upwd1, dnwd1, dnwd01, qcondc1, wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1, elij1, clw1, epmlmmm1, eplamm1, wdtraina1, wdtrainm1)
 
subroutine cv_thermo(iflag_con)
 
subroutine cv_yield(nloc, ncum, nd, nk, icb, inb, delt, t, q, u, v, gz, p, ph, h, hp, lv, cpn, ep, clw, frac, m, mp, qp, up, vp, wt, water, evap, ment, qent, uent, vent, nent, elij, tv, tvp, iflag, wd, qprime, tprime, precip, cbmf, ft, fq, fu, fv, ma, qcondc)
 
subroutine cv30_param(nd, delt)
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl cpvmcl epsim1
 
subroutine cv30_compress(len, nloc, ncum, nd, ntra, iflag1, nk1, icb1, icbs1, plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, v1, gz1, th1, tra1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, sig1, w01, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, buoybase, t, q, qs, u, v, gz, th, tra, h, lv, cpn, p, ph, tv, tp, tvp, clw, sig, w0)
 
subroutine cv_flag(iflag_ice_thermo)
 
subroutine cv_uncompress(nloc, len, ncum, nd, idcum, iflag, precip, cbmf, ft, fq, fu, fv, ma, qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, ma1, qcondc1)
 
subroutine cv_feed(len, nd, t, q, qs, p, hm, gz, nk, icb, icbmax, iflag, tnk, qnk, gznk, plcl)
 
!$Id!Thermodynamical constants for t0 real cpvmcpd
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo cpd
 
!$Id!Thermodynamical constants for rrv
 
!$Id!Thermodynamical constants for t0 real cpdmcp
 
!$Id!Thermodynamical constants for lv0
 
subroutine cv30_trigger(len, nd, icb, plcl, p, th, tv, tvp, pbase, buoybase, iflag, sig, w0)
 
!$Id!Thermodynamical constants for rowl
 
!$Id!Thermodynamical constants for t0 real clmci real epsi
 
subroutine cv30_yield(nloc, ncum, nd, na, ntra, icb, inb, delt, t, rr, u, v, tra, gz, p, ph, h, hp, lv, cpn, th, ep, clw, m, tp, mp, rp, up, vp, trap, wt, water, evap, b, ment, qent, uent, vent, nent, elij, traent, sig, tv, tvp, iflag, precip, vprecip, ft, fr, fu, fv, ftra, upwd, dnwd, dnwd0, ma, mike, tls, tps, qcondc, wd)
 
subroutine cv30_tracer(nloc, len, ncum, nd, na, ment, sij, da, phi, phi2, d1a, dam, ep, vprecip, elij, clw, epmlmmm, eplamm, icb, inb)
 
!$Id!Thermodynamical constants for lf0