C COLILR    SOURCE    BP208322  15/06/26    21:15:05     8562
C
      SUBROUTINE COLILR(ITA1,ITAFL,N,IRETT)

C----------------------------------------------------------------------
c
C    COLILR : COmbinaison LIneaire de ListReels
c
C    CE SUBROUTINE EFFECTUE LA COMBINAISON LINEAIRE DES LISTREEL
C    CONTENUS DANS ITA1, AVEC LES FLOTTANTS CONTENUS DANS TAFL
C    LE RESULTAT EST UN LISTREEL, MIS DANS IRETT
C    ATTENTION : TAFL EN DOUBLE PRECISION
c
C    Creation : bp, 2015-06-26
C    Modif    : ... a completer le cas echeant ...
c
C----------------------------------------------------------------------
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)


-INC PPARAM
-INC CCOPTIO
-INC SMLREEL

      SEGMENT ITA1(0)
      SEGMENT/ITAFL/(TAFL(0)*D)
C
      IRETT=0

C----------------------------------------------------------------------
c     1ere valeur
c
      VAL   =TAFL(1)
      MLREE1=ITA1(1)
      SEGACT,MLREE1
      JG=MLREE1.PROG(/1)

C     creation du LISTREEL Resultat
      SEGINI,MLREEL

c     1er remplissage
      DO 100 IJ=1,JG
        PROG(IJ)=VAL*MLREE1.PROG(IJ)
 100  CONTINUE
      SEGDES,MLREE1

      IF(N.EQ.1) GOTO 299


C----------------------------------------------------------------------
C     BOUCLE SUR LES LISTREELS
C
      DO 200 I=2,N

        VAL   =TAFL(I)
        MLREE1=ITA1(I)
        SEGACT,MLREE1
        JG1=MLREE1.PROG(/1)
        IF(JG1.NE.JG) GOTO 266

c       remplissage
        DO 201 IJ=1,JG
          PROG(IJ)=PROG(IJ)+VAL*MLREE1.PROG(IJ)
 201    CONTINUE

        SEGDES,MLREE1

 200  CONTINUE
      GOTO 299


C----------------------------------------------------------------------
*     Erreur sur la dimension des listreels
 266  CONTINUE
      SEGDES,MLREE1
      SEGSUP,MLREEL
      WRITE(IOIMP,*) '1er listreel de dimension',JG
      WRITE(IOIMP,*) I,'eme listreel de dimension',JG1
c     les deux LISTREEL n'ont pas la même longueur
      CALL ERREUR(577)


C----------------------------------------------------------------------
*     Fin normale
 299  CONTINUE
      IRETT=MLREEL



      RETURN
      END


