Download etg.eso

Back to the list

   1 : C ETG       SOURCE    CHAT      09/04/08    21:15:26     6355           
   2 :       SUBROUTINE ETG
   3 :       IMPLICIT INTEGER(I-N)
   4 : -INC CCOPTIO
   5 : -INC SMTABLE
   6 : -INC CCNOYAU
   7 : -INC CCASSIS      
   8 :       LOGICAL        IR1,IR2
   9 :       REAL*8         RR1
  10 :       CHARACTER*(8)  CTYP,ICHAT,TYPRET,TYPRE1
  11 :       CHARACTER*(72) LEMOT
  12 : *     Lecture du premier objet
  13 : *     ------------------------
  13 :       CALL MESLIR(-225)
  13 :       CALL QUETYP(CTYP,0,IRETOU)
  14 :       IF(IRETOU.EQ.0) THEN
  15 : *       Cet opérateur a encore besoin d'un opérande.
  15 :         CALL ERREUR (533)
  16 :         RETURN
  17 :       ENDIF
  17 :       CALL LIROBJ(CTYP,IP1,1,IRETOU)      
  18 :       IF(CTYP.EQ.'TABLE') THEN
  19 :           MTABLE = IP1
  19 :          CALL ACCTAB(MTABLE,'MOT',0,0.D0,'SOUSTYPE',.TRUE.,0,
  20 :      >               'MOT',ID3,RR1,CTYP,IR1,ID2)
  21 :          IF (CTYP.NE.'ESCLAVE') THEN
  22 : *           Donnez une TABLE de sous-type %m1:8
  23 :             MOTERR(1:8)='ESCLAVE'
  23 :             CALL ERREUR(-173)
  24 : *           Le sous-type de la table est incorrect
  24 :             CALL ERREUR(648)
  25 :             RETURN
  26 :          ENDIF
  27 :          SEGACT MTABLE
  28 :          ML=MLOTAB
  29 : *        L'INDICE 1 EST LE SOUS TYPE
  30 :          IND=MTABII(2)
  31 :          CTYP=' '
  31 :          CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  32 :      >               CTYP,ID3,RR1,' ',IR1,ID1)
  33 :          IRETOU=ID1
  34 :          IF (CTYP.EQ.'MAILLAGE') THEN
  35 :             DO I=3,ML
  36 :                SEGACT MTABLE
  37 :                IND=MTABII(I)
  37 :                CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  38 :      >                     CTYP,ID3,RR1,' ',IR1,ID2)
  39 :                IF (IERR.NE.0) RETURN
  39 :                CALL FUSE(ID1,ID2,IRETOU,LTELQ)
  40 :                ID1=IRETOU
  41 :             ENDDO
  42 :             SEGDES MTABLE
  43 :             GOTO 100
  44 :          ELSEIF (CTYP.EQ.'MCHAML') THEN
  45 :             DO I=3,ML
  46 :                SEGACT MTABLE
  47 :                IND=MTABII(I)
  47 :                CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  48 :      >                     CTYP,ID3,RR1,' ',IR1,ID2)
  49 :                IF (IERR.NE.0) RETURN
  49 :                CALL FUSCHL(ID1,ID2,IRETOU)
  50 :                ID1=IRETOU
  51 :             ENDDO
  52 :             SEGDES MTABLE
  53 :             GOTO 100
  54 :          ELSEIF (CTYP.EQ.'CHPOINT ') THEN
  55 :             DO I=3,ML
  56 :                SEGACT MTABLE
  57 :                IND=MTABII(I)
  57 :                CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  58 :      >                     CTYP,ID3,RR1,' ',IR1,ID2)
  58 :                CALL FUCHPO(ID1,ID2,IRETOU)
  59 :                IF (IERR.NE.0) RETURN
  60 :                ID1=IRETOU
  61 :             ENDDO
  62 :             SEGDES MTABLE
  63 :             GOTO 100
  64 :          ELSEIF (CTYP.EQ.'RIGIDITE') THEN
  65 :             DO I=3,ML
  66 :                SEGACT MTABLE
  67 :                IND=MTABII(I)
  67 :                CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  68 :      >                     CTYP,ID3,RR1,' ',IR1,ID2)
  68 :                CALL FUSRIG(ID1,ID2,IRETOU)
  69 :                IF (IERR.NE.0) RETURN
  70 :                ID1=IRETOU
  71 :             ENDDO
  72 :             SEGDES MTABLE
  73 :             GOTO 100
  74 :          ELSEIF (CTYP.EQ.'MMODEL') THEN
  75 :             DO I=3,ML
  76 :                SEGACT MTABLE
  77 :                IND=MTABII(I)
  77 :                CALL ACCTAB(MTABLE,'ENTIER',IND,0.D0,' ',.TRUE.,0,
  78 :      >                     CTYP,ID3,RR1,' ',IR1,ID2)
  78 :                CALL FUSMOD(ID1,ID2,IRETOU)
  79 :                IF (IERR.NE.0) RETURN
  80 :                ID1=IRETOU
  81 :             ENDDO
  82 :             SEGDES MTABLE
  83 :             GOTO 100
  84 :          ELSE
  85 : *           Donnez une TABLE de sous-type %m1:8
  86 :             MOTERR(1:8)='MAILLAGE'
  86 :             CALL ERREUR(-173)
  87 : *           Le sous-type de la table est incorrect
  87 :             CALL ERREUR(648)
  88 :             RETURN
  89 :          ENDIF
  89 : 100      call ecrobj(ctyp,id1)
  90 :       ELSE 
  90 :         call refus
  91 :       ENDIF
  92 :       END
  93 :  

© Cast3M 2003 - All rights reserved.
Disclaimer