C MASLIS SOURCE PV 20/04/28 21:15:13 10593 SUBROUTINE MASLIS(CTYP,IPOI,ICLE,X1,I1,X2,I2,IRET,ISOM) IMPLICIT INTEGER(I-N) -INC SMLREEL -INC SMLENTI CHARACTER*(*) CTYP REAL*8 X1,X2 * * TRAITEMENT D'UN LISTREEL * ======================== * IF (CTYP.EQ.'LISTREEL') THEN MLREE1=IPOI SEGINI,MLREEL=MLREE1 IRET=MLREEL * * MOT-CLE "SUPE" IF (ICLE.EQ.1) THEN DO 1 I=1,PROG(/1) IF (PROG(I).GT.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 1 CONTINUE * * MOT-CLE "EGSU" ELSEIF (ICLE.EQ.2) THEN DO 2 I=1,PROG(/1) IF (PROG(I).GE.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 2 CONTINUE * * MOT-CLE "EGAL" ELSEIF (ICLE.EQ.3) THEN DO 3 I=1,PROG(/1) IF (PROG(I).EQ.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 3 CONTINUE * * MOT-CLE "EGIN" ELSEIF (ICLE.EQ.4) THEN DO 4 I=1,PROG(/1) IF (PROG(I).LE.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 4 CONTINUE * * MOT-CLE "INFE" ELSEIF (ICLE.EQ.5) THEN DO 5 I=1,PROG(/1) IF (PROG(I).LT.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 5 CONTINUE * * MOT-CLE "DIFF" ELSEIF (ICLE.EQ.6) THEN DO 6 I=1,PROG(/1) IF (PROG(I).NE.X1) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 6 CONTINUE * * MOT-CLE "COMP" ELSEIF (ICLE.EQ.7) THEN DO 7 I=1,PROG(/1) IF (PROG(I).GE.X1.AND.PROG(I).LE.X2) THEN PROG(I)=1 ELSE PROG(I)=0 ENDIF 7 CONTINUE ENDIF * * ****************************** * * DEUXIEME MOT-CLE "SOMM" IF (ISOM.EQ.1) THEN IRET=0 DO 8 I=1,PROG(/1) IF (PROG(I).GT.0) IRET=IRET+1 8 CONTINUE ENDIF * * * TRAITEMENT D'UN LISTENTI * ======================== * ELSEIF (CTYP.EQ.'LISTENTI') THEN MLENT1=IPOI SEGINI,MLENTI=MLENT1 IRET=MLENTI * * MOT-CLE "SUPE" IF (ICLE.EQ.1) THEN DO 11 I=1,LECT(/1) IF (LECT(I).GT.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 11 CONTINUE * * MOT-CLE "EGSU" ELSEIF (ICLE.EQ.2) THEN DO 12 I=1,LECT(/1) IF (LECT(I).GE.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 12 CONTINUE * * MOT-CLE "EGAL" ELSEIF (ICLE.EQ.3) THEN DO 13 I=1,LECT(/1) IF (LECT(I).EQ.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 13 CONTINUE * * MOT-CLE "EGIN" ELSEIF (ICLE.EQ.4) THEN DO 14 I=1,LECT(/1) IF (LECT(I).LE.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 14 CONTINUE * * MOT-CLE "INFE" ELSEIF (ICLE.EQ.5) THEN DO 15 I=1,LECT(/1) IF (LECT(I).LT.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 15 CONTINUE * * MOT-CLE "DIFF" ELSEIF (ICLE.EQ.6) THEN DO 16 I=1,LECT(/1) IF (LECT(I).NE.I1) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 16 CONTINUE * * MOT-CLE "COMP" ELSEIF (ICLE.EQ.7) THEN DO 17 I=1,LECT(/1) IF (LECT(I).GE.I1.AND.LECT(I).LE.I2) THEN LECT(I)=1 ELSE LECT(I)=0 ENDIF 17 CONTINUE ENDIF * * ****************************** * * DEUXIEME MOT-CLE "SOMM" IF (ISOM.EQ.1) THEN IRET=0 DO 18 I=1,LECT(/1) IF (LECT(I).GT.0) IRET=IRET+1 18 CONTINUE ENDIF ENDIF END