C INSER5    SOURCE    CHAT      05/01/13    00:38:55     5004
      SUBROUTINE INSER5 (MLREEL,IEME,REELDP,MLREE1)
************************************************************************
*
*                             I N S E R 1
*                             -----------
*
* FONCTION:
* ---------
*
*     INSERER UN ELEMENT EN I-EME POSITION (ET NON PAS APRES LA I-EME
*     POSITION) DANS UN OBJET DE TYPE 'LISTREEL'.
*
*
* PARAMETRES:   (E)=ENTREE   (S)=SORTIE
* -----------
*
*     MLREEL  ENTIER    (E)  POINTEUR DE L'OBJET DE TYPE "LISTREEL".
*     IEME    ENTIER    (E)  POSITION D'INSERTION DE L'ELEMENT DANS
*                            L'OBJET DE TYPE "LISTREEL".
*     REELDP  REEL DP   (E)  ELEMENT INSERE.
*     MLREE1  ENTIER    (E)  POINTEUR DE L'OBJET DE TYPE "LISTREEL" CREE
*
* SOUS-PROGRAMMES APPELES:
* ------------------------
*
*     ERREUR
*
* AUTEUR, DATE DE CREATION:
* -------------------------
*
*     PASCAL MANIGOT     6 DECEMBRE 1984
*
* LANGAGE:
* --------
*
*     ESOPE + FORTRAN77
*
************************************************************************
*
      IMPLICIT INTEGER(I-N)

-INC PPARAM
-INC CCOPTIO
-INC SMLREEL
*
      REAL*8 REELDP
*
      SEGACT,MLREEL
      LDIM = PROG(/1)
      LDIM1 = LDIM + 1
*
*
      IF (0 .LT. IEME .AND. IEME .LE. LDIM1) THEN
        JG = LDIM1
        SEGINI MLREE1
        MLREE1.PROG(IEME) = REELDP
        IF ( IEME .GT . 1 )  THEN
           DO 100 I=1   ,(IEME-1)
             MLREE1.PROG(I) = MLREEL.PROG(I)
  100      CONTINUE
        ENDIF
        IF ( IEME .LT .LDIM1)  THEN
         DO 110 I= IEME   , LDIM
           MLREE1.PROG(I + 1 ) = MLREEL.PROG(I)
  110    CONTINUE
        ENDIF
        SEGDES,MLREE1
      ELSE
         INTERR(1) = IEME
         NUMERR = 36
         CALL ERREUR (NUMERR)
*
      END IF
*
      SEGDES,MLREEL
*
      END

