C CPI2LI    SOURCE    PV        17/12/05    21:15:39     9646           
      subroutine cpi2li(pile,liste)
C=======================================================================
C  Sous-programme cpi2li (Collaborateur PIles vers LIste
C  Convertit une pile ICOLAC en une liste LISTARG
C  Cela est fait en parcourant toutes les piles et en ajoutant les
C  objets trouvés à la liste.

C=======================================================================
      integer iPil,nbPile
      integer nArg,iArg
      character*(8) typNom
      integer iObj, nbObj
-INC TMCOLAC
      segment LISARG
         character*8 nom(nArg)
         integer     adress(nArg)
      endsegment
      pointeur pile.ICOLAC
      pointeur pilTyp.ITLACC
      pointeur liste.LISARG
C      write(ioimp,*) 'Entree dans CPI2LI  ************'
      nArg=liste.adress(/1)
      iArg = nArg
      nbPile=pile.kcola(/1)
C     Parcours des piles
      do  iPil=1,nbPile
         pilTyp=pile.kcola(iPil)
C        Recuperation de son type
         typNom='        '
         call typfil(typNom,iPil)
         nbObj=pilTyp.itlac(/1)
         nArg=nArg + nbObj
         segadj liste
C        Pour chaque objet de la pile
         do iObj=1,nbObj
            iArg=iArg+1
            liste.nom(iArg)=typNom
            liste.adress(iArg)=pilTyp.itlac(iObj)
         enddo
         if(iArg.ne.nArg) call erreur(5)
      enddo
C      write(ioimp,*) 'Sortie de CPI2LI **************'
      return
      end



 
 
