C SAUF SOURCE CHAT 05/01/13 03:11:20 5004 SUBROUTINE SAUF C C C CET OPERATEUR ENLEVE AU SEGMENT LECT1(RESP. MLREE1) LES ELEMENTS C DU SEGMENT LECT2(RESP. MLREE2) ET LES MET DANS MLENTI(RESP.MLREEL) C IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC SMLENTI -INC SMLREEL C C **** OPERATION SUR MLENTI C CALL LIROBJ('LISTENTI',LECT1,0,IRETOU) IF(IRETOU.EQ.0)GO TO 10 CALL LIROBJ('LISTENTI',LECT2,1,IRETOU) IF(IERR.NE.0) RETURN MLENT1=LECT1 MLENT2=LECT2 SEGACT MLENT1,MLENT2 N1=MLENT1.LECT(/1) IF(N1.EQ.0) GO TO 5000 N2=MLENT2.LECT(/1) JG=N1+N2 SEGINI MLENTI JG=0 DO 1 I=1,N1 IF(N2.EQ.0) GO TO 3 DO 2 J=1,N2 IF(MLENT1.LECT(I).EQ.MLENT2.LECT(J)) GO TO 1 2 CONTINUE 3 CONTINUE JG=JG+1 LECT(JG)=MLENT1.LECT(I) 1 CONTINUE SEGADJ MLENTI SEGDES MLENT1,MLENT2 CALL ECROBJ('LISTENTI',MLENTI) SEGDES MLENTI GO TO 5000 C C **** OPERATION SUR DES MLREEL C 10 CONTINUE CALL LIROBJ('LISTREEL',MLREE1,0,IRETOU) IF(IRETOU.EQ.0) GO TO 20 SEGACT MLREE1 N1=MLREE1.PROG(/1) IF(N1.EQ.0) GO TO 5000 CALL LIROBJ('LISTREEL',MLREE2,1,IRETOU) IF(IERR.NE.0)RETURN SEGACT MLREE2 N2=MLREE2.PROG(/1) JG=0 SEGINI MLREEL DO 11 I=1,N1 IF(N2.EQ.0) GO TO 13 DO 12 J=1,N2 IF(MLREE1.PROG(I).EQ.MLREE2.PROG(J)) GO TO 11 12 CONTINUE 13 CONTINUE JG=JG+1 SEGADJ MLREEL PROG(JG)=MLREE1.PROG(I) 11 CONTINUE SEGDES MLREE1,MLREE2 CALL ECROBJ('LISTREEL',MLREEL) SEGDES MLREEL 5000 CONTINUE RETURN C C PAS D OPERANDE CORRECTE TROUVE C 20 CALL QUETYP(MOTERR(1:8),0,IRETOU) IF(IRETOU.NE.0) THEN CALL ERREUR (39) ELSE CALL ERREUR(533) ENDIF RETURN END