Index: LMDZ6/trunk/libf/dyn3dmem/advtrac_loc.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/advtrac_loc.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/advtrac_loc.F90	(revision 4469)
@@ -161,5 +161,5 @@
          !--------------------------------------------------------------------
 !           WRITE(*,*) 'advtrac 248: iq,q(1721,19,:)=',iq,q(1721,19,:)
-            STOP 'advtrac : appel a vlspltqs :schema non parallelise'
+            CALL abort_gcm("advtrac","appel a vlspltqs :schema non parallelise",1)
 !LF         CALL vlspltqs_p(q(1,1,1),2.,massem,wg,pbarug,pbarvg,dtvr,p,pk,teta )
 
@@ -167,5 +167,5 @@
          CASE(12)  !--- Schema de Frederic Hourdin
          !--------------------------------------------------------------------
-            STOP 'advtrac : appel a vlspltqs :schema non parallelise'
+            CALL abort_gcm("advtrac","appel a vlspltqs :schema non parallelise",1)
             CALL adaptdt(iadv,dtbon,n,pbarug,massem)   ! pas de temps adaptatif
             IF(n > 1) WRITE(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=',dtvr,'n=',n
@@ -177,5 +177,5 @@
          CASE(13)  !--- Pas de temps adaptatif
          !--------------------------------------------------------------------
-            STOP 'advtrac : schema non parallelise'
+            CALL abort_gcm("advtrac","schema non parallelise",1)
             CALL adaptdt(iadv,dtbon,n,pbarug,massem)
             IF(n > 1) WRITE(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=',dtvr,'n=',n
@@ -187,5 +187,5 @@
          CASE(20)  !--- Schema de pente SLOPES
          !--------------------------------------------------------------------
-            STOP 'advtrac : schema non parallelise'
+            CALL abort_gcm("advtrac","schema SLOPES non parallelise",1)
             CALL pentes_ini (q(1,1,iq),wg,massem,pbarug,pbarvg,0)
 
@@ -193,5 +193,5 @@
          CASE(30)  !--- Schema de Prather
          !--------------------------------------------------------------------
-            STOP 'advtrac : schema non parallelise'
+            CALL abort_gcm("advtrac","schema prather non parallelise",1)
             ! Pas de temps adaptatif
             CALL adaptdt(iadv,dtbon,n,pbarug,massem)
@@ -202,5 +202,5 @@
          CASE(11,16,17,18)   !--- Schemas PPM Lin et Rood
          !--------------------------------------------------------------------
-     	    STOP 'advtrac : schema non parallelise'
+            CALL abort_gcm("advtrac","schema PPM non parallelise",1)
             ! Test sur le flux horizontal
             CALL adaptdt(iadv,dtbon,n,pbarug,massem)   ! pas de temps adaptatif
Index: LMDZ6/trunk/libf/dyn3dmem/bilan_dyn_loc.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/bilan_dyn_loc.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/bilan_dyn_loc.F	(revision 4469)
@@ -231,5 +231,5 @@
            WRITE(lunout,*)'dt_app=',dt_app
            WRITE(lunout,*)'dt_cum=',dt_cum
-           stop
+           CALL abort_gcm("conf_gcmbilan_dyn_loc","stopped",1)
         endif
 
Index: LMDZ6/trunk/libf/dyn3dmem/conf_gcm.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/conf_gcm.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/conf_gcm.F90	(revision 4469)
@@ -453,5 +453,5 @@
         write(lunout,*)'conf_gcm: La valeur de clat passee par run.def', &
              ' est differente de celle lue sur le fichier  start '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ENDIF
 
@@ -467,6 +467,6 @@
         write(lunout,*)'conf_gcm: La valeur de grossismx passee par ', &
              'run.def est differente de celle lue sur le fichier  start '
-        STOP
-     ENDIF
+        CALL abort_gcm("conf_gcm","stopped",1)
+      ENDIF
 
      !Config  Key  = grossismy
@@ -481,5 +481,5 @@
         write(lunout,*)'conf_gcm: La valeur de grossismy passee par ', &
              'run.def est differente de celle lue sur le fichier  start '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ENDIF
 
@@ -487,5 +487,5 @@
         write(lunout,*) &
              'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ELSE
         alphax = 1. - 1./ grossismx
@@ -495,5 +495,5 @@
         write(lunout,*) &
              'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ELSE
         alphay = 1. - 1./ grossismy
@@ -517,5 +517,5 @@
            write(lunout,*)' *** fxyhypb lu sur le fichier start est ', &
                 'F alors  qu il est  T  sur  run.def  ***'
-           STOP
+           CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ELSE
@@ -524,5 +524,5 @@
            write(lunout,*)' ***  fxyhypb lu sur le fichier start est ', &
                 'T alors  qu il est  F  sur  run.def  ****  '
-           STOP
+           CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ENDIF
@@ -540,5 +540,5 @@
            write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ', &
                 'run.def est differente de celle lue sur le fichier  start '
-           STOP
+           CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ENDIF
@@ -556,5 +556,5 @@
            write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ', &
                 'run.def est differente de celle lue sur le fichier  start '
-           STOP
+           CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ENDIF
@@ -571,5 +571,5 @@
            write(lunout,*)'conf_gcm: La valeur de taux passee par ', &
                 'run.def est differente de celle lue sur le fichier  start '
-           STOP
+           CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ENDIF
@@ -586,5 +586,5 @@
            write(lunout,*)'conf_gcm: La valeur de tauy passee par ', &
                 'run.def est differente de celle lue sur le fichier  start '
-           STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
         ENDIF
      ENDIF
@@ -607,5 +607,5 @@
               write(lunout,*)' *** ysinus lu sur le fichier start est F', &
                    ' alors  qu il est  T  sur  run.def  ***'
-              STOP
+              CALL abort_gcm("conf_gcm","stopped",1)
            ENDIF
         ELSE
@@ -614,5 +614,5 @@
               write(lunout,*)' *** ysinus lu sur le fichier start est T', &
                    ' alors  qu il est  F  sur  run.def  ****  '
-              STOP
+              CALL abort_gcm("conf_gcm","stopped",1)
            ENDIF
         ENDIF
@@ -754,5 +754,5 @@
      IF( grossismx.LT.1. )  THEN
         write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismx < 1 . *** '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ELSE
         alphax = 1. - 1./ grossismx
@@ -761,5 +761,5 @@
      IF( grossismy.LT.1. )  THEN
         write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismy < 1 . *** '
-        STOP
+        CALL abort_gcm("conf_gcm","stopped",1)
      ELSE
         alphay = 1. - 1./ grossismy
Index: LMDZ6/trunk/libf/dyn3dmem/filtreg_p.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/filtreg_p.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/filtreg_p.F	(revision 4469)
@@ -99,11 +99,12 @@
 c-------------------------------------------------------c
 
-      IF(ifiltre.EQ.1.or.ifiltre.EQ.-1) 
-     &     STOP'Pas de transformee simple dans cette version'
+      IF(ifiltre.EQ.1.or.ifiltre.EQ.-1)
+     & CALL abort_gcm("fitreg_p","Pas de transformee simple 
+     &dans cette version",1)
       
       IF( iter.EQ. 2 )  THEN
          PRINT *,' Pas d iteration du filtre dans cette version !'
      &        , ' Utiliser old_filtreg et repasser !'
-         STOP
+         CALL abort_gcm("fitreg_p","stopped",1)
       ENDIF
 
@@ -111,5 +112,5 @@
          PRINT *,' Cette routine ne calcule le filtre inverse que '
      &        , ' sur la grille des scalaires !'
-         STOP
+         CALL abort_gcm("fitreg_p","stopped",1)
       ENDIF
 
@@ -117,6 +118,6 @@
          PRINT *,' Probleme dans filtreg car ifiltre NE 2 et NE -2'
      &        , ' corriger et repasser !'
-         STOP
-      ENDIF
+         CALL abort_gcm("fitreg_p","stopped",1)
+       ENDIF
 c
 
@@ -127,6 +128,5 @@
       IF( griscal )   THEN
          IF( nlat. NE. jjp1 )  THEN
-            PRINT  1111
-            STOP
+            CALL abort_gcm("fitreg_p","nlat. NE. jjp1",1)
          ELSE
 c     
@@ -146,6 +146,5 @@
       ELSE
          IF( nlat.NE.jjm )  THEN
-            PRINT  2222
-            STOP
+            CALL abort_gcm("fitreg_p","nlat. NE. jjm",1)
          ELSE
 c
Index: LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.F90	(revision 4469)
@@ -502,5 +502,5 @@
             write(*,*)trim(modname)//' second pass in advreel at itau=',&
             itau
-            stop
+            CALL abort_gcm("guide_loc_lod","stopped",1)
           ELSE
 !$OMP MASTER
@@ -1529,5 +1529,5 @@
               if (gamma.lt.1.e-5) then
                 write(*,*)trim(modname)//' gamma =',gamma,'<1e-5'
-                stop
+                CALL abort_gcm("guide_loc_mod","stopped",1)
               endif
               gamma=log(0.5)/log(gamma)
Index: LMDZ6/trunk/libf/dyn3dmem/mod_filtreg_p.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/mod_filtreg_p.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/mod_filtreg_p.F	(revision 4469)
@@ -85,4 +85,5 @@
 
       INTEGER :: sdd1_type, sdd2_type
+      CHARACTER (LEN=132) :: abort_message
 
       IF (first) THEN
@@ -103,10 +104,11 @@
 
       IF(ifiltre.EQ.1.or.ifiltre.EQ.-1) 
-     &     STOP'Pas de transformee simple dans cette version'
+     &  CALL abort_gcm("mod_filtreg_p",'Pas de transformee 
+     &simple dans cette version',1)
       
       IF( iter.EQ. 2 )  THEN
          PRINT *,' Pas d iteration du filtre dans cette version !'
      &        , ' Utiliser old_filtreg et repasser !'
-         STOP
+         CALL abort_gcm("mod_filtreg_p","stopped",1)
       ENDIF
 
@@ -114,5 +116,5 @@
          PRINT *,' Cette routine ne calcule le filtre inverse que '
      &        , ' sur la grille des scalaires !'
-         STOP
+         CALL abort_gcm("mod_filtreg_p","stopped",1)
       ENDIF
 
@@ -120,5 +122,5 @@
          PRINT *,' Probleme dans filtreg car ifiltre NE 2 et NE -2'
      &        , ' corriger et repasser !'
-         STOP
+         CALL abort_gcm("mod_filtreg_p","stopped",1)
       ENDIF
 c
@@ -130,6 +132,5 @@
       IF( griscal )   THEN
          IF( nlat. NE. jjp1 )  THEN
-            PRINT  1111
-            STOP
+            CALL abort_gcm("mod_filtreg_p"," nlat. NE. jjp1",1)
          ELSE
 c     
@@ -149,6 +150,5 @@
       ELSE
          IF( nlat.NE.jjm )  THEN
-            PRINT  2222
-            STOP
+            CALL abort_gcm("mod_filtreg_p"," nlat. NE. jjm",1)
          ELSE
 c
Index: LMDZ6/trunk/libf/dyn3dmem/mod_hallo.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/mod_hallo.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/mod_hallo.F90	(revision 4469)
@@ -154,10 +154,10 @@
     if (Buffer_pos(Index_pos)+Size>MaxBufferSize) then
       print *,'STOP :: La taille de MaxBufferSize dans mod_hallo.F90 est trop petite !!!!'
-      stop
+      CALL abort_gcm("mod_hallo","stopped",1)
     endif
     
     if (Index_pos>=ListSize) then
       print *,'STOP :: La taille de ListSize dans mod_hallo.F90 est trop petite !!!!'
-      stop
+      CALL abort_gcm("mod_hallo","stopped",1)
     endif
      
@@ -1416,5 +1416,5 @@
          IF (.NOT.using_mpi) THEN
            PRINT *,'Erreur, echange MPI en mode sequentiel !!!'
-           STOP
+           CALL abort_gcm("mod_hallo","stopped",1)
          ENDIF
 !         PRINT *,"-------------------------------------------------------------------"
@@ -1459,5 +1459,5 @@
              IF (.NOT.using_mpi) THEN
                PRINT *,'Erreur, echange MPI en mode sequentiel !!!'
-               STOP
+               CALL abort_gcm("mod_hallo","stopped",1)
              ENDIF
 
Index: LMDZ6/trunk/libf/dyn3dmem/parallel_lmdz.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/parallel_lmdz.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/parallel_lmdz.F90	(revision 4469)
@@ -676,5 +676,5 @@
         else
            write(lunout,*)ij  
-        stop 'erreur dans Gather_Field'
+        CALL abort_gcm("parallel_lmdz","erreur dans Gather_Field",1)
         endif
         
@@ -690,5 +690,5 @@
               Recv_count(i)=(min(jj_end_para(i),jjm)-jj_begin_para(i)+1)*ll*iip1
             else
-              stop 'erreur dans Gather_Field'
+              CALL abort_gcm("parallel_lmdz","erreur dans Gather_Field",1)
             endif
                    
Index: LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F	(revision 4469)
@@ -212,5 +212,5 @@
                    write(*,*) 'q(i,k-1,iqIsoPha(ixt,iq_vap))=',
      :                   q(i,k-1,iqIsoPha(ixt,iq_vap))
-                   stop
+                CALL abort_gcm("qminimum_loc","stopped",1)
                 endif
               endif
@@ -237,5 +237,5 @@
                    write(*,*) 'q(i,k-1,iqIsoPha(ixt,iq_vap))=',
      :                   q(i,k-1,iqIsoPha(ixt,iq_vap))
-                   stop
+                   CALL abort_gcm("qminimum_loc","stopped",1)
                 endif
               endif 
Index: LMDZ6/trunk/libf/dyn3dmem/times.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/times.F90	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/times.F90	(revision 4469)
@@ -55,5 +55,5 @@
     
       if (timer_state(no_timer)/=stopped) then
-        stop 'start_timer :: timer is already running or suspended'
+        CALL abort_gcm("times","start_timer :: timer is already running or suspended",1)
       else
         timer_state(no_timer)=running
@@ -73,5 +73,5 @@
     if (AllTimer_IsActive) then   
       if (timer_state(no_timer)/=running) then
-        stop 'suspend_timer :: timer is not running'
+         CALL abort_gcm("times","suspend_timer :: timer is not running",1)
       else
         timer_state(no_timer)=suspended
@@ -90,5 +90,5 @@
     if (AllTimer_IsActive) then   
       if (timer_state(no_timer)/=suspended) then
-        stop 'resume_timer :: timer is not suspended'
+        CALL abort_gcm("times","resume_timer :: timer is not suspended",1)
       else
         timer_state(no_timer)=running
@@ -110,5 +110,5 @@
        
       if (timer_state(no_timer)/=running) then
-        stop 'stop_timer :: timer is not running'
+        CALL abort_gcm("times","stop_timer :: timer is not running",1)
       else
         timer_state(no_timer)=stopped
Index: LMDZ6/trunk/libf/dyn3dmem/vlsplt_loc.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/vlsplt_loc.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/vlsplt_loc.F	(revision 4469)
@@ -210,5 +210,4 @@
 c$OMP END DO NOWAIT
 #endif
-c	stop
 
 c	go to 9999
Index: LMDZ6/trunk/libf/dyn3dmem/vlspltgen_loc.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/vlspltgen_loc.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/vlspltgen_loc.F	(revision 4469)
@@ -1,3 +1,4 @@
-!
+
+!     
 ! $Header$
 !
@@ -259,6 +260,5 @@
 c$OMP END MASTER 
           CASE DEFAULT
-          stop 'vlspltgen_p : schema non parallelise'
-      
+             CALL abort_gcm("vlspltgen_loc","schema non parallelise",1)
         END SELECT
       
@@ -302,6 +302,5 @@
 #endif    
           CASE DEFAULT
-          stop 'vlspltgen_p : schema non parallelise'
-      
+          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
         END SELECT
       
@@ -346,5 +345,5 @@
           CASE(14); call vlyqs_loc(zq,pente_max,zm,mv,qsat,iq)
           CASE DEFAULT
-          stop 'vlspltgen_p : schema non parallelise'
+          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
         END SELECT
        
@@ -392,7 +391,7 @@
 c$OMP BARRIER
           CASE DEFAULT
-          stop 'vlspltgen_p : schema non parallelise'
-      
-        END SELECT
+            
+            CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
+         END SELECT
       
       enddo
@@ -429,5 +428,5 @@
 c$OMP BARRIER        
           CASE DEFAULT
-          stop 'vlspltgen_p : schema non parallelise'
+          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
         END SELECT
       
@@ -466,5 +465,6 @@
           CASE(10); call   vly_loc(zq,pente_max,zm,mv,     iq)
           CASE(14); call vlyqs_loc(zq,pente_max,zm,mv,qsat,iq)
-          CASE DEFAULT; stop 'vlspltgen_p : schema non parallelise'
+          CASE DEFAULT
+             CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
         END SELECT
        
@@ -486,5 +486,6 @@
           CASE(14); call vlxqs_loc(zq,pente_max,zm,mu,
      &                 qsat, ij_begin,ij_end,iq)
-          CASE DEFAULT; stop 'vlspltgen_p : schema non parallelise'
+          CASE DEFAULT
+          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
         END SELECT
        
Index: LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F	(revision 4469)
@@ -74,6 +74,4 @@
             DO ij=ijb,ije-1
                dxqu(ij)=q(ij+1,l,iq)-q(ij,l,iq)
-c              IF(u_m(ij,l).lt.0.) stop'limx n admet pas les U<0'
-c              sigu(ij)=u_m(ij,l)/masse(ij,l,iq)
             ENDDO
             DO ij=ijb+iip1-1,ije,iip1
Index: LMDZ6/trunk/libf/dyn3dmem/wrgrads.F
===================================================================
--- LMDZ6/trunk/libf/dyn3dmem/wrgrads.F	(revision 4467)
+++ LMDZ6/trunk/libf/dyn3dmem/wrgrads.F	(revision 4469)
@@ -76,6 +76,5 @@
            print*,'nvar  ',nvar(if)
            print*,'vars ',(var(iv,if),iv=1,nvar(if))
-
-           stop
+           CALL abort_gcm("wrgrads","problem",1)
          endif
       endif
