C MSLIS1 SOURCE CHAT 05/01/13 01:53:15 5004 SUBROUTINE MSLIS1(CTYP,IPOI1,ICLE,IPOI2,IRET,ISOM) IMPLICIT INTEGER(I-N) -INC SMLREEL -INC SMLENTI CHARACTER*(*) CTYP IF(CTYP.EQ.'LISTREEL') THEN MLREE1=IPOI1 MLREE2=IPOI2 SEGACT MLREE1,MLREE2 IF(MLREE1.PROG(/1).NE.MLREE2.PROG(/1)) THEN CALL ERREUR(263) SEGDES MLREE1,MLREE2 RETURN ENDIF SEGINI,MLREEL=MLREE1 IRET=MLREEL IF(ICLE.EQ.1) THEN DO 1 I=1,PROG(/1) IF(MLREE1.PROG(I).GT.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 1 CONTINUE ELSEIF (ICLE.EQ.2) THEN DO 2 I=1,PROG(/1) IF(MLREE1.PROG(I).GE.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 2 CONTINUE ELSEIF (ICLE.EQ.3) THEN DO 3 I=1,PROG(/1) IF(MLREE1.PROG(I).EQ.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 3 CONTINUE ELSEIF (ICLE.EQ.4) THEN DO 4 I=1,PROG(/1) IF(MLREE1.PROG(I).LE.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 4 CONTINUE ELSEIF (ICLE.EQ.5) THEN DO 5 I=1,PROG(/1) IF(MLREE1.PROG(I).LT.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 5 CONTINUE ELSEIF (ICLE.EQ.6) THEN DO 6 I=1,PROG(/1) IF(MLREE1.PROG(I).NE.MLREE2.PROG(I)) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 6 CONTINUE ENDIF IF(ISOM.EQ.1) THEN IRET=0 DO 7 I=1,PROG(/1) IF(PROG(I).GT.0) IRET = IRET + 1 7 CONTINUE ENDIF SEGDES MLREE1,MLREE2 ELSEIF (CTYP.EQ.'LISTENTI') THEN MLENT1=IPOI1 MLENT2=IPOI2 SEGACT MLENT1,MLENT2 IF(MLENT1.LECT(/1).NE.MLENT2.LECT(/1)) THEN CALL ERREUR(263) SEGDES MLENT1,MLENT2 RETURN ENDIF SEGINI,MLENTI=MLENT1 IRET=MLENTI IF(ICLE.EQ.1) THEN DO 11 I=1,LECT(/1) IF(MLENT1.LECT(I).GT.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 11 CONTINUE ELSEIF (ICLE.EQ.2) THEN DO 12 I=1,LECT(/1) IF(MLENT1.LECT(I).GE.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 12 CONTINUE ELSEIF (ICLE.EQ.3) THEN DO 13 I=1,LECT(/1) IF(MLENT1.LECT(I).EQ.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 13 CONTINUE ELSEIF (ICLE.EQ.4) THEN DO 14 I=1,LECT(/1) IF(MLENT1.LECT(I).LE.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 14 CONTINUE ELSEIF (ICLE.EQ.5) THEN DO 15 I=1,LECT(/1) IF(MLENT1.LECT(I).LT.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 15 CONTINUE ELSEIF (ICLE.EQ.6) THEN DO 16 I=1,LECT(/1) IF(MLENT1.LECT(I).NE.MLENT2.LECT(I)) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 16 CONTINUE ENDIF IF(ISOM.EQ.1) THEN IRET=0 DO 17 I=1,LECT(/1) IF(LECT(I).GT.0) IRET = IRET + 1 17 CONTINUE ENDIF SEGDES MLENT1,MLENT2,MLENTI ENDIF RETURN END