4 SUBROUTINE cv3_cine(nloc, ncum, nd, icb, inb, pbase, plcl, p, ph, tv, tvp, &
 
   23   INTEGER ncum, nd, nloc
 
   24   INTEGER icb(nloc), inb(nloc)
 
   25   REAL pbase(nloc), plcl(nloc)
 
   26   REAL p(nloc, nd), ph(nloc, nd+1)
 
   27   REAL tv(nloc, nd), tvp(nloc, nd)
 
   30   REAL cina(nloc), cinb(nloc), plfc(nloc)
 
   34   INTEGER itop(nloc), ineg(nloc), ilow(nloc)
 
   35   INTEGER ifst(nloc), isublcl(nloc)
 
   36   LOGICAL lswitch(nloc), lswitch1(nloc), lswitch2(nloc)
 
   37   LOGICAL exist_lfc(nloc)
 
   40   REAL buoylcl(nloc), tvplcl(nloc), tvlcl(nloc)
 
   42   REAL buoyz(nloc), buoy(nloc, nd)
 
   58       buoy(il, k) = tvp(il, k) - tv(il, k)
 
   69     tvplcl(il) = tvp(il, 1)*(plcl(il)/p(il,1))**(2./7.) 
 
   73     IF (plcl(il)>p(il,icb(il))) 
THEN 
   75       isublcl(il) = icb(il) - 1
 
   77       ifst(il) = icb(il) + 1
 
   83     tvlcl(il) = tv(il, ifst(il)-1) + (tv(il,ifst(il))-tv(il,ifst(il)-1))*( &
 
   84       plcl(il)-p(il,ifst(il)-1))/(p(il,ifst(il))-p(il,ifst(il)-1))
 
   88     buoylcl(il) = tvplcl(il) - tvlcl(il)
 
   99     exist_lfc(il) = .
false.
 
  103       IF (k>=ifst(il)) 
THEN 
  104         IF (buoy(il,k)>0.) 
THEN 
  106           exist_lfc(il) = .
true.
 
  119     IF (.NOT. exist_lfc(il)) 
THEN 
  137     lswitch1(il) = buoylcl(il) >= 0. .AND. exist_lfc(il)
 
  138     lswitch(il) = lswitch1(il)
 
  147     IF (lswitch(il)) 
THEN 
  148       IF (p(il,ineg(il))<p(il,icb(il))-dpmax) 
THEN 
  159     lswitch2(il) = p(il, ineg(il)) >= p(il, icb(il)) - dpmax
 
  160     lswitch(il) = lswitch1(il) .AND. lswitch2(il)
 
  164     IF (lswitch(il)) 
THEN 
  170       IF (ineg(il)>isublcl(il)+1) 
THEN 
  173         p0(il) = (buoy(il,ineg(il))*p(il,ineg(il)-1)-buoy(il,ineg( &
 
  174           il)-1)*p(il,ineg(il)))/(buoy(il,ineg(il))-buoy(il,ineg(il)-1))
 
  178         p0(il) = (buoy(il,ineg(il))*plcl(il)-buoylcl(il)*p(il,ineg(il)))/ &
 
  179           (buoy(il,ineg(il))-buoylcl(il))
 
  187     IF (lswitch(il)) 
THEN 
  194       IF (lswitch(il)) 
THEN 
  195         IF (k>=ineg(il) .AND. buoy(il,k)>0) 
THEN 
  205     IF (lswitch(il)) 
THEN 
  206       plfc(il) = (buoy(il,itop(il))*p(il,itop(il)-1)-buoy(il,itop( &
 
  207         il)-1)*p(il,itop(il)))/(buoy(il,itop(il))-buoy(il,itop(il)-1))
 
  216     IF (lswitch(il)) 
THEN 
  217       deltap = p(il, itop(il)-1) - plfc(il)
 
  218       dcin = rd*buoy(il, itop(il)-1)*deltap/(p(il,itop(il)-1)+plfc(il))
 
  219       cina(il) = min(0., dcin)
 
  226       IF (lswitch(il)) 
THEN 
  227         IF (k>=ineg(il) .AND. k<=itop(il)-2) 
THEN 
  228           deltap = p(il, k) - p(il, k+1)
 
  229           dcin = 0.5*rd*(buoy(il,k)+buoy(il,k+1))*deltap/ph(il, k+1)
 
  230           cina(il) = cina(il) + min(0., dcin)
 
  238     IF (lswitch(il)) 
THEN 
  239       deltap = p0(il) - p(il, ineg(il))
 
  240       dcin = rd*buoy(il, ineg(il))*deltap/(p(il,ineg(il))+p0(il))
 
  241       cina(il) = cina(il) + min(0., dcin)
 
  251     lswitch1(il) = buoylcl(il) < 0. .AND. exist_lfc(il)
 
  252     lswitch(il) = lswitch1(il)
 
  261     IF (lswitch(il)) 
THEN 
  268       IF (lswitch(il) .AND. k<=icb(il)-1) 
THEN 
  269         IF (buoy(il,k)<0.) 
THEN 
  279     IF (lswitch(il)) 
THEN 
  281         p0(il) = (buoy(il,ilow(il))*p(il,ilow(il)-1)-buoy(il,ilow( &
 
  282           il)-1)*p(il,ilow(il)))/(buoy(il,ilow(il))-buoy(il,ilow(il)-1))
 
  286         buoyz(il) = buoy(il, 1)
 
  295     lswitch2(il) = (isublcl(il)==1 .AND. ilow(il)==1) .OR. &
 
  296       (isublcl(il)==ilow(il)-1)
 
  297     lswitch(il) = lswitch1(il) .AND. lswitch2(il)
 
  305     IF (lswitch(il)) 
THEN 
  306       deltap = p0(il) - plcl(il)
 
  307       dcin = rd*(buoyz(il)+buoylcl(il))*deltap/(p0(il)+plcl(il))
 
  308       cinb(il) = min(0., dcin)
 
  313     lswitch(il) = lswitch1(il) .AND. .NOT. lswitch2(il)
 
  322     IF (lswitch(il)) 
THEN 
  323       deltap = p0(il) - p(il, ilow(il))
 
  324       dcin = rd*(buoyz(il)+buoy(il,ilow(il)))*deltap/(p0(il)+p(il,ilow(il)))
 
  325       cinb(il) = min(0., dcin)
 
  334       IF (lswitch(il) .AND. k>=ilow(il) .AND. k<=isublcl(il)-1) 
THEN 
  335         deltap = p(il, k) - p(il, k+1)
 
  336         dcin = 0.5*rd*(buoy(il,k)+buoy(il,k+1))*deltap/ph(il, k+1)
 
  337         cinb(il) = cinb(il) + min(0., dcin)
 
  344     IF (lswitch(il)) 
THEN 
  345       deltap = p(il, isublcl(il)) - plcl(il)
 
  346       dcin = rd*(buoy(il,isublcl(il))+buoylcl(il))*deltap/ &
 
  347         (p(il,isublcl(il))+plcl(il))
 
  348       cinb(il) = cinb(il) + min(0., dcin)
 
  359     lswitch2(il) = plcl(il) > p(il, itop(il)-1)
 
  360     lswitch(il) = lswitch1(il) .AND. lswitch2(il)
 
  368     IF (lswitch(il)) 
THEN 
  369       plfc(il) = (buoy(il,itop(il))*p(il,itop(il)-1)-buoy(il,itop( &
 
  370         il)-1)*p(il,itop(il)))/(buoy(il,itop(il))-buoy(il,itop(il)-1))
 
  376     IF (lswitch(il)) 
THEN 
  377       deltap = p(il, itop(il)-1) - plfc(il)
 
  378       dcin = rd*buoy(il, itop(il)-1)*deltap/(p(il,itop(il)-1)+plfc(il))
 
  379       cina(il) = min(0., dcin)
 
  386       IF (lswitch(il) .AND. k>=icb(il)+1 .AND. k<=itop(il)-2) 
THEN 
  387         deltap = p(il, k) - p(il, k+1)
 
  388         dcin = 0.5*rd*(buoy(il,k)+buoy(il,k+1))*deltap/ph(il, k+1)
 
  389         cina(il) = cina(il) + min(0., dcin)
 
  396     IF (lswitch(il)) 
THEN 
  397       IF (plcl(il)>p(il,icb(il))) 
THEN 
  398         IF (icb(il)<itop(il)-1) 
THEN 
  399           deltap = p(il, icb(il)) - p(il, icb(il)+1)
 
  400           dcin = 0.5*rd*(buoy(il,icb(il))+buoy(il,icb(il)+1))*deltap/ &
 
  402           cina(il) = cina(il) + min(0., dcin)
 
  405         deltap = plcl(il) - p(il, icb(il))
 
  406         dcin = rd*(buoylcl(il)+buoy(il,icb(il)))*deltap/ &
 
  407           (plcl(il)+p(il,icb(il)))
 
  408         cina(il) = cina(il) + min(0., dcin)
 
  410         deltap = plcl(il) - p(il, icb(il)+1)
 
  411         dcin = rd*(buoylcl(il)+buoy(il,icb(il)+1))*deltap/ &
 
  412           (plcl(il)+p(il,icb(il)+1))
 
  413         cina(il) = cina(il) + min(0., dcin)
 
  419     lswitch(il) = lswitch1(il) .AND. .NOT. lswitch2(il)
 
  427     IF (lswitch(il)) 
THEN 
  428       plfc(il) = (buoy(il,itop(il))*plcl(il)-buoylcl(il)*p(il,itop(il)))/ &
 
  429         (buoy(il,itop(il))-buoylcl(il))
 
  434     IF (lswitch(il)) 
THEN 
  435       deltap = plcl(il) - plfc(il)
 
  436       dcin = rd*buoylcl(il)*deltap/(plcl(il)+plfc(il))
 
  437       cina(il) = min(0., dcin)
 
subroutine cv3_cine(nloc, ncum, nd, icb, inb, pbase, plcl, p, ph, tv, tvp, cina, cinb, plfc)
 
!$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 false
 
!$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