Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F	(revision 2830)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F	(revision 2832)
@@ -25,8 +25,8 @@
       implicit none
 
-#include "dimensions.h"
-#include "paramet.h"
-#include "comgeom2.h"
-#include "netcdf.inc"
+      include "dimensions.h"
+      include "paramet.h"
+      include "comgeom2.h"
+      include "netcdf.inc"
 c=======================================================================
 c   Declarations
@@ -196,4 +196,8 @@
       real :: tmpval ! to store a temporary variable/value
 
+      ! flag to check if CO2 surface ice is in "co2ice" (old start_archive)
+      ! then it is set  to .true. or else it is in "co2_surf" (newer 
+      ! start_archive) and then .false.
+      logical :: old_co2ice=.false. 
 c=======================================================================
 
@@ -702,8 +706,19 @@
       count=(/imold+1,jmold+1,1,0/)
        
-      ierr = NF_INQ_VARID (nid, "co2", nvarid)
-      IF (ierr .NE. NF_NOERR) THEN
-         PRINT*, "lect_start_archive: <co2> is missing"
-         CALL abort
+      ! look for CO2ice on the surface
+      ! first try the "old" co2ice field for retro-compatibility:
+      ierr = NF_INQ_VARID (nid, "co2ice", nvarid)
+      IF (ierr .EQ. NF_NOERR) THEN
+        WRITE(*,*)" Found co2ice => this is an 'old' start_archive"
+        WRITE(*,*)" will read in 'co2ice' instead of 'co2_surf'"
+        old_co2ice=.true.
+      ELSE
+        ! no 'co2ice', look for co2_surf instead
+        ierr = NF_INQ_VARID (nid, "co2ice", nvarid)
+        IF (ierr .NE. NF_NOERR) THEN
+          PRINT*, "lect_start_archive: <co2_surf> is missing"
+          PRINT*, NF_STRERROR(ierr)
+          CALL abort
+        ENDIF
       ENDIF
 #ifdef NC_DOUBLE
@@ -713,7 +728,7 @@
 #endif
       IF (ierr .NE. NF_NOERR) THEN
-         PRINT*, "lect_start_archive: Failed loading <co2>"
-         PRINT*, NF_STRERROR(ierr)
-         CALL abort
+        PRINT*, "lect_start_archive: Failed loading <co2ice>"
+        PRINT*, NF_STRERROR(ierr)
+        CALL abort
       ENDIF
 c
@@ -878,4 +893,8 @@
           if(txt.eq."co2_surf") then
             igcm_co2=iq
+            if (old_co2ice) then
+              ! CO2 surface ice has already been loaded from "co2ice"
+              cycle
+            endif
           endif
         ENDIF ! of IF (oldtracernames)
Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F	(revision 2830)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F	(revision 2832)
@@ -1786,6 +1786,5 @@
      &              nsoilmx,ngridmx,llm,
      &              nqtot,dtphys,real(day_ini),0.0,cell_area,
-     &              albfi,ithfi,zmea,zstd,zsig,zgam,zthe,
-     &              hmons,summit,base)
+     &              albfi,ithfi)
       call physdem1("restartfi.nc",nsoilmx,ngridmx,llm,nqtot,
      &              dtphys,hour_ini,
Index: trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90	(revision 2830)
+++ trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90	(revision 2832)
@@ -180,5 +180,5 @@
       enddo
 
-      if(co2_tracer_found .eq. .false.) then
+      if(.not.co2_tracer_found) then
          call abort_physic("ini_tracer_mod","co2 tracer is now mandatory",1)
       endif
