      subroutine incr_name(a)
      character*80 a
c     ATTENTION ! a doit etre character*80 en appel !
      do k=1,80
         if(a(k:k).eq.' ') then
            l=k-1
            goto 1
         endif
      enddo
 1    continue
      n=0
      read(a(l:l),'(i1)',err=2) n
 2    continue
      n=n+1
      write(a(l+1:l+1),'(i1)') n
      return
      end

       subroutine incr_name2(a,ifil)
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  cas ou le premier fichier est NOMFICH et les autres NOMFICH_1, 
!  NOMFICH_2, etc...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
c     ATTENTION ! a doit etre character*80 en appel !
      character(80) a
      logical yw,ypremier_fichier
      yw=.false.
      if(yw) print*,'Fichiers en plusieurs morceaux :'
      if(yw) print*,'  Fin du fichier ',trim(a)
      if(ifil.ne.0)close(ifil)
      l=len_trim(a)
      ii=index(a(l-2:l),'_')
      if(yw)print*,'a',trim(a)
      if(yw)print*,'l,ii',l,ii
      if(yw) then
         do k=1,l
            print*,k,a(k:k),ichar(a(k:k))
         enddo
      endif
      if(ii==0) then
         ypremier_fichier=.true.
      else
         ypremier_fichier=.false.
         do k=l,1,-1
            if(a(k:k)=='_') exit
            if(ichar(a(k:k))<47.or.ichar(a(k:k))>58) then
               ypremier_fichier=.true.
               exit
            endif
         enddo
      endif
      if(ypremier_fichier) then
         !cas du 1er fichier
         if(yw) print*,'1fermeture ',trim(a)
         a(l+1:l+2)='_1'
         if(yw) print*,'1ouverture ',trim(a)
      else
         !cas d'un des fichiers suivants
         if(yw) print*,'2fermeture ',trim(a)
         if(a(l-1:l-1)=='_') then
            read(a(l:l),'(i1)') n
         else if(a(l-2:l-2)=='_') then
            read(a(l-1:l),'(i2)') n
         else if(a(l-3:l-3)=='_') then
            read(a(l-1:l),'(i3)') n
         endif
         n=n+1
         if(n>100) then
            write(a(l-2:l),'(i3)') n
         else if(n==100) then
            write(a(l-1:l+1),'(i3)') n
         else if(n>10) then
            write(a(l-1:l),'(i2)') n
         else if(n==10) then
            write(a(l:l+1),'(i2)') n
         else
            write(a(l:l),'(i1)') n
         endif
         if(yw) print*,'2ouverture ',trim(a)
      endif
      if(yw) print*,'Debut du fichier ',trim(a)
      if(ifil.ne.0)open(ifil,form='unformatted',status='old',file=a)
      return
      end
       subroutine incr_name3(a,ifil,delim)
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  cas ou le premier fichier est NOMFICH et les autres NOMFICH_1, 
!  NOMFICH_2, etc... (si delim=='_')
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
      character(*) a
      character(1) delim
      logical yw,ypremier_fichier
      yw=.false.
      if(ifil.ne.0)close(ifil)
      l=len_trim(a)
      ii=index(a(l-2:l),delim)
      if(yw) then
         print*,'Fichiers en plusieurs morceaux :'
         print*,'  Fin du fichier ',trim(a)
         print*,'a',trim(a)
         print*,'l,ii',l,ii
         do k=1,l
            print*,k,a(k:k),ichar(a(k:k))
         enddo
      endif
      if(ii==0) then
         ypremier_fichier=.true.
      else
         ypremier_fichier=.false.
         do k=l,1,-1
            if(a(k:k)==delim) exit
            if(ichar(a(k:k))<47.or.ichar(a(k:k))>58) then
               ypremier_fichier=.true.
               exit
            endif
         enddo
      endif
      if(ypremier_fichier) then
         !cas du 1er fichier
         if(yw) print*,'1fermeture ',trim(a)
         a(l+1:l+2)=delim//'1'
         if(yw) print*,'1ouverture ',trim(a)
      else
         !cas d'un des fichiers suivants
         if(yw) print*,'2fermeture ',trim(a)
         if(a(l-1:l-1)==delim) then
            read(a(l:l),'(i1)') n
         else if(a(l-2:l-2)==delim) then
            read(a(l-1:l),'(i2)') n
         else if(a(l-3:l-3)==delim) then
            read(a(l-1:l),'(i3)') n
         endif
         n=n+1
         if(n>100) then
            write(a(l-2:l),'(i3)') n
         else if(n==100) then
            write(a(l-1:l+1),'(i3)') n
         else if(n>10) then
            write(a(l-1:l),'(i2)') n
         else if(n==10) then
            write(a(l:l+1),'(i2)') n
         else
            write(a(l:l),'(i1)') n
         endif
         if(yw) print*,'2ouverture ',trim(a)
      endif
      if(yw) print*,'Debut du fichier ',trim(a)
      if(ifil.ne.0)open(ifil,form='unformatted',status='old',file=a)
      return
      end
