Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F	(revision 1682)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F	(revision 1711)
@@ -2,5 +2,5 @@
      &     date,tsurf,tsoil,emis,q2,
      &     t,ucov,vcov,ps,co2ice,h,phisold_newgrid,
-     &     q,qsurf,tauscaling,surfith,nid)
+     &     q,qsurf,tauscaling,totcloudfrac,surfith,nid)
 c=======================================================================
 c
@@ -49,4 +49,5 @@
       REAL,INTENT(OUT) :: q2(ngrid,nlayer+1),qsurf(ngrid,nqtot)
       REAL,INTENT(OUT) :: tauscaling(ngrid) ! dust conversion factor
+      REAL,INTENT(OUT) :: totcloudfrac(ngrid) ! sub grid cloud fraction
       REAL,INTENT(OUT) :: phisold_newgrid(iip1,jjp1)
       REAL,INTENT(OUT) :: t(iip1,jjp1,llm)
@@ -130,4 +131,5 @@
       REAL q2S(iip1,jjp1,llm+1),qsurfS(iip1,jjp1,nqtot)
       real tauscalingS(iip1,jjp1)
+      real totcloudfracS(iip1,jjp1)
 
       real ptotal, co2icetotal
@@ -158,4 +160,5 @@
       real, dimension(:,:,:,:), allocatable :: qold
       real, dimension(:,:), allocatable :: tauscalingold
+      real, dimension(:,:), allocatable :: totcloudfracold
 
       real tab_cntrl(100)
@@ -358,4 +361,5 @@
       allocate(qsurfold(imold+1,jmold+1,nqtot))
       allocate(tauscalingold(imold+1,jmold+1))
+      allocate(totcloudfracold(imold+1,jmold+1))
 
       allocate(var (imold+1,jmold+1,llm))
@@ -683,5 +687,5 @@
 
 c-----------------------------------------------------------------------
-c 5.1 Lecture des champs 2D (co2ice, emis,ps,tsurf,Tg[10], q2surf, tauscaling)
+c 5.1 Lecture des champs 2D (co2ice, emis,ps,tsurf,Tg[10], q2surf, tauscaling,totcloudfrac)
 c-----------------------------------------------------------------------
  
@@ -777,4 +781,23 @@
         IF (ierr .NE. NF_NOERR) THEN
            PRINT*, "lect_start_archive: Failed loading <tauscaling>"
+           PRINT*, NF_STRERROR(ierr)
+           CALL abort
+        ENDIF
+      ENDIF
+
+      ierr = NF_INQ_VARID (nid, "totcloudfrac", nvarid)
+      IF (ierr .NE. NF_NOERR) THEN
+         PRINT*, "lect_start_archive: <totcloudfrac> not in file"
+         totcloudfracold(:,:) = 1
+      ELSE
+#ifdef NC_DOUBLE
+        ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,
+     &                            totcloudfracold)
+#else
+        ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,
+     &                          totcloudfracold)
+#endif
+        IF (ierr .NE. NF_NOERR) THEN
+           PRINT*, "lect_start_archive: Failed loading <totcloudfrac>"
            PRINT*, NF_STRERROR(ierr)
            CALL abort
@@ -1063,4 +1086,10 @@
      &                   1,rlonuold,rlatvold,rlonu,rlatv)
       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,tauscalings,tauscaling)
+      
+c Sub grid cloud fraction
+      call interp_horiz (totcloudfracold,totcloudfracs,imold,jmold,iim,
+     &                   jjm,1,rlonuold,rlatvold,rlonu,rlatv)
+      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,totcloudfracs,totcloudfrac)
+      
 c     write(46,*) 'emis',emis
 c-----------------------------------------------------------------------
@@ -1422,4 +1451,5 @@
       deallocate(qsurfold)
       deallocate(tauscalingold)
+      deallocate(totcloudfracold)
       deallocate(var,varp1)
 
Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F	(revision 1682)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F	(revision 1711)
@@ -170,4 +170,6 @@
       real,allocatable :: coefvmr(:)  ! Correction coefficient when changing composition
       integer :: iloc(1), iqmax
+! sub-grid cloud fraction
+      real :: totcloudfrac(ngridmx)
 
 c sortie visu pour les champs dynamiques
@@ -402,5 +404,5 @@
      &   date,tsurf,tsoil,emis,q2,
      &   t,ucov,vcov,ps,co2ice,teta,phisold_newgrid,q,qsurf,
-     &   tauscaling,surfith,nid)
+     &   tauscaling,totcloudfrac,surfith,nid)
         write(*,*) "OK, read start_archive file"
 	! copy soil thermal inertia
@@ -423,5 +425,5 @@
         CALL phyetat0 (fichnom,tab0,Lmodif,nsoilmx,ngridmx,llm,nqtot,
      .        day_ini,time,
-     .        tsurf,tsoil,emis,q2,qsurf,co2ice,tauscaling)
+     .        tsurf,tsoil,emis,q2,qsurf,co2ice,tauscaling,totcloudfrac)
         
         ! copy albedo and soil thermal inertia
@@ -1640,5 +1642,6 @@
       call physdem1("restartfi.nc",nsoilmx,ngridmx,llm,nqtot,
      .              dtphys,hour_ini,
-     .              tsurf,tsoil,co2ice,emis,q2,qsurf,tauscaling)
+     .              tsurf,tsoil,co2ice,emis,q2,qsurf,tauscaling,
+     .              totcloudfrac)
 
 c=======================================================================
Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive.F
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive.F	(revision 1682)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive.F	(revision 1711)
@@ -64,4 +64,5 @@
       REAL co2ice(ngridmx)        ! CO2 ice layer
       REAL tauscaling(ngridmx) ! dust conversion factor
+      REAL totcloudfrac(ngridmx) ! sub-grid cloud fraction
       REAL q2(ngridmx,llm+1)
       REAL emis(ngridmx)
@@ -79,4 +80,5 @@
       REAL co2iceS(ip1jmp1)
       REAL tauscalingS(ip1jmp1)
+      REAL totcloudfracS(ip1jmp1)
       REAL q2S(ip1jmp1,llm+1)
       REAL,ALLOCATABLE :: qsurfS(:,:)
@@ -156,5 +158,5 @@
       CALL phyetat0 (fichnom,0,Lmodif,nsoilmx,ngridmx,llm,nqtot,
      &      day_ini_fi,timefi,tsurf,tsoil,emis,q2,qsurf,co2ice,
-     &      tauscaling)
+     &      tauscaling,totcloudfrac)
 
        ierr = NF_OPEN (fichnom, NF_NOWRITE,nid1)
@@ -244,4 +246,5 @@
 c qsurf --> qsurfS
 c tauscaling --> tauscalingS
+c totcloudfrac --> totcloudfracS
 c
 c-----------------------------------------------------------------------
@@ -256,4 +259,5 @@
       call gr_fi_dyn(nqtot,ngridmx,iip1,jjp1,qsurf,qsurfS)
       call gr_fi_dyn(1,ngridmx,iip1,jjp1,tauscaling,tauscalingS)
+      call gr_fi_dyn(1,ngridmx,iip1,jjp1,totcloudfrac,totcloudfracS)
 
 c=======================================================================
@@ -346,4 +350,6 @@
       call write_archive(nid,ntime,'tauscaling',
      &  'dust conversion factor',' ',2,tauscalingS)
+      call write_archive(nid,ntime,'totcloudfrac',
+     &  'sub grid cloud fraction',' ',2,totcloudfracS)
       call write_archive(nid,ntime,'emis','grd emis',' ',2,emisS)
       call write_archive(nid,ntime,'ps','Psurf','Pa',2,ps)
