C MASQ SOURCE FANDEUR 10/12/14 21:18:08 6812 SUBROUTINE MASQ ************************************************************************ * * * OPERATEUR MASQUE * * * ************************************************************************ * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC CCOPTIO * PARAMETER (LMOT = 6, LSOM = 1) CHARACTER*4 MMOT(LMOT), MSOM(LSOM) * DATA MMOT/'SUPE','EGSU','EGAL','EGIN','INFE','DIFF'/ DATA MSOM/'SOMM'/ * ISOM=0 * CALL LIRMOT(MMOT,LMOT,ICLE,1) IF (IERR.NE.0) RETURN * CALL LIRMOT (MSOM,LSOM,ISOM,0) IF (IERR.NE.0) RETURN * CALL LIROBJ ('MCHAML',MCH,0,IRETOU) IF (IERR.NE.0) RETURN * IF(IRETOU.NE.0) THEN I1=0 CALL LIRENT(I1,0,IRETEN) IF (IERR.NE.0) RETURN X1=I1 CALL LIRREE(X1,0,IRETOU) IF (IERR.NE.0) RETURN IF(IRETEN.NE.0.OR.IRETOU.NE.0) THEN CALL MASCHE( X1,MCH,ICLE,IRET,ISOM,IRETER) ELSE MCH1=0 CALL LIROBJ ('MCHAML',MCH1,1,IRETOU) IF (IERR.NE.0) RETURN CALL MSCHE1(MCH1,MCH,ICLE,IRET,ISOM,IRETER) ENDIF IF (IRETER.EQ.0) RETURN II=2 ELSE CALL LIROBJ('CHPOINT ',ICHP,0,IRETOU) IF (IERR.NE.0) RETURN IF(IRETOU.NE.0) THEN I1=0 CALL LIRENT (I1,0,IRETEN) IF (IERR.NE.0) RETURN X1=I1 CALL LIRREE(X1,0,IRETOU) IF (IERR.NE.0) RETURN IF(IRETEN.NE.0.OR.IRETOU.NE.0) THEN CALL MASCHP( X1,ICHP,ICLE,IRET,ISOM) ELSE ICHP1=0 CALL LIROBJ('CHPOINT ',ICHP1,1,IRETOU) IF(IERR.NE.0) RETURN CALL MSCHP1(ICHP1,ICHP,ICLE,IRET,ISOM) ENDIF IF(IERR.NE.0) RETURN II=3 ELSE CALL LIROBJ('LISTREEL',IPLI,0,IRETOU) IF (IERR.NE.0) RETURN IF(IRETOU.NE.0) THEN I1=0 CALL LIRENT (I1,0,IRETEN) IF (IERR.NE.0) RETURN X1=I1 CALL LIRREE(X1,0,IRETOU) IF (IERR.NE.0) RETURN IF(IRETEN.NE.0.OR.IRETOU.NE.0) THEN CALL MASLIS('LISTREEL',IPLI,ICLE,X1,I1,IRET,ISOM) ELSE CALL LIROBJ('LISTREEL',IPLI1,1,IRETOU) IF(IERR.NE.0) RETURN CALL MSLIS1('LISTREEL',IPLI,ICLE,IPLI1,IRET,ISOM) ENDIF IF(IERR.NE.0) RETURN II=5 ELSE CALL LIROBJ('LISTENTI',IPLI,0,IRETOU) IF(IRETOU.EQ.0) THEN C C PAS D OPERANDE CORRECTE TROUVE C CALL QUETYP(MOTERR(1:8),0,IRETOU) IF(IRETOU.NE.0) THEN CALL ERREUR (39) ELSE CALL ERREUR(533) ENDIF RETURN ENDIF I1=0 CALL LIRENT (I1,0,IRETEN) IF (IERR.NE.0) RETURN X1=I1 IF(IRETEN.NE.0) THEN CALL MASLIS('LISTENTI',IPLI,ICLE,X1,I1,IRET,ISOM) ELSE CALL LIROBJ('LISTENTI',IPLI1,1,IRETOU) CALL MSLIS1('LISTENTI',IPLI,ICLE,IPLI1,IRET,ISOM) ENDIF IF(IERR.NE.0) RETURN II=6 ENDIF ENDIF ENDIF C IF(ISOM.NE.0) II=4 C IF (II.EQ.2) CALL ECROBJ('MCHAML ',IRET) IF (II.EQ.3) CALL ECROBJ('CHPOINT ',IRET) IF (II.EQ.5) CALL ECROBJ('LISTREEL',IRET) IF (II.EQ.6) CALL ECROBJ('LISTENTI',IRET) IF (II.EQ.4) CALL ECRENT(IRET) RETURN END