Numérotation des lignes :

C MSLIS1    SOURCE    PV        20/04/28    21:15:18     10593                SUBROUTINE MSLIS1(CTYP,IPOI1,ICLE,IPOI2,IPOI3,X1,I1,IKO,IRET,ISOM)*     IKO =  0  =>  1 ou 2 LISTxxxx*     IKO =  1  =>  1 nombre puis 1 LISTxxxx*     IKO = -1  =>  1 LISTxxxx puis 1 nombre      IMPLICIT INTEGER(I-N)-INC SMLREEL-INC SMLENTI      CHARACTER*(*) CTYP      REAL*8 X1*      IKOK=IKO      IF (IKOK.EQ.0.AND.IPOI3.LE.0) IKOK=-1**     TRAITEMENT D'UN LISTREEL*     ========================*      IF (CTYP.EQ.'LISTREEL') THEN         MLREE1=IPOI1         MLREE2=IPOI2         IF (MLREE1.PROG(/1).NE.MLREE2.PROG(/1)) THEN            CALL ERREUR(263)            RETURN         ENDIF         IF (IKOK.EQ.0) THEN            MLREE3=IPOI3            IF (MLREE1.PROG(/1).NE.MLREE3.PROG(/1)) THEN               CALL ERREUR(263)               RETURN            ENDIF         ENDIF         SEGINI,MLREEL=MLREE1         IRET=MLREEL**        MOT-CLE "SUPE"         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**        MOT-CLE "EGSU"         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**        MOT-CLE "EGAL"         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**        MOT-CLE "EGIN"         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**        MOT-CLE "INFE"         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**        MOT-CLE "DIFF"         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**        MOT-CLE "COMP"         ELSEIF (ICLE.EQ.7) THEN           IF (IKOK.EQ.0) THEN             DO 71 I=1,PROG(/1)               IF (MLREE1.PROG(I).GE.MLREE2.PROG(I).AND.     &             MLREE1.PROG(I).LE.MLREE3.PROG(I)) THEN                  PROG(I)=1               ELSE                  PROG(I)=0               ENDIF   71        CONTINUE           ELSEIF (IKOK.GT.0) THEN             DO 72 I=1,PROG(/1)               IF (MLREE1.PROG(I).GE.X1.AND.     &             MLREE1.PROG(I).LE.MLREE2.PROG(I)) THEN                  PROG(I)=1               ELSE                  PROG(I)=0               ENDIF   72        CONTINUE           ELSE             DO 73 I=1,PROG(/1)               IF (MLREE1.PROG(I).GE.MLREE2.PROG(I).AND.     &             MLREE1.PROG(I).LE.X1) THEN                  PROG(I)=1               ELSE                  PROG(I)=0               ENDIF   73        CONTINUE           ENDIF         ENDIF**        ********************************        DEUXIEME MOT-CLE "SOMM"         IF (ISOM.EQ.1) THEN           IRET=0           DO 7 I=1,PROG(/1)             IF (PROG(I).GT.0) IRET=IRET+1    7      CONTINUE         ENDIF***     TRAITEMENT D'UN LISTENTI*     ========================*      ELSEIF (CTYP.EQ.'LISTENTI') THEN         MLENT1=IPOI1         MLENT2=IPOI2         IF (MLENT1.LECT(/1).NE.MLENT2.LECT(/1)) THEN            CALL ERREUR(263)            RETURN         ENDIF         IF (IKOK.EQ.0) THEN            MLENT3=IPOI3            IF (MLENT1.LECT(/1).NE.MLENT3.LECT(/1)) THEN               CALL ERREUR(263)               RETURN            ENDIF         ENDIF         SEGINI,MLENTI=MLENT1         IRET=MLENTI**        MOT-CLE "SUPE"         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**        MOT-CLE "EGSU"         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**        MOT-CLE "EGAL"         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**        MOT-CLE "EGIN"         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**        MOT-CLE "INFE"         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**        MOT-CLE "DIFF"         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**        MOT-CLE "COMP"         ELSEIF (ICLE.EQ.7) THEN           IF (IKOK.EQ.0) THEN             DO 171 I=1,LECT(/1)               IF (MLENT1.LECT(I).GE.MLENT2.LECT(I).AND.     &             MLENT1.LECT(I).LE.MLENT3.LECT(I)) THEN                  LECT(I)=1               ELSE                  LECT(I)=0               ENDIF  171        CONTINUE           ELSEIF (IKOK.GT.0) THEN             DO 172 I=1,LECT(/1)               IF (MLENT1.LECT(I).GE.I1.AND.     &             MLENT1.LECT(I).LT.MLENT2.LECT(I)) THEN                  LECT(I)=1               ELSE                  LECT(I)=0               ENDIF  172        CONTINUE           ELSE             DO 173 I=1,LECT(/1)               IF (MLENT1.LECT(I).GE.MLENT2.LECT(I).AND.     &             MLENT1.LECT(I).LT.I1) THEN                  LECT(I)=1               ELSE                  LECT(I)=0               ENDIF  173        CONTINUE           ENDIF         ENDIF**        ********************************        DEUXIEME MOT-CLE "SOMM"         IF (ISOM.EQ.1) THEN           IRET=0           DO 17 I=1,LECT(/1)             IF (LECT(I).GT.0) IRET=IRET+1   17      CONTINUE         ENDIF      ENDIF      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales