Index: LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F
===================================================================
--- LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F	(revision 422)
+++ LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F	(revision 433)
@@ -123,4 +123,8 @@
       save ok_journe
 c      PARAMETER (ok_journe=.true.)
+
+      integer lev_histday
+      save lev_histday
+      data lev_histday/1/
 c
       LOGICAL ok_mensuel ! sortir le fichier mensuel
@@ -199,5 +203,5 @@
 cccIM cf. FH
       real u850(klon),v850(klon),u200(klon),v200(klon)
-      real u500(klon),v500(klon),phi500(klon)
+      real u500(klon),v500(klon),phi500(klon),w500(klon)
 
       logical ok_hf
@@ -248,10 +252,10 @@
       SAVE itap                   ! compteur pour la physique
 c
-      REAL co2_ppm
-      SAVE co2_ppm                ! concentration du CO2
-c
-      REAL solaire
-      SAVE solaire                ! constante solaire
-c
+      REAL co2_ppm_etat0
+c
+      REAL solaire_etat0
+c
+      real slp(klon) ! sea level pressure
+
       REAL ftsol(klon,nbsrf)
       SAVE ftsol                  ! temperature du sol
@@ -384,4 +388,7 @@
       REAL dlw(klon)    ! derivee infra rouge
       REAL bils(klon) ! bilan de chaleur au sol
+cIM cf. JLD
+      REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque
+C                   type de sous-surface et pondere par la fraction
       REAL fder(klon) ! Derive de flux (sensible et latente) 
       save fder
@@ -481,4 +488,7 @@
       REAL topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)
       REAL albpla(klon)
+cIM cf. JLD
+      REAL fsollw(klon, nbsrf)   ! bilan flux IR pour chaque sous surface
+      REAL fsolsw(klon, nbsrf)   ! flux solaire absorb. pour chaque sous surface
 c Le rayonnement n'est pas calcule tous les pas, il faut donc
 c                      sauvegarder les sorties du rayonnement
@@ -529,4 +539,7 @@
       REAL cape(klon)           ! CAPE
       SAVE cape
+cccIM
+      CHARACTER*40 capemaxcels
+
       REAL pbase(klon)          ! cloud base pressure
       SAVE pbase
@@ -726,4 +739,5 @@
      .                  ok_instan, fact_cldcon, facttemps,ok_newmicro,
      .                  iflag_cldcon,ratqsbas,ratqshaut, if_ebil)
+cIM  .                  , RI0)
 
          DO k = 2, nvm          ! pas de vegetation
@@ -745,5 +759,5 @@
          itaprad = 0
 c
-         CALL phyetat0 ("startphy.nc",dtime,co2_ppm,solaire,
+         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
      .       rlat,rlon,pctsrf, ftsol,ftsoil,deltat,fqsol,fsnow,
      .       falbe, fevap, rain_fall,snow_fall,solsw, sollwdown,
@@ -799,5 +813,14 @@
            ema_workcbmf(i) = 0.
           ENDDO
+
+cIM15/11/02 rajout initialisation ibas_con,itop_con cf. SB =>BEG
+          DO i = 1, klon
+           ibas_con(i) = 1
+           itop_con(i) = klev+1
+          ENDDO
+cIM15/11/02 rajout initialisation ibas_con,itop_con cf. SB =>END
+
          ENDIF
+
 c34EK
          IF (ok_orodr) THEN
@@ -856,4 +879,5 @@
 c
 cccIM
+      capemaxcels = 't_max(X)'
       t2mincels = 't_min(X)'
       t2maxcels = 't_max(X)'
@@ -1076,4 +1100,11 @@
       ENDIF
 
+      DO nsrf = 1, nbsrf
+      DO i = 1, klon
+        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
+        fsolsw(i,nsrf) = solsw(i)*(1.-falbe(i,nsrf))/(1.-albsol(i))
+      ENDDO
+      ENDDO
+
       fder = dlw
 
@@ -1085,5 +1116,6 @@
      $            paprs,pplay,radsol, fsnow,fqsol,fevap,falbe,falblw,
      $            fluxlat,
-     e            rain_fall, snow_fall, solsw, sollw, sollwdown, fder,
+cIM cf. JLD  e            rain_fall, snow_fall, solsw, sollw, sollwdown, fder,
+     e            rain_fall, snow_fall, fsolsw, fsollw, sollwdown, fder,
      e            rlon, rlat, cufi, cvfi, frugs,
      e            debut, lafin, agesno,rugoro ,
@@ -1166,4 +1198,7 @@
 c        IF (pctsrf(i,nsrf) .GE. EPSFRA) THEN 
             ftsol(i,nsrf) = ftsol(i,nsrf) + d_ts(i,nsrf)
+cIM cf. JLD
+            wfbils(i,nsrf) = ( fsolsw(i,nsrf) + fsollw(i,nsrf)
+     $         + fluxt(i,nsrf) + fluxlat(i,nsrf) ) * pctsrf(i,nsrf)
             zxtsol(i) = zxtsol(i) + ftsol(i,nsrf)*pctsrf(i,nsrf)
             zxfluxlat(i) = zxfluxlat(i) + fluxlat(i,nsrf)*pctsrf(i,nsrf)
@@ -1271,21 +1306,8 @@
      .        Ma,cape,tvp,iflagctrl,
      .        pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd)
+cIM cf. FH
+              clwcon0=qcondc
 
           ELSE ! ok_cvl
-
-          if (iflag_con.eq.4) then ! vectorise
-          CALL conemav (dtime,paprs,pplay,t_seri,q_seri,
-     .        u_seri,v_seri,tr_seri,nbtr,
-     .        ema_work1,ema_work2,
-     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
-     .        rain_con, snow_con, ibas_con, itop_con,
-     .        upwd,dnwd,dnwd0,
-c    .        Ma,cape,tvp,(/(nint(rflag(i)),i=1,size(rflag))/),
-     .        Ma,cape,tvp,iflagctrl,
-     .        pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr)
-
-            qcondc=0.0
-
-          else
 
 c          print*,'Avant conema OUI'
@@ -1303,4 +1325,6 @@
           print*,'Apres conema3 '
 
+          ENDIF ! ok_cvl
+
            IF (.NOT. ok_gust) THEN
            do i = 1, klon
@@ -1309,5 +1333,6 @@
            ENDIF
 
-c Calculer l'humidite relative pour diagnostique
+c =================================================================== c
+c Calcul des proprietes des nuages convectifs
 c
       DO k = 1, klev
@@ -1336,7 +1361,5 @@
      s       (klon,klev,q_seri,zqsat,clwcon0,ptconv,ratqsc,rnebcon0)
 
-          endif
-
-          ENDIF ! ok_cvl
+c =================================================================== c
 
           DO i = 1, klon
@@ -1668,5 +1691,6 @@
 !      albsollw = albsollw1
       CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
-     e            (dist, rmu0, fract, co2_ppm, solaire,
+cIM  e            (dist, rmu0, fract, co2_ppm, solaire,
+     e            (dist, rmu0, fract, 
      e             paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
      e             wo,
@@ -1681,4 +1705,5 @@
       ENDIF
       itaprad = itaprad + 1
+
 c
 c Ajouter la tendance des rayonnements (tous les pas)
@@ -1923,4 +1948,9 @@
       call plevel(klon,klev,.false.,pplay,20000.,v_seri,v200)
       call plevel(klon,klev,.true. ,pplay,50000.,zphi,phi500)
+      call plevel(klon,klev,.true. ,paprs,50000.,omega,w500)
+
+      slp(:) = paprs(:,1)*exp(pphis(:)/(289.*t_seri(:,1)))
+c
+
 
 c=============================================================
