C ETG SOURCE CHAT 09/04/08 21:15:26 6355 SUBROUTINE ETG IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC SMTABLE -INC CCNOYAU -INC CCASSIS LOGICAL IR1,IR2 REAL*8 RR1 CHARACTER*(8) CTYP,ICHAT,TYPRET,TYPRE1 CHARACTER*(72) LEMOT * Lecture du premier objet * ------------------------ CALL MESLIR(-225) CALL QUETYP(CTYP,0,IRETOU) IF(IRETOU.EQ.0) THEN * Cet opérateur a encore besoin d'un opérande. CALL ERREUR (533) RETURN ENDIF CALL LIROBJ(CTYP,IP1,1,IRETOU) IF(CTYP.EQ.'TABLE') THEN MTABLE = IP1 CALL ACCTAB(MTABLE,'MOT',0,0.D0,'SOUSTYPE',.TRUE.,0, > 'MOT',ID3,RR1,CTYP,IR1,ID2) IF (CTYP.NE.'ESCLAVE') THEN * Donnez une TABLE de sous-type %m1:8 MOTERR(1:8)='ESCLAVE' CALL ERREUR(-173) * Le sous-type de la table est incorrect CALL ERREUR(648) RETURN ENDIF SEGACT MTABLE ML=MLOTAB * L'INDICE 1 EST LE SOUS TYPE IND=MTABII(2) CTYP=' ' CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID1) IRETOU=ID1 IF (CTYP.EQ.'MAILLAGE') THEN DO I=3,ML SEGACT MTABLE IND=MTABII(I) CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID2) IF (IERR.NE.0) RETURN CALL FUSE(ID1,ID2,IRETOU,LTELQ) ID1=IRETOU ENDDO SEGDES MTABLE GOTO 100 ELSEIF (CTYP.EQ.'MCHAML') THEN DO I=3,ML SEGACT MTABLE IND=MTABII(I) CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID2) IF (IERR.NE.0) RETURN CALL FUSCHL(ID1,ID2,IRETOU) ID1=IRETOU ENDDO SEGDES MTABLE GOTO 100 ELSEIF (CTYP.EQ.'CHPOINT ') THEN DO I=3,ML SEGACT MTABLE IND=MTABII(I) CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID2) CALL FUCHPO(ID1,ID2,IRETOU) IF (IERR.NE.0) RETURN ID1=IRETOU ENDDO SEGDES MTABLE GOTO 100 ELSEIF (CTYP.EQ.'RIGIDITE') THEN DO I=3,ML SEGACT MTABLE IND=MTABII(I) CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID2) CALL FUSRIG(ID1,ID2,IRETOU) IF (IERR.NE.0) RETURN ID1=IRETOU ENDDO SEGDES MTABLE GOTO 100 ELSEIF (CTYP.EQ.'MMODEL') THEN DO I=3,ML SEGACT MTABLE IND=MTABII(I) CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0, > CTYP,ID3,RR1,' ',IR1,ID2) CALL FUSMOD(ID1,ID2,IRETOU) IF (IERR.NE.0) RETURN ID1=IRETOU ENDDO SEGDES MTABLE GOTO 100 ELSE * Donnez une TABLE de sous-type %m1:8 MOTERR(1:8)='MAILLAGE' CALL ERREUR(-173) * Le sous-type de la table est incorrect CALL ERREUR(648) RETURN ENDIF 100 call ecrobj(ctyp,id1) ELSE call refus ENDIF END