maschp
C MASCHP SOURCE CB215821 26/08/24 21:17:16 12622 * * sous routine pour l'opérateur masque: chpo et reel en argument * * ipch pointeur sur le champ par point argument * isom doit on sommer les 0 et les 1 * icle type de comparaison * x1,x2 valeur(s) à comparer * iret pointeur sur le nouveau chpo ou valeur de la somme * IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMELEME REAL*8 X1,X2 * MCHPOI=IPCH IRET=0 IF (ISOM.EQ.0) THEN SEGINI,MCHPO1=MCHPOI ENDIF DO 1 I=1,IPCHP(/1) MSOUPO=IPCHP(I) IF (ISOM.EQ.0) THEN SEGINI,MSOUP1=MSOUPO MCHPO1.IPCHP(I)=MSOUP1 MSOUP1.IGEOC=IGEOC ENDIF MPOVAL=IPOVAL N= VPOCHA(/1) NC=VPOCHA(/2) IF (ISOM.EQ.1) GOTO 10 * * SOIT ON VEUT UN MASQUE POINT PAR POINT... * ========================================= SEGINI MPOVA1 MSOUP1.IPOVAL=MPOVA1 * * MOT-CLE "SUPE" IF (ICLE.EQ.1) THEN DO 21 K=1,NC DO 2 L=1,N IF (VPOCHA(L,K).GT.X1) MPOVA1.VPOCHA(L,K)=1.D0 2 CONTINUE 21 CONTINUE * * MOT-CLE "EGSU" ELSEIF (ICLE.EQ.2) THEN DO 22 K=1,NC DO 3 L=1,N IF (VPOCHA(L,K).GE.X1) MPOVA1.VPOCHA(L,K)=1.D0 3 CONTINUE 22 CONTINUE * * MOT-CLE "EGAL" ELSEIF (ICLE.EQ.3) THEN DO 23 K=1,NC DO 4 L=1,N IF (VPOCHA(L,K).EQ.X1) MPOVA1.VPOCHA(L,K)=1.D0 4 CONTINUE 23 CONTINUE * * MOT-CLE "EGIN" ELSEIF (ICLE.EQ.4) THEN DO 24 K=1,NC DO 5 L=1,N IF (VPOCHA(L,K).LE.X1) MPOVA1.VPOCHA(L,K)=1.D0 5 CONTINUE 24 CONTINUE * * MOT-CLE "INFE" ELSEIF (ICLE.EQ.5) THEN DO 25 K=1,NC DO 6 L=1,N IF (VPOCHA(L,K).LT.X1) MPOVA1.VPOCHA(L,K)=1.D0 6 CONTINUE 25 CONTINUE * * MOT-CLE "DIFF" ELSEIF (ICLE.EQ.6) THEN DO 26 K=1,NC DO 7 L=1,N IF (VPOCHA(L,K).NE.X1) MPOVA1.VPOCHA(L,K)=1.D0 7 CONTINUE 26 CONTINUE * * MOT-CLE "COMP" ELSEIF (ICLE.EQ.7) THEN DO 27 K=1,NC DO 8 L=1,N IF (VPOCHA(L,K).GE.X1.AND.VPOCHA(L,K).LE.X2) & MPOVA1.VPOCHA(L,K)=1.D0 8 CONTINUE 27 CONTINUE ENDIF GOTO 20 * * SOIT ON CHERCHE SEULEMENT LA SOMME... * ===================================== 10 CONTINUE * * MOT-CLE "SUPE" IF (ICLE.EQ.1) THEN DO 28 K=1,NC DO 12 L=1,N IF (VPOCHA(L,K).GT.X1) IRET=IRET+1 12 CONTINUE 28 CONTINUE * * MOT-CLE "EGSU" ELSEIF (ICLE.EQ.2) THEN DO 29 K=1,NC DO 13 L=1,N IF (VPOCHA(L,K).GE.X1) IRET=IRET+1 13 CONTINUE 29 CONTINUE * * MOT-CLE "EGAL" ELSEIF (ICLE.EQ.3) THEN DO 30 K=1,NC DO 14 L=1,N IF (VPOCHA(L,K).EQ.X1) IRET=IRET+1 14 CONTINUE 30 CONTINUE * * MOT-CLE "EGIN" ELSEIF (ICLE.EQ.4) THEN DO 31 K=1,NC DO 15 L=1,N IF (VPOCHA(L,K).LE.X1) IRET=IRET+1 15 CONTINUE 31 CONTINUE * * MOT-CLE "INFE" ELSEIF (ICLE.EQ.5) THEN DO 32 K=1,NC DO 16 L=1,N IF (VPOCHA(L,K).LT.X1) IRET =IRET+1 16 CONTINUE 32 CONTINUE * * MOT-CLE "DIFF" ELSEIF (ICLE.EQ.6) THEN DO 33 K=1,NC DO 17 L=1,N IF (VPOCHA(L,K).NE.X1) IRET=IRET+1 17 CONTINUE 33 CONTINUE * * MOT-CLE "COMP" ELSEIF (ICLE.EQ.7) THEN DO 34 K=1,NC DO 18 L=1,N IF (VPOCHA(L,K).GE.X1.AND.VPOCHA(L,K).LE.X2) IRET=IRET+1 18 CONTINUE 34 CONTINUE ENDIF 20 CONTINUE 1 CONTINUE IF (ISOM.EQ.0) IRET=MCHPO1 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales