Index: /LMDZ5/trunk/libf/dyn3d/defrun.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/defrun.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/defrun.F	(revision 1930)
@@ -364,5 +364,5 @@
         WRITE(tapeout,*)' La valeur de dzoomx passee par run.def est dif
      *ferente de celle lue sur le fichier  start '
-        CALL ABORT
+        CALL ABORT_gcm("defrun", "", 1)
        ENDIF
 
@@ -370,5 +370,5 @@
         WRITE(tapeout,*)' La valeur de dzoomy passee par run.def est dif
      *ferente de celle lue sur le fichier  start '
-        CALL ABORT
+        CALL ABORT_gcm("defrun", "", 1)
        ENDIF
 
@@ -376,5 +376,5 @@
         WRITE(6,*)' La valeur de taux passee par run.def est differente
      *  de celle lue sur le fichier  start '
-        CALL ABORT
+        CALL ABORT_gcm("defrun", "", 1)
        ENDIF
 
@@ -382,5 +382,5 @@
         WRITE(6,*)' La valeur de tauy passee par run.def est differente
      *  de celle lue sur le fichier  start '
-        CALL ABORT
+        CALL ABORT_gcm("defrun", "", 1)
        ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3d/dynetat0.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/dynetat0.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/dynetat0.F	(revision 1930)
@@ -67,5 +67,5 @@
         write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc'
         write(lunout,*)' ierr = ', ierr
-        CALL ABORT
+        CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -74,10 +74,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <controle> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, tab_cntrl)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echoue pour <controle>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -154,10 +154,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlonu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlonu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -165,10 +165,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlatu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlatu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -176,10 +176,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlonv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlonv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -187,10 +187,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlatv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlatv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour rlatv"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -198,10 +198,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <cu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, cu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <cu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -209,10 +209,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <cv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, cv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <cv>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -220,10 +220,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <aire> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, aire)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <aire>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -231,10 +231,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <phisinit> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, phis)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -246,5 +246,5 @@
          IF (ierr .NE. NF_NOERR) THEN
             write(lunout,*)"dynetat0: Le champ <Time> est absent"
-            CALL abort
+            CALL ABORT_gcm("dynetat0", "", 1)
          ENDIF
       ENDIF
@@ -252,5 +252,5 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee <temps>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -258,10 +258,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <ucov> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, ucov)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
  
@@ -269,10 +269,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <vcov> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, vcov)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <vcov>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -280,10 +280,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <teta> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, teta)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <teta>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -301,5 +301,5 @@
           IF (ierr .NE. NF_NOERR) THEN
             write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq)
-            CALL abort
+            CALL ABORT_gcm("dynetat0", "", 1)
           ENDIF
         ENDIF
@@ -310,10 +310,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <masse> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, masse)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <masse>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -321,10 +321,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <ps> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, ps)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3d/dynredem.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/dynredem.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/dynredem.F	(revision 1930)
@@ -133,5 +133,5 @@
      &                  //trim(fichnom)
          write(lunout,*)' ierr = ', ierr
-         CALL ABORT
+         CALL ABORT_GCM("DYNREDEM0", "", 1)
       ENDIF
 c
@@ -512,5 +512,5 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom)
-         CALL abort
+         call abort_gcm("dynredem1", "", 1)
       ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3d/fxhyp.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/fxhyp.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/fxhyp.F	(revision 1930)
@@ -178,5 +178,5 @@
         WRITE(6,*)'Modifier les valeurs de  grossismx ,tau ou dzoomx ',
      , ' et relancer ! ***  '
-        CALL ABORT
+        CALL ABORT_GCM("FXHYP", "", 1)
        ENDIF
 c
Index: /LMDZ5/trunk/libf/dyn3d/fyhyp.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/fyhyp.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/fyhyp.F	(revision 1930)
@@ -162,5 +162,5 @@
         WRITE(6,*)'Modifier les valeurs de  grossismy ,tauy ou dzoomy',
      , ' et relancer ! ***  '
-        CALL ABORT
+        CALL ABORT_GCM("FYHYP", "", 1)
 
        ENDIF
Index: /LMDZ5/trunk/libf/dyn3d/gcm.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/gcm.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/gcm.F	(revision 1930)
@@ -327,6 +327,5 @@
           start_time = starttime
         ELSE
-          WRITE(lunout,*)'Je m''arrete'
-          CALL abort
+          call abort_gcm("gcm", "'Je m''arrete'", 1)
         ENDIF
       ENDIF
Index: /LMDZ5/trunk/libf/dyn3d/grid_atob.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/grid_atob.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/grid_atob.F	(revision 1930)
@@ -55,5 +55,5 @@
       IF (imar.GT.2200 .OR. jmar.GT.1100) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -119,5 +119,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-ccc         CALL ABORT
+ccc         CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -193,10 +193,10 @@
       IF (imar.GT.400 .OR. jmar.GT.200) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
       IF (imdep.GT.400 .OR. jmdep.GT.200) THEN
          PRINT*, 'imdep ou jmdep trop grand', imdep, jmdep
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -258,5 +258,5 @@
             PRINT*, 'Probleme grave,i,j,indx,indy=',
      .              i,j,indx(i,j),indy(i,j)
-            CALL abort
+            call abort_gcm("", "", 1)
          ENDIF
       ENDDO
@@ -309,5 +309,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -345,5 +345,5 @@
       IF (imar.GT.2200 .OR. jmar.GT.1100) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -409,5 +409,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -452,5 +452,5 @@
       IF (imar.GT.400 .OR. jmar.GT.400) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -513,5 +513,5 @@
          ELSE
             PRINT*, 'probleme,i,j=', i,j
-ccc            CALL ABORT
+ccc            CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -577,5 +577,5 @@
       IF (imar.GT.400 .OR. jmar.GT.400) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -642,5 +642,5 @@
          ELSE
            PRINT*, 'probleme,i,j=', i,j
-ccc           CALL ABORT
+ccc           CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -712,5 +712,5 @@
       IF (immod.GT.2200 .OR. jmmod.GT.1100) THEN
          PRINT*, 'immod ou jmmod trop grand', immod, jmmod
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -801,5 +801,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -875,5 +875,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-ccc         CALL ABORT
+ccc         CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(xmod(i),ymod(j),xtmp,ytmp,imtmp,jmtmp,distans)
 #ifdef CRAY
Index: /LMDZ5/trunk/libf/dyn3d/grid_noro.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/grid_noro.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/grid_noro.F	(revision 1930)
@@ -111,15 +111,15 @@
       IF (imar.GT.2200 .OR. jmar.GT.1100) THEN
          PRINT*, 'imar or jmar too big', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("GRID_NORO", "", 1)
       ENDIF
 
       IF(imdep.ne.iusn.or.jmdep.ne.jusn)then
          print *,' imdep or jmdep bad dimensions:',imdep,jmdep
-         call abort
+         call abort_gcm("grid_noro", "", 1)
       ENDIF
 
       IF(imar+1.ne.iim+1.or.jmar.ne.jjm+1)THEN
         print *,' imar or jmar bad dimensions:',imar,jmar
-        call abort
+        call abort_gcm("grid_noro", "", 1)
       ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3d/juldate.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/juldate.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/juldate.F	(revision 1930)
@@ -9,7 +9,7 @@
 	implicit real (a-h,o-z)
 	frac=((os/60.+om)/60.+oh)/24.
-	ojou=dfloat(ijou)+frac
-	    year=dfloat(ian)
-	    rmon=dfloat(imoi)
+	ojou=dble(ijou)+frac
+	    year=dble(ian)
+	    rmon=dble(imoi)
 	if (imoi .le. 2) then
 	    year=year-1.
Index: /LMDZ5/trunk/libf/dyn3d/ran1.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3d/ran1.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3d/ran1.F	(revision 1930)
@@ -28,5 +28,5 @@
       IX3=MOD(IA3*IX3+IC3,M3)
       J=1+(97*IX3)/M3
-      IF(J.GT.97.OR.J.LT.1)PAUSE
+      IF(J.GT.97.OR.J.LT.1) stop 1
       RAN1=R(J)
       R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
Index: /LMDZ5/trunk/libf/dyn3dpar/dynetat0.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dpar/dynetat0.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3dpar/dynetat0.F	(revision 1930)
@@ -67,5 +67,5 @@
         write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc'
         write(lunout,*)' ierr = ', ierr
-        CALL ABORT
+        CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -74,10 +74,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <controle> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, tab_cntrl)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echoue pour <controle>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -154,10 +154,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlonu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlonu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -165,10 +165,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlatu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlatu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -176,10 +176,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlonv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlonv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -187,10 +187,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <rlatv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, rlatv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour rlatv"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -198,10 +198,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <cu> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, cu)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <cu>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -209,10 +209,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <cv> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, cv)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <cv>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -220,10 +220,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <aire> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, aire)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <aire>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -231,10 +231,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <phisinit> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, phis)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -246,5 +246,5 @@
          IF (ierr .NE. NF_NOERR) THEN
             write(lunout,*)"dynetat0: Le champ <Time> est absent"
-            CALL abort
+            CALL ABORT_gcm("dynetat0", "", 1)
          ENDIF
       ENDIF
@@ -252,5 +252,5 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee <temps>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -258,10 +258,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <ucov> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, ucov)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
  
@@ -269,10 +269,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <vcov> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, vcov)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <vcov>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -280,10 +280,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <teta> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, teta)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <teta>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -301,5 +301,5 @@
           IF (ierr .NE. NF_NOERR) THEN
             write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq)
-            CALL abort
+            CALL ABORT_gcm("dynetat0", "", 1)
           ENDIF
         ENDIF
@@ -310,10 +310,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <masse> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, masse)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <masse>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
@@ -321,10 +321,10 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Le champ <ps> est absent"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
       ierr = nf90_get_var(nid, nvarid, ps)
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
-         CALL abort
+         CALL ABORT_gcm("dynetat0", "", 1)
       ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3dpar/dynredem.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dpar/dynredem.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3dpar/dynredem.F	(revision 1930)
@@ -133,5 +133,5 @@
      &                  //trim(fichnom)
          write(lunout,*)' ierr = ', ierr
-         CALL ABORT
+         CALL ABORT_GCM("DYNREDEM0", "", 1)
       ENDIF
 c
@@ -512,5 +512,5 @@
       IF (ierr .NE. NF_NOERR) THEN
          write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom)
-         CALL abort
+         call abort_gcm("dynredem1", "", 1)
       ENDIF
 
Index: /LMDZ5/trunk/libf/dyn3dpar/fyhyp.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dpar/fyhyp.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3dpar/fyhyp.F	(revision 1930)
@@ -162,5 +162,5 @@
         WRITE(6,*)'Modifier les valeurs de  grossismy ,tauy ou dzoomy',
      , ' et relancer ! ***  '
-        CALL ABORT
+        CALL ABORT_GCM("FYHYP", "", 1)
 
        ENDIF
Index: /LMDZ5/trunk/libf/dyn3dpar/grid_atob.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dpar/grid_atob.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3dpar/grid_atob.F	(revision 1930)
@@ -55,5 +55,5 @@
       IF (imar.GT.2200 .OR. jmar.GT.1100) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -119,5 +119,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-ccc         CALL ABORT
+ccc         CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -193,10 +193,10 @@
       IF (imar.GT.400 .OR. jmar.GT.200) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
       IF (imdep.GT.400 .OR. jmdep.GT.200) THEN
          PRINT*, 'imdep ou jmdep trop grand', imdep, jmdep
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -258,5 +258,5 @@
             PRINT*, 'Probleme grave,i,j,indx,indy=',
      .              i,j,indx(i,j),indy(i,j)
-            CALL abort
+            call abort_gcm("", "", 1)
          ENDIF
       ENDDO
@@ -309,5 +309,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -345,5 +345,5 @@
       IF (imar.GT.2200 .OR. jmar.GT.1100) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -409,5 +409,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -452,5 +452,5 @@
       IF (imar.GT.400 .OR. jmar.GT.400) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -513,5 +513,5 @@
          ELSE
             PRINT*, 'probleme,i,j=', i,j
-ccc            CALL ABORT
+ccc            CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -577,5 +577,5 @@
       IF (imar.GT.400 .OR. jmar.GT.400) THEN
          PRINT*, 'imar ou jmar trop grand', imar, jmar
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -642,5 +642,5 @@
          ELSE
            PRINT*, 'probleme,i,j=', i,j
-ccc           CALL ABORT
+ccc           CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(x(i),y(j),xdata,ydata,imdep,jmdep,distans)
 #ifdef CRAY
@@ -712,5 +712,5 @@
       IF (immod.GT.2200 .OR. jmmod.GT.1100) THEN
          PRINT*, 'immod ou jmmod trop grand', immod, jmmod
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
       ENDIF
 c
@@ -801,5 +801,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-         CALL ABORT
+         CALL ABORT_GCM("", "", 1)
          ENDIF
       ENDDO
@@ -875,5 +875,5 @@
          ELSE
          PRINT*, 'probleme,i,j=', i,j
-ccc         CALL ABORT
+ccc         CALL ABORT_GCM("", "", 1)
          CALL dist_sphe(xmod(i),ymod(j),xtmp,ytmp,imtmp,jmtmp,distans)
 #ifdef CRAY
Index: /LMDZ5/trunk/libf/dyn3dpar/ran1.F
===================================================================
--- /LMDZ5/trunk/libf/dyn3dpar/ran1.F	(revision 1929)
+++ /LMDZ5/trunk/libf/dyn3dpar/ran1.F	(revision 1930)
@@ -28,5 +28,5 @@
       IX3=MOD(IA3*IX3+IC3,M3)
       J=1+(97*IX3)/M3
-      IF(J.GT.97.OR.J.LT.1)PAUSE
+      IF(J.GT.97.OR.J.LT.1) stop 1
       RAN1=R(J)
       R(J)=(REAL(IX1)+REAL(IX2)*RM2)*RM1
