C INSERE SOURCE JC220346 12/05/16 21:15:03 7372 SUBROUTINE INSERE ************************************************************************ * * I N S E R E * ----------- * * SOUS-PROGRAMME ASSOCIE A LA DIRECTIVE "INSERER" * * FONCTION: * --------- * * INSERER UN ELEMENT DANS UN OBJET (QUAND CELA A UN SENS). * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * INSERER OBJET RANG ELEM ; * * OPERANDES: * ---------- * * OBJET TYPE1 OBJET OU ON INSERE UN ELEMENT. * RANG TYPE2 INDICE DE POSITION DE L'ELEMENT A INSERER * DANS L'OBJET "OBJET". * ELEM TYPE3 OBJET INSERE. * * SI TYPE1 = ... ALORS, TYPE2 = ... ET TYPE3 = ... * LISTREEL ENTIER FLOTTANT * LISTENTI ENTIER ENTIER * LISTMOTS ENTIER MOT * LISTCHPO ENTIER CHPOINT * * MODE DE FONCTIONNEMENT: * ----------------------- * * APPEL D'UN SOUS-PROGRAMME DISTINCT SELON LE TYPE DE L'OBJET * "OBJET". * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 5 DECEMBRE 1984 * MODIF LE 22 JANVIER 1988 * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO * REAL*8 REELDP CHARACTER *4 LEMOT * * * IPOS=0 => on interdit à IPOIN2 de contenir un LISTENTI IPOS=0 CALL LIRE01 (IPOIN1,IPOS,IPOIN2) IF (IERR .NE. 0) RETURN * IF (IPOS .EQ. 1) THEN CALL LIRREE (REELDP,1,IRETOU) CALL INSER5 (IPOIN1,IPOIN2,REELDP,IPOIN3) CALL ECROBJ ('LISTREEL',IPOIN3) ELSE IF (IPOS .EQ. 2) THEN CALL LIRENT (IPOIN3,1,IRETOU) CALL INSER6 (IPOIN1,IPOIN2,IPOIN3,IPOIN4) CALL ECROBJ ('LISTENTI',IPOIN4) ELSE IF (IPOS .EQ. 3) THEN CALL LIRCHA (LEMOT,1,IRETOU) IF (IERR.NE.0) RETURN CALL INSER7 (IPOIN1,IPOIN2,LEMOT,IPOIN3) CALL ECROBJ ('LISTMOTS',IPOIN3) ELSE IF (IPOS .EQ. 4) THEN CALL LIROBJ ('CHPOINT',IPOIN3,1,IRETOU) CALL INSER8 (IPOIN1,IPOIN2,IPOIN3,IPOIN4) CALL ECROBJ ('LISTCHPO',IPOIN4) ELSE IF (IPOS .NE. 0) THEN NUMERR = 196 CALL ERREUR (NUMERR) END IF * END