Index: LMDZ5/trunk/arch/arch-CICLADifort-seq.fcm
===================================================================
--- LMDZ5/trunk/arch/arch-CICLADifort-seq.fcm	(revision 1654)
+++ LMDZ5/trunk/arch/arch-CICLADifort-seq.fcm	(revision 1654)
@@ -0,0 +1,15 @@
+%COMPILER            ifort
+%LINK                ifort
+%AR                  ar
+%MAKE                make
+%FPP_FLAGS           -P -traditional
+%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM FFT_FFTW
+%BASE_FFLAGS         -real-size 64 -ip -mkl=sequential -fp-model precise -align common -mcmodel=large
+%PROD_FFLAGS         -O2
+%DEV_FFLAGS          -O2
+%DEBUG_FFLAGS        -g -no-ftz -check -traceback -ftrapuv -fp-stack-check
+%MPI_FFLAGS          
+%OMP_FFLAGS          
+%BASE_LD             -mkl=sequential 
+%MPI_LD              -lmkl_core -lfftw3
+%OMP_LD              
Index: LMDZ5/trunk/arch/arch-CICLADifort-seq.path
===================================================================
--- LMDZ5/trunk/arch/arch-CICLADifort-seq.path	(revision 1654)
+++ LMDZ5/trunk/arch/arch-CICLADifort-seq.path	(revision 1654)
@@ -0,0 +1,10 @@
+NETCDF_LIBDIR="-L/opt/netcdf/ifort/lib -lnetcdf"
+NETCDF_INCDIR=-I/opt/netcdf/ifort/include
+IOIPSL_INCDIR=/home/spiga/IOIPSL_SVN/modipsl/lib
+IOIPSL_LIBDIR=/home/spiga/IOIPSL_SVN/modipsl/lib
+ORCH_INCDIR=$LMDGCM/../../lib
+ORCH_LIBDIR=$LMDGCM/../../lib
+OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple
+OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib
+INCA_LIBDIR=$LMDGCM/../INCA3/config/lib
+INCA_INCDIR=$LMDGCM/../INCA3/config/lib
Index: LMDZ5/trunk/arch/arch-CICLADifort.fcm
===================================================================
--- LMDZ5/trunk/arch/arch-CICLADifort.fcm	(revision 1654)
+++ LMDZ5/trunk/arch/arch-CICLADifort.fcm	(revision 1654)
@@ -0,0 +1,15 @@
+%COMPILER            /usr/lib64/openmpi/1.4.3-ifort/bin/mpif90
+%LINK                /usr/lib64/openmpi/1.4.3-ifort/bin/mpif90
+%AR                  ar
+%MAKE                make
+%FPP_FLAGS           -P -traditional
+%FPP_DEF             NC_DOUBLE BLAS SGEMV=DGEMV SGEMM=DGEMM FFT_FFTW
+%BASE_FFLAGS         -real-size 64 -ip -mkl=parallel -fp-model precise -align common -mcmodel=large 
+%PROD_FFLAGS         -O2
+%DEV_FFLAGS          -O2
+%DEBUG_FFLAGS        -fpe0 -g -no-ftz -check -traceback -ftrapuv -fp-stack-check
+%MPI_FFLAGS          -I/usr/lib64/openmpi/1.4.3-ifort/include
+%OMP_FFLAGS          
+%BASE_LD             -mkl=parallel
+%MPI_LD              -L/usr/lib64/openmpi/1.4.3-ifort/lib -lmpi -lmkl_core -lfftw3
+%OMP_LD              
Index: LMDZ5/trunk/arch/arch-CICLADifort.path
===================================================================
--- LMDZ5/trunk/arch/arch-CICLADifort.path	(revision 1654)
+++ LMDZ5/trunk/arch/arch-CICLADifort.path	(revision 1654)
@@ -0,0 +1,10 @@
+NETCDF_LIBDIR="-L/opt/netcdf/ifort/lib -lnetcdf"
+NETCDF_INCDIR=-I/opt/netcdf/ifort/include
+IOIPSL_INCDIR=/home/spiga/IOIPSL_SVN/modipsl/lib
+IOIPSL_LIBDIR=/home/spiga/IOIPSL_SVN/modipsl/lib
+ORCH_INCDIR=$LMDGCM/../../lib
+ORCH_LIBDIR=$LMDGCM/../../lib
+OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple
+OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib
+INCA_LIBDIR=$LMDGCM/../INCA3/config/lib
+INCA_INCDIR=$LMDGCM/../INCA3/config/lib
Index: LMDZ5/trunk/libf/dyn3d/calfis.F
===================================================================
--- LMDZ5/trunk/libf/dyn3d/calfis.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3d/calfis.F	(revision 1654)
@@ -179,4 +179,7 @@
 !      REAL rdayvrai
       REAL, intent(in):: jD_cur, jH_cur
+
+      LOGICAL tracerdyn
+
 c
 c-----------------------------------------------------------------------
@@ -459,5 +462,4 @@
       zdqfic(:,:,:)=0.
 
-      if (planet_type=="earth") then
 #ifdef CPP_PHYS
 
@@ -467,4 +469,6 @@
          debut_split=debut.and.isplit==1
          lafin_split=lafin.and.isplit==nsplit_phys
+
+      if (planet_type=="earth") then
 
          CALL physiq (ngridmx,
@@ -495,4 +499,32 @@
      .             PVteta)
 
+      else if ( planet_type=="generic" ) then
+
+         CALL physiq (ngridmx,     !! ngrid
+     .             llm,            !! nlayer
+     .             nqtot,          !! nq
+     .             tname,          !! tracer names from dynamical core (given in infotrac)
+     .             debut_split,    !! firstcall 
+     .             lafin_split,    !! lastcall
+     .             float(day_ini), !! pday <-- day_ini (dans temps.h)
+     .             jH_cur_split,   !! ptime "fraction of day"
+     .             zdt_split,      !! ptimestep
+     .             zplev,          !! pplev
+     .             zplay,          !! pplay
+     .             zphi,           !! pphi
+     .             zufi,           !! pu
+     .             zvfi,           !! pv
+     .             ztfi,           !! pt
+     .             zqfi,           !! pq
+     .             flxwfi,         !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
+     .             zdufi,          !! pdu
+     .             zdvfi,          !! pdv
+     .             zdtfi,          !! pdt
+     .             zdqfi,          !! pdq
+     .             zdpsrf,         !! pdpsrf
+     .             tracerdyn)      !! tracerdyn <-- utilite ???
+
+      endif ! of if (planet_type=="earth")
+
          zufi(:,:)=zufi(:,:)+zdufi(:,:)*zdt_split
          zvfi(:,:)=zvfi(:,:)+zdvfi(:,:)*zdt_split
@@ -509,5 +541,4 @@
 #endif
 ! of #ifdef CPP_PHYS
-      endif ! of if (planet_type=="earth")
 
       zdufi(:,:)=zdufic(:,:)/nsplit_phys
Index: LMDZ5/trunk/libf/dyn3d/comvert.h
===================================================================
--- LMDZ5/trunk/libf/dyn3d/comvert.h	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3d/comvert.h	(revision 1654)
@@ -7,5 +7,5 @@
       COMMON/comvertr/ap(llm+1),bp(llm+1),presnivs(llm),dpres(llm),     &
      &               pa,preff,nivsigs(llm),nivsig(llm+1),               &
-     &               aps(llm),bps(llm),scaleheight
+     &               aps(llm),bps(llm),scaleheight,pseudoalt(llm)
 
       common/comverti/disvert_type, pressure_exner
@@ -23,4 +23,5 @@
       real bps    ! hybrid sigma contribution at mid-layers
       real scaleheight ! atmospheric (reference) scale height (km)
+      real pseudoalt ! for planets
 
       integer disvert_type ! type of vertical discretization:
Index: LMDZ5/trunk/libf/dyn3d/disvert_noterre.F
===================================================================
--- LMDZ5/trunk/libf/dyn3d/disvert_noterre.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3d/disvert_noterre.F	(revision 1654)
@@ -46,5 +46,4 @@
       real tt,rr,gg, prevz
       real s(llm),dsig(llm) 
-      real pseudoalt(llm)
 
       integer iz 
Index: LMDZ5/trunk/libf/dyn3d/dynetat0.F
===================================================================
--- LMDZ5/trunk/libf/dyn3d/dynetat0.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3d/dynetat0.F	(revision 1654)
@@ -7,4 +7,7 @@
       USE infotrac
       use netcdf, only: nf90_get_var
+
+      use control_mod, only : planet_type
+
       IMPLICIT NONE
 
@@ -54,4 +57,6 @@
       INTEGER ierr, nid, nvarid
 
+      INTEGER idecal
+
 c-----------------------------------------------------------------------
 
@@ -77,30 +82,42 @@
       ENDIF
 
+      !!! AS: idecal is a hack to be able to read planeto starts...
+      !!!     .... while keeping everything OK for LMDZ EARTH
+      if (planet_type.eq."generic") then
+          print*,'NOTE NOTE NOTE : Planeto-like start files'
+          idecal = 4
+          annee_ref  = 2000
+      else
+          print*,'NOTE NOTE NOTE : Earth-like start files'
+          idecal = 5
+          annee_ref  = tab_cntrl(5)
+      endif
+
+
       im         = tab_cntrl(1)
       jm         = tab_cntrl(2)
       lllm       = tab_cntrl(3)
       day_ref    = tab_cntrl(4)
-      annee_ref  = tab_cntrl(5)
-      rad        = tab_cntrl(6)
-      omeg       = tab_cntrl(7)
-      g          = tab_cntrl(8)
-      cpp        = tab_cntrl(9)
-      kappa      = tab_cntrl(10)
-      daysec     = tab_cntrl(11)
-      dtvr       = tab_cntrl(12)
-      etot0      = tab_cntrl(13)
-      ptot0      = tab_cntrl(14)
-      ztot0      = tab_cntrl(15)
-      stot0      = tab_cntrl(16)
-      ang0       = tab_cntrl(17)
-      pa         = tab_cntrl(18)
-      preff      = tab_cntrl(19)
-c
-      clon       = tab_cntrl(20)
-      clat       = tab_cntrl(21)
-      grossismx  = tab_cntrl(22)
-      grossismy  = tab_cntrl(23)
-c
-      IF ( tab_cntrl(24).EQ.1. )  THEN
+      rad        = tab_cntrl(idecal+1)
+      omeg       = tab_cntrl(idecal+2)
+      g          = tab_cntrl(idecal+3)
+      cpp        = tab_cntrl(idecal+4)
+      kappa      = tab_cntrl(idecal+5)
+      daysec     = tab_cntrl(idecal+6)
+      dtvr       = tab_cntrl(idecal+7)
+      etot0      = tab_cntrl(idecal+8)
+      ptot0      = tab_cntrl(idecal+9)
+      ztot0      = tab_cntrl(idecal+10)
+      stot0      = tab_cntrl(idecal+11)
+      ang0       = tab_cntrl(idecal+12)
+      pa         = tab_cntrl(idecal+13)
+      preff      = tab_cntrl(idecal+14)
+c
+      clon       = tab_cntrl(idecal+15)
+      clat       = tab_cntrl(idecal+16)
+      grossismx  = tab_cntrl(idecal+17)
+      grossismy  = tab_cntrl(idecal+18)
+c
+      IF ( tab_cntrl(idecal+19).EQ.1. )  THEN
         fxyhypb  = . TRUE .
 c        dzoomx   = tab_cntrl(25)
@@ -111,5 +128,5 @@
         fxyhypb = . FALSE .
         ysinus  = . FALSE .
-        IF( tab_cntrl(27).EQ.1. ) ysinus = . TRUE. 
+        IF( tab_cntrl(idecal+22).EQ.1. ) ysinus = . TRUE. 
       ENDIF
 
@@ -225,5 +242,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <temps> est absent"
-         CALL abort
+         write(lunout,*)"dynetat0: J essaie <Time>"
+         ierr = NF_INQ_VARID (nid, "Time", nvarid)
+         IF (ierr .NE. NF_NOERR) THEN
+            write(lunout,*)"dynetat0: Le champ <Time> est absent"
+            CALL abort
+         ENDIF
       ENDIF
       ierr = nf90_get_var(nid, nvarid, time)
Index: LMDZ5/trunk/libf/dyn3dpar/calfis_p.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dpar/calfis_p.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3dpar/calfis_p.F	(revision 1654)
@@ -242,4 +242,6 @@
       integer :: k,kstart,kend
       INTEGER :: offset  
+
+      LOGICAL tracerdyn
 c
 c-----------------------------------------------------------------------
@@ -636,5 +638,4 @@
       zdqfic_omp(:,:,:)=0.
 
-      if (planet_type=="earth") then
 #ifdef CPP_PHYS
       do isplit=1,nsplit_phys
@@ -644,4 +645,5 @@
          lafin_split=lafin.and.isplit==nsplit_phys
 
+      if (planet_type=="earth") then
 
       CALL physiq (klon,
@@ -674,4 +676,33 @@
      .             PVteta)
 
+      else if ( planet_type=="generic" ) then
+
+      CALL physiq (klon,     !! ngrid
+     .             llm,            !! nlayer
+     .             nqtot,          !! nq
+     .             tname,          !! tracer names from dynamical core (given in infotrac)
+     .             debut_split,    !! firstcall 
+     .             lafin_split,    !! lastcall
+     .             float(day_ini), !! pday <-- day_ini (dans temps.h)
+     .             jH_cur_split,   !! ptime "fraction of day"
+     .             zdt_split,      !! ptimestep
+     .             zplev_omp,  !! pplev
+     .             zplay_omp,  !! pplay
+     .             zphi_omp,   !! pphi
+     .             zufi_omp,   !! pu
+     .             zvfi_omp,   !! pv
+     .             ztfi_omp,   !! pt
+     .             zqfi_omp,   !! pq
+     .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
+     .             zdufi_omp,  !! pdu
+     .             zdvfi_omp,  !! pdv
+     .             zdtfi_omp,  !! pdt
+     .             zdqfi_omp,  !! pdq
+     .             zdpsrf_omp, !! pdpsrf
+     .             tracerdyn)      !! tracerdyn <-- utilite ???
+
+      endif ! of if (planet_type=="earth")
+
+
          zufi_omp(:,:)=zufi_omp(:,:)+zdufi_omp(:,:)*zdt_split
          zvfi_omp(:,:)=zvfi_omp(:,:)+zdvfi_omp(:,:)*zdt_split
@@ -688,5 +719,4 @@
 #endif
 ! of #ifdef CPP_PHYS
-      endif !of if (planet_type=="earth")
 
       zdufi_omp(:,:)=zdufic_omp(:,:)/nsplit_phys
Index: LMDZ5/trunk/libf/dyn3dpar/comvert.h
===================================================================
--- LMDZ5/trunk/libf/dyn3dpar/comvert.h	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3dpar/comvert.h	(revision 1654)
@@ -7,5 +7,5 @@
       COMMON/comvertr/ap(llm+1),bp(llm+1),presnivs(llm),dpres(llm),     &
      &               pa,preff,nivsigs(llm),nivsig(llm+1),               &
-     &               aps(llm),bps(llm),scaleheight
+     &               aps(llm),bps(llm),scaleheight,pseudoalt(llm)
 
       common/comverti/disvert_type, pressure_exner
@@ -23,4 +23,5 @@
       real bps    ! hybrid sigma contribution at mid-layers
       real scaleheight ! atmospheric (reference) scale height (km)
+      real pseudoalt ! for planets
 
       integer disvert_type ! type of vertical discretization:
Index: LMDZ5/trunk/libf/dyn3dpar/disvert_noterre.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dpar/disvert_noterre.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3dpar/disvert_noterre.F	(revision 1654)
@@ -46,5 +46,4 @@
       real tt,rr,gg, prevz
       real s(llm),dsig(llm) 
-      real pseudoalt(llm)
 
       integer iz 
Index: LMDZ5/trunk/libf/dyn3dpar/dynetat0.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dpar/dynetat0.F	(revision 1653)
+++ LMDZ5/trunk/libf/dyn3dpar/dynetat0.F	(revision 1654)
@@ -7,4 +7,7 @@
       USE infotrac
       use netcdf, only: nf90_get_var
+
+      use control_mod, only : planet_type
+
       IMPLICIT NONE
 
@@ -54,4 +57,6 @@
       INTEGER ierr, nid, nvarid
 
+      INTEGER idecal
+
 c-----------------------------------------------------------------------
 
@@ -77,30 +82,42 @@
       ENDIF
 
+      !!! AS: idecal is a hack to be able to read planeto starts...
+      !!!     .... while keeping everything OK for LMDZ EARTH
+      if (planet_type.eq."generic") then
+          print*,'NOTE NOTE NOTE : Planeto-like start files'
+          idecal = 4
+          annee_ref  = 2000
+      else
+          print*,'NOTE NOTE NOTE : Earth-like start files'
+          idecal = 5
+          annee_ref  = tab_cntrl(5)
+      endif
+
+
       im         = tab_cntrl(1)
       jm         = tab_cntrl(2)
       lllm       = tab_cntrl(3)
       day_ref    = tab_cntrl(4)
-      annee_ref  = tab_cntrl(5)
-      rad        = tab_cntrl(6)
-      omeg       = tab_cntrl(7)
-      g          = tab_cntrl(8)
-      cpp        = tab_cntrl(9)
-      kappa      = tab_cntrl(10)
-      daysec     = tab_cntrl(11)
-      dtvr       = tab_cntrl(12)
-      etot0      = tab_cntrl(13)
-      ptot0      = tab_cntrl(14)
-      ztot0      = tab_cntrl(15)
-      stot0      = tab_cntrl(16)
-      ang0       = tab_cntrl(17)
-      pa         = tab_cntrl(18)
-      preff      = tab_cntrl(19)
-c
-      clon       = tab_cntrl(20)
-      clat       = tab_cntrl(21)
-      grossismx  = tab_cntrl(22)
-      grossismy  = tab_cntrl(23)
-c
-      IF ( tab_cntrl(24).EQ.1. )  THEN
+      rad        = tab_cntrl(idecal+1)
+      omeg       = tab_cntrl(idecal+2)
+      g          = tab_cntrl(idecal+3)
+      cpp        = tab_cntrl(idecal+4)
+      kappa      = tab_cntrl(idecal+5)
+      daysec     = tab_cntrl(idecal+6)
+      dtvr       = tab_cntrl(idecal+7)
+      etot0      = tab_cntrl(idecal+8)
+      ptot0      = tab_cntrl(idecal+9)
+      ztot0      = tab_cntrl(idecal+10)
+      stot0      = tab_cntrl(idecal+11)
+      ang0       = tab_cntrl(idecal+12)
+      pa         = tab_cntrl(idecal+13)
+      preff      = tab_cntrl(idecal+14)
+c
+      clon       = tab_cntrl(idecal+15)
+      clat       = tab_cntrl(idecal+16)
+      grossismx  = tab_cntrl(idecal+17)
+      grossismy  = tab_cntrl(idecal+18)
+c
+      IF ( tab_cntrl(idecal+19).EQ.1. )  THEN
         fxyhypb  = . TRUE .
 c        dzoomx   = tab_cntrl(25)
@@ -111,5 +128,5 @@
         fxyhypb = . FALSE .
         ysinus  = . FALSE .
-        IF( tab_cntrl(27).EQ.1. ) ysinus = . TRUE. 
+        IF( tab_cntrl(idecal+22).EQ.1. ) ysinus = . TRUE. 
       ENDIF
 
@@ -225,5 +242,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <temps> est absent"
-         CALL abort
+         write(lunout,*)"dynetat0: J essaie <Time>"
+         ierr = NF_INQ_VARID (nid, "Time", nvarid)
+         IF (ierr .NE. NF_NOERR) THEN
+            write(lunout,*)"dynetat0: Le champ <Time> est absent"
+            CALL abort
+         ENDIF
       ENDIF
       ierr = nf90_get_var(nid, nvarid, time)
Index: LMDZ5/trunk/libf/phylmd/inistats.F
===================================================================
--- LMDZ5/trunk/libf/phylmd/inistats.F	(revision 1653)
+++ LMDZ5/trunk/libf/phylmd/inistats.F	(revision 1654)
@@ -18,5 +18,4 @@
       real, dimension(istime) :: lt
       integer :: nvarid
-      real, dimension(llm) :: pseudoalt
 
       write (*,*) 
