C FILLLU    SOURCE    PV        17/12/05    21:16:19     9646           
      SUBROUTINE FILLLU (ISORTA,ICOLAC)
C=======================================================================
C      CE SOUPROGRAMME REMPLIT LES PILES ICOLAC A
C      PARTIR  DU   TABLEAU ISORTA : TYPE-TYPE-POINTEUR  CREE PAR SAUV
C      LES OBJETS LOGIQUES SONT CHANGES PAR LA VALEUR VRAI OU FAUX
C
C ENTREE :ISORTA TABLEAU (TYPE-TYPE-POINTEUR)
C         ICOLAC POINTEUR SUR UN SEGMENT A CREER
C         INCTAB INCREMENT DANS LA TABLE
C  PROGRAMME PAR FARVACQUE - REPRIS PAR LENA
C  APPELE PAR SAUV
C  APPELLE : AJOUN  TYPFIL  ERREUR
C=======================================================================
C  TABLEAU KCOLA : VOIR SIGNIFATION DANS SOUS-PROGRAMME TYPFIL
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      character*(8) itype
      integer ico, isort, ityp, ival, n1, nsorta, numlis


-INC PPARAM
-INC CCOPTIO
-INC TMCOLAC

C=======================================================================
C ----DANS ISORTA LES VALEURS VONT TROIS PAR TROIS
      SEGMENT ISORTA
       CHARACTER*8 ISORTC(KS)
       INTEGER ISORTI(KS)
      ENDSEGMENT
C
      pointeur pile.ITLACC
C
      SEGACT ISORTA
      NSORTA=ISORTI(/1)
      IF(NSORTA.EQ.0) GOTO 5000
C
C  **** BOUCLE SUR LES OBJETS A SORTIR : ON TESTE LEUR TYPE ET ON
C  **** INITIALISE LE REMPLISSAGE DES PILES ITLACC
      SEGACT ICOLAC
      ILISSE=ILISSG
      SEGACT ILISSE*MOD

C
      DO 200 ISORT=1,NSORTA

         ITYPE(1:8)=ISORTC(ISORT)
C
         N1=0
         CALL TYPFIL(ITYPE,N1)
         IF (N1.LT.0) THEN
            MOTERR(1:8)=ITYPE
            CALL ERREUR (336)
            GO TO 200
         ENDIF

         IVAL=ISORTI(ISORT)
         ICO=KCOLA(N1)
         NUMLIS=1
          ilissd=ilissg
         ITYP=N1
         IF (ITYP.EQ.24) NUMLIS=6
         IF (ITYP.EQ.25) NUMLIS=4
         IF (ITYP.EQ.26) NUMLIS=2
         IF (ITYP.EQ.27) NUMLIS=5
         IF (ITYP.EQ.32) then
           NUMLIS=3
           ilissd=ilissp
         endif
         IF (ITYP.EQ.36) NUMLIS=7
         pile = ICO
         segact pile*mod
         CALL AJOUN(ICO,IVAL,ILISSd,NUMLIS)

 200  CONTINUE
C
*      SEGDES ILISSE
      SEGDES ICOLAC
C
 5000 CONTINUE
      SEGDES ISORTA

      RETURN
      END



 
 
