Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/adaptdt.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/adaptdt.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/adaptdt.F	(revision 1299)
@@ -1,8 +1,9 @@
 !
-! $Header$
+! $Id$
 !
       subroutine adaptdt(nadv,dtbon,n,pbaru,
      c                   masse)
 
+      USE control_mod
       IMPLICIT NONE
 
@@ -16,5 +17,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/advtrac.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/advtrac.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/advtrac.F	(revision 1299)
@@ -16,4 +16,6 @@
 c
       USE infotrac
+      USE control_mod
+ 
 
       IMPLICIT NONE
@@ -27,5 +29,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -121,5 +122,5 @@
 
       ! ... Flux de masse diaganostiques traceurs
-      flxw = wg / FLOAT(iapp_tracvl)
+      flxw = wg / REAL(iapp_tracvl)
 
 c  test sur l'eventuelle creation de valeurs negatives de la masse
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/bilan_dyn.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/bilan_dyn.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/bilan_dyn.F	(revision 1299)
@@ -423,5 +423,5 @@
          Q_cum(:,:,:,iQ)=Q_cum(:,:,:,iQ)/masse_cum(:,:,:)
       enddo
-      zz=1./float(ncum)
+      zz=1./REAL(ncum)
       ps_cum=ps_cum*zz
       masse_cum=masse_cum*zz
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/caladvtrac.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/caladvtrac.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/caladvtrac.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -9,4 +9,6 @@
 c
       USE infotrac
+      USE control_mod
+ 
       IMPLICIT NONE
 c
@@ -24,5 +26,4 @@
 #include "paramet.h"
 #include "comconst.h"
-#include "control.h"
 
 c   Arguments:
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/calfis.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/calfis.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/calfis.F	(revision 1299)
@@ -31,4 +31,6 @@
 c   .........
       USE infotrac
+      USE control_mod
+ 
 
       IMPLICIT NONE
@@ -96,5 +98,4 @@
 #include "comvert.h"
 #include "comgeom2.h"
-#include "control.h"
 
 c    Arguments :
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/conf_gcm.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/conf_gcm.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/conf_gcm.F	(revision 1299)
@@ -6,4 +6,5 @@
       SUBROUTINE conf_gcm( tapedef, etatinit, clesphy0 )
 c
+      USE control_mod
 #ifdef CPP_IOIPSL
       use IOIPSL
@@ -11,4 +12,5 @@
 ! if not using IOIPSL, we still need to use (a local version of) getin
       use ioipsl_getincom
+ 
 #endif
       IMPLICIT NONE
@@ -34,5 +36,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "serre.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/control_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/control_mod.F90	(revision 1299)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/control_mod.F90	(revision 1299)
@@ -0,0 +1,20 @@
+!
+! $Id$
+!
+
+MODULE control_mod
+
+! LF 01/2010
+! Remplacement du fichier et common control
+
+  IMPLICIT NONE
+
+  REAL    :: periodav
+  INTEGER :: nday,day_step,iperiod,iapp_tracvl
+  INTEGER :: iconser,iecri,idissip,iphysiq,iecrimoy
+  INTEGER :: dayref,anneeref, raz_date, ip_ebil_dyn
+  LOGICAL :: offline, output_grads_dyn, ok_dynzon
+  CHARACTER (len=4)  :: config_inca
+  CHARACTER (len=10) :: planet_type
+
+END MODULE
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/create_etat0_limit.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/create_etat0_limit.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/create_etat0_limit.F	(revision 1299)
@@ -6,4 +6,5 @@
 ! This prog. is designed to work for Earth
        USE dimphy
+       USE control_mod
        USE comgeomphy
        USE infotrac
@@ -34,5 +35,4 @@
 #include "paramet.h"
 #include "indicesol.h"
-#include  "control.h"
       REAL :: masque(iip1,jjp1)
 !      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/defrun.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/defrun.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/defrun.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -6,4 +6,6 @@
       SUBROUTINE defrun( tapedef, etatinit, clesphy0 )
 c
+      USE control_mod
+ 
       IMPLICIT NONE
 c-----------------------------------------------------------------------
@@ -28,5 +30,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "serre.h"
@@ -239,6 +240,6 @@
        clesphy0(i) = 0.
       ENDDO
-                          clesphy0(1) = FLOAT( iflag_con )
-                          clesphy0(2) = FLOAT( nbapp_rad )
+                          clesphy0(1) = REAL( iflag_con )
+                          clesphy0(2) = REAL( nbapp_rad )
 
        IF( cycle_diurne  ) clesphy0(3) =  1.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/disvert.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/disvert.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/disvert.F	(revision 1299)
@@ -111,5 +111,5 @@
       snorm  = 0.
       DO l = 1, llm
-         x = 2.*asin(1.) * (FLOAT(l)-0.5) / float(llm+1)
+         x = 2.*asin(1.) * (REAL(l)-0.5) / REAL(llm+1)
 
          IF (ok_strato) THEN
@@ -135,9 +135,9 @@
 
       DO l=1,llm
-        nivsigs(l) = FLOAT(l)
+        nivsigs(l) = REAL(l)
       ENDDO
 
       DO l=1,llmp1
-        nivsig(l)= FLOAT(l)
+        nivsig(l)= REAL(l)
       ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynredem.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynredem.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynredem.F	(revision 1299)
@@ -8,4 +8,5 @@
 #endif
       USE infotrac
+ 
       IMPLICIT NONE
 c=======================================================================
@@ -72,9 +73,9 @@
        tab_cntrl(l) = 0.
       ENDDO
-       tab_cntrl(1)  = FLOAT(iim)
-       tab_cntrl(2)  = FLOAT(jjm)
-       tab_cntrl(3)  = FLOAT(llm)
-       tab_cntrl(4)  = FLOAT(day_ref)
-       tab_cntrl(5)  = FLOAT(annee_ref)
+       tab_cntrl(1)  = REAL(iim)
+       tab_cntrl(2)  = REAL(jjm)
+       tab_cntrl(3)  = REAL(llm)
+       tab_cntrl(4)  = REAL(day_ref)
+       tab_cntrl(5)  = REAL(annee_ref)
        tab_cntrl(6)  = rad
        tab_cntrl(7)  = omeg
@@ -116,6 +117,6 @@
       ENDIF
 
-       tab_cntrl(30) = FLOAT(iday_end)
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(30) = REAL(iday_end)
+       tab_cntrl(31) = REAL(itau_dyn + itaufin)
 c
 c    .........................................................
@@ -517,4 +518,6 @@
      .                     vcov,ucov,teta,q,masse,ps)
       USE infotrac
+      USE control_mod
+ 
       IMPLICIT NONE
 c=================================================================
@@ -528,5 +531,4 @@
 #include "comgeom.h"
 #include "temps.h"
-#include "control.h"
 
       INTEGER l
@@ -589,5 +591,5 @@
       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
 #endif
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(31) = REAL(itau_dyn + itaufin)
 #ifdef NC_DOUBLE
       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/etat0_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/etat0_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/etat0_netcdf.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -9,4 +9,5 @@
       USE ioipsl
       USE dimphy
+      USE control_mod
       USE infotrac
       USE fonte_neige_mod
@@ -89,5 +90,4 @@
 
 #include "comdissnew.h"
-#include "control.h"
 #include "serre.h"
 #include "clesphys.h"
@@ -189,5 +189,5 @@
       co2_ppm0 = co2_ppm
 
-      dtvr   = daysec/FLOAT(day_step)
+      dtvr   = daysec/REAL(day_step)
       print*,'dtvr',dtvr
 
@@ -691,6 +691,6 @@
 C
       write(*,*)'phystep ',dtvr,iphysiq,nbapp_rad
-      phystep   = dtvr * FLOAT(iphysiq)
-      radpas    = NINT (86400./phystep/ FLOAT(nbapp_rad) )
+      phystep   = dtvr * REAL(iphysiq)
+      radpas    = NINT (86400./phystep/ REAL(nbapp_rad) )
       write(*,*)'phystep =', phystep, radpas
 cIM : lecture de co2_ppm & solaire ds physiq.def
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/extrapol.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/extrapol.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/extrapol.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 C
@@ -158,5 +158,5 @@
                jlat = jy(k)
                pwork(i,j) = pwork(i,j)
-     $                      + pfild(ilon,jlat) * zmask(k)/FLOAT(inbor)
+     $                      + pfild(ilon,jlat) * zmask(k)/REAL(inbor)
             ENDDO
          ENDIF
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fluxstokenc.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fluxstokenc.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fluxstokenc.F	(revision 1299)
@@ -114,10 +114,10 @@
       DO l=1,llm
          DO ij = 1,ip1jmp1
-            pbaruc(ij,l) = pbaruc(ij,l)/float(istdyn)
-            tetac(ij,l) = tetac(ij,l)/float(istdyn)
-            phic(ij,l) = phic(ij,l)/float(istdyn)
+            pbaruc(ij,l) = pbaruc(ij,l)/REAL(istdyn)
+            tetac(ij,l) = tetac(ij,l)/REAL(istdyn)
+            phic(ij,l) = phic(ij,l)/REAL(istdyn)
          ENDDO
          DO ij = 1,ip1jm
-            pbarvc(ij,l) = pbarvc(ij,l)/float(istdyn)
+            pbarvc(ij,l) = pbarvc(ij,l)/REAL(istdyn)
          ENDDO
       ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/friction.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/friction.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/friction.F	(revision 1299)
@@ -1,7 +1,10 @@
 !
-! $Header$
+! $Id$
 !
 c=======================================================================
       SUBROUTINE friction(ucov,vcov,pdt)
+
+      USE control_mod
+ 
       IMPLICIT NONE
 
@@ -21,5 +24,4 @@
 #include "paramet.h"
 #include "comgeom2.h"
-#include "control.h"
 #include "comconst.h"
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxhyp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxhyp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxhyp.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -89,5 +89,5 @@
 
        DO i = 0, nmax2 
-        xtild(i) = - pi + FLOAT(i) * depi /nmax2
+        xtild(i) = - pi + REAL(i) * depi /nmax2
        ENDDO
 
@@ -235,5 +235,5 @@
       DO 1500 i = ii1, ii2
 
-      xlon2 = - pi + (FLOAT(i) + xuv - decalx) * depi / FLOAT(iim) 
+      xlon2 = - pi + (REAL(i) + xuv - decalx) * depi / REAL(iim) 
 
       Xfi    = xlon2
@@ -280,5 +280,5 @@
 550   CONTINUE
 
-       xxprim(i) = depi/ ( FLOAT(iim) * Xprimin )
+       xxprim(i) = depi/ ( REAL(iim) * Xprimin )
        xvrai(i)  =  xi + xzoom
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxy.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxy.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxy.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE fxy (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
@@ -32,6 +32,6 @@
 c
        DO j = 1, jjm + 1 
-          rlatu(j) = fy    ( FLOAT( j )        )
-         yprimu(j) = fyprim( FLOAT( j )        )
+          rlatu(j) = fy    ( REAL( j )        )
+         yprimu(j) = fyprim( REAL( j )        )
        ENDDO
 
@@ -39,11 +39,11 @@
        DO j = 1, jjm
 
-         rlatv(j)  = fy    ( FLOAT( j ) + 0.5  )
-         rlatu1(j) = fy    ( FLOAT( j ) + 0.25 ) 
-         rlatu2(j) = fy    ( FLOAT( j ) + 0.75 ) 
+         rlatv(j)  = fy    ( REAL( j ) + 0.5  )
+         rlatu1(j) = fy    ( REAL( j ) + 0.25 ) 
+         rlatu2(j) = fy    ( REAL( j ) + 0.75 ) 
 
-        yprimv(j)  = fyprim( FLOAT( j ) + 0.5  ) 
-        yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
-        yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
+        yprimv(j)  = fyprim( REAL( j ) + 0.5  ) 
+        yprimu1(j) = fyprim( REAL( j ) + 0.25 )
+        yprimu2(j) = fyprim( REAL( j ) + 0.75 )
 
        ENDDO
@@ -53,13 +53,13 @@
 c
        DO i = 1, iim + 1
-           rlonv(i)     = fx    (   FLOAT( i )          )
-           rlonu(i)     = fx    (   FLOAT( i ) + 0.5    )
-        rlonm025(i)     = fx    (   FLOAT( i ) - 0.25  )
-        rlonp025(i)     = fx    (   FLOAT( i ) + 0.25  )
+           rlonv(i)     = fx    (   REAL( i )          )
+           rlonu(i)     = fx    (   REAL( i ) + 0.5    )
+        rlonm025(i)     = fx    (   REAL( i ) - 0.25  )
+        rlonp025(i)     = fx    (   REAL( i ) + 0.25  )
 
-         xprimv  (i)    = fxprim (  FLOAT( i )          )
-         xprimu  (i)    = fxprim (  FLOAT( i ) + 0.5    )
-        xprimm025(i)    = fxprim (  FLOAT( i ) - 0.25   )
-        xprimp025(i)    = fxprim (  FLOAT( i ) + 0.25   )
+         xprimv  (i)    = fxprim (  REAL( i )          )
+         xprimu  (i)    = fxprim (  REAL( i ) + 0.5    )
+        xprimm025(i)    = fxprim (  REAL( i ) - 0.25   )
+        xprimp025(i)    = fxprim (  REAL( i ) + 0.25   )
        ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxysinus.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxysinus.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fxysinus.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE fxysinus (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
@@ -32,6 +32,6 @@
 c
        DO j = 1, jjm + 1 
-          rlatu(j) = fy    ( FLOAT( j )        )
-         yprimu(j) = fyprim( FLOAT( j )        )
+          rlatu(j) = fy    ( REAL( j )        )
+         yprimu(j) = fyprim( REAL( j )        )
        ENDDO
 
@@ -39,11 +39,11 @@
        DO j = 1, jjm
 
-         rlatv(j)  = fy    ( FLOAT( j ) + 0.5  )
-         rlatu1(j) = fy    ( FLOAT( j ) + 0.25 ) 
-         rlatu2(j) = fy    ( FLOAT( j ) + 0.75 ) 
+         rlatv(j)  = fy    ( REAL( j ) + 0.5  )
+         rlatu1(j) = fy    ( REAL( j ) + 0.25 ) 
+         rlatu2(j) = fy    ( REAL( j ) + 0.75 ) 
 
-        yprimv(j)  = fyprim( FLOAT( j ) + 0.5  ) 
-        yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
-        yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
+        yprimv(j)  = fyprim( REAL( j ) + 0.5  ) 
+        yprimu1(j) = fyprim( REAL( j ) + 0.25 )
+        yprimu2(j) = fyprim( REAL( j ) + 0.75 )
 
        ENDDO
@@ -53,13 +53,13 @@
 c
        DO i = 1, iim + 1
-           rlonv(i)     = fx    (   FLOAT( i )          )
-           rlonu(i)     = fx    (   FLOAT( i ) + 0.5    )
-        rlonm025(i)     = fx    (   FLOAT( i ) - 0.25  )
-        rlonp025(i)     = fx    (   FLOAT( i ) + 0.25  )
+           rlonv(i)     = fx    (   REAL( i )          )
+           rlonu(i)     = fx    (   REAL( i ) + 0.5    )
+        rlonm025(i)     = fx    (   REAL( i ) - 0.25  )
+        rlonp025(i)     = fx    (   REAL( i ) + 0.25  )
 
-         xprimv  (i)    = fxprim (  FLOAT( i )          )
-         xprimu  (i)    = fxprim (  FLOAT( i ) + 0.5    )
-        xprimm025(i)    = fxprim (  FLOAT( i ) - 0.25   )
-        xprimp025(i)    = fxprim (  FLOAT( i ) + 0.25   )
+         xprimv  (i)    = fxprim (  REAL( i )          )
+         xprimu  (i)    = fxprim (  REAL( i ) + 0.5    )
+        xprimm025(i)    = fxprim (  REAL( i ) - 0.25   )
+        xprimp025(i)    = fxprim (  REAL( i ) + 0.25   )
        ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fyhyp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fyhyp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/fyhyp.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -75,5 +75,5 @@
        depi     = 2. * pi
        pis2     = pi/2.
-       pisjm    = pi/ FLOAT(jjm)
+       pisjm    = pi/ REAL(jjm)
        epsilon  = 1.e-3
        y0       =  yzoomdeg * pi/180. 
@@ -94,5 +94,5 @@
 
        DO i = 0, nmax2 
-        yt(i) = - pis2  + FLOAT(i)* pi /nmax2
+        yt(i) = - pis2  + REAL(i)* pi /nmax2
        ENDDO
 
@@ -210,5 +210,5 @@
        DO 1500 j =  1,jlat
         yo1   = 0.
-        ylon2 =  - pis2 + pisjm * ( FLOAT(j)  + yuv  -1.)  
+        ylon2 =  - pis2 + pisjm * ( REAL(j)  + yuv  -1.)  
         yfi    = ylon2
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/gcm.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/gcm.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/gcm.F	(revision 1299)
@@ -15,4 +15,5 @@
       USE filtreg_mod
       USE infotrac
+      USE control_mod
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -68,5 +69,5 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
+!!!!!!!!!!!#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -292,5 +293,5 @@
       ENDIF
 
-      zdtvr    = daysec/FLOAT(day_step)
+      zdtvr    = daysec/REAL(day_step)
         IF(dtvr.NE.zdtvr) THEN
          WRITE(lunout,*)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_atob.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_atob.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_atob.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE grille_m(imdep, jmdep, xdata, ydata, entree,
@@ -717,14 +717,14 @@
 c Calculs intermediares:
 c
-      xtmp(1) = -180.0 + 360.0/FLOAT(imtmp) / 2.0
+      xtmp(1) = -180.0 + 360.0/REAL(imtmp) / 2.0
       DO i = 2, imtmp
-         xtmp(i) = xtmp(i-1) + 360.0/FLOAT(imtmp)
+         xtmp(i) = xtmp(i-1) + 360.0/REAL(imtmp)
       ENDDO
       DO i = 1, imtmp
          xtmp(i) = xtmp(i) /180.0 * 4.0*ATAN(1.0)
       ENDDO
-      ytmp(1) = -90.0 + 180.0/FLOAT(jmtmp) / 2.0
+      ytmp(1) = -90.0 + 180.0/REAL(jmtmp) / 2.0
       DO j = 2, jmtmp
-         ytmp(j) = ytmp(j-1) + 180.0/FLOAT(jmtmp)
+         ytmp(j) = ytmp(j-1) + 180.0/REAL(jmtmp)
       ENDDO
       DO j = 1, jmtmp
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_noro.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_noro.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grid_noro.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -93,5 +93,5 @@
       xpi=acos(-1.)
       rad    = 6 371 229.
-      zdeltay=2.*xpi/float(jusn)*rad
+      zdeltay=2.*xpi/REAL(jusn)*rad
 c
 c utilise-t'on un masque lu?
@@ -215,6 +215,6 @@
 c  SUMMATION OVER GRIDPOINT AREA
 c 
-      zleny=xpi/float(jusn)*rad
-      xincr=xpi/2./float(jusn)
+      zleny=xpi/REAL(jusn)*rad
+      xincr=xpi/2./REAL(jusn)
        DO ii = 1, imar+1
        DO jj = 1, jmar
@@ -468,5 +468,5 @@
       DO IS=-1,1
         DO JS=-1,1
-          WEIGHTpb(IS,JS)=1./FLOAT((1+IS**2)*(1+JS**2))
+          WEIGHTpb(IS,JS)=1./REAL((1+IS**2)*(1+JS**2))
           SUM=SUM+WEIGHTpb(IS,JS)
         ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grilles_gcm_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grilles_gcm_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/grilles_gcm_netcdf.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -218,13 +218,13 @@
       open (20,file='grille.dat',form='unformatted',access='direct'
      s      ,recl=4*ip1jmp1)
-      write(20,rec=1) ((float(mod(i,2)+mod(j,2)),i=1,iip1),j=1,jjp1)
-      write(20,rec=2) ((float(mod(i,2)*mod(j,2)),i=1,iip1),j=1,jjp1)
+      write(20,rec=1) ((REAL(mod(i,2)+mod(j,2)),i=1,iip1),j=1,jjp1)
+      write(20,rec=2) ((REAL(mod(i,2)*mod(j,2)),i=1,iip1),j=1,jjp1)
       do j=2,jjm
          dlat1(j)=180.*(rlatv(j)-rlatv(j-1))/pi
-c        dlat2(j)=180.*fyprim(float(j))/pi
+c        dlat2(j)=180.*fyprim(REAL(j))/pi
       enddo
       do i=2,iip1
          dlon1(i)=180.*(rlonu(i)-rlonu(i-1))/pi
-c        dlon2(i)=180.*fxprim(float(i))/pi
+c        dlon2(i)=180.*fxprim(REAL(i))/pi
       enddo
       do j=2,jjm
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/guide_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/guide_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/guide_mod.F90	(revision 1299)
@@ -62,4 +62,6 @@
   SUBROUTINE guide_init
 
+    USE control_mod
+
     IMPLICIT NONE
   
@@ -67,5 +69,4 @@
     INCLUDE "paramet.h"
     INCLUDE "netcdf.inc"
-    INCLUDE "control.h"
 
     INTEGER                :: error,ncidpl,rid,rcod
@@ -269,4 +270,6 @@
 !=======================================================================
   SUBROUTINE guide_main(itau,ucov,vcov,teta,q,masse,ps)
+
+    USE control_mod
  
     IMPLICIT NONE
@@ -274,5 +277,4 @@
     INCLUDE "dimensions.h"
     INCLUDE "paramet.h"
-    INCLUDE "control.h"
     INCLUDE "comconst.h"
     INCLUDE "comvert.h"
@@ -354,7 +356,7 @@
       dday_step=real(day_step)
       IF (iguide_read.LT.0) THEN
-          tau=ditau/dday_step/FLOAT(iguide_read)
+          tau=ditau/dday_step/REAL(iguide_read)
       ELSE
-          tau=FLOAT(iguide_read)*ditau/dday_step
+          tau=REAL(iguide_read)*ditau/dday_step
       ENDIF
       reste=tau-AINT(tau)
@@ -541,5 +543,5 @@
             ENDDO
         ENDDO 
-        fieldm(:,l)=fieldm(:,l)/FLOAT(imax(typ)-imin(typ)+1)
+        fieldm(:,l)=fieldm(:,l)/REAL(imax(typ)-imin(typ)+1)
     ! Compute forcing
         DO j=1,hsize
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/infotrac.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/infotrac.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/infotrac.F90	(revision 1299)
@@ -31,4 +31,7 @@
 
   SUBROUTINE infotrac_init
+
+    USE control_mod
+ 
     IMPLICIT NONE
 !=======================================================================
@@ -49,5 +52,4 @@
 
     INCLUDE "dimensions.h"
-    INCLUDE "control.h"
     INCLUDE "iniprint.h"
 
@@ -217,5 +219,5 @@
           new_iq=new_iq+10 ! 9 tracers added
        ELSE
-          WRITE(lunout,*) 'This choice of advection schema is not available'
+          WRITE(lunout,*) 'This choice of advection schema is not available',iq,hadv(iq),vadv(iq)
           CALL abort_gcm('infotrac_init','Bad choice of advection schema - 1',1)
        END IF
@@ -258,5 +260,5 @@
           iadv(new_iq)=11
        ELSE
-          WRITE(lunout,*)'This choice of advection schema is not available'
+          WRITE(lunout,*)'This choice of advection schema is not available',iq,hadv(iq),vadv(iq)
           CALL abort_gcm('infotrac_init','Bad choice of advection schema - 2',1)
        END IF
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniacademic.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniacademic.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniacademic.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -8,4 +8,6 @@
       USE filtreg_mod
       USE infotrac, ONLY : nqtot
+      USE control_mod
+ 
 
 c%W%    %G%
@@ -44,5 +46,4 @@
 #include "ener.h"
 #include "temps.h"
-#include "control.h"
 #include "iniprint.h"
 
@@ -93,5 +94,5 @@
         g      = 9.8
         daysec = 86400.
-        dtvr    = daysec/FLOAT(day_step)
+        dtvr    = daysec/REAL(day_step)
         zdtvr=dtvr
         kappa  = 0.2857143
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniconst.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniconst.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniconst.F	(revision 1299)
@@ -1,6 +1,8 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE iniconst
+
+      USE control_mod
 
       IMPLICIT NONE
@@ -16,5 +18,4 @@
 #include "comconst.h"
 #include "temps.h"
-#include "control.h"
 #include "comvert.h"
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inidissip.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inidissip.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inidissip.F	(revision 1299)
@@ -11,4 +11,6 @@
 c   -------------
 
+      USE control_mod
+
       IMPLICIT NONE
 #include "dimensions.h"
@@ -17,5 +19,4 @@
 #include "comconst.h"
 #include "comvert.h"
-#include "control.h"
 #include "logic.h"
 
@@ -165,5 +166,5 @@
 
 c     IF(.NOT.lstardis) THEN
-         fact    = rad*24./float(jjm)
+         fact    = rad*24./REAL(jjm)
          fact    = fact*fact
          PRINT*,'coef u ', fact/cdivu, 1./cdivu
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inigeom.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inigeom.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/inigeom.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -168,15 +168,15 @@
 c
       IF( nitergdiv.NE.2 ) THEN
-        gamdi_gdiv = coefdis/ ( float(nitergdiv) -2. )
+        gamdi_gdiv = coefdis/ ( REAL(nitergdiv) -2. )
       ELSE
         gamdi_gdiv = 0.
       ENDIF
       IF( nitergrot.NE.2 ) THEN
-        gamdi_grot = coefdis/ ( float(nitergrot) -2. )
+        gamdi_grot = coefdis/ ( REAL(nitergrot) -2. )
       ELSE
         gamdi_grot = 0.
       ENDIF
       IF( niterh.NE.2 ) THEN
-        gamdi_h = coefdis/ ( float(niterh) -2. )
+        gamdi_h = coefdis/ ( REAL(niterh) -2. )
       ELSE
         gamdi_h = 0.
@@ -381,6 +381,6 @@
        yprp               = yprimu2(j-1)
        rlatp              = rlatu2 (j-1)
-ccc       yprp             = fyprim( FLOAT(j) - 0.25 )
-ccc       rlatp            = fy    ( FLOAT(j) - 0.25 )
+ccc       yprp             = fyprim( REAL(j) - 0.25 )
+ccc       rlatp            = fy    ( REAL(j) - 0.25 )
 c
       coslatp             = COS( rlatp )
@@ -416,8 +416,8 @@
         rlatm    = rlatu1 (  j  )
         yprm     = yprimu1(  j  )
-cc         rlatp    = fy    ( FLOAT(j) - 0.25 )
-cc         yprp     = fyprim( FLOAT(j) - 0.25 )
-cc         rlatm    = fy    ( FLOAT(j) + 0.25 )
-cc         yprm     = fyprim( FLOAT(j) + 0.25 )
+cc         rlatp    = fy    ( REAL(j) - 0.25 )
+cc         yprp     = fyprim( REAL(j) - 0.25 )
+cc         rlatm    = fy    ( REAL(j) + 0.25 )
+cc         yprm     = fyprim( REAL(j) + 0.25 )
 
          coslatm  = COS( rlatm )
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/integrd.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/integrd.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/integrd.F	(revision 1299)
@@ -5,4 +5,6 @@
      $  (  nq,vcovm1,ucovm1,tetam1,psm1,massem1,
      $     dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps,masse,phis,finvmaold )
+
+      USE control_mod
 
       IMPLICIT NONE
@@ -32,5 +34,4 @@
 #include "temps.h"
 #include "serre.h"
-#include "control.h"
 
 c   Arguments:
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interp_horiz.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interp_horiz.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interp_horiz.F	(revision 1299)
@@ -1,4 +1,4 @@
 c
-c $Header$
+c $Id$
 c
       subroutine interp_horiz (varo,varn,imo,jmo,imn,jmn,lm,
@@ -101,6 +101,6 @@
            end do 
            do ii =1, imn+1
-             varn(ii,1,l) = totn/float(imn+1)
-             varn(ii,jmn+1,l) = tots/float(imn+1)
+             varn(ii,1,l) = totn/REAL(imn+1)
+             varn(ii,jmn+1,l) = tots/REAL(imn+1)
            end do 
        end do
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interpre.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interpre.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/interpre.F	(revision 1299)
@@ -1,8 +1,10 @@
 !
-! $Header$
+! $Id$
 !
        subroutine interpre(q,qppm,w,fluxwppm,masse,
      s            apppm,bpppm,massebx,masseby,pbaru,pbarv,
      s            unatppm,vnatppm,psppm)
+
+      USE control_mod
 
        implicit none
@@ -17,5 +19,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/juldate.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/juldate.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/juldate.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 	subroutine juldate(ian,imoi,ijou,oh,om,os,tjd,tjdsec)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/leapfrog.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/leapfrog.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/leapfrog.F	(revision 1299)
@@ -15,4 +15,5 @@
       USE guide_mod, ONLY : guide_main
       USE write_field
+      USE control_mod
       IMPLICIT NONE
 
@@ -56,5 +57,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -198,5 +198,5 @@
       itau = 0
 c$$$      iday = day_ini+itau/day_step
-c$$$      time = FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+c$$$      time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 c$$$         IF(time.GT.1.) THEN
 c$$$          time = time-1.
@@ -523,5 +523,5 @@
               itau= itau + 1
 c$$$              iday= day_ini+itau/day_step
-c$$$              time= FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+c$$$              time= REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 c$$$                IF(time.GT.1.) THEN
 c$$$                  time = time-1.
@@ -646,5 +646,5 @@
              itau =  itau + 1
 c$$$             iday = day_ini+itau/day_step
-c$$$             time = FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+c$$$             time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 c$$$
 c$$$                  IF(time.GT.1.) THEN
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/limit_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/limit_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/limit_netcdf.F	(revision 1299)
@@ -10,4 +10,5 @@
       use phys_state_var_mod , ONLY : pctsrf
       use inter_barxy_m, only: inter_barxy
+      USE control_mod
 
       IMPLICIT none
@@ -29,5 +30,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "netcdf.inc"
@@ -148,5 +148,5 @@
       kappa  = 0.2857143
       cpp    = 1004.70885
-      dtvr    = daysec/FLOAT(day_step)
+      dtvr    = daysec/REAL(day_step)
       CALL inigeom
 c
@@ -418,5 +418,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time = REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -632,5 +632,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time = REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -951,5 +951,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time = REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -1146,5 +1146,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time = REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -1300,5 +1300,5 @@
       ierr = NF_PUT_VARA_DOUBLE (nid,id_RUG,debut,epais,phy_rug(1,k))
 #else
-      ierr = NF_PUT_VAR1_REAL (nid,id_tim,k,FLOAT(k))
+      ierr = NF_PUT_VAR1_REAL (nid,id_tim,k,REAL(k))
       IF (newlmt ) THEN
           ierr = NF_PUT_VARA_REAL (nid,id_FOCE,debut,epais
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ppm3d.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ppm3d.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ppm3d.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 
@@ -345,6 +345,6 @@
 C
       PI = 4. * ATAN(1.)
-      DL = 2.*PI / float(IMR)
-      DP =    PI / float(JMR)
+      DL = 2.*PI / REAL(IMR)
+      DP =    PI / REAL(JMR)
 C
       if(IGD.eq.0) then
@@ -388,5 +388,5 @@
       ZTC  = acos(CR1) * (180./PI)
 C
-      JS0 = float(JMR)*(90.-ZTC)/180. + 2
+      JS0 = REAL(JMR)*(90.-ZTC)/180. + 2
       JS0 = max(JS0, J1+1)
       IML = min(6*JS0/(J1-1)+2, 4*IMR/5)
@@ -628,5 +628,5 @@
 C Contribution from the N-S advection
       do i=1,imr*(j2-j1+1)
-      JT = float(J1) - VA(i,j1)
+      JT = REAL(J1) - VA(i,j1)
       wk1(i,j1,2) = VA(i,j1) * (q(i,jt,k,IC) - q(i,jt+1,k,IC))
       enddo
@@ -949,5 +949,5 @@
       IF(IORD.eq.1 .or. j.eq.j1. or. j.eq.j2) THEN
       DO 1406 i=1,IMR
-      iu = float(i) - uc(i,j)
+      iu = REAL(i) - uc(i,j)
 1406  fx1(i) = qtmp(iu)
       ELSE
@@ -957,5 +957,5 @@
       if(IORD.eq.2 .or. j.le.j1vl .or. j.ge.j2vl) then
       DO 1408 i=1,IMR
-      iu = float(i) - uc(i,j)
+      iu = REAL(i) - uc(i,j)
 1408  fx1(i) = qtmp(iu) + DC(iu)*(sign(1.,uc(i,j))-uc(i,j))
       else
@@ -1111,5 +1111,5 @@
       if(JORD.eq.1) then
       DO 1000 i=1,len
-      JT = float(J1) - VC(i,J1)
+      JT = REAL(J1) - VC(i,J1)
 1000  fx(i,j1) = p(i,JT)
       else
@@ -1123,5 +1123,5 @@
       else
       DO 1200 i=1,len
-      JT = float(J1) - VC(i,J1)
+      JT = REAL(J1) - VC(i,J1)
 1200  fx(i,j1) = p(i,JT) + (sign(1.,VC(i,j1))-VC(i,j1))*DC2(i,JT)
       endif
@@ -1358,5 +1358,5 @@
 	do j=j1-1,j2+1
       do i=1,imr
-      JP = float(j)-VA(i,j)
+      JP = REAL(j)-VA(i,j)
       ady(i,j) = VA(i,j)*(wk(i,jp)-wk(i,jp+1))
       enddo
@@ -1582,5 +1582,5 @@
       JMR = JNP-1
       do 55 j=2,JNP
-        ph5  =  -0.5*PI + (FLOAT(J-1)-0.5)*DP
+        ph5  =  -0.5*PI + (REAL(J-1)-0.5)*DP
 55      cose(j) = cos(ph5)
 C
@@ -1834,5 +1834,5 @@
 C
 c      if(first) then
-      DP = 4.*ATAN(1.)/float(JNP-1)
+      DP = 4.*ATAN(1.)/REAL(JNP-1)
       CAP1 = IMR*(1.-COS((j1-1.5)*DP))/DP
 c      first = .false.
@@ -1889,5 +1889,5 @@
 C Check Poles.
       if(q(1,1).lt.0.) then
-      dq = q(1,1)*cap1/float(IMR)*acosp(j1)
+      dq = q(1,1)*cap1/REAL(IMR)*acosp(j1)
       do i=1,imr
       q(i,1) = 0.
@@ -1898,5 +1898,5 @@
 C
       if(q(1,JNP).lt.0.) then
-      dq = q(1,JNP)*cap1/float(IMR)*acosp(j2)
+      dq = q(1,JNP)*cap1/REAL(IMR)*acosp(j2)
       do i=1,imr
       q(i,JNP) = 0.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ran1.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ran1.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ran1.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       FUNCTION RAN1(IDUM)
@@ -20,5 +20,5 @@
           IX1=MOD(IA1*IX1+IC1,M1)
           IX2=MOD(IA2*IX2+IC2,M2)
-          R(J)=(FLOAT(IX1)+FLOAT(IX2)*RM2)*RM1
+          R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
 11      CONTINUE
         IDUM=1
@@ -30,5 +30,5 @@
       IF(J.GT.97.OR.J.LT.1)PAUSE
       RAN1=R(J)
-      R(J)=(FLOAT(IX1)+FLOAT(IX2)*RM2)*RM1
+      R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
       RETURN
       END
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE sortvarc
@@ -59,5 +59,5 @@
 
        dtvrs1j   = dtvr/daysec
-       rjour     = FLOAT( INT( itau * dtvrs1j ))
+       rjour     = REAL( INT( itau * dtvrs1j ))
        heure     = ( itau*dtvrs1j-rjour ) * 24.
        imjmp1    = iim * jjp1
@@ -129,7 +129,7 @@
       ang   = SSUM(     llm,  angl, 1 )
 
-c      rday = FLOAT(INT ( day_ini + time ))
+c      rday = REAL(INT ( day_ini + time ))
 c
-       rday = FLOAT(INT(time-jD_ref-jH_ref))
+       rday = REAL(INT(time-jD_ref-jH_ref))
       IF(ptot0.eq.0.)  THEN
          PRINT 3500, itau, rday, heure,time
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc0.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc0.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/sortvarc0.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE sortvarc0
@@ -60,5 +60,5 @@
 
        dtvrs1j   = dtvr/daysec
-       rjour     = FLOAT( INT( itau * dtvrs1j ))
+       rjour     = REAL( INT( itau * dtvrs1j ))
        heure     = ( itau*dtvrs1j-rjour ) * 24.
        imjmp1    = iim * jjp1
@@ -130,5 +130,5 @@
       ang0   = SSUM(     llm,  angl, 1 )
 
-      rday = FLOAT(INT (time ))
+      rday = REAL(INT (time ))
 c
       PRINT 3500, itau, rday, heure, time
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/startvar.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/startvar.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/startvar.F	(revision 1299)
@@ -352,5 +352,5 @@
       phis = phis * 9.81
     !
-!      masque(:,:) = FLOAT(tmp_int(:,:))
+!      masque(:,:) = REAL(tmp_int(:,:))
     !
     !  Compute surface roughness
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/tourabs.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/tourabs.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/tourabs.F	(revision 1299)
@@ -57,7 +57,7 @@
         ELSE
          rot( ij,l ) = (vcov(ij+1,l)/cv(ij+1)-vcov(ij,l)/cv(ij))/
-     $                 (2.*pi*RAD*cos(rlatv(j)))*float(iim)
+     $                 (2.*pi*RAD*cos(rlatv(j)))*REAL(iim)
      $                +(ucov(ij+iip1,l)/cu(ij+iip1)-ucov(ij,l)/cu(ij))/
-     $                 (pi*RAD)*(float(jjm)-1.)
+     $                 (pi*RAD)*(REAL(jjm)-1.)
 c
         ENDIF
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/traceurpole.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/traceurpole.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/traceurpole.F	(revision 1299)
@@ -1,6 +1,8 @@
 !
-! $Header$
+! $Id$
 !
           subroutine traceurpole(q,masse)
+
+      USE control_mod
 
           implicit none
@@ -15,5 +17,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ugeostr.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ugeostr.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/ugeostr.F	(revision 1299)
@@ -40,5 +40,5 @@
             DO i=1,iim
                u(i,j,l)=fact*(phi(i,j+1,l)-phi(i,j,l))
-               um(j,l)=um(j,l)+u(i,j,l)/float(iim)
+               um(j,l)=um(j,l)+u(i,j,l)/REAL(iim)
             ENDDO
          ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/write_paramLMDZ_dyn.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/write_paramLMDZ_dyn.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/write_paramLMDZ_dyn.h	(revision 1299)
@@ -7,41 +7,41 @@
       itau_w=itau_dyn+itau
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(prt_level) 
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(prt_level) 
       CALL histwrite(nid_ctesGCM, "prt_level", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(dayref)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(dayref)
       CALL histwrite(nid_ctesGCM, "dayref", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(anneeref)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(anneeref)
       CALL histwrite(nid_ctesGCM, "anneeref", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(raz_date)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(raz_date)
       CALL histwrite(nid_ctesGCM, "raz_date", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nday)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nday)
       CALL histwrite(nid_ctesGCM, "nday", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(day_step)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(day_step)
       CALL histwrite(nid_ctesGCM, "day_step", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iperiod)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iperiod)
       CALL histwrite(nid_ctesGCM, "iperiod", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iapp_tracvl)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iapp_tracvl)
       CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iconser)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iconser)
       CALL histwrite(nid_ctesGCM, "iconser", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iecri)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iecri)
       CALL histwrite(nid_ctesGCM, "iecri", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
@@ -51,5 +51,5 @@
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(idissip)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(idissip)
       CALL histwrite(nid_ctesGCM, "idissip", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
@@ -63,13 +63,13 @@
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergdiv)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nitergdiv)
       CALL histwrite(nid_ctesGCM, "nitergdiv", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(nitergrot)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nitergrot)
       CALL histwrite(nid_ctesGCM, "nitergrot", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(niterh) 
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(niterh) 
       CALL histwrite(nid_ctesGCM, "niterh", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
@@ -118,9 +118,9 @@
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iflag_phys)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iflag_phys)
       CALL histwrite(nid_ctesGCM, "iflag_phys", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
 c
-      zx_tmp_2d(1:iip1,1:jjp1)=FLOAT(iphysiq)
+      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iphysiq)
       CALL histwrite(nid_ctesGCM, "iphysiq", itau_w,
      .               zx_tmp_2d,iip1*jjp1,ndex2d)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/adaptdt.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/adaptdt.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/adaptdt.F	(revision 1299)
@@ -1,7 +1,9 @@
 !
-! $Header$
+! $Id$
 !
       subroutine adaptdt(nadv,dtbon,n,pbaru,
      c                   masse)
+
+      USE control_mod
 
       IMPLICIT NONE
@@ -16,5 +18,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/advtrac_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/advtrac_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/advtrac_p.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -23,4 +23,5 @@
       USE times
       USE infotrac
+      USE control_mod
       IMPLICIT NONE
 c
@@ -33,5 +34,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -215,5 +215,5 @@
          ijb=ij_begin
          ije=ij_end
-         flxw(ijb:ije,1:llm)=wg(ijb:ije,1:llm)/FLOAT(iapp_tracvl)
+         flxw(ijb:ije,1:llm)=wg(ijb:ije,1:llm)/REAL(iapp_tracvl)
 
 c  test sur l'eventuelle creation de valeurs negatives de la masse
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/bilan_dyn_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/bilan_dyn_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/bilan_dyn_p.F	(revision 1299)
@@ -511,5 +511,5 @@
      .	                      /masse_cum(:,jjb:jje,:)
       enddo
-      zz=1./float(ncum)
+      zz=1./REAL(ncum)
 
       jjb=jj_begin
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/caladvtrac_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/caladvtrac_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/caladvtrac_p.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -9,4 +9,5 @@
       USE parallel
       USE infotrac
+      USE control_mod
 c
       IMPLICIT NONE
@@ -25,5 +26,4 @@
 #include "paramet.h"
 #include "comconst.h"
-#include "control.h"
 
 c   Arguments:
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/calfis_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/calfis_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/calfis_p.F	(revision 1299)
@@ -41,4 +41,5 @@
       USE IOPHY
       USE infotrac
+      USE control_mod
 
       IMPLICIT NONE
@@ -107,5 +108,4 @@
 #include "comvert.h"
 #include "comgeom2.h"
-#include "control.h"
 #ifdef CPP_MPI
       include 'mpif.h'
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/conf_gcm.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/conf_gcm.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/conf_gcm.F	(revision 1299)
@@ -16,4 +16,5 @@
       use mod_hallo, ONLY : use_mpi_alloc
       use parallel, ONLY : omp_chunk
+      USE control_mod
       IMPLICIT NONE
 c-----------------------------------------------------------------------
@@ -38,5 +39,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "serre.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/control_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/control_mod.F90	(revision 1299)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/control_mod.F90	(revision 1299)
@@ -0,0 +1,20 @@
+!
+! $Id$
+!
+
+MODULE control_mod
+
+! LF 01/2010
+! Remplacement du fichier et common control
+
+  IMPLICIT NONE
+
+  REAL    :: periodav
+  INTEGER :: nday,day_step,iperiod,iapp_tracvl
+  INTEGER :: iconser,iecri,idissip,iphysiq,iecrimoy
+  INTEGER :: dayref,anneeref, raz_date, ip_ebil_dyn
+  LOGICAL :: offline, output_grads_dyn, ok_dynzon
+  CHARACTER (len=4)  :: config_inca
+  CHARACTER (len=10) :: planet_type
+
+END MODULE
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/create_etat0_limit.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/create_etat0_limit.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/create_etat0_limit.F	(revision 1299)
@@ -10,4 +10,5 @@
        USE mod_const_mpi
        USE infotrac
+      USE control_mod
 #ifdef CPP_IOIPSL
        use ioipsl, only: ioconf_calendar
@@ -36,5 +37,4 @@
 #include "paramet.h"
 #include "indicesol.h"
-#include  "control.h"
       REAL :: masque(iip1,jjp1)
 !      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/defrun.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/defrun.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/defrun.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -6,4 +6,5 @@
       SUBROUTINE defrun( tapedef, etatinit, clesphy0 )
 c
+      USE control_mod
       IMPLICIT NONE
 c-----------------------------------------------------------------------
@@ -28,5 +29,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "serre.h"
@@ -241,6 +241,6 @@
        clesphy0(i) = 0.
       ENDDO
-                          clesphy0(1) = FLOAT( iflag_con )
-                          clesphy0(2) = FLOAT( nbapp_rad )
+                          clesphy0(1) = REAL( iflag_con )
+                          clesphy0(2) = REAL( nbapp_rad )
 
        IF( cycle_diurne  ) clesphy0(3) =  1.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/disvert.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/disvert.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/disvert.F	(revision 1299)
@@ -111,5 +111,5 @@
       snorm  = 0.
       DO l = 1, llm
-         x = 2.*asin(1.) * (FLOAT(l)-0.5) / float(llm+1)
+         x = 2.*asin(1.) * (REAL(l)-0.5) / REAL(llm+1)
 
          IF (ok_strato) THEN
@@ -135,9 +135,9 @@
 
       DO l=1,llm
-        nivsigs(l) = FLOAT(l)
+        nivsigs(l) = REAL(l)
       ENDDO
 
       DO l=1,llmp1
-        nivsig(l)= FLOAT(l)
+        nivsig(l)= REAL(l)
       ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem.F	(revision 1299)
@@ -72,9 +72,9 @@
        tab_cntrl(l) = 0.
       ENDDO
-       tab_cntrl(1)  = FLOAT(iim)
-       tab_cntrl(2)  = FLOAT(jjm)
-       tab_cntrl(3)  = FLOAT(llm)
-       tab_cntrl(4)  = FLOAT(day_ref)
-       tab_cntrl(5)  = FLOAT(annee_ref)
+       tab_cntrl(1)  =  REAL(iim)
+       tab_cntrl(2)  =  REAL(jjm)
+       tab_cntrl(3)  =  REAL(llm)
+       tab_cntrl(4)  =  REAL(day_ref)
+       tab_cntrl(5)  =  REAL(annee_ref)
        tab_cntrl(6)  = rad
        tab_cntrl(7)  = omeg
@@ -116,6 +116,6 @@
       ENDIF
 
-       tab_cntrl(30) = FLOAT(iday_end)
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(30) =  REAL(iday_end)
+       tab_cntrl(31) =  REAL(itau_dyn + itaufin)
 c
 c    .........................................................
@@ -517,4 +517,5 @@
      .                     vcov,ucov,teta,q,masse,ps)
       USE infotrac
+      USE control_mod
       IMPLICIT NONE
 c=================================================================
@@ -528,5 +529,4 @@
 #include "comgeom.h"
 #include "temps.h"
-#include "control.h"
 
       INTEGER l
@@ -589,5 +589,5 @@
       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
 #endif
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(31) =  REAL(itau_dyn + itaufin)
 #ifdef NC_DOUBLE
       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem_p.F	(revision 1299)
@@ -74,9 +74,9 @@
        tab_cntrl(l) = 0.
       ENDDO
-       tab_cntrl(1)  = FLOAT(iim)
-       tab_cntrl(2)  = FLOAT(jjm)
-       tab_cntrl(3)  = FLOAT(llm)
-       tab_cntrl(4)  = FLOAT(day_ref)
-       tab_cntrl(5)  = FLOAT(annee_ref)
+       tab_cntrl(1)  =  REAL(iim)
+       tab_cntrl(2)  =  REAL(jjm)
+       tab_cntrl(3)  =  REAL(llm)
+       tab_cntrl(4)  =  REAL(day_ref)
+       tab_cntrl(5)  =  REAL(annee_ref)
        tab_cntrl(6)  = rad
        tab_cntrl(7)  = omeg
@@ -118,6 +118,6 @@
       ENDIF
 
-       tab_cntrl(30) = FLOAT(iday_end)
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(30) =  REAL(iday_end)
+       tab_cntrl(31) =  REAL(itau_dyn + itaufin)
 c
 c    .........................................................
@@ -521,4 +521,5 @@
       USE parallel
       USE infotrac
+      USE control_mod
       IMPLICIT NONE
 c=================================================================
@@ -532,5 +533,4 @@
 #include "comgeom.h"
 #include "temps.h"
-#include "control.h"
 
       INTEGER l
@@ -608,5 +608,5 @@
       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
 #endif
-       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+       tab_cntrl(31) =  REAL(itau_dyn + itaufin)
 #ifdef NC_DOUBLE
       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/etat0_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/etat0_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/etat0_netcdf.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -14,4 +14,5 @@
       USE phys_state_var_mod
       USE filtreg_mod
+      USE control_mod
       use regr_lat_time_climoz_m, only: regr_lat_time_climoz
       use conf_phys_m, only: conf_phys
@@ -89,5 +90,4 @@
 
 #include "comdissnew.h"
-#include "control.h"
 #include "serre.h"
 #include "clesphys.h"
@@ -189,5 +189,5 @@
       co2_ppm0 = co2_ppm
 
-      dtvr   = daysec/FLOAT(day_step)
+      dtvr   = daysec/REAL(day_step)
       print*,'dtvr',dtvr
 
@@ -691,6 +691,6 @@
 C
       write(*,*)'phystep ',dtvr,iphysiq,nbapp_rad
-      phystep   = dtvr * FLOAT(iphysiq)
-      radpas    = NINT (86400./phystep/ FLOAT(nbapp_rad) )
+      phystep   = dtvr * REAL(iphysiq)
+      radpas    = NINT (86400./phystep/ REAL(nbapp_rad) )
       write(*,*)'phystep =', phystep, radpas
 cIM : lecture de co2_ppm & solaire ds physiq.def
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/extrapol.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/extrapol.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/extrapol.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 C
@@ -158,5 +158,5 @@
                jlat = jy(k)
                pwork(i,j) = pwork(i,j)
-     $                      + pfild(ilon,jlat) * zmask(k)/FLOAT(inbor)
+     $                      + pfild(ilon,jlat) * zmask(k)/ REAL(inbor)
             ENDDO
          ENDIF
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fluxstokenc_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fluxstokenc_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fluxstokenc_p.F	(revision 1299)
@@ -153,7 +153,7 @@
       DO l=1,llm
          DO ij = ijb,ije
-            pbaruc(ij,l) = pbaruc(ij,l)/float(istdyn)
-            tetac(ij,l) = tetac(ij,l)/float(istdyn)
-            phic(ij,l) = phic(ij,l)/float(istdyn)
+            pbaruc(ij,l) = pbaruc(ij,l)/REAL(istdyn)
+            tetac(ij,l) = tetac(ij,l)/REAL(istdyn)
+            phic(ij,l) = phic(ij,l)/REAL(istdyn)
          ENDDO
       ENDDO
@@ -165,5 +165,5 @@
       DO l=1,llm
           DO ij = ijb,ije
-            pbarvc(ij,l) = pbarvc(ij,l)/float(istdyn)
+            pbarvc(ij,l) = pbarvc(ij,l)/REAL(istdyn)
          ENDDO
       ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/friction_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/friction_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/friction_p.F	(revision 1299)
@@ -1,8 +1,9 @@
 !
-! $Header$
+! $Id$
 !
 c=======================================================================
       SUBROUTINE friction_p(ucov,vcov,pdt)
       USE parallel
+      USE control_mod
       IMPLICIT NONE
 
@@ -22,5 +23,4 @@
 #include "paramet.h"
 #include "comgeom2.h"
-#include "control.h"
 #include "comconst.h"
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxhyp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxhyp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxhyp.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -89,5 +89,5 @@
 
        DO i = 0, nmax2 
-        xtild(i) = - pi + FLOAT(i) * depi /nmax2
+        xtild(i) = - pi + REAL(i) * depi /nmax2
        ENDDO
 
@@ -235,5 +235,5 @@
       DO 1500 i = ii1, ii2
 
-      xlon2 = - pi + (FLOAT(i) + xuv - decalx) * depi / FLOAT(iim) 
+      xlon2 = - pi + (REAL(i) + xuv - decalx) * depi / REAL(iim) 
 
       Xfi    = xlon2
@@ -280,5 +280,5 @@
 550   CONTINUE
 
-       xxprim(i) = depi/ ( FLOAT(iim) * Xprimin )
+       xxprim(i) = depi/ ( REAL(iim) * Xprimin )
        xvrai(i)  =  xi + xzoom
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxy.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxy.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxy.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE fxy (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
@@ -32,6 +32,6 @@
 c
        DO j = 1, jjm + 1 
-          rlatu(j) = fy    ( FLOAT( j )        )
-         yprimu(j) = fyprim( FLOAT( j )        )
+          rlatu(j) = fy    ( REAL( j )        )
+         yprimu(j) = fyprim( REAL( j )        )
        ENDDO
 
@@ -39,11 +39,11 @@
        DO j = 1, jjm
 
-         rlatv(j)  = fy    ( FLOAT( j ) + 0.5  )
-         rlatu1(j) = fy    ( FLOAT( j ) + 0.25 ) 
-         rlatu2(j) = fy    ( FLOAT( j ) + 0.75 ) 
+         rlatv(j)  = fy    ( REAL( j ) + 0.5  )
+         rlatu1(j) = fy    ( REAL( j ) + 0.25 ) 
+         rlatu2(j) = fy    ( REAL( j ) + 0.75 ) 
 
-        yprimv(j)  = fyprim( FLOAT( j ) + 0.5  ) 
-        yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
-        yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
+        yprimv(j)  = fyprim( REAL( j ) + 0.5  ) 
+        yprimu1(j) = fyprim( REAL( j ) + 0.25 )
+        yprimu2(j) = fyprim( REAL( j ) + 0.75 )
 
        ENDDO
@@ -53,13 +53,13 @@
 c
        DO i = 1, iim + 1
-           rlonv(i)     = fx    (   FLOAT( i )          )
-           rlonu(i)     = fx    (   FLOAT( i ) + 0.5    )
-        rlonm025(i)     = fx    (   FLOAT( i ) - 0.25  )
-        rlonp025(i)     = fx    (   FLOAT( i ) + 0.25  )
+           rlonv(i)     = fx    (   REAL( i )          )
+           rlonu(i)     = fx    (   REAL( i ) + 0.5    )
+        rlonm025(i)     = fx    (   REAL( i ) - 0.25  )
+        rlonp025(i)     = fx    (   REAL( i ) + 0.25  )
 
-         xprimv  (i)    = fxprim (  FLOAT( i )          )
-         xprimu  (i)    = fxprim (  FLOAT( i ) + 0.5    )
-        xprimm025(i)    = fxprim (  FLOAT( i ) - 0.25   )
-        xprimp025(i)    = fxprim (  FLOAT( i ) + 0.25   )
+         xprimv  (i)    = fxprim (  REAL( i )          )
+         xprimu  (i)    = fxprim (  REAL( i ) + 0.5    )
+        xprimm025(i)    = fxprim (  REAL( i ) - 0.25   )
+        xprimp025(i)    = fxprim (  REAL( i ) + 0.25   )
        ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxysinus.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxysinus.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fxysinus.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE fxysinus (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
@@ -32,6 +32,6 @@
 c
        DO j = 1, jjm + 1 
-          rlatu(j) = fy    ( FLOAT( j )        )
-         yprimu(j) = fyprim( FLOAT( j )        )
+          rlatu(j) = fy    ( REAL( j )        )
+         yprimu(j) = fyprim( REAL( j )        )
        ENDDO
 
@@ -39,11 +39,11 @@
        DO j = 1, jjm
 
-         rlatv(j)  = fy    ( FLOAT( j ) + 0.5  )
-         rlatu1(j) = fy    ( FLOAT( j ) + 0.25 ) 
-         rlatu2(j) = fy    ( FLOAT( j ) + 0.75 ) 
+         rlatv(j)  = fy    ( REAL( j ) + 0.5  )
+         rlatu1(j) = fy    ( REAL( j ) + 0.25 ) 
+         rlatu2(j) = fy    ( REAL( j ) + 0.75 ) 
 
-        yprimv(j)  = fyprim( FLOAT( j ) + 0.5  ) 
-        yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
-        yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
+        yprimv(j)  = fyprim( REAL( j ) + 0.5  ) 
+        yprimu1(j) = fyprim( REAL( j ) + 0.25 )
+        yprimu2(j) = fyprim( REAL( j ) + 0.75 )
 
        ENDDO
@@ -53,13 +53,13 @@
 c
        DO i = 1, iim + 1
-           rlonv(i)     = fx    (   FLOAT( i )          )
-           rlonu(i)     = fx    (   FLOAT( i ) + 0.5    )
-        rlonm025(i)     = fx    (   FLOAT( i ) - 0.25  )
-        rlonp025(i)     = fx    (   FLOAT( i ) + 0.25  )
+           rlonv(i)     = fx    (   REAL( i )          )
+           rlonu(i)     = fx    (   REAL( i ) + 0.5    )
+        rlonm025(i)     = fx    (   REAL( i ) - 0.25  )
+        rlonp025(i)     = fx    (   REAL( i ) + 0.25  )
 
-         xprimv  (i)    = fxprim (  FLOAT( i )          )
-         xprimu  (i)    = fxprim (  FLOAT( i ) + 0.5    )
-        xprimm025(i)    = fxprim (  FLOAT( i ) - 0.25   )
-        xprimp025(i)    = fxprim (  FLOAT( i ) + 0.25   )
+         xprimv  (i)    = fxprim (  REAL( i )          )
+         xprimu  (i)    = fxprim (  REAL( i ) + 0.5    )
+        xprimm025(i)    = fxprim (  REAL( i ) - 0.25   )
+        xprimp025(i)    = fxprim (  REAL( i ) + 0.25   )
        ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fyhyp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fyhyp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/fyhyp.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -75,5 +75,5 @@
        depi     = 2. * pi
        pis2     = pi/2.
-       pisjm    = pi/ FLOAT(jjm)
+       pisjm    = pi/ REAL(jjm)
        epsilon  = 1.e-3
        y0       =  yzoomdeg * pi/180. 
@@ -94,5 +94,5 @@
 
        DO i = 0, nmax2 
-        yt(i) = - pis2  + FLOAT(i)* pi /nmax2
+        yt(i) = - pis2  + REAL(i)* pi /nmax2
        ENDDO
 
@@ -210,5 +210,5 @@
        DO 1500 j =  1,jlat
         yo1   = 0.
-        ylon2 =  - pis2 + pisjm * ( FLOAT(j)  + yuv  -1.)  
+        ylon2 =  - pis2 + pisjm * ( REAL(j)  + yuv  -1.)  
         yfi    = ylon2
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/gcm.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/gcm.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/gcm.F	(revision 1299)
@@ -18,4 +18,5 @@
       USE getparam
       USE filtreg_mod
+      USE control_mod
 
 ! Ehouarn: for now these only apply to Earth:
@@ -66,5 +67,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -308,5 +308,5 @@
       ENDIF
 
-      zdtvr    = daysec/FLOAT(day_step)
+      zdtvr    = daysec/REAL(day_step)
         IF(dtvr.NE.zdtvr) THEN
          WRITE(lunout,*)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_atob.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_atob.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_atob.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE grille_m(imdep, jmdep, xdata, ydata, entree,
@@ -717,14 +717,14 @@
 c Calculs intermediares:
 c
-      xtmp(1) = -180.0 + 360.0/FLOAT(imtmp) / 2.0
+      xtmp(1) = -180.0 + 360.0/REAL(imtmp) / 2.0
       DO i = 2, imtmp
-         xtmp(i) = xtmp(i-1) + 360.0/FLOAT(imtmp)
+         xtmp(i) = xtmp(i-1) + 360.0/REAL(imtmp)
       ENDDO
       DO i = 1, imtmp
          xtmp(i) = xtmp(i) /180.0 * 4.0*ATAN(1.0)
       ENDDO
-      ytmp(1) = -90.0 + 180.0/FLOAT(jmtmp) / 2.0
+      ytmp(1) = -90.0 + 180.0/REAL(jmtmp) / 2.0
       DO j = 2, jmtmp
-         ytmp(j) = ytmp(j-1) + 180.0/FLOAT(jmtmp)
+         ytmp(j) = ytmp(j-1) + 180.0/REAL(jmtmp)
       ENDDO
       DO j = 1, jmtmp
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_noro.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_noro.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grid_noro.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -93,5 +93,5 @@
       xpi=acos(-1.)
       rad    = 6 371 229.
-      zdeltay=2.*xpi/float(jusn)*rad
+      zdeltay=2.*xpi/REAL(jusn)*rad
 c
 c utilise-t'on un masque lu?
@@ -215,6 +215,6 @@
 c  SUMMATION OVER GRIDPOINT AREA
 c 
-      zleny=xpi/float(jusn)*rad
-      xincr=xpi/2./float(jusn)
+      zleny=xpi/REAL(jusn)*rad
+      xincr=xpi/2./REAL(jusn)
        DO ii = 1, imar+1
        DO jj = 1, jmar
@@ -468,5 +468,5 @@
       DO IS=-1,1
         DO JS=-1,1
-          WEIGHTpb(IS,JS)=1./FLOAT((1+IS**2)*(1+JS**2))
+          WEIGHTpb(IS,JS)=1./REAL((1+IS**2)*(1+JS**2))
           SUM=SUM+WEIGHTpb(IS,JS)
         ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grilles_gcm_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grilles_gcm_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/grilles_gcm_netcdf.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -218,13 +218,13 @@
       open (20,file='grille.dat',form='unformatted',access='direct'
      s      ,recl=4*ip1jmp1)
-      write(20,rec=1) ((float(mod(i,2)+mod(j,2)),i=1,iip1),j=1,jjp1)
-      write(20,rec=2) ((float(mod(i,2)*mod(j,2)),i=1,iip1),j=1,jjp1)
+      write(20,rec=1) (( REAL(mod(i,2)+mod(j,2)),i=1,iip1),j=1,jjp1)
+      write(20,rec=2) (( REAL(mod(i,2)*mod(j,2)),i=1,iip1),j=1,jjp1)
       do j=2,jjm
          dlat1(j)=180.*(rlatv(j)-rlatv(j-1))/pi
-c        dlat2(j)=180.*fyprim(float(j))/pi
+c        dlat2(j)=180.*fyprim( REAL(j))/pi
       enddo
       do i=2,iip1
          dlon1(i)=180.*(rlonu(i)-rlonu(i-1))/pi
-c        dlon2(i)=180.*fxprim(float(i))/pi
+c        dlon2(i)=180.*fxprim( REAL(i))/pi
       enddo
       do j=2,jjm
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/guide_p_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/guide_p_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/guide_p_mod.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/guide.F,v 1.3.4.1 2006/11/06 15:51:16 fairhead Exp $
+! $Id$
 !
 MODULE guide_p_mod
@@ -66,4 +66,5 @@
   SUBROUTINE guide_init
 
+    USE control_mod
     IMPLICIT NONE
   
@@ -71,5 +72,4 @@
     INCLUDE "paramet.h"
     INCLUDE "netcdf.inc"
-    INCLUDE "control.h"
 
     INTEGER                :: error,ncidpl,rid,rcod
@@ -274,4 +274,5 @@
   SUBROUTINE guide_main(itau,ucov,vcov,teta,q,masse,ps)
     use parallel
+    USE control_mod
     
     IMPLICIT NONE
@@ -279,5 +280,4 @@
     INCLUDE "dimensions.h"
     INCLUDE "paramet.h"
-    INCLUDE "control.h"
     INCLUDE "comconst.h"
     INCLUDE "comvert.h"
@@ -380,7 +380,7 @@
       dday_step=real(day_step)
       IF (iguide_read.LT.0) THEN
-          tau=ditau/dday_step/FLOAT(iguide_read)
+          tau=ditau/dday_step/ REAL(iguide_read)
       ELSE
-          tau=FLOAT(iguide_read)*ditau/dday_step
+          tau= REAL(iguide_read)*ditau/dday_step
       ENDIF
       reste=tau-AINT(tau)
@@ -580,5 +580,5 @@
               ENDDO
           ENDDO 
-          fieldm(:,l)=fieldm(:,l)/FLOAT(imax(typ)-imin(typ)+1)
+          fieldm(:,l)=fieldm(:,l)/ REAL(imax(typ)-imin(typ)+1)
     ! Compute forcing
           DO j=jjb_v,jje_v
@@ -598,5 +598,5 @@
               ENDDO
           ENDDO 
-          fieldm(:,l)=fieldm(:,l)/FLOAT(imax(typ)-imin(typ)+1)
+          fieldm(:,l)=fieldm(:,l)/ REAL(imax(typ)-imin(typ)+1)
     ! Compute forcing
           DO j=jjb_u,jje_u
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/infotrac.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/infotrac.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/infotrac.F90	(revision 1299)
@@ -31,4 +31,5 @@
 
   SUBROUTINE infotrac_init
+    USE control_mod
     IMPLICIT NONE
 !=======================================================================
@@ -49,5 +50,4 @@
 
     INCLUDE "dimensions.h"
-    INCLUDE "control.h"
     INCLUDE "iniprint.h"
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniacademic.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniacademic.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniacademic.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -31,4 +31,5 @@
 c
 c=======================================================================
+      USE control_mod
       IMPLICIT NONE
 c-----------------------------------------------------------------------
@@ -44,5 +45,4 @@
 #include "ener.h"
 #include "temps.h"
-#include "control.h"
 #include "iniprint.h"
 
@@ -93,5 +93,5 @@
         g      = 9.8
         daysec = 86400.
-        dtvr    = daysec/FLOAT(day_step)
+        dtvr    = daysec/REAL(day_step)
         zdtvr=dtvr
         kappa  = 0.2857143
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniconst.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniconst.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniconst.F	(revision 1299)
@@ -1,7 +1,8 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE iniconst
 
+      USE control_mod
       IMPLICIT NONE
 c
@@ -16,5 +17,4 @@
 #include "comconst.h"
 #include "temps.h"
-#include "control.h"
 #include "comvert.h"
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inidissip.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inidissip.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inidissip.F	(revision 1299)
@@ -11,4 +11,6 @@
 c   -------------
 
+      USE control_mod
+
       IMPLICIT NONE
 #include "dimensions.h"
@@ -17,5 +19,4 @@
 #include "comconst.h"
 #include "comvert.h"
-#include "control.h"
 #include "logic.h"
 
@@ -165,5 +166,5 @@
 
 c     IF(.NOT.lstardis) THEN
-         fact    = rad*24./float(jjm)
+         fact    = rad*24./REAL(jjm)
          fact    = fact*fact
          PRINT*,'coef u ', fact/cdivu, 1./cdivu
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inigeom.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inigeom.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/inigeom.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -168,15 +168,15 @@
 c
       IF( nitergdiv.NE.2 ) THEN
-        gamdi_gdiv = coefdis/ ( float(nitergdiv) -2. )
+        gamdi_gdiv = coefdis/ ( REAL(nitergdiv) -2. )
       ELSE
         gamdi_gdiv = 0.
       ENDIF
       IF( nitergrot.NE.2 ) THEN
-        gamdi_grot = coefdis/ ( float(nitergrot) -2. )
+        gamdi_grot = coefdis/ ( REAL(nitergrot) -2. )
       ELSE
         gamdi_grot = 0.
       ENDIF
       IF( niterh.NE.2 ) THEN
-        gamdi_h = coefdis/ ( float(niterh) -2. )
+        gamdi_h = coefdis/ ( REAL(niterh) -2. )
       ELSE
         gamdi_h = 0.
@@ -381,6 +381,6 @@
        yprp               = yprimu2(j-1)
        rlatp              = rlatu2 (j-1)
-ccc       yprp             = fyprim( FLOAT(j) - 0.25 )
-ccc       rlatp            = fy    ( FLOAT(j) - 0.25 )
+ccc       yprp             = fyprim( REAL(j) - 0.25 )
+ccc       rlatp            = fy    ( REAL(j) - 0.25 )
 c
       coslatp             = COS( rlatp )
@@ -416,8 +416,8 @@
         rlatm    = rlatu1 (  j  )
         yprm     = yprimu1(  j  )
-cc         rlatp    = fy    ( FLOAT(j) - 0.25 )
-cc         yprp     = fyprim( FLOAT(j) - 0.25 )
-cc         rlatm    = fy    ( FLOAT(j) + 0.25 )
-cc         yprm     = fyprim( FLOAT(j) + 0.25 )
+cc         rlatp    = fy    ( REAL(j) - 0.25 )
+cc         yprp     = fyprim( REAL(j) - 0.25 )
+cc         rlatm    = fy    ( REAL(j) + 0.25 )
+cc         yprm     = fyprim( REAL(j) + 0.25 )
 
          coslatm  = COS( rlatm )
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/integrd_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/integrd_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/integrd_p.F	(revision 1299)
@@ -6,4 +6,5 @@
      $     dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps0,masse,phis,finvmaold)
       USE parallel
+      USE control_mod
       IMPLICIT NONE
 
@@ -32,5 +33,4 @@
 #include "temps.h"
 #include "serre.h"
-#include "control.h"
 
 c   Arguments:
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/interpre.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/interpre.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/interpre.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
        subroutine interpre(q,qppm,w,fluxwppm,masse,
@@ -6,5 +6,6 @@
      s            unatppm,vnatppm,psppm)
 
-       implicit none
+      USE control_mod
+      implicit none
 
 #include "dimensions.h"
@@ -17,5 +18,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/leapfrog_p.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/leapfrog_p.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/leapfrog_p.F	(revision 1299)
@@ -20,4 +20,5 @@
        USE guide_p_mod, ONLY : guide_main
        USE getparam
+       USE control_mod
 
       IMPLICIT NONE
@@ -62,5 +63,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
@@ -212,5 +212,5 @@
       itau = 0
 !      iday = day_ini+itau/day_step
-!      time = FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+!      time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 !         IF(time.GT.1.) THEN
 !          time = time-1.
@@ -1280,5 +1280,5 @@
               itau= itau + 1
 !              iday= day_ini+itau/day_step
-!              time= FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+!              time= REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 !                IF(time.GT.1.) THEN
 !                  time = time-1.
@@ -1458,5 +1458,5 @@
              itau =  itau + 1
 !             iday = day_ini+itau/day_step
-!             time = FLOAT(itau-(iday-day_ini)*day_step)/day_step+time_0
+!             time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
 !
 !                  IF(time.GT.1.) THEN
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/limit_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/limit_netcdf.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/limit_netcdf.F	(revision 1299)
@@ -8,4 +8,5 @@
 ! This routine is designed to work for Earth
       USE dimphy
+      USE control_mod
       use phys_state_var_mod , ONLY : pctsrf
       use inter_barxy_m, only: inter_barxy
@@ -29,5 +30,4 @@
 #include "dimensions.h"
 #include "paramet.h"
-#include "control.h"
 #include "logic.h"
 #include "netcdf.inc"
@@ -148,5 +148,5 @@
       kappa  = 0.2857143
       cpp    = 1004.70885
-      dtvr    = daysec/FLOAT(day_step)
+      dtvr    = daysec/ REAL(day_step)
       CALL inigeom
 c
@@ -418,5 +418,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time =  REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -632,5 +632,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time =  REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -951,5 +951,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time =  REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -1146,5 +1146,5 @@
           CALL SPLINE(ax,ay,lmdep,1.e30,1.e30,yder)
           DO k = 1, 360
-            time = FLOAT(k-1)
+            time =  REAL(k-1)
             CALL SPLINT(ax,ay,yder,lmdep,time,by)
             champan(i,j,k) = by
@@ -1300,5 +1300,5 @@
       ierr = NF_PUT_VARA_DOUBLE (nid,id_RUG,debut,epais,phy_rug(1,k))
 #else
-      ierr = NF_PUT_VAR1_REAL (nid,id_tim,k,FLOAT(k))
+      ierr = NF_PUT_VAR1_REAL (nid,id_tim,k, REAL(k))
       IF (newlmt ) THEN
           ierr = NF_PUT_VARA_REAL (nid,id_FOCE,debut,epais
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ppm3d.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ppm3d.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ppm3d.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 
@@ -345,6 +345,6 @@
 C
       PI = 4. * ATAN(1.)
-      DL = 2.*PI / float(IMR)
-      DP =    PI / float(JMR)
+      DL = 2.*PI / REAL(IMR)
+      DP =    PI / REAL(JMR)
 C
       if(IGD.eq.0) then
@@ -388,5 +388,5 @@
       ZTC  = acos(CR1) * (180./PI)
 C
-      JS0 = float(JMR)*(90.-ZTC)/180. + 2
+      JS0 = REAL(JMR)*(90.-ZTC)/180. + 2
       JS0 = max(JS0, J1+1)
       IML = min(6*JS0/(J1-1)+2, 4*IMR/5)
@@ -628,5 +628,5 @@
 C Contribution from the N-S advection
       do i=1,imr*(j2-j1+1)
-      JT = float(J1) - VA(i,j1)
+      JT = REAL(J1) - VA(i,j1)
       wk1(i,j1,2) = VA(i,j1) * (q(i,jt,k,IC) - q(i,jt+1,k,IC))
       enddo
@@ -949,5 +949,5 @@
       IF(IORD.eq.1 .or. j.eq.j1. or. j.eq.j2) THEN
       DO 1406 i=1,IMR
-      iu = float(i) - uc(i,j)
+      iu = REAL(i) - uc(i,j)
 1406  fx1(i) = qtmp(iu)
       ELSE
@@ -957,5 +957,5 @@
       if(IORD.eq.2 .or. j.le.j1vl .or. j.ge.j2vl) then
       DO 1408 i=1,IMR
-      iu = float(i) - uc(i,j)
+      iu = REAL(i) - uc(i,j)
 1408  fx1(i) = qtmp(iu) + DC(iu)*(sign(1.,uc(i,j))-uc(i,j))
       else
@@ -1111,5 +1111,5 @@
       if(JORD.eq.1) then
       DO 1000 i=1,len
-      JT = float(J1) - VC(i,J1)
+      JT = REAL(J1) - VC(i,J1)
 1000  fx(i,j1) = p(i,JT)
       else
@@ -1123,5 +1123,5 @@
       else
       DO 1200 i=1,len
-      JT = float(J1) - VC(i,J1)
+      JT = REAL(J1) - VC(i,J1)
 1200  fx(i,j1) = p(i,JT) + (sign(1.,VC(i,j1))-VC(i,j1))*DC2(i,JT)
       endif
@@ -1358,5 +1358,5 @@
 	do j=j1-1,j2+1
       do i=1,imr
-      JP = float(j)-VA(i,j)
+      JP = REAL(j)-VA(i,j)
       ady(i,j) = VA(i,j)*(wk(i,jp)-wk(i,jp+1))
       enddo
@@ -1582,5 +1582,5 @@
       JMR = JNP-1
       do 55 j=2,JNP
-        ph5  =  -0.5*PI + (FLOAT(J-1)-0.5)*DP
+        ph5  =  -0.5*PI + (REAL(J-1)-0.5)*DP
 55      cose(j) = cos(ph5)
 C
@@ -1834,5 +1834,5 @@
 C
 c      if(first) then
-      DP = 4.*ATAN(1.)/float(JNP-1)
+      DP = 4.*ATAN(1.)/REAL(JNP-1)
       CAP1 = IMR*(1.-COS((j1-1.5)*DP))/DP
 c      first = .false.
@@ -1889,5 +1889,5 @@
 C Check Poles.
       if(q(1,1).lt.0.) then
-      dq = q(1,1)*cap1/float(IMR)*acosp(j1)
+      dq = q(1,1)*cap1/REAL(IMR)*acosp(j1)
       do i=1,imr
       q(i,1) = 0.
@@ -1898,5 +1898,5 @@
 C
       if(q(1,JNP).lt.0.) then
-      dq = q(1,JNP)*cap1/float(IMR)*acosp(j2)
+      dq = q(1,JNP)*cap1/REAL(IMR)*acosp(j2)
       do i=1,imr
       q(i,JNP) = 0.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ran1.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ran1.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ran1.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       FUNCTION RAN1(IDUM)
@@ -20,5 +20,5 @@
           IX1=MOD(IA1*IX1+IC1,M1)
           IX2=MOD(IA2*IX2+IC2,M2)
-          R(J)=(FLOAT(IX1)+FLOAT(IX2)*RM2)*RM1
+          R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
 11      CONTINUE
         IDUM=1
@@ -30,5 +30,5 @@
       IF(J.GT.97.OR.J.LT.1)PAUSE
       RAN1=R(J)
-      R(J)=(FLOAT(IX1)+FLOAT(IX2)*RM2)*RM1
+      R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
       RETURN
       END
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE sortvarc
@@ -59,5 +59,5 @@
 
        dtvrs1j   = dtvr/daysec
-       rjour     = FLOAT( INT( itau * dtvrs1j ))
+       rjour     = REAL( INT( itau * dtvrs1j ))
        heure     = ( itau*dtvrs1j-rjour ) * 24.
        imjmp1    = iim * jjp1
@@ -129,7 +129,7 @@
       ang   = SSUM(     llm,  angl, 1 )
 
-c      rday = FLOAT(INT ( day_ini + time ))
+c      rday = REAL(INT ( day_ini + time ))
 c
-       rday = FLOAT(INT(time-jD_ref-jH_ref))
+       rday = REAL(INT(time-jD_ref-jH_ref))
       IF(ptot0.eq.0.)  THEN
          PRINT 3500, itau, rday, heure,time
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc0.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc0.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/sortvarc0.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE sortvarc0
@@ -60,5 +60,5 @@
 
        dtvrs1j   = dtvr/daysec
-       rjour     = FLOAT( INT( itau * dtvrs1j ))
+       rjour     = REAL( INT( itau * dtvrs1j ))
        heure     = ( itau*dtvrs1j-rjour ) * 24.
        imjmp1    = iim * jjp1
@@ -130,5 +130,5 @@
       ang0   = SSUM(     llm,  angl, 1 )
 
-      rday = FLOAT(INT (time ))
+      rday = REAL(INT (time ))
 c
       PRINT 3500, itau, rday, heure, time
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/startvar.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/startvar.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/startvar.F	(revision 1299)
@@ -352,5 +352,5 @@
       phis = phis * 9.81
     !
-!      masque(:,:) = FLOAT(tmp_int(:,:))
+!      masque(:,:) = REAL(tmp_int(:,:))
     !
     !  Compute surface roughness
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/tourabs.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/tourabs.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/tourabs.F	(revision 1299)
@@ -57,7 +57,7 @@
         ELSE
          rot( ij,l ) = (vcov(ij+1,l)/cv(ij+1)-vcov(ij,l)/cv(ij))/
-     $                 (2.*pi*RAD*cos(rlatv(j)))*float(iim)
+     $                 (2.*pi*RAD*cos(rlatv(j)))*REAL(iim)
      $                +(ucov(ij+iip1,l)/cu(ij+iip1)-ucov(ij,l)/cu(ij))/
-     $                 (pi*RAD)*(float(jjm)-1.)
+     $                 (pi*RAD)*(REAL(jjm)-1.)
 c
         ENDIF
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/traceurpole.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/traceurpole.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/traceurpole.F	(revision 1299)
@@ -1,6 +1,8 @@
 !
-! $Header$
+! $Id$
 !
           subroutine traceurpole(q,masse)
+
+      USE control_mod
 
           implicit none
@@ -15,5 +17,4 @@
 #include "logic.h"
 #include "temps.h"
-#include "control.h"
 #include "ener.h"
 #include "description.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ugeostr.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ugeostr.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/ugeostr.F	(revision 1299)
@@ -40,5 +40,5 @@
             DO i=1,iim
                u(i,j,l)=fact*(phi(i,j+1,l)-phi(i,j,l))
-               um(j,l)=um(j,l)+u(i,j,l)/float(iim)
+               um(j,l)=um(j,l)+u(i,j,l)/REAL(iim)
             ENDDO
          ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_new.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_new.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_new.h	(revision 1299)
@@ -8,13 +8,13 @@
 c....stretching in x...
 c
-        ripx(  ri )= (ri-1.0) *2.*pi/FLOAT(iim) 
+        ripx(  ri )= (ri-1.0) *2.*pi/REAL(iim) 
         fx  (  ri )= ripx(ri) + transx  +
      *         alphax * SIN( ripx(ri)+transx-pxo ) - pi
-        fxprim(ri) = 2.*pi/FLOAT(iim)  *
+        fxprim(ri) = 2.*pi/REAL(iim)  *
      *        ( 1.+ alphax * COS( ripx(ri)+transx-pxo ) )
 
 c....stretching in y...
 c
-        bigy(rj)   = 2.* (FLOAT(jjp1)-rj ) *pi/jjm
+        bigy(rj)   = 2.* (REAL(jjp1)-rj ) *pi/jjm
         fy(rj)     =  ( bigy(rj) + transy  +
      *        alphay * SIN( bigy(rj)+transy-pyo ) ) /2.  - pi/2.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_reg.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_reg.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_reg.h	(revision 1299)
@@ -13,13 +13,13 @@
 c
 c
-      fy    ( rj ) =    pi/FLOAT(jjm) * ( 0.5 * FLOAT(jjm) +  1. - rj  )
-      fyprim( rj ) =    pi/FLOAT(jjm)
+      fy    ( rj ) =    pi/REAL(jjm) * ( 0.5 * REAL(jjm) +  1. - rj  )
+      fyprim( rj ) =    pi/REAL(jjm)
 
-c     fy(rj)=ASIN(1.+2.*((1.-rj)/FLOAT(jjm)))
+c     fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
 c     fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
 
-      fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5*  FLOAT(iim) - 1. )
-c     fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* ( FLOAT(iim) + 1.) )
-      fxprim( ri ) = 2.*pi/FLOAT(iim)
+      fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
+c     fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
+      fxprim( ri ) = 2.*pi/REAL(iim)
 c
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_sin.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_sin.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxy_sin.h	(revision 1299)
@@ -13,10 +13,10 @@
 c
 c
-      fy(rj)=ASIN(1.+2.*((1.-rj)/FLOAT(jjm)))
+      fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
       fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
 
-      fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5*  FLOAT(iim) - 1. )
-c     fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* ( FLOAT(iim) + 1.) )
-      fxprim( ri ) = 2.*pi/FLOAT(iim)
+      fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
+c     fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
+      fxprim( ri ) = 2.*pi/REAL(iim)
 c
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxyprim.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxyprim.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/grid/fxyprim.h	(revision 1299)
@@ -13,13 +13,13 @@
 c
 c
-      fy    ( rj ) =    pi/FLOAT(jjm) * ( 0.5 * FLOAT(jjm) +  1. - rj  )
-      fyprim( rj ) =    pi/FLOAT(jjm)
+      fy    ( rj ) =    pi/REAL(jjm) * ( 0.5 * REAL(jjm) +  1. - rj  )
+      fyprim( rj ) =    pi/REAL(jjm)
 
-c     fy(rj)=ASIN(1.+2.*((1.-rj)/FLOAT(jjm)))
+c     fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
 c     fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
 
-      fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5*  FLOAT(iim) - 1. )
-c     fx    ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* ( FLOAT(iim) + 1.) )
-      fxprim( ri ) = 2.*pi/FLOAT(iim)
+      fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5*  REAL(iim) - 1. )
+c     fx    ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
+      fxprim( ri ) = 2.*pi/REAL(iim)
 c
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aaam_bud.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aaam_bud.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aaam_bud.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       subroutine aaam_bud (iam,nlon,nlev,rjour,rsec,
@@ -117,10 +117,15 @@
       REAL BLSU(801,401),BLSV(801,401)
       REAL ZLON(801),ZLAT(401)
+
+      CHARACTER (LEN=20) :: modname='aaam_bud'
+      CHARACTER (LEN=80) :: abort_message
+
+
 C
 C  PUT AAM QUANTITIES AT ZERO:
 C
       if(iim+1.gt.801.or.jjm+1.gt.401)then
-      print *,' Pb de dimension dans aaam_bud'
-      stop
+        abort_message = 'Pb de dimension dans aaam_bud'
+        CALL abort_gcm (modname,abort_message,1)
       endif
 
@@ -128,6 +133,6 @@
       hadley=1.e18
       hadday=1.e18*24.*3600.
-      dlat=xpi/float(jjm)
-      dlon=2.*xpi/float(iim) 
+      dlat=xpi/REAL(jjm)
+      dlon=2.*xpi/REAL(iim) 
       
       do iax=1,3
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE aeropt(pplay, paprs, t_seri, msulfate, RHcl,
@@ -39,4 +39,8 @@
       REAL alpha_aer_sulfate(nbre_RH,5)   !--unit m2/g SO4
       REAL alphasulfate      
+
+      CHARACTER (LEN=20) :: modname='aeropt'
+      CHARACTER (LEN=80) :: abort_message
+
 c
 c Proprietes optiques
@@ -85,5 +89,8 @@
         rh=MIN(RHcl(i,k)*100.,RH_MAX)
         RH_num = INT( rh/10. + 1.)
-        IF (rh.LT.0.) STOP 'aeropt: RH < 0 not possible'
+        IF (rh.LT.0.) THEN
+          abort_message = 'aeropt: RH < 0 not possible'
+          CALL abort_gcm (modname,abort_message,1)
+        ENDIF
         IF (rh.gt.85.) RH_num=10
         IF (rh.gt.90.) RH_num=11
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt_5wv.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt_5wv.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/aeropt_5wv.F90	(revision 1299)
@@ -621,6 +621,4 @@
   DO k=1, klev
     DO i=1, klon
-!      IF (t_seri(i,k).EQ.0) stop 'stop aeropt_5wv T '
-!      IF (pplay(i,k).EQ.0) stop  'stop aeropt_5wv p '
       zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
 !CDIR UNROLL=naero_spc
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/albedo.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/albedo.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/albedo.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -67,5 +67,5 @@
 c prend en compte l'autre moitie de la journee):
       DO k = 1, npts
-         rmu = aa + bb * COS(FLOAT(k)/FLOAT(npts)*zpi)
+         rmu = aa + bb * COS(REAL(k)/REAL(npts)*zpi)
          rmu = MAX(0.0, rmu)
          fauxo = (1.47-ACOS(rmu))/.15
@@ -110,5 +110,5 @@
 c prend en compte l'autre moitie de la journee):
       DO k = 1, npts
-         rmu = aa + bb * COS(FLOAT(k)/FLOAT(npts)*zpi)
+         rmu = aa + bb * COS(REAL(k)/REAL(npts)*zpi)
          rmu = MAX(0.0, rmu)
 cIM cf. PB      alb = 0.058/(rmu + 0.30)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calcul_simulISCCP.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calcul_simulISCCP.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calcul_simulISCCP.h	(revision 1299)
@@ -1,4 +1,4 @@
 c
-c $Header$
+c $Id$
 c
 c on appelle le simulateur ISCCP toutes les 3h
@@ -18,5 +18,5 @@
        sunlit(i)=1 
        IF(rmu0(i).EQ.0.) sunlit(i)=0
-       nbsunlit(1,i,n)=FLOAT(sunlit(i))
+       nbsunlit(1,i,n)=REAL(sunlit(i))
       ENDDO
 c
@@ -88,9 +88,11 @@
            print*,'seed=0 i paprs aa seed_re',
      .     i,paprs(i,2),aa,seed_re(i,n)
-           STOP
+           abort_message = ''
+           CALL abort_gcm (modname,abort_message,1)
           ELSE IF(seed(i,n).LT.0) THEN
            print*,'seed < 0, i seed itap paprs',i,
      .     seed(i,n),itap,paprs(i,2)
-           STOP
+           abort_message = ''
+           CALL abort_gcm (modname,abort_message,1)
           ENDIF
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calltherm.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calltherm.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/calltherm.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       subroutine calltherm(dtime  &
@@ -83,4 +83,7 @@
 !      save zentr_therm,zfm_therm
 
+      character (len=20) :: modname='calltherm'
+      character (len=80) :: abort_message
+
       integer i,k
       logical, save :: first=.true.
@@ -137,5 +140,5 @@
          if(nbptspb.GT.0) print*,'Number of points with q_seri(i,k)<=0 ',nbptspb   
 
-         zdt=dtime/float(nsplit_thermals)
+         zdt=dtime/REAL(nsplit_thermals)
          do isplit=1,nsplit_thermals
 
@@ -173,5 +176,7 @@
      &      ,tau_thermals,3)
           else if (iflag_thermals.eq.11) then
-            stop 'cas non prevu dans calltherm'
+              abort_message = 'cas non prevu dans calltherm'
+              CALL abort_gcm (modname,abort_message,1)
+
 !           CALL thermcell_pluie(klon,klev,zdt  &
 !   &      ,pplay,paprs,pphi,zlev  &
@@ -210,5 +215,6 @@
            if (prt_level.gt.10) write(lunout,*)'Apres thermcell_main OK'
          else
-            STOP'Cas des thermiques non prevu'
+           abort_message = 'Cas des thermiques non prevu'
+           CALL abort_gcm (modname,abort_message,1)
          endif
 
@@ -218,5 +224,5 @@
       DO i=1,klon
        logexpr1(i)=flag_bidouille_stratocu.or.weak_inversion(i).gt.0.5
-       IF(logexpr1(i)) fact(i)=1./float(nsplit_thermals)
+       IF(logexpr1(i)) fact(i)=1./REAL(nsplit_thermals)
       ENDDO
 
@@ -255,7 +261,7 @@
         if(prt_level.GE.10) print*,'calltherm i Alp_bl Alp Ale_bl Ale',i,Alp_bl(i),Alp(i),Ale_bl(i),Ale(i)
             fm_therm(i,klev+1)=0.
-            Ale_bl(i)=Ale_bl(i)+Ale(i)/float(nsplit_thermals)
+            Ale_bl(i)=Ale_bl(i)+Ale(i)/REAL(nsplit_thermals)
 !            write(22,*)'ALE CALLTHERM',Ale_bl(i),Ale(i)
-            Alp_bl(i)=Alp_bl(i)+Alp(i)/float(nsplit_thermals)
+            Alp_bl(i)=Alp_bl(i)+Alp(i)/REAL(nsplit_thermals)
 !            write(23,*)'ALP CALLTHERM',Alp_bl(i),Alp(i)
        ENDDO
@@ -276,5 +282,4 @@
 !    &         'fm=',zfm_therm(i,k),'entr=',entr_therm(i,k)
                  endif
-!       stop
             ENDDO
             ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conema3.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conema3.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conema3.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE conema3 (dtime,paprs,pplay,t,q,u,v,tra,ntra,
@@ -360,5 +360,5 @@
       cape(i) = em_CAPE
       wd(i) = em_wd
-      rflag(i) = float(iflag)
+      rflag(i) = REAL(iflag)
 c SB      kbas(i) = em_bas
 c SB      ktop(i) = em_top
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conf_phys.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conf_phys.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/conf_phys.F90	(revision 1299)
@@ -27,4 +27,5 @@
    USE surface_data
    USE carbon_cycle_mod, ONLY : carbon_cycle_tr, carbon_cycle_cpl
+   use control_mod
 
  include "conema3.h"
@@ -36,5 +37,4 @@
 include "clesphys.h"
 include "compbl.h"
-include "control.h"
 include "comsoil.h"
 !
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/convect2.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/convect2.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/convect2.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       subroutine convect2(ncum,idcum,len,nd,ndp1,nl,minorig,
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cpl_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cpl_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cpl_mod.F90	(revision 1299)
@@ -24,4 +24,6 @@
   USE oasis
   USE write_field_phy
+  USE control_mod
+
   
 ! Global attributes
@@ -101,5 +103,4 @@
     INCLUDE "dimensions.h"
     INCLUDE "indicesol.h"
-    INCLUDE "control.h"
     INCLUDE "temps.h"
     INCLUDE "iniprint.h"
@@ -583,31 +584,31 @@
     DO ig = 1, knon
        cpl_sols(ig,cpl_index) = cpl_sols(ig,cpl_index) + &
-            swdown(ig)      / FLOAT(nexca)
+            swdown(ig)      / REAL(nexca)
        cpl_nsol(ig,cpl_index) = cpl_nsol(ig,cpl_index) + &
-            (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) / FLOAT(nexca)
+            (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) / REAL(nexca)
        cpl_rain(ig,cpl_index) = cpl_rain(ig,cpl_index) + &
-            precip_rain(ig) / FLOAT(nexca)
+            precip_rain(ig) / REAL(nexca)
        cpl_snow(ig,cpl_index) = cpl_snow(ig,cpl_index) + &
-            precip_snow(ig) / FLOAT(nexca)
+            precip_snow(ig) / REAL(nexca)
        cpl_evap(ig,cpl_index) = cpl_evap(ig,cpl_index) + &
-            evap(ig)        / FLOAT(nexca)
+            evap(ig)        / REAL(nexca)
        cpl_tsol(ig,cpl_index) = cpl_tsol(ig,cpl_index) + &
-            tsurf(ig)       / FLOAT(nexca)
+            tsurf(ig)       / REAL(nexca)
        cpl_fder(ig,cpl_index) = cpl_fder(ig,cpl_index) + &
-            fder(ig)        / FLOAT(nexca)
+            fder(ig)        / REAL(nexca)
        cpl_albe(ig,cpl_index) = cpl_albe(ig,cpl_index) + &
-            albsol(ig)      / FLOAT(nexca)
+            albsol(ig)      / REAL(nexca)
        cpl_taux(ig,cpl_index) = cpl_taux(ig,cpl_index) + &
-            taux(ig)        / FLOAT(nexca)
+            taux(ig)        / REAL(nexca)
        cpl_tauy(ig,cpl_index) = cpl_tauy(ig,cpl_index) + &
-            tauy(ig)        / FLOAT(nexca)      
+            tauy(ig)        / REAL(nexca)      
        cpl_windsp(ig,cpl_index) = cpl_windsp(ig,cpl_index) + &
-            windsp(ig)      / FLOAT(nexca)
+            windsp(ig)      / REAL(nexca)
        cpl_taumod(ig,cpl_index) =   cpl_taumod(ig,cpl_index) + &
-          SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / FLOAT (nexca)
+          SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / REAL (nexca)
 
        IF (carbon_cycle_cpl) THEN
           cpl_atm_co2(ig,cpl_index) = cpl_atm_co2(ig,cpl_index) + &
-               co2_send(knindex(ig))/ FLOAT(nexca) 
+               co2_send(knindex(ig))/ REAL(nexca) 
        END IF
      ENDDO
@@ -777,25 +778,25 @@
     DO ig = 1, knon
        cpl_sols(ig,cpl_index) = cpl_sols(ig,cpl_index) + &
-            swdown(ig)      / FLOAT(nexca)
+            swdown(ig)      / REAL(nexca)
        cpl_nsol(ig,cpl_index) = cpl_nsol(ig,cpl_index) + &
-            (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) / FLOAT(nexca)
+            (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) / REAL(nexca)
        cpl_rain(ig,cpl_index) = cpl_rain(ig,cpl_index) + &
-            precip_rain(ig) / FLOAT(nexca)
+            precip_rain(ig) / REAL(nexca)
        cpl_snow(ig,cpl_index) = cpl_snow(ig,cpl_index) + &
-            precip_snow(ig) / FLOAT(nexca)
+            precip_snow(ig) / REAL(nexca)
        cpl_evap(ig,cpl_index) = cpl_evap(ig,cpl_index) + &
-            evap(ig)        / FLOAT(nexca)
+            evap(ig)        / REAL(nexca)
        cpl_tsol(ig,cpl_index) = cpl_tsol(ig,cpl_index) + &
-            tsurf(ig)       / FLOAT(nexca)
+            tsurf(ig)       / REAL(nexca)
        cpl_fder(ig,cpl_index) = cpl_fder(ig,cpl_index) + &
-            fder(ig)        / FLOAT(nexca)
+            fder(ig)        / REAL(nexca)
        cpl_albe(ig,cpl_index) = cpl_albe(ig,cpl_index) + &
-            albsol(ig)      / FLOAT(nexca)
+            albsol(ig)      / REAL(nexca)
        cpl_taux(ig,cpl_index) = cpl_taux(ig,cpl_index) + &
-            taux(ig)        / FLOAT(nexca)
+            taux(ig)        / REAL(nexca)
        cpl_tauy(ig,cpl_index) = cpl_tauy(ig,cpl_index) + &
-            tauy(ig)        / FLOAT(nexca)     
+            tauy(ig)        / REAL(nexca)     
        cpl_taumod(ig,cpl_index) = cpl_taumod(ig,cpl_index) + &
-            SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / FLOAT(nexca) 
+            SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / REAL(nexca) 
     ENDDO
 
@@ -944,6 +945,6 @@
 !*************************************************************************************    
 !$OMP MASTER
-    cpl_rriv2D(:,:) = cpl_rriv2D(:,:) + rriv2D(:,:) / FLOAT(nexca)
-    cpl_rcoa2D(:,:) = cpl_rcoa2D(:,:) + rcoa2D(:,:) / FLOAT(nexca)
+    cpl_rriv2D(:,:) = cpl_rriv2D(:,:) + rriv2D(:,:) / REAL(nexca)
+    cpl_rcoa2D(:,:) = cpl_rcoa2D(:,:) + rcoa2D(:,:) / REAL(nexca)
 !$OMP END MASTER
 
@@ -998,5 +999,5 @@
 !*************************************************************************************    
 !$OMP MASTER
-    cpl_rlic2D(:,:) = cpl_rlic2D(:,:) + rlic2D(:,:) / FLOAT(nexca)
+    cpl_rlic2D(:,:) = cpl_rlic2D(:,:) + rlic2D(:,:) / REAL(nexca)
 !$OMP END MASTER
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv30_routines.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv30_routines.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv30_routines.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -749,4 +749,5 @@
 
 #include "cv30param.h"
+      include 'iniprint.h'
 
 c inputs:
@@ -778,4 +779,7 @@
 c local variables:
       integer i,k,nn,j
+
+      CHARACTER (LEN=20) :: modname='cv30_compress'
+      CHARACTER (LEN=80) :: abort_message
 
 
@@ -820,6 +824,7 @@
 
       if (nn.ne.ncum) then
-         print*,'strange! nn not equal to ncum: ',nn,ncum
-         stop
+         write(lunout,*)'strange! nn not equal to ncum: ',nn,ncum
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       endif
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inicp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inicp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inicp.F	(revision 1299)
@@ -13,4 +13,6 @@
 c
       INTEGER iflag_clos
+      CHARACTER (LEN=20) :: modname='cv3_inicp'
+      CHARACTER (LEN=80) :: abort_message
 c
 c --   Mixing probability distribution functions
@@ -105,5 +107,6 @@
         if (abs(aire-1.0) .gt. 0.02) then
             print *,'WARNING:: AREA OF MIXING PDF IS::', aire
-            stop
+            abort_message = ''
+            CALL abort_gcm (modname,abort_message,1)
         else
             print *,'Area, mean & std deviation are ::', aire,mu,sigma
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inip.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inip.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_inip.F	(revision 1299)
@@ -12,4 +12,9 @@
 c
 c      INTEGER iflag_mix
+      include 'iniprint.h'
+
+      CHARACTER (LEN=20) :: modname='cv3_inip'
+      CHARACTER (LEN=80) :: abort_message
+
 c
 c --   Mixing probability distribution functions
@@ -104,6 +109,7 @@
 c
         if (abs(aire-1.0) .gt. 0.02) then
-            print *,'WARNING:: AREA OF MIXING PDF IS::', aire
-            stop
+            write(lunout,*)'WARNING:: AREA OF MIXING PDF IS::', aire
+            abort_message = ''
+            CALL abort_gcm (modname,abort_message,1)
         else
             print *,'Area, mean & std deviation are ::', aire,mu,sigma
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_routines.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_routines.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_routines.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header: /home/cvsroot/LMDZ4/libf/phylmd/cv3_routines.F,v 1.16 2008-11-06 16:29:35 lmdzadmin Exp $
+! $Id$
 !
 c
@@ -35,4 +35,7 @@
       integer nd
       real delt ! timestep (seconds)
+
+      CHARACTER (LEN=20) :: modname='cv3_param'
+      CHARACTER (LEN=80) :: abort_message
 
 c noff: integer limit for convection (nd-noff)
@@ -767,4 +770,5 @@
 
 #include "cv3param.h"
+      include 'iniprint.h'
 
 c inputs:
@@ -797,4 +801,6 @@
       integer i,k,nn,j
 
+      CHARACTER (LEN=20) :: modname='cv3_compress'
+      CHARACTER (LEN=80) :: abort_message
 
       do 110 k=1,nl+1
@@ -839,6 +845,7 @@
 
       if (nn.ne.ncum) then
-         print*,'strange! nn not equal to ncum: ',nn,ncum
-         stop
+         write(lunout,*)'strange! nn not equal to ncum: ',nn,ncum
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       endif
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3a_compress.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3a_compress.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3a_compress.F	(revision 1299)
@@ -76,4 +76,7 @@
       integer i,k,nn,j
 
+      CHARACTER (LEN=20) :: modname='cv3a_compress'
+      CHARACTER (LEN=80) :: abort_message
+
 
       do 110 k=1,nl+1
@@ -127,6 +130,7 @@
 
       if (nn.ne.ncum) then
-         print*,'WARNING nn not equal to ncum: ',nn,ncum
-         stop
+        print*,'WARNING nn not equal to ncum: ',nn,ncum
+        abort_message = ''
+        CALL abort_gcm (modname,abort_message,1)
       endif
 
@@ -157,5 +161,6 @@
       if (nn.ne.ncum) then
          print*,'WARNING nn not equal to ncum: ',nn,ncum
-         stop
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       endif
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3p1_closure.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3p1_closure.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3p1_closure.F	(revision 1299)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
       SUBROUTINE cv3p1_closure(nloc,ncum,nd,icb,inb
      :                      ,pbase,plcl,p,ph,tv,tvp,buoy
@@ -74,4 +77,7 @@
       real wb,sigmax
       data wb /2./, sigmax /0.1/
+
+      CHARACTER (LEN=20) :: modname='cv3p1_closure'
+      CHARACTER (LEN=80) :: abort_message
 c
 c      print *,' -> cv3p1_closure, Ale ',ale(1)
@@ -509,7 +515,9 @@
        cbmf1(il) = alp2(il)/(0.5*wb*wb-Cin(il))
        if(cbmf1(il).EQ.0.AND.alp2(il).NE.0.) THEN
-        print*,'cv3p1_closure cbmf1=0 and alp NE 0 il alp2 alp cin ',il,
+        write(lunout,*)
+     &  'cv3p1_closure cbmf1=0 and alp NE 0 il alp2 alp cin ',il,
      . alp2(il),alp(il),cin(il)
-        STOP 
+        abort_message = ''
+        CALL abort_gcm (modname,abort_message,1)
        endif
        cbmfmax(il) = sigmax*wb2(il)*100.*p(il,icb(il))
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv_routines.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv_routines.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv_routines.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE cv_param(nd)
@@ -38,4 +38,6 @@
 #include "cvparam.h"
       integer nd
+      CHARACTER (LEN=20) :: modname='cv_routines'
+      CHARACTER (LEN=80) :: abort_message
 
 c noff: integer limit for convection (nd-noff)
@@ -429,4 +431,8 @@
 c local variables:
       integer i,k,nn
+      CHARACTER (LEN=20) :: modname='cv_compress'
+      CHARACTER (LEN=80) :: abort_message
+
+      include 'iniprint.h'
 
 
@@ -456,6 +462,7 @@
 
       if (nn.ne.ncum) then
-         print*,'strange! nn not equal to ncum: ',nn,ncum
-         stop
+         write(lunout,*)'strange! nn not equal to ncum: ',nn,ncum
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       endif
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cva_driver.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cva_driver.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cva_driver.F	(revision 1299)
@@ -106,4 +106,6 @@
 #include "dimensions.h"
 ccccc#include "dimphy.h"
+      include 'iniprint.h'
+
 c
 c Input
@@ -419,4 +421,6 @@
       logical, save :: first=.true.
 c$OMP THREADPRIVATE(first)
+      CHARACTER (LEN=20) :: modname='cva_driver'
+      CHARACTER (LEN=80) :: abort_message
 
 c
@@ -563,7 +567,8 @@
 c test niveaux couche alimentation KE
        if(sig1feed1.eq.sig2feed1) then
-               print*,'impossible de choisir sig1feed=sig2feed'
-               print*,'changer la valeur de sig2feed dans physiq.def'
-       stop
+         write(lunout,*)'impossible de choisir sig1feed=sig2feed'
+         write(lunout,*)'changer la valeur de sig2feed dans physiq.def'
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
        endif
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -135,5 +135,5 @@
          PRINT*, 'fisrtilp, evap_prec:', evap_prec
          PRINT*, 'fisrtilp, cpartiel:', cpartiel
-         IF (ABS(dtime/FLOAT(ninter)-360.0).GT.0.001) THEN
+         IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN
           PRINT*, 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime
           PRINT*, 'Je prefere un sous-intervalle de 6 minutes'
@@ -436,5 +436,5 @@
          zfice(i) = zfice(i)**nexpo
          zneb(i) = MAX(rneb(i,k), seuil_neb)
-         radliq(i,k) = zoliq(i)/FLOAT(ninter+1)
+         radliq(i,k) = zoliq(i)/REAL(ninter+1)
       ENDIF
       ENDDO
@@ -453,13 +453,13 @@
                 zcl   =cld_lc_con
                 zct   =1./cld_tau_con
-                zfroi    = dtime/FLOAT(ninter)/zdz(i)*zoliq(i)
+                zfroi    = dtime/REAL(ninter)/zdz(i)*zoliq(i)
      .              *fallvc(zrhol(i)) * zfice(i)
              else
                 zcl   =cld_lc_lsc
                 zct   =1./cld_tau_lsc
-                zfroi    = dtime/FLOAT(ninter)/zdz(i)*zoliq(i)
+                zfroi    = dtime/REAL(ninter)/zdz(i)*zoliq(i)
      .              *fallvs(zrhol(i)) * zfice(i)
              endif
-             zchau    = zct   *dtime/FLOAT(ninter) * zoliq(i)
+             zchau    = zct   *dtime/REAL(ninter) * zoliq(i)
      .         *(1.0-EXP(-(zoliq(i)/zneb(i)/zcl   )**2)) *(1.-zfice(i))
              ztot    = zchau    + zfroi
@@ -468,5 +468,5 @@
          ztot    = MIN(ztot,zoliq(i))
          zoliq(i) = MAX(zoliq(i)-ztot   , 0.0)
-         radliq(i,k) = radliq(i,k) + zoliq(i)/FLOAT(ninter+1)
+         radliq(i,k) = radliq(i,k) + zoliq(i)/REAL(ninter+1)
       ENDIF
       ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp_tr.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp_tr.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/fisrtilp_tr.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -140,5 +140,5 @@
          PRINT*, 'fisrtilp, evap_prec:', evap_prec
          PRINT*, 'fisrtilp, cpartiel:', cpartiel
-         IF (ABS(dtime/FLOAT(ninter)-360.0).GT.0.001) THEN
+         IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN
           PRINT*, 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime
           PRINT*, 'Je prefere un sous-intervalle de 6 minutes'
@@ -335,5 +335,5 @@
          zfice(i) = zfice(i)**nexpo
          zneb(i) = MAX(rneb(i,k), seuil_neb)
-         radliq(i,k) = zoliq(i)/FLOAT(ninter+1)
+         radliq(i,k) = zoliq(i)/REAL(ninter+1)
       ENDIF
       ENDDO
@@ -342,8 +342,8 @@
       DO i = 1, klon
       IF (rneb(i,k).GT.0.0) THEN
-         zchau(i) = ct*dtime/FLOAT(ninter) * zoliq(i)
+         zchau(i) = ct*dtime/REAL(ninter) * zoliq(i)
      .          * (1.0-EXP(-(zoliq(i)/zneb(i)/cl)**2)) *(1.-zfice(i))
          zrhol(i) = zrho(i) * zoliq(i) / zneb(i)
-         zfroi(i) = dtime/FLOAT(ninter)/zdz(i)*zoliq(i)
+         zfroi(i) = dtime/REAL(ninter)/zdz(i)*zoliq(i)
      .              *fallv(zrhol(i)) * zfice(i)
          ztot(i) = zchau(i) + zfroi(i)
@@ -351,5 +351,5 @@
          ztot(i) = MIN(MAX(ztot(i),0.0),zoliq(i))
          zoliq(i) = MAX(zoliq(i)-ztot(i), 0.0)
-         radliq(i,k) = radliq(i,k) + zoliq(i)/FLOAT(ninter+1)
+         radliq(i,k) = radliq(i,k) + zoliq(i)/REAL(ninter+1)
       ENDIF
       ENDDO
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/hines_gwd.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/hines_gwd.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/hines_gwd.F	(revision 1299)
@@ -847,5 +847,5 @@
 C  Use horizontal isotropy to calculate azimuthal variances at bottom level.
 C
-      AZFAC = 1. / FLOAT(NAZ)
+      AZFAC = 1. / REAL(NAZ)
       DO 20 N = 1,NAZ
         DO 10 I = IL1,IL2
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ave.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ave.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ave.h	(revision 1299)
@@ -1,4 +1,4 @@
 c
-c $Header$
+c $Id$
 c
       IF (ok_journe) THEN
@@ -17,5 +17,5 @@
 cym         ENDDO
          DO ll=1,klev
-            znivsig(ll)=float(ll)
+            znivsig(ll)=REAL(ll)
          ENDDO
 cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ins.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ins.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_bilKP_ins.h	(revision 1299)
@@ -1,4 +1,4 @@
 c
-c $Header$
+c $Id$
 c
       IF (ok_journe) THEN
@@ -17,5 +17,5 @@
 cym         ENDDO
          DO ll=1,klev
-            znivsig(ll)=float(ll)
+            znivsig(ll)=REAL(ll)
          ENDDO
 cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histISCCP.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histISCCP.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histISCCP.h	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       IF (ok_isccp) THEN
@@ -49,5 +49,5 @@
 c
         DO l=1, ncol(n)
-          vertlev(l,n)=float(l)
+          vertlev(l,n)=REAL(l)
         ENDDO !ncol
 c
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histday_seri.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histday_seri.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histday_seri.h	(revision 1299)
@@ -1,4 +1,4 @@
 c
-c $Header$
+c $Id$
 c
 cym Ne fonctionnera pas en mode parallele
@@ -19,5 +19,5 @@
          ENDDO
          DO ll=1,klev
-            znivsig(ll)=float(ll)
+            znivsig(ll)=REAL(ll)
          ENDDO
          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histmthNMC.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histmthNMC.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histmthNMC.h	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       IF (ok_mensuel) THEN
@@ -20,5 +20,5 @@
 cym         ENDDO
          DO ll=1,klev
-            znivsig(ll)=float(ll)
+            znivsig(ll)=REAL(ll)
          ENDDO
 cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/inifis.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/inifis.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/inifis.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE inifis(ngrid,nlayer,
@@ -45,4 +45,5 @@
 cym#include "dimphy.h"
 
+      INCLUDE 'iniprint.h'
       REAL prad,pg,pr,pcpp,punjours
  
@@ -52,4 +53,7 @@
  
       REAL ptimestep
+      CHARACTER (LEN=20) :: modname='inifis'
+      CHARACTER (LEN=80) :: abort_message
+
  
       IF (nlayer.NE.klev) THEN
@@ -58,5 +62,6 @@
          PRINT*,'nlayer     = ',nlayer
          PRINT*,'klev   = ',klev
-         STOP
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       ENDIF
 
@@ -66,8 +71,13 @@
          PRINT*,'ngrid     = ',ngrid
          PRINT*,'klon   = ',klon
-         STOP
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       ENDIF
 
       RETURN
-9999  STOP'Cette version demande les fichier rnatur.dat et surf.def'
+9999  continue
+      abort_message = 'Cette version demande les fichier rnatur.dat
+     & et surf.def'
+      CALL abort_gcm (modname,abort_message,1)
+
       END
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/iniphysiq.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/iniphysiq.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/iniphysiq.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -61,4 +61,6 @@
  
       REAL ptimestep
+      CHARACTER (LEN=20) :: modname='iniphysiq'
+      CHARACTER (LEN=80) :: abort_message
  
       IF (nlayer.NE.klev) THEN
@@ -67,5 +69,6 @@
          PRINT*,'nlayer     = ',nlayer
          PRINT*,'klev   = ',klev
-         STOP
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       ENDIF
 
@@ -75,5 +78,6 @@
          PRINT*,'ngrid     = ',ngrid
          PRINT*,'klon   = ',klon_glo
-         STOP
+         abort_message = ''
+         CALL abort_gcm (modname,abort_message,1)
       ENDIF
 c$OMP PARALLEL PRIVATE(ibegin,iend) 
@@ -96,4 +100,8 @@
 
       RETURN
-9999  STOP'Cette version demande les fichier rnatur.dat et surf.def'
+9999  CONTINUE
+      abort_message ='Cette version demande les fichier rnatur.dat
+     & et surf.def'
+      CALL abort_gcm (modname,abort_message,1)
+
       END
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initphysto.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initphysto.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initphysto.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 C
@@ -12,4 +12,6 @@
        USE IOIPSL
        USE iophy
+       USE control_mod
+
       implicit none
 
@@ -52,5 +54,4 @@
 #include "serre.h"
 #include "indicesol.h"
-#include "control.h"
 cym#include "dimphy.h"
 
@@ -108,5 +109,5 @@
 C
 	DO l=1,llm
-            nivsigs(l)=float(l)
+            nivsigs(l)=REAL(l)
          ENDDO
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initrrnpb.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initrrnpb.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/initrrnpb.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Id $
+! $Id$
 !
 SUBROUTINE  initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr,vdeptr,scavtr)
@@ -39,9 +39,16 @@
   REAL                                  :: s
 
+  CHARACTER (LEN=20) :: modname='initrrnpb'
+  CHARACTER (LEN=80) :: abort_message
+
+
   WRITE(*,*)'PASSAGE initrrnpb ...'
 !
 ! Radon it = 1
 !----------------
-  IF ( nbtr .LE. 0 ) STOP '**PHYTRAC:initrrnpb:** nbtr < 0; verifier RN dans traceur.def' 
+  IF ( nbtr .LE. 0 ) then
+    abort_message = '**PHYTRAC:initrrnpb:** nbtr < 0; verifier RN dans traceur.def' 
+    CALL abort_gcm (modname,abort_message,1)
+  ENDIF
   it = 1
   s = 1.E4             ! Source: atome par m2
@@ -68,5 +75,8 @@
 ! 210Pb it = 2
 !----------------
-  IF ( nbtr .LE. 1 ) STOP '**PHYTRAC**:initrrnpb:** nbtr <= 1; verifier PB dans traceur.def' 
+  IF ( nbtr .LE. 1 ) THEN
+    abort_message='**PHYTRAC**:initrrnpb:** nbtr <= 1; verifier PB dans traceur.def' 
+    CALL abort_gcm (modname,abort_message,1)
+  ENDIF
   it = 2
   s = 0.                ! Pas de source 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/mod_phys_lmdz_omp_data.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/mod_phys_lmdz_omp_data.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/mod_phys_lmdz_omp_data.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-!$Header$
+!$Id$
 !
 MODULE mod_phys_lmdz_omp_data
@@ -27,4 +27,8 @@
     INTEGER :: i
 
+    CHARACTER (LEN=20) :: modname='Init_phys_lmdz_omp_data'
+    CHARACTER (LEN=80) :: abort_message
+
+
 #ifdef CPP_OMP    
     INTEGER :: OMP_GET_NUM_THREADS
@@ -51,6 +55,6 @@
      is_omp_root=.TRUE.
    ELSE
-     PRINT *,'ANORMAL : OMP_MASTER /= 0'
-     STOP
+     abort_message = 'ANORMAL : OMP_MASTER /= 0'
+     CALL abort_gcm (modname,abort_message,1)
    ENDIF
 !$OMP END MASTER
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/o3cm.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/o3cm.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/o3cm.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE o3cm (amb, bmb, sortie, ntab)
@@ -19,4 +19,6 @@
 c======================================================================
       external mbtozm
+      CHARACTER (LEN=20) :: modname=''
+      CHARACTER (LEN=80) :: abort_message
 c======================================================================
 c la fonction en ligne w(x) donne le profil de l'ozone en fonction
@@ -27,6 +29,9 @@
       w(x) = wp/h * EXP((x-xp)/h)/ (con+EXP((x-xp)/h))**2
 c======================================================================
-      IF (ntab .GT. 499) STOP 'BIG ntab'
-      xincr = (bmb-amb) / FLOAT(ntab)
+      IF (ntab .GT. 499) THEN
+        abort_message = 'BIG ntab'
+        CALL abort_gcm (modname,abort_message,1)
+      ENDIF
+      xincr = (bmb-amb) / REAL(ntab)
       xtab(1) = amb
       DO n = 2, ntab
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE drag_noro (nlon,nlev,dtime,paprs,pplay,
@@ -1497,4 +1497,6 @@
      *       ZDVDT(KLON)
       REAL ZHCRIT(KLON,KLEV)
+      CHARACTER (LEN=20) :: modname='orografi'
+      CHARACTER (LEN=80) :: abort_message
 C-----------------------------------------------------------------------
 C
@@ -1504,5 +1506,8 @@
       LIFTHIGH=.FALSE.
 
-      IF(NLON.NE.KLON.OR.NLEV.NE.KLEV)STOP
+      IF(NLON.NE.KLON.OR.NLEV.NE.KLEV)THEN
+        abort_message = 'pb dimension'
+        CALL abort_gcm (modname,abort_message,1)
+      ENDIF
       ZCONS1=1./RD
 cym      KLEVM1=KLEV-1
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi_strato.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi_strato.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/orografi_strato.F	(revision 1299)
@@ -89,4 +89,6 @@
       REAL pt(klon,klev), pu(klon,klev), pv(klon,klev)
       REAL papmf(klon,klev),papmh(klon,klev+1)
+      CHARACTER (LEN=20) :: modname='orografi_strato'
+      CHARACTER (LEN=80) :: abort_message
 c
 c INITIALIZE OUTPUT VARIABLES 
@@ -1680,4 +1682,7 @@
       logical lifthigh
       real zcons1,ztmst
+      CHARACTER (LEN=20) :: modname='orolift_strato'
+      CHARACTER (LEN=80) :: abort_message
+
 
 C-----------------------------------------------------------------------
@@ -1688,5 +1693,8 @@
       lifthigh=.false.
 
-      if(nlon.ne.klon.or.nlev.ne.klev)stop
+      if(nlon.ne.klon.or.nlev.ne.klev) then
+        abort_message = 'pb dimension'
+        CALL abort_gcm (modname,abort_message,1)
+      ENDIF
       zcons1=1./rd
       ztmst=ptsphy
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/pbl_surface_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/pbl_surface_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/pbl_surface_mod.F90	(revision 1299)
@@ -22,4 +22,6 @@
   USE climb_wind_mod,      ONLY : climb_wind_down, climb_wind_up
   USE coef_diff_turb_mod,  ONLY : coef_diff_turb
+  USE control_mod
+
 
   IMPLICIT NONE
@@ -257,5 +259,4 @@
     INCLUDE "YOETHF.h"
     INCLUDE "temps.h"
-    INCLUDE "control.h"
 ! Input variables
 !****************************************************************************************
@@ -657,5 +658,5 @@
           tabindx(:)=0.
           DO i=1,knon
-             tabindx(i)=FLOAT(i)
+             tabindx(i)=REAL(i)
           END DO
           debugtab(:,:) = 0.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phyredem.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phyredem.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phyredem.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -14,4 +14,6 @@
       USE traclmdz_mod, ONLY : traclmdz_to_restart
       USE infotrac
+      USE control_mod
+
 
       IMPLICIT none
@@ -24,5 +26,4 @@
 #include "dimsoil.h"
 #include "clesphys.h"
-#include "control.h"
 #include "temps.h"
 #include "thermcell.h"
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phys_state_var_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phys_state_var_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phys_state_var_mod.F90	(revision 1299)
@@ -289,4 +289,5 @@
 SUBROUTINE phys_state_var_init(read_climoz)
 use dimphy
+USE control_mod
 use aero_mod
 IMPLICIT NONE
@@ -301,5 +302,4 @@
 
 #include "indicesol.h"
-#include "control.h"
       ALLOCATE(rlat(klon), rlon(klon))
       ALLOCATE(pctsrf(klon,nbsrf))
@@ -411,7 +411,7 @@
 SUBROUTINE phys_state_var_end
 use dimphy
+use control_mod
 IMPLICIT NONE
 #include "indicesol.h"
-#include "control.h"
 
       deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/physiq.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/physiq.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/physiq.F	(revision 1299)
@@ -39,4 +39,6 @@
       use conf_phys_m, only: conf_phys
       use radlwsw_m, only: radlwsw
+      USE control_mod
+
 
       IMPLICIT none
@@ -97,5 +99,4 @@
 #include "dimsoil.h"
 #include "clesphys.h"
-#include "control.h"
 #include "temps.h"
 #include "iniprint.h"
@@ -1348,5 +1349,5 @@
          ENDIF
 c
-         IF (dtime*FLOAT(radpas).GT.21600..AND.cycle_diurne) THEN 
+         IF (dtime*REAL(radpas).GT.21600..AND.cycle_diurne) THEN 
            WRITE(lunout,*)'Nbre d appels au rayonnement insuffisant'
            WRITE(lunout,*)"Au minimum 4 appels par jour si cycle diurne"
@@ -1518,6 +1519,6 @@
          CALL VTb(VTinca)
 !         iii = MOD(NINT(xjour),360)
-!         calday = FLOAT(iii) + jH_cur
-         calday = FLOAT(days_elapsed) + jH_cur
+!         calday = REAL(iii) + jH_cur
+         calday = REAL(days_elapsed) + jH_cur
          WRITE(lunout,*) 'initial time chemini', days_elapsed, calday
 
@@ -1801,5 +1802,5 @@
 !   solarlong0
         if (solarlong0<-999.) then
-           CALL orbite(FLOAT(days_elapsed+1),zlongi,dist)
+           CALL orbite(REAL(days_elapsed+1),zlongi,dist)
         else
            zlongi=solarlong0  ! longitude solaire vraie
@@ -1812,5 +1813,5 @@
 !  Avec ou sans cycle diurne
       IF (cycle_diurne) THEN
-        zdtime=dtime*FLOAT(radpas) ! pas de temps du rayonnement (s)
+        zdtime=dtime*REAL(radpas) ! pas de temps du rayonnement (s)
         CALL zenang(zlongi,jH_cur,zdtime,rlat,rlon,rmu0,fract)
       ELSE
@@ -1961,5 +1962,6 @@
 
       IF (iflag_con.EQ.1) THEN
-          stop'reactiver le call conlmd dans physiq.F'
+        abort_message ='reactiver le call conlmd dans physiq.F'
+        CALL abort_gcm (modname,abort_message,1)
 c     CALL conlmd (dtime, paprs, pplay, t_seri, q_seri, conv_q,
 c    .             d_t_con, d_q_con,
@@ -2205,7 +2207,7 @@
           za = 0.0
           DO i = 1, klon
-            za = za + airephy(i)/FLOAT(klon)
+            za = za + airephy(i)/REAL(klon)
             zx_t = zx_t + (rain_con(i)+
-     .                   snow_con(i))*airephy(i)/FLOAT(klon)
+     .                   snow_con(i))*airephy(i)/REAL(klon)
           ENDDO
           zx_t = zx_t/za*dtime
@@ -2599,7 +2601,7 @@
          za = 0.0
          DO i = 1, klon
-            za = za + airephy(i)/FLOAT(klon)
+            za = za + airephy(i)/REAL(klon)
             zx_t = zx_t + (rain_lsc(i)
-     .                  + snow_lsc(i))*airephy(i)/FLOAT(klon)
+     .                  + snow_lsc(i))*airephy(i)/REAL(klon)
         ENDDO
          zx_t = zx_t/za*dtime
@@ -2823,5 +2825,5 @@
          CALL VTe(VTphysiq)
          CALL VTb(VTinca)
-         calday = FLOAT(days_elapsed + 1) + jH_cur
+         calday = REAL(days_elapsed + 1) + jH_cur
 
          call chemtime(itap+itau_phy-1, date0, dtime)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phystokenc.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phystokenc.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phystokenc.F	(revision 1299)
@@ -13,4 +13,6 @@
       USE infotrac, ONLY : nqtot
       USE iophy
+      USE control_mod
+
       IMPLICIT none
 
@@ -24,5 +26,4 @@
 #include "tracstoke.h"
 #include "indicesol.h"
-#include "control.h"
 c======================================================================
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phytrac.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phytrac.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/phytrac.F90	(revision 1299)
@@ -33,4 +33,6 @@
   USE traclmdz_mod
   USE tracinca_mod
+  USE control_mod
+
 
 
@@ -43,5 +45,4 @@
   INCLUDE "temps.h"
   INCLUDE "paramet.h"
-  INCLUDE "control.h"
   INCLUDE "thermcell.h"
 !==========================================================================
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -18,6 +18,8 @@
 C******************************************************************************
 
-	use netcdf
-       USE dimphy
+      use netcdf
+      USE dimphy
+      USE control_mod
+
        IMPLICIT NONE
 
@@ -33,5 +35,4 @@
 #include "serre.h"
 #include "indicesol.h"
-#include "control.h"
 cccc#include "dimphy.h"
 	
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke0.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke0.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/read_pstoke0.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -19,4 +19,6 @@
 	use netcdf
        USE dimphy
+       USE control_mod
+
        IMPLICIT NONE
 
@@ -32,5 +34,4 @@
 #include "serre.h"
 #include "indicesol.h"
-#include "control.h"
 cccc#include "dimphy.h"
 	  
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol.F90	(revision 1299)
@@ -128,5 +128,5 @@
                  DO i = 1, klon
                     pt_out(i,k,it) = &
-                         pt_out(i,k,it) - FLOAT(iyr_in-iyr1)/FLOAT(iyr2-iyr1) * &
+                         pt_out(i,k,it) - REAL(iyr_in-iyr1)/REAL(iyr2-iyr1) * &
                          (pt_out(i,k,it) - pt_2(i,k,it))
                  END DO
@@ -135,9 +135,9 @@
               DO i = 1, klon
                  psurf(i,it) = &
-                      psurf(i,it) - FLOAT(iyr_in-iyr1)/FLOAT(iyr2-iyr1) * &
+                      psurf(i,it) - REAL(iyr_in-iyr1)/REAL(iyr2-iyr1) * &
                       (psurf(i,it) - psurf2(i,it))
 
                  load(i,it) = &
-                      load(i,it) - FLOAT(iyr_in-iyr1)/FLOAT(iyr2-iyr1) * &
+                      load(i,it) - REAL(iyr_in-iyr1)/REAL(iyr2-iyr1) * &
                       (load(i,it) - load2(i,it))
               END DO
@@ -493,6 +493,6 @@
                 spole = spole + varyear(i,jjm+1,k,imth)
              END DO
-             npole = npole/FLOAT(iim)
-             spole = spole/FLOAT(iim)
+             npole = npole/REAL(iim)
+             spole = spole/REAL(iim)
              varyear(:,1,    k,imth) = npole
              varyear(:,jjm+1,k,imth) = spole
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol_interp.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol_interp.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/readaerosol_interp.F90	(revision 1299)
@@ -126,8 +126,8 @@
   IF(mpi_rank == 0 .AND. debug)then
      ! 0.02 is about 0.5/24, namly less than half an hour
-     OLDNEWDAY = (r_day-FLOAT(iday) < 0.02)
+     OLDNEWDAY = (r_day-REAL(iday) < 0.02)
      ! Once per day, update aerosol fields
      lmt_pas = NINT(86400./pdtphys)
-     PRINT*,'r_day-FLOAT(iday) =',r_day-FLOAT(iday) 
+     PRINT*,'r_day-REAL(iday) =',r_day-REAL(iday) 
      PRINT*,'itap =',itap
      PRINT*,'pdtphys =',pdtphys
@@ -233,10 +233,10 @@
 !
      DO i = 2, 13
-       month_len(i) = float(ioget_mon_len(year_cur, i-1))
+       month_len(i) = REAL(ioget_mon_len(year_cur, i-1))
        CALL ymds2ju(year_cur, i-1, 1, 0.0, month_start(i))
      ENDDO
-     month_len(1) = float(ioget_mon_len(year_cur-1, 12))
+     month_len(1) = REAL(ioget_mon_len(year_cur-1, 12))
      CALL ymds2ju(year_cur-1, 12, 1, 0.0, month_start(1))
-     month_len(14) = float(ioget_mon_len(year_cur+1, 1))
+     month_len(14) = REAL(ioget_mon_len(year_cur+1, 1))
      CALL ymds2ju(year_cur+1, 1, 1, 0.0, month_start(14))
      month_mid(:) = month_start (:) + month_len(:)/2.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/surf_ocean_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/surf_ocean_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/surf_ocean_mod.F90	(revision 1299)
@@ -141,5 +141,5 @@
 !****************************************************************************************
     IF ( MINVAL(rmu0) == MAXVAL(rmu0) .AND. MINVAL(rmu0) == -999.999 ) THEN
-       CALL alboc(FLOAT(jour),rlat,alb_eau)
+       CALL alboc(REAL(jour),rlat,alb_eau)
     ELSE  ! diurnal cycle
        CALL alboc_cd(rmu0,alb_eau)
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/sw_aeroAR4.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/sw_aeroAR4.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/sw_aeroAR4.F90	(revision 1299)
@@ -186,12 +186,15 @@
 !$OMP THREADPRIVATE(AEROSOLFEEDBACK_ACTIVE)  
 
+      CHARACTER (LEN=20) :: modname='sw_aeroAR4'
+      CHARACTER (LEN=80) :: abort_message
+
   IF ((.not. ok_ade) .and. (AEROSOLFEEDBACK_ACTIVE .ge. 2)) THEN
-     print*,'Error: direct effect is not activated but assumed to be active - see sw_aeroAR4.F90'
-     stop
+     abort_message ='Error: direct effect is not activated but assumed to be active - see sw_aeroAR4.F90'
+     CALL abort_gcm (modname,abort_message,1)
   ENDIF
   AEROSOLFEEDBACK_ACTIVE=MIN(MAX(AEROSOLFEEDBACK_ACTIVE,0),3)
   IF  (AEROSOLFEEDBACK_ACTIVE .gt. 3) THEN
-     print*,'Error: AEROSOLFEEDBACK_ACTIVE options go only until 3'
-     stop
+     abort_message ='Error: AEROSOLFEEDBACK_ACTIVE options go only until 3'
+     CALL abort_gcm (modname,abort_message,1)
   ENDIF
 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell.F	(revision 1299)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
       SUBROUTINE calcul_sec(ngrid,nlay,ptimestep
      s                  ,pplay,pplev,pphi,zlev
@@ -132,4 +135,8 @@
       character*10 str10
 
+      character (len=20) :: modname='calcul_sec'
+      character (len=80) :: abort_message
+
+
 !      LOGICAL vtest(klon),down
 
@@ -530,5 +537,5 @@
 c      write(8,*)zmax(ig),lmax(ig),lentr(ig),lmin(ig)
       enddo
-con stoppe après les calculs de zmax et wmax
+con stope après les calculs de zmax et wmax
       RETURN
 
@@ -776,5 +783,7 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1) then
-               stop'fracd trop petit'
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1)
+
             else
 c    vitesse descendante "diagnostique"
@@ -860,6 +869,6 @@
 cRC
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
       else
          fm0=fm
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcellV0_main.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcellV0_main.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcellV0_main.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE thermcellV0_main(itap,ngrid,nlay,ptimestep  &
@@ -165,4 +165,7 @@
       character*2 str2
       character*10 str10
+
+      character (len=20) :: modname='thermcellV0_main'
+      character (len=80) :: abort_message
 
       EXTERNAL SCOPY
@@ -484,5 +487,6 @@
 ! Test valable seulement en 1D mais pas genant
       if (.not. (f0(1).ge.0.) ) then
-           stop 'Dans thermcell_main'
+        abort_message = 'Dans thermcell_main f0(1).lt.0 '
+        CALL abort_gcm (modname,abort_message,1)
       endif
 
@@ -827,5 +831,4 @@
                   write(6,'(i3,7f10.3)') k,pplay(i,k),ztv(i,k),1000*po(i,k),ztva(i,k),1000*zqla(i,k),f_star(i,k),zw2(i,k)
                enddo
-!              stop
            endif
          enddo
@@ -863,4 +866,7 @@
 
       REAL f(ngrid)
+
+      character (len=20) :: modname='thermcellV0_main'
+      character (len=80) :: abort_message
 
       do ig=1,ngrid
@@ -885,5 +891,6 @@
                 print*,'zmax_sec',zmax_sec(ig)
                 print*,'wmax_sec',wmax_sec(ig)
-                stop
+                abort_message = 'zdenom<1.e-14'
+                CALL abort_gcm (modname,abort_message,1)
              endif
              if ((zmax_sec(ig).gt.1.e-10).and.(iflag_thermals_ed.eq.0)) then 
@@ -1338,5 +1345,5 @@
 !        if(detr_star(ig,l).GT.1.) THEN
 !         print*,'th_plumeAFT ig l detr_star f0 1/f0',ig,l,detr_star(ig,l),f0(ig), &
-!   &     float(1)/f0(ig)
+!   &     REAL(1)/f0(ig)
 !        endif
 !IM 060508 end
@@ -1656,5 +1663,4 @@
 
             if (zw2(ig,l+1)>0. .and. zw2(ig,l+1).lt.1.e-10) then
-!               stop'On tombe sur le cas particulier de thermcell_dry'
                 print*,'On tombe sur le cas particulier de thermcell_plume'
                 zw2(ig,l+1)=0.
@@ -1832,5 +1838,4 @@
 
             if (zw2(ig,l+1)>0. .and. zw2(ig,l+1).lt.1.e-10) then
-!               stop'On tombe sur le cas particulier de thermcell_dry'
 !               print*,'On tombe sur le cas particulier de thermcell_dry'
                 zw2(ig,l+1)=0.
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dq.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dq.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dq.F90	(revision 1299)
@@ -31,4 +31,6 @@
       real ztimestep
       integer niter,iter
+      CHARACTER (LEN=20) :: modname='thermcell_dq'
+      CHARACTER (LEN=80) :: abort_message
 
 
@@ -42,5 +44,6 @@
             if (entr(ig,k).gt.zzm) then
                print*,'entr dt > m ',entr(ig,k)*ptimestep,masse(ig,k)
-               stop
+               abort_message = ''
+               CALL abort_gcm (modname,abort_message,1)
             endif
          enddo
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dry.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dry.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_dry.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
        SUBROUTINE thermcell_dry(ngrid,nlay,zlev,pphi,ztv,alim_star,  &
@@ -39,4 +39,6 @@
        REAL linter(ngrid),zlevinter(ngrid)
        INTEGER lmix(ngrid),lmax(ngrid),lmin(ngrid)
+      CHARACTER (LEN=20) :: modname='thermcell_dry'
+      CHARACTER (LEN=80) :: abort_message
 
 !initialisations
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 
@@ -51,4 +51,7 @@
 !$OMP THREADPRIVATE(fomass_max,alphamax)
 
+      character (len=20) :: modname='thermcell_flux'
+      character (len=80) :: abort_message
+
       fomass_max=0.5
       alphamax=0.7
@@ -92,5 +95,4 @@
                     print*,'alim_star(ig,l)',alim_star(ig,l)
                     print*,'detr_star(ig,l)',detr_star(ig,l)
-!                   stop
                endif
             else
@@ -100,5 +102,6 @@
                     print*,'alim_star(ig,l)',alim_star(ig,l)
                     print*,'detr_star(ig,l)',detr_star(ig,l)
-                    stop
+                    abort_message = ''
+                    CALL abort_gcm (modname,abort_message,1)
                endif
             endif
@@ -264,5 +267,6 @@
             if (entr(ig,l)<0.) then
                print*,'N1 ig,l,entr',ig,l,entr(ig,l)
-               stop 'entr negatif'
+               abort_message = 'entr negatif'
+               CALL abort_gcm (modname,abort_message,1)
             endif
             if (detr(ig,l).gt.fm(ig,l)) then
@@ -292,5 +296,6 @@
                print*,'entr(ig,l)',entr(ig,l)
                print*,'fm(ig,l)',fm(ig,l)
-               stop 'probleme dans thermcell flux'
+               abort_message = 'probleme dans thermcell flux'
+               CALL abort_gcm (modname,abort_message,1)
             endif
          enddo
@@ -319,5 +324,6 @@
                print*,'detr(ig,l)',detr(ig,l)
                print*,'fm(ig,l)',fm(ig,l)
-               stop 'probleme dans thermcell flux'
+               abort_message = 'probleme dans thermcell flux'
+               CALL abort_gcm (modname,abort_message,1)
             endif
         enddo
@@ -420,5 +426,6 @@
                          print*,'fm(ig,l+1)',fm(ig,l+1)
                          print*,'fm(ig,l)',fm(ig,l)
-                         stop 'probleme dans thermcell_flux'
+                         abort_message = 'probleme dans thermcell_flux'
+                         CALL abort_gcm (modname,abort_message,1)
                       endif
                       entr(ig,l+1)=entr(ig,l+1)-ddd
@@ -478,4 +485,7 @@
       character*3 descr
 
+      character (len=20) :: modname='thermcell_flux'
+      character (len=80) :: abort_message
+
       lm=lmax(igout)+5
       if(lm.gt.klev) lm=klev
@@ -500,5 +510,6 @@
           print*,'detr(igout,l)',detr(igout,l)
           print*,'fm(igout,l)',fm(igout,l)
-          stop
+          abort_message = ''
+          CALL abort_gcm (modname,abort_message,1)
           endif
       enddo
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux2.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux2.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_flux2.F90	(revision 1299)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
       SUBROUTINE thermcell_flux2(ngrid,klev,ptimestep,masse, &
      &       lalim,lmax,alim_star,  &
@@ -47,4 +50,7 @@
       save fomass_max,alphamax
 
+      character (len=20) :: modname='thermcell_flux2'
+      character (len=80) :: abort_message
+
       fomass_max=0.5
       alphamax=0.7
@@ -88,5 +94,4 @@
                     print*,'alim_star(ig,l)',alim_star(ig,l)
                     print*,'detr_star(ig,l)',detr_star(ig,l)
-!                   stop
                endif
             else
@@ -96,5 +101,6 @@
                     print*,'alim_star(ig,l)',alim_star(ig,l)
                     print*,'detr_star(ig,l)',detr_star(ig,l)
-                    stop
+                    abort_message = ''
+                    CALL abort_gcm (modname,abort_message,1)
                endif
             endif
@@ -256,5 +262,6 @@
             if (entr(ig,l)<0.) then
                print*,'N1 ig,l,entr',ig,l,entr(ig,l)
-               stop 'entr negatif'
+               abort_message = 'entr negatif'
+               CALL abort_gcm (modname,abort_message,1)
             endif
             if (detr(ig,l).gt.fm(ig,l)) then
@@ -285,5 +292,6 @@
                print*,'entr(ig,l)',entr(ig,l)
                print*,'fm(ig,l)',fm(ig,l)
-               stop 'probleme dans thermcell flux'
+               abort_message = 'probleme dans thermcell flux'
+               CALL abort_gcm (modname,abort_message,1)
             endif
          enddo
@@ -312,5 +320,6 @@
                print*,'detr(ig,l)',detr(ig,l)
                print*,'fm(ig,l)',fm(ig,l)
-               stop 'probleme dans thermcell flux'
+               abort_message = 'probleme dans thermcell flux'
+               CALL abort_gcm (modname,abort_message,1)
             endif
         enddo
@@ -413,5 +422,6 @@
                          print*,'fm(ig,l+1)',fm(ig,l+1)
                          print*,'fm(ig,l)',fm(ig,l)
-                         stop 'probleme dans thermcell_flux'
+                         abort_message = 'probleme dans thermcell_flux'
+                         CALL abort_gcm (modname,abort_message,1)
                       endif
                       entr(ig,l+1)=entr(ig,l+1)-ddd
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_main.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_main.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_main.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE thermcell_main(itap,ngrid,nlay,ptimestep  &
@@ -170,4 +170,7 @@
       character*2 str2
       character*10 str10
+
+      character (len=20) :: modname='thermcell_main'
+      character (len=80) :: abort_message
 
       EXTERNAL SCOPY
@@ -466,5 +469,6 @@
 ! Test valable seulement en 1D mais pas genant
       if (.not. (f0(1).ge.0.) ) then
-           stop'Dans thermcell_main'
+              abort_message = '.not. (f0(1).ge.0.)'
+              CALL abort_gcm (modname,abort_message,1)
       endif
 
@@ -781,5 +785,4 @@
       if (prt_level.ge.1) print*,'thermcell_main FIN  OK'
 
-!     if(icount.eq.501) stop'au pas 301 dans thermcell_main'
       return
       end
@@ -817,5 +820,4 @@
                   write(6,'(i3,7f10.3)') k,pplay(i,k),ztv(i,k),1000*po(i,k),ztva(i,k),1000*zqla(i,k),f_star(i,k),zw2(i,k)
                enddo
-!              stop
            endif
          enddo
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_old.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_old.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_old.F	(revision 1299)
@@ -112,4 +112,7 @@
       character (len=10) :: str10
 
+      character (len=20) :: modname='thermcell2002'
+      character (len=80) :: abort_message
+
       LOGICAL vtest(klon),down
 
@@ -336,5 +339,5 @@
             if(w2di.eq.2) then
                entr(ig,k)=entr(ig,k)+
-     s         ptimestep*(zzz-entr(ig,k))/float(tho)
+     s         ptimestep*(zzz-entr(ig,k))/REAL(tho)
             else
                entr(ig,k)=zzz
@@ -379,5 +382,4 @@
 c     print*,'ig,l+1,ztv(ig,l+1)'
 c     print*, ig,l+1,ztv(ig,l+1)
-c        stop'dans thermiques'
 c     endif
                zw2(ig,l+1)=2.*RG*(ztv(ig,l)-ztv(ig,l+1))/ztv(ig,l+1)
@@ -395,5 +397,4 @@
 c     print*,'Tv ',(ztv(ig,ll),ll=1,klev)
 c     print*,'Entr ',(entr(ig,ll),ll=1,klev)
-c        stop'dans thermiques'
 c     endif
                ztva(ig,l)=(fmc(ig,l)*ztva(ig,l-1)+entr(ig,l)*ztv(ig,l))
@@ -517,6 +518,7 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1) then
-               stop'fracd trop petit'
-            else
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1) 
+           else
 c    vitesse descendante "diagnostique"
                wd(ig,l)=fm(ig,l)/(fracd(ig,l)*rhobarz(ig,l))
@@ -588,6 +590,6 @@
 
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
       else
          fm0=fm
@@ -1000,4 +1002,7 @@
       character*2 str2
       character*10 str10
+
+      character (len=20) :: modname='thermcell_cld'
+      character (len=80) :: abort_message
 
       LOGICAL vtest(klon),down
@@ -1855,5 +1860,6 @@
        if (l.eq.klev) then
           print*,'THERMCELL PB ig=',ig,'   l=',l
-          stop
+          abort_message = 'THERMCELL PB'
+          CALL abort_gcm (modname,abort_message,1)
        endif
 !       if ((zw2(ig,l+1).gt.1.e-10).and.(zw2(ig,l).gt.1.e-10).and.
@@ -2164,5 +2170,6 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1.and.(test(ig).eq.1)) then
-               stop'fracd trop petit'
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1)
             else
 c    vitesse descendante "diagnostique"
@@ -2262,6 +2269,6 @@
 
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(alim+entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(alim+entr-entr0)/REAL(tho)
       else
          fm0=fm
@@ -2747,4 +2754,7 @@
       character*10 str10
 
+      character (len=20) :: modname='thermcell_eau'
+      character (len=80) :: abort_message
+
       LOGICAL vtest(klon),down
       LOGICAL Zsat(klon)
@@ -3410,5 +3420,6 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1) then
-               stop'fracd trop petit'
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1)
             else
 c    vitesse descendante "diagnostique"
@@ -3481,6 +3492,6 @@
 
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
       else
          fm0=fm
@@ -3848,4 +3859,7 @@
       character*10 str10
 
+      character (len=20) :: modname='thermcell'
+      character (len=80) :: abort_message
+
       LOGICAL vtest(klon),down
 
@@ -4394,5 +4408,6 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1) then
-               stop'fracd trop petit'
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1)
             else
 c    vitesse descendante "diagnostique"
@@ -4477,6 +4492,6 @@
 cRC
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
       else
          fm0=fm
@@ -5257,4 +5272,7 @@
       character*10 str10
 
+      character (len=20) :: modname='thermcell_sec'
+      character (len=80) :: abort_message
+
       LOGICAL vtest(klon),down
 
@@ -5822,5 +5840,6 @@
          do ig=1,ngrid
             if(fracd(ig,l).lt.0.1) then
-               stop'fracd trop petit'
+              abort_message = 'fracd trop petit'
+              CALL abort_gcm (modname,abort_message,1)
             else
 c    vitesse descendante "diagnostique"
@@ -5905,6 +5924,6 @@
 cRC
       if (w2di.eq.1) then
-         fm0=fm0+ptimestep*(fm-fm0)/float(tho)
-         entr0=entr0+ptimestep*(entr-entr0)/float(tho)
+         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
+         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
       else
          fm0=fm
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_plume.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_plume.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/thermcell_plume.F90	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE thermcell_plume(itap,ngrid,klev,ptimestep,ztv,zthl,po,zl,rhobarz,  &
@@ -436,5 +436,6 @@
             if (zw2(ig,l+1)>0. .and. zw2(ig,l+1).lt.1.e-10) then
 !               stop'On tombe sur le cas particulier de thermcell_dry'
-                print*,'On tombe sur le cas particulier de thermcell_plume'
+                write(lunout,*)                                         &
+     &          'On tombe sur le cas particulier de thermcell_plume'
                 zw2(ig,l+1)=0.
                 linter(ig)=l+1
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/tracinca_mod.F90
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/tracinca_mod.F90	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/tracinca_mod.F90	(revision 1299)
@@ -45,9 +45,10 @@
     USE vampir
     USE comgeomphy
+    USE control_mod
+
     
     IMPLICIT NONE
     
     INCLUDE "indicesol.h"
-    INCLUDE "control.h"
     INCLUDE "dimensions.h"
     INCLUDE "paramet.h"
@@ -125,5 +126,5 @@
     CALL VTb(VTinca)
     
-    calday = FLOAT(julien) + gmtime
+    calday = REAL(julien) + gmtime
     ncsec  = NINT (86400.*gmtime)
      
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/undefSTD.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/undefSTD.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/undefSTD.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE undefSTD(nlevSTD,itap,tlevSTD,
@@ -13,5 +13,5 @@
 c I. Musat : 09.2004
 c
-c Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef)) 
+c Calcul * du nombre de pas de temps (REAL(ecrit_XXX)-tnondef)) 
 c          ou la variable tlevSTD est bien definie (.NE.1.E+20), 
 c et 
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/write_histISCCP.h
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/write_histISCCP.h	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/write_histISCCP.h	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       IF (ok_isccp) THEN
@@ -77,5 +77,5 @@
      .                 meantaucld(:,n))
 c
-        zx_tmp_fi2d(1:klon)=float(seed(1:klon,n))
+        zx_tmp_fi2d(1:klon)=REAL(seed(1:klon,n))
 c
 c       print*,'n=',n,' write_ISCCP avant seed'
Index: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/yamada4.F
===================================================================
--- LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/yamada4.F	(revision 1298)
+++ LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/yamada4.F	(revision 1299)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE yamada4(ngrid,dt,g,rconst,plev,temp
@@ -106,4 +106,8 @@
 c$OMP THREADPRIVATE(rino,smyam,styam,lyam,knyam,w2yam,t2yam)
       logical,save :: firstcall=.true.
+
+      character (len=20) :: modname='yamada4'
+      character (len=80) :: abort_message
+
 c$OMP THREADPRIVATE(firstcall)       
       frif(ri)=0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156))
@@ -128,5 +132,6 @@
 
       if (.not.(iflag_pbl.ge.6.and.iflag_pbl.le.9)) then
-           stop'probleme de coherence dans appel a MY'
+              abort_message = 'probleme de coherence dans appel a MY'
+              CALL abort_gcm (modname,abort_message,1)
       endif
 
