Index: /LMDZ4/branches/LMDZ4-dev/libf/bibio/writehist.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/bibio/writehist.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/bibio/writehist.F	(revision 1222)
@@ -1,9 +1,11 @@
 !
-! $Header$
+! $Id$
 !
       subroutine writehist( histid, histvid, time, vcov, 
      ,                          ucov,teta,phi,q,masse,ps,phis)
 
+#ifdef CPP_IOIPSL
       USE ioipsl
+#endif
       USE infotrac, ONLY : nqtot, ttext
       implicit none
@@ -46,4 +48,5 @@
 #include "description.h"
 #include "serre.h"
+#include "iniprint.h"
 
 C
@@ -60,4 +63,6 @@
 
 
+#ifdef CPP_IOIPSL
+! This routine needs IOIPSL to work
 C   Variables locales
 C
@@ -124,4 +129,10 @@
         call histsync(histvid)
       endif
+#else
+! tell the user this routine should be run with ioipsl
+      write(lunout,*)"writehist: Warning this routine should not be",
+     &               " used without ioipsl"
+#endif
+! of #ifdef CPP_IOIPSL
       return
       end
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/abort_gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/abort_gcm.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/abort_gcm.F	(revision 1222)
@@ -8,4 +8,7 @@
 #ifdef CPP_IOIPSL
       USE IOIPSL
+#else
+! if not using IOIPSL, we still need to use (a local version of) getin_dump
+      USE ioipsl_getincom
 #endif
 #include "iniprint.h"
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F	(revision 1222)
@@ -76,6 +76,9 @@
            ENDDO
           ENDDO
-
-          CALL qminimum( q, 2, finmasse )
+          
+	  if (planet_type.eq."earth") then
+! Earth-specific treatment of first 2 tracers (water)
+            CALL qminimum( q, 2, finmasse )
+	  endif
 
           CALL SCOPY   ( ip1jmp1*llm, masse, 1, finmasse,       1 )
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F	(revision 1222)
@@ -177,6 +177,8 @@
 c    --------------------
 c
-
-      IF (ngridmx.NE.2+(jjm-1)*iim) THEN
+c
+      IF ( firstcal )  THEN
+        debut = .TRUE.
+        IF (ngridmx.NE.2+(jjm-1)*iim) THEN
          PRINT*,'STOP dans calfis'
          PRINT*,'La dimension ngridmx doit etre egale a 2 + (jjm-1)*iim'
@@ -184,16 +186,8 @@
          PRINT*,ngridmx,jjm,iim
          STOP
-      ENDIF
-
-c-----------------------------------------------------------------------
-c   latitude, longitude et aires des mailles pour la physique:
-c   ----------------------------------------------------------
-
-c
-      IF ( firstcal )  THEN
-          debut = .TRUE.
+        ENDIF
       ELSE
-          debut = .FALSE.
-      ENDIF
+        debut = .FALSE.
+      ENDIF ! of IF (firstcal)
 
 c
@@ -290,6 +284,7 @@
 
 c   convergence dynamique pour les traceurs "EAU"
-
-      DO iq=1,2
+! Earth-specific treatment of first 2 tracers (water)
+       if (planet_type=="earth") then
+        DO iq=1,2
          DO l=1,llm
             pcvgq(1,l,iq)= pdq(1,1,l,iq) / pmasse(1,1,l)
@@ -303,5 +298,6 @@
             pcvgq(ig0,l,iq)= pdq(1,jjp1,l,iq) / pmasse(1,jjp1,l)
          ENDDO
-      ENDDO
+        ENDDO
+       endif ! of if (planet_type=="earth")
 
 
@@ -428,8 +424,12 @@
       ENDDO
 c
+      if (planet_type=="earth") then
+#ifdef CPP_EARTH
 cIM calcul PV a teta=350, 380, 405K
       CALL PVtheta(ngridmx,llm,pucov,pvcov,pteta,
      $           ztfi,zplay,zplev,
      $           ntetaSTD,rtetaSTD,PVteta)
+#endif
+      endif
 c
 c On change de grille, dynamique vers physiq, pour le flux de masse verticale
@@ -441,4 +441,6 @@
 
 
+      if (planet_type=="earth") then
+#ifdef CPP_EARTH
       CALL physiq (ngridmx,
      .             llm,
@@ -467,4 +469,6 @@
      .             pducov,
      .             PVteta)
+#endif
+      endif !of if (planet_type=="earth")
 
 500   CONTINUE
@@ -502,25 +506,25 @@
 c   62. humidite specifique
 c   ---------------------
-
-      DO iq=1,nqtot
-         DO l=1,llm
-            DO i=1,iip1
-               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)
-               pdqfi(i,jjp1,l,iq) = zdqfi(ngridmx,l,iq)
-            ENDDO
-            DO j=2,jjm
-               ig0=1+(j-2)*iim
-               DO i=1,iim
-                  pdqfi(i,j,l,iq) = zdqfi(ig0+i,l,iq)
-               ENDDO
-               pdqfi(iip1,j,l,iq) = pdqfi(1,j,l,iq)
-            ENDDO
-         ENDDO
-      ENDDO
+! Ehouarn: removed this useless bit: was overwritten at step 63 anyways
+!      DO iq=1,nqtot
+!         DO l=1,llm
+!            DO i=1,iip1
+!               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)
+!               pdqfi(i,jjp1,l,iq) = zdqfi(ngridmx,l,iq)
+!            ENDDO
+!            DO j=2,jjm
+!               ig0=1+(j-2)*iim
+!               DO i=1,iim
+!                  pdqfi(i,j,l,iq) = zdqfi(ig0+i,l,iq)
+!               ENDDO
+!               pdqfi(iip1,j,l,iq) = pdqfi(1,j,l,iq)
+!            ENDDO
+!         ENDDO
+!      ENDDO
 
 c   63. traceurs
 c   ------------
 C     initialisation des tendances
-      pdqfi=0.
+      pdqfi(:,:,:,:)=0.
 C
       DO iq=1,nqtot
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F	(revision 1222)
@@ -1,6 +1,8 @@
 !
-! $Header$
+! $Id$
 !
        PROGRAM create_etat0_limit
+#ifdef CPP_EARTH
+! This prog. is designed to work for Earth
        USE dimphy
        USE comgeomphy
@@ -67,4 +69,6 @@
 1     FORMAT(//)
 
+#endif
+! of #ifdef CPP_EARTH
       STOP
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F	(revision 1222)
@@ -1,4 +1,9 @@
+!
+! $Id$
+!
       SUBROUTINE fluxstokenc(pbaru,pbarv,masse,teta,phi,phis,
      . time_step,itau )
+#ifdef CPP_EARTH
+! This routine is designed to work for Earth and with ioipsl
 
        USE IOIPSL
@@ -18,4 +23,5 @@
 #include "tracstoke.h"
 #include "temps.h"
+#include "iniprint.h"
 
       REAL time_step,t_wrt, t_ops
@@ -159,4 +165,9 @@
       ENDIF ! if iadvtr.EQ.istdyn
 
+#else
+      write(lunout,*)
+     & 'fluxstokenc: Needs Earth physics (and ioipsl) to function'
+#endif
+! of #ifdef CPP_EARTH
       RETURN
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F	(revision 1222)
@@ -307,4 +307,6 @@
      .  ' restart ne correspondent pas a celles lues dans '
         write(lunout,*)' gcm.def'
+	write(lunout,*)' annee_ref=',annee_ref," anneeref=",anneeref
+	write(lunout,*)' day_ref=',day_ref," dayref=",dayref
         if (raz_date .ne. 1) then
           write(lunout,*)
@@ -324,4 +326,5 @@
       endif
 
+#ifdef CPP_IOIPSL
       mois = 1
       heure = 0.
@@ -330,7 +333,5 @@
       jD_ref = int(jD_ref)
 
-#ifdef CPP_IOIPSL
       call ioconf_startdate(annee_ref,1,day_ref, 0.)
-#endif
 
       write(lunout,*)'DEBUG'
@@ -340,4 +341,11 @@
       write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure'
       write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure
+#else
+! Ehouarn: we still need to define JD_ref and JH_ref
+! and since we don't know how many days there are in a year
+! we set JD_ref to 0 (this should be improved ...)
+      jD_ref=0
+      jH_ref=0
+#endif
 
 c  nombre d'etats dans les fichiers demarrage et histoire
@@ -413,4 +421,6 @@
       WRITE(lunout,300)day_ini,day_end
  300  FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
+
+#ifdef CPP_IOIPSL
       call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
       write (lunout,301)jour, mois, an
@@ -419,9 +429,8 @@
  301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
  302  FORMAT('1'/,15x,'    au ', i2,'/',i2,'/',i4)
+#endif
 
       if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
-      CALL dynredem0("restart.nc", day_end, phis)
-#endif
+        CALL dynredem0("restart.nc", day_end, phis)
       endif
 
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F	(revision 1222)
@@ -83,4 +83,6 @@
 c
         time_0=0.
+        day_ref=0
+	annee_ref=0
 
         im         = iim
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F	(revision 1222)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE integrd
@@ -32,4 +32,5 @@
 #include "temps.h"
 #include "serre.h"
+#include "control.h"
 
 c   Arguments:
@@ -183,11 +184,15 @@
 c$$$      ENDIF
 
-         DO l = 1, llm
-          DO ij = 1, ip1jmp1
-           deltap(ij,l) =  p(ij,l) - p(ij,l+1) 
+	 if (planet_type.eq."earth") then
+! Earth-specific treatment of first 2 tracers (water)
+          DO l = 1, llm
+           DO ij = 1, ip1jmp1
+            deltap(ij,l) =  p(ij,l) - p(ij,l+1) 
+           ENDDO
           ENDDO
-         ENDDO
-
-         CALL qminimum( q, nq, deltap )
+
+          CALL qminimum( q, nq, deltap )
+	 endif ! of if (planet_type.eq."earth")
+
 c
 c    .....  Calcul de la valeur moyenne, unique  aux poles pour  q .....
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F	(revision 1222)
@@ -597,9 +597,7 @@
 
               if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
 ! Write an Earth-format restart file
                 CALL dynredem1("restart.nc",0.0,
      &                         vcov,ucov,teta,q,masse,ps)
-#endif
               endif ! of if (planet_type.eq."earth")
 
@@ -704,8 +702,6 @@
               IF(itau.EQ.itaufin) THEN
                 if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
                   CALL dynredem1("restart.nc",0.0,
      &                           vcov,ucov,teta,q,masse,ps)
-#endif
                 endif ! of if (planet_type.eq."earth")
               ENDIF ! of IF(itau.EQ.itaufin)
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/limit_netcdf.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/limit_netcdf.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/limit_netcdf.F	(revision 1222)
@@ -1,8 +1,10 @@
 !
-! $Header$
+! $Id$
 !
 C
 C
       SUBROUTINE limit_netcdf(interbar, extrap, oldice, masque)
+#ifdef CPP_EARTH
+! This routine is designed to work for Earth
       USE dimphy
       use phys_state_var_mod , ONLY : pctsrf
@@ -33,4 +35,5 @@
 cy#include "dimphy.h"
 #include "indicesol.h"
+#include "iniprint.h"
 c
 c-----------------------------------------------------------------------
@@ -1323,4 +1326,9 @@
       ierr = NF_CLOSE(nid)
 c
+#else
+      WRITE(lunout,*)
+     & 'limit_netcdf: Earth-specific routine, needs Earth physics'
+#endif
+! of #ifdef CPP_EARTH
       STOP
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/startvar.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/startvar.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/startvar.F	(revision 1222)
@@ -1,8 +1,8 @@
 !
-! $Header$
+! $Id$
 !
-C
-C
       MODULE startvar
+#ifdef CPP_EARTH
+! This module is designed to work for Earth (and with ioipsl)
     !
     !
@@ -1189,3 +1189,5 @@
       END SUBROUTINE start_inter_3d
     !
+#endif
+! of #ifdef CPP_EARTH
       END MODULE startvar
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/abort_gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/abort_gcm.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/abort_gcm.F	(revision 1222)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -8,4 +8,7 @@
 #ifdef CPP_IOIPSL
       USE IOIPSL
+#else
+! if not using IOIPSL, we still need to use (a local version of) getin_dump
+      USE ioipsl_getincom
 #endif
       USE parallel
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/bands.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/bands.F90	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/bands.F90	(revision 1222)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
   module Bands
   
@@ -90,5 +93,8 @@
    SUBROUTINE  Set_Bands 
      USE parallel
+#ifdef CPP_EARTH
+! Ehouarn: what follows is only related to // physics; for now only for Earth 
      USE mod_phys_lmdz_para, ONLY : jj_para_begin,jj_para_end
+#endif
      IMPLICIT NONE
      INCLUDE 'dimensions.h'    
@@ -100,4 +106,6 @@
       enddo
           
+#ifdef CPP_EARTH
+! Ehouarn: what follows is only related to // physics; for now only for Earth          
       do i=0,MPI_Size-1
         jj_Nb_physic(i)=jj_para_end(i)-jj_para_begin(i)+1
@@ -120,4 +128,5 @@
         endif
       enddo
+#endif      
       
     end subroutine Set_Bands
@@ -323,5 +332,8 @@
     subroutine AdjustBands_physic
       use times
+#ifdef CPP_EARTH
+! Ehouarn: what follows is only related to // physics; for now only for Earth 
       USE mod_phys_lmdz_para, only : klon_mpi_para_nb
+#endif
       USE parallel
       implicit none
@@ -347,4 +359,6 @@
       medium=medium/mpi_size      
       NbTot=0
+#ifdef CPP_EARTH
+! Ehouarn: what follows is only related to // physics; for now only for Earth 
       do i=0,mpi_size-1
         Inc(i)=nint(klon_mpi_para_nb(i)*(medium-value(i))/value(i))
@@ -369,5 +383,5 @@
         distrib_phys(i)=klon_mpi_para_nb(i)+inc(i)
       enddo
-     
+#endif     
     end subroutine AdjustBands_physic
 
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/caladvtrac_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/caladvtrac_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/caladvtrac_p.F	(revision 1222)
@@ -82,5 +82,9 @@
           ENDDO
 
-          CALL qminimum_p( q, 2, finmasse )
+	  if (planet_type.eq."earth") then
+! Earth-specific treatment of first 2 tracers (water)
+            CALL qminimum_p( q, 2, finmasse )
+	  endif
+
 
 cym   --> le reste ne set a rien
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/calfis_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/calfis_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/calfis_p.F	(revision 1222)
@@ -27,4 +27,6 @@
      $                  pdqfi,
      $                  pdpsfi)
+#ifdef CPP_EARTH
+! Ehouarn: For now, calfis_p needs Earth physics
 c
 c    Auteur :  P. Le Van, F. Hourdin 
@@ -232,5 +234,8 @@
       PVteta(:,:)=0.
             
-      IF (ngridmx.NE.2+(jjm-1)*iim) THEN
+c
+      IF ( firstcal )  THEN
+        debut = .TRUE.
+        IF (ngridmx.NE.2+(jjm-1)*iim) THEN
          PRINT*,'STOP dans calfis'
          PRINT*,'La dimension ngridmx doit etre egale a 2 + (jjm-1)*iim'
@@ -238,13 +243,5 @@
          PRINT*,ngridmx,jjm,iim
          STOP
-      ENDIF
-
-c-----------------------------------------------------------------------
-c   latitude, longitude et aires des mailles pour la physique:
-c   ----------------------------------------------------------
-
-c
-      IF ( firstcal )  THEN
-          debut = .TRUE.
+        ENDIF
 c$OMP MASTER
       ALLOCATE(zpsrf(klon))
@@ -348,6 +345,7 @@
 
 c   convergence dynamique pour les traceurs "EAU"
-
-      DO iq=1,2
+! Earth-specific treatment of first 2 tracers (water)
+      if (planet_type=="earth") then
+       DO iq=1,2
 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)      
          DO l=1,llm
@@ -359,6 +357,6 @@
          ENDDO
 c$OMP END DO NOWAIT	 
-      ENDDO
-
+       ENDDO
+      endif ! of if (planet_type=="earth")
 
 
@@ -508,4 +506,6 @@
 
       IF (is_sequential) THEN
+        if (planet_type=="earth") then
+#ifdef CPP_EARTH
 c
 cIM calcul PV a teta=350, 380, 405K
@@ -514,4 +514,6 @@
      $           ntetaSTD,rtetaSTD,PVteta)
 c
+#endif
+        endif 
       ENDIF
 
@@ -660,4 +662,6 @@
 cym      call WriteField_phy_p('zdtfi_omp',zdtfi_omp(:,:),llm)
       
+      if (planet_type=="earth") then
+#ifdef CPP_EARTH
       CALL physiq (klon,
      .             llm,
@@ -689,4 +693,6 @@
      .             pducov,
      .             PVteta)
+#endif
+      endif !of if (planet_type=="earth")
 
 cym      call WriteField_phy_p('zdtfi_omp',zdtfi_omp(:,:),llm)
@@ -931,31 +937,30 @@
 c   62. humidite specifique
 c   ---------------------
-
-      DO iq=1,nqtot
-c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
-         DO l=1,llm
-!!cdir NODEP 
-           do ig0=kstart,kend
-             i=index_i(ig0)
-             j=index_j(ig0)
-             pdqfi(i,j,l,iq) = zdqfi(ig0,l,iq) 
-             if (i==1) pdqfi(iip1,j,l,iq) = zdqfi(ig0,l,iq) 
-           enddo
-           
-           if (is_north_pole) then
-             do i=1,iip1
-               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)             
-             enddo
-           endif
-           
-           if (is_south_pole) then
-             do i=1,iip1
-               pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq) 
-             enddo
-           endif
-           
-         ENDDO
-c$OMP END DO NOWAIT
-      ENDDO
+! Ehouarn: removed this useless bit: was overwritten at step 63 anyways
+!      DO iq=1,nqtot
+!c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
+!         DO l=1,llm
+!!!cdir NODEP 
+!           do ig0=kstart,kend
+!             i=index_i(ig0)
+!             j=index_j(ig0)
+!             pdqfi(i,j,l,iq) = zdqfi(ig0,l,iq) 
+!             if (i==1) pdqfi(iip1,j,l,iq) = zdqfi(ig0,l,iq) 
+!           enddo
+!           
+!           if (is_north_pole) then
+!             do i=1,iip1
+!               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)             
+!             enddo
+!           endif
+!           
+!           if (is_south_pole) then
+!             do i=1,iip1
+!               pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq) 
+!             enddo
+!           endif
+!         ENDDO
+!c$OMP END DO NOWAIT
+!      ENDDO
 
 c   63. traceurs
@@ -1110,4 +1115,9 @@
       firstcal = .FALSE.
 
+#else
+      write(*,*) "calfis_p: for now can only work with parallel physics"
+      stop
+#endif
+! of #ifdef CPP_EARTH
       RETURN
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F	(revision 1222)
@@ -1,6 +1,8 @@
 !
-! $Header$
+! $Id$
 !
        PROGRAM create_etat0_limit
+#ifdef CPP_EARTH
+! This prog. is designed to work for Earth
        USE dimphy
        USE comgeomphy
@@ -82,4 +84,6 @@
 1     FORMAT(//)
 
+#endif
+! of #ifdef CPP_EARTH
       STOP
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fluxstokenc_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fluxstokenc_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fluxstokenc_p.F	(revision 1222)
@@ -1,4 +1,9 @@
+!
+! $Id$
+!
       SUBROUTINE fluxstokenc_p(pbaru,pbarv,masse,teta,phi,phis,
      . time_step,itau )
+#ifdef CPP_EARTH
+! This routine is designed to work for Earth and with ioipsl
 
        USE IOIPSL
@@ -21,4 +26,5 @@
 #include "tracstoke.h"
 #include "temps.h"
+#include "iniprint.h"
 
       REAL time_step,t_wrt, t_ops
@@ -236,4 +242,9 @@
       ENDIF ! if iadvtr.EQ.istdyn
 
+#else
+      write(lunout,*)
+     & 'fluxstokenc: Needs Earth physics (and ioipsl) to function'
+#endif
+! of #ifdef CPP_EARTH
       RETURN
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F	(revision 1222)
@@ -12,5 +12,4 @@
       USE mod_const_mpi, ONLY: init_const_mpi
       USE parallel
-      USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
       USE infotrac
       USE mod_interface_dyn_phys
@@ -23,4 +22,5 @@
 #ifdef CPP_EARTH
       USE mod_grid_phy_lmdz
+      USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
       USE mod_phys_lmdz_omp_data, ONLY: klon_omp 
       USE dimphy
@@ -191,5 +191,8 @@
       endif ! of if (planet_type.eq."earth")
       CALL set_bands
+#ifdef CPP_EARTH
+! Ehouarn: For now only Earth physics is parallel
       CALL Init_interface_dyn_phys
+#endif
       CALL barrier
 
@@ -320,4 +323,6 @@
      .  ' restart ne correspondent pas a celles lues dans '
         write(lunout,*)' gcm.def'
+	write(lunout,*)' annee_ref=',annee_ref," anneeref=",anneeref
+	write(lunout,*)' day_ref=',day_ref," dayref=",dayref
         if (raz_date .ne. 1) then
           write(lunout,*)
@@ -337,4 +342,5 @@
       endif
 
+#ifdef CPP_IOIPSL
       mois = 1
       heure = 0.
@@ -343,7 +349,5 @@
       jD_ref = int(jD_ref)
 
-#ifdef CPP_IOIPSL
       call ioconf_startdate(annee_ref,1,day_ref, 0.)
-#endif
 
       write(lunout,*)'DEBUG'
@@ -353,4 +357,11 @@
       write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure'
       write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure
+#else
+! Ehouarn: we still need to define JD_ref and JH_ref
+! and since we don't know how many days there are in a year
+! we set JD_ref to 0 (this should be improved ...)
+      jD_ref=0
+      jH_ref=0
+#endif
 
 c  nombre d'etats dans les fichiers demarrage et histoire
@@ -436,4 +447,6 @@
       WRITE(lunout,300)day_ini,day_end
  300  FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
+
+#ifdef CPP_IOIPSL
       call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
       write (lunout,301)jour, mois, an
@@ -442,10 +455,8 @@
  301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
  302  FORMAT('1'/,15x,'    au ', i2,'/',i2,'/',i4)
-
-!#ifdef CPP_IOIPSL
+#endif
+
       if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
-      CALL dynredem0_p("restart.nc", day_end, phis)
-#endif
+        CALL dynredem0_p("restart.nc", day_end, phis)
       endif
 
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/getparam.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/getparam.F90	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/getparam.F90	(revision 1222)
@@ -1,7 +1,13 @@
 !
-! $Header$
+! $Id$
 !
 MODULE getparam
+#ifdef CPP_IOIPSL
    USE IOIPSL
+#else
+! if not using IOIPSL, we still need to use (a local version of) getin
+   USE ioipsl_getincom
+#endif
+
    INTERFACE getpar
      MODULE PROCEDURE ini_getparam,fin_getparam,getparamr,getparami,getparaml
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_dyn_fi_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_dyn_fi_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_dyn_fi_p.F	(revision 1222)
@@ -1,3 +1,9 @@
+!
+! $Id$
+!
       SUBROUTINE gr_dyn_fi_p(nfield,im,jm,ngrid,pdyn,pfi)
+#ifdef CPP_EARTH
+! Interface with parallel physics,
+! for now this routine only works with Earth physics
       USE mod_interface_dyn_phys
       USE dimphy
@@ -34,4 +40,10 @@
       ENDDO
 c$OMP END DO NOWAIT
+#else
+      write(lunout,*) "gr_fi_dyn_p : This routine should not be called",
+     &   "without parallelized physics"
+      stop
+#endif
+! of #ifdef CPP_EARTH
       RETURN
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_fi_dyn_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_fi_dyn_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gr_fi_dyn_p.F	(revision 1222)
@@ -1,3 +1,9 @@
+!
+! $Id$
+!
       SUBROUTINE gr_fi_dyn_p(nfield,ngrid,im,jm,pfi,pdyn)
+#ifdef CPP_EARTH
+! Interface with parallel physics,
+! for now this routine only works with Earth physics
       USE mod_interface_dyn_phys
       USE dimphy
@@ -46,4 +52,10 @@
       ENDDO
 c$OMP END DO NOWAIT
+#else
+      write(lunout,*) "gr_fi_dyn_p : This routine should not be called",
+     &   "without parallelized physics"
+      stop
+#endif
+! of #ifdef CPP_EARTH
       RETURN
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/guide_p_mod.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/guide_p_mod.F90	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/guide_p_mod.F90	(revision 1222)
@@ -9,5 +9,4 @@
 !=======================================================================
 
-  USE ioipsl
   USE getparam
   USE Write_Field_p
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/iniacademic.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/iniacademic.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/iniacademic.F	(revision 1222)
@@ -83,4 +83,6 @@
 c
         time_0=0.
+        day_ref=0
+	annee_ref=0
 
         im         = iim
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/integrd_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/integrd_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/integrd_p.F	(revision 1222)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE integrd_p
@@ -32,4 +32,5 @@
 #include "temps.h"
 #include "serre.h"
+#include "control.h"
 
 c   Arguments:
@@ -264,16 +265,19 @@
       ijb=ij_begin
       ije=ij_end
-      
+
+	 if (planet_type.eq."earth") then
+! Earth-specific treatment of first 2 tracers (water)
 c$OMP BARRIER
 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 
-         DO l = 1, llm
-          DO ij = ijb, ije
-           deltap(ij,l) =  p(ij,l) - p(ij,l+1) 
+          DO l = 1, llm
+           DO ij = ijb, ije
+            deltap(ij,l) =  p(ij,l) - p(ij,l+1) 
+           ENDDO
           ENDDO
-         ENDDO
-c$OMP END DO NOWAIT
-c$OMP BARRIER
-
-         CALL qminimum_p( q, nq, deltap )
+c$OMP END DO NOWAIT
+c$OMP BARRIER
+
+          CALL qminimum_p( q, nq, deltap )
+	 endif ! of if (planet_type.eq."earth")
 c
 c    .....  Calcul de la valeur moyenne, unique  aux poles pour  q .....
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F	(revision 1222)
@@ -688,5 +688,5 @@
            jH_cur = jH_ref +                                            &
      &              (itau * dtvr / daysec - int(itau * dtvr / daysec)) 
-         call ju2ymds(jD_cur+jH_cur, an, mois, jour, secondes)
+!         call ju2ymds(jD_cur+jH_cur, an, mois, jour, secondes)
 
 c rajout debug
@@ -1393,10 +1393,7 @@
 
               if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
 ! Write an Earth-format restart file
                 CALL dynredem1_p("restart.nc",0.0,
      &                           vcov,ucov,teta,q,masse,ps)
-
-#endif
               endif ! of if (planet_type.eq."earth")
 
@@ -1553,10 +1550,8 @@
               IF(itau.EQ.itaufin) THEN
                 if (planet_type.eq."earth") then
-#ifdef CPP_EARTH
 c$OMP MASTER
                    CALL dynredem1_p("restart.nc",0.0,
      .                               vcov,ucov,teta,q,masse,ps)
 c$OMP END MASTER
-#endif
                 endif ! of if (planet_type.eq."earth")
               ENDIF ! of IF(itau.EQ.itaufin)
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/limit_netcdf.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/limit_netcdf.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/limit_netcdf.F	(revision 1222)
@@ -1,8 +1,10 @@
 !
-! $Header$
+! $Id$
 !
 C
 C
       SUBROUTINE limit_netcdf(interbar, extrap, oldice, masque)
+#ifdef CPP_EARTH
+! This routine is designed to work for Earth
       USE dimphy
       use phys_state_var_mod , ONLY : pctsrf
@@ -33,4 +35,5 @@
 cy#include "dimphy.h"
 #include "indicesol.h"
+#include "iniprint.h"
 c
 c-----------------------------------------------------------------------
@@ -1323,4 +1326,9 @@
       ierr = NF_CLOSE(nid)
 c
+#else
+      WRITE(lunout,*)
+     & 'limit_netcdf: Earth-specific routine, needs Earth physics'
+#endif
+! of #ifdef CPP_EARTH
       STOP
       END
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/mod_interface_dyn_phys.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/mod_interface_dyn_phys.F90	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/mod_interface_dyn_phys.F90	(revision 1222)
@@ -1,2 +1,5 @@
+! 
+! $Id$
+!
 MODULE mod_interface_dyn_phys
   INTEGER,SAVE,dimension(:),allocatable :: index_i
@@ -4,4 +7,7 @@
   
   
+#ifdef CPP_EARTH
+! Interface with parallel physics,
+! for now this routine only works with Earth physics
 CONTAINS
   
@@ -49,4 +55,5 @@
   
   END SUBROUTINE Init_interface_dyn_phys 
-
+#endif
+! of #ifdef CPP_EARTH
 END MODULE mod_interface_dyn_phys
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/parallel.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/parallel.F90	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/parallel.F90	(revision 1222)
@@ -1,2 +1,5 @@
+! 
+! $Id$
+!
   module parallel
   USE mod_const_mpi
@@ -33,5 +36,6 @@
 #include "dimensions.h"
 #include "paramet.h"
-    
+#include "iniprint.h"
+
       integer :: ierr
       integer :: i,j
@@ -83,6 +87,6 @@
         if (jj_nb_para(i) <= 2 ) then
           
-         print *,"Arret : le nombre de bande de lattitude par process est trop faible (<2)."
-         print *," ---> diminuez le nombre de CPU ou augmentez la taille en lattitude"
+         write(lunout,*)"Arret : le nombre de bande de lattitude par process est trop faible (<2)."
+         write(lunout,*)" ---> diminuez le nombre de CPU ou augmentez la taille en lattitude"
           
 #ifdef CPP_MPI
@@ -127,8 +131,8 @@
       endif
         
-      print *,"jj_begin",jj_begin
-      print *,"jj_end",jj_end
-      print *,"ij_begin",ij_begin
-      print *,"ij_end",ij_end
+      write(lunout,*)"init_parallel: jj_begin",jj_begin
+      write(lunout,*)"init_parallel: jj_end",jj_end
+      write(lunout,*)"init_parallel: ij_begin",ij_begin
+      write(lunout,*)"init_parallel: ij_end",ij_end
 
 !$OMP PARALLEL
@@ -185,6 +189,14 @@
     use mod_prism_proto
 #endif
+#ifdef CPP_EARTH
+! Ehouarn: surface_data module is in 'phylmd' ...
       use surface_data, only : type_ocean
       implicit none
+#else
+      implicit none
+! without the surface_data module, we declare (and set) a dummy 'type_ocean'
+      character(len=6),parameter :: type_ocean="dummy"
+#endif
+! #endif of #ifdef CPP_EARTH
 
       include "dimensions.h"
@@ -415,5 +427,6 @@
     implicit none
 #include "dimensions.h"
-#include "paramet.h"    
+#include "paramet.h" 
+#include "iniprint.h"
 #ifdef CPP_MPI
     include 'mpif.h'
@@ -436,5 +449,5 @@
            call Pack_Data(Field(ij_begin,1),ij,ll,min(jj_end,jjm)-jj_begin+1,Buffer_send)
         else
-           print *,ij  
+           write(lunout,*)ij  
         stop 'erreur dans Gather_Field'
         endif
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/startvar.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/startvar.F	(revision 1221)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/startvar.F	(revision 1222)
@@ -1,8 +1,8 @@
 !
-! $Header$
+! $Id$
 !
-C
-C
       MODULE startvar
+#ifdef CPP_EARTH
+! This module is designed to work for Earth (and with ioipsl)
     !
     !
@@ -1189,3 +1189,5 @@
       END SUBROUTINE start_inter_3d
     !
+#endif
+! of #ifdef CPP_EARTH
       END MODULE startvar
