      subroutine enleve_tous_blancs(cara,long,lmax)
      character*1 cara(lmax)
      character*1024 bid
c
      llmax = min(lmax,1024)
      do i=1,llmax
        bid(i:i) = cara(i)
      enddo
      ideb=0
 10   ideb=ideb+1
      if (bid(ideb:ideb).eq.' '.and.ideb.lt.llmax) goto 10
      if (ideb.eq.llmax.and.bid(ideb:ideb).eq.' ') then
        long=0
        return
      endif
c
      ifin = llmax+1
 20   ifin=ifin-1
      if (bid(ifin:ifin).eq.' '.and.ifin.gt.1) goto 20
      ifin2 = ifin
      if (ideb.lt.ifin) then
        do i=ideb+1,ifin
          if (bid(i:i).eq.char(0)) then
            ifin2 = i-1
            goto 30
          endif
        enddo
      endif
 30   ifin = min(ifin,ifin2)
c
      long = ifin+1-ideb
      do i=1,long
        cara(i) = bid(ideb+i-1:ideb+i-1)
      enddo
      if (long.lt.llmax) then
        do i=long+1,llmax
          cara(i) = ' '
        enddo
      endif
      end
