enutab
C ENUTAB SOURCE SP204843 26/02/03 21:15:18 12461 SUBROUTINE ENUTAB *--------------------------------------------------------------------- * * OPTION TABLE OPERATEUR ENUMERER * * SYNTAXE : voir notice ENUM * *-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NMOCLE = 1) CHARACTER*8 CTYP LOGICAL LCROI,LABSO -INC PPARAM -INC CCOPTIO -INC SMLOBJE -INC SMTABLE -INC SMLENTI C--------------------------------- C LECTURE DE LA TABLE C--------------------------------- IF (IERR.NE.0) RETURN c write(6,*) 'ITAB1=',ITAB1 C--------------------------------- C LISTE INDICES ENTIERS DE LA TABLE C--------------------------------- MTABLE = ITAB1 SEGACT, MTABLE JG = MLOTAB SEGINI, MLENTI, MLENT1 DO 10 I1=1,MLOTAB IF (MTABTI(I1).EQ.'ENTIER ') THEN LECT(I1) = MTABII(I1) CTYP = MTABTV(I1) ENDIF 10 CONTINUE c write(6,*) 'MLENTI,MLENT1,CTYP=',MLENTI,MLENT1,CTYP C--------------------------------- C VERIFICATION LISTE INDICES ENTIER C EST CORRECTEMENT ORONNEE C--------------------------------- LCROI = .true. LABSO = .false. IF (IERR.NE.0) RETURN SEGACT,MLENT1 c write(6,*) 'MLENT1.lect(/1)=',MLENT1.LECT(/1) IF (IPLA.EQ.0) THEN RETURN ENDIF C-------------------------- CAS DU LISTOBJE ---------------------------C NOBJ = 0 NREE = 0 IF (IPLA.EQ.2) NOBJ = MLOTAB IF (IPLA.EQ.3) NREE = MLOTAB IF (IPLA.GE.4) NOBJ = MLOTAB SEGINI,MLOBJE TYPOBJ(1:8) = CTYP C BOUCLE DE LECTURE DES OBJETS NOBLU = 0 DO 1 IND1=1,MLOTAB C IND2 : indice de la table apres ORDON2 IND2 = MLENT1.LECT(IND1) C TYPE DE L'INDICE : PAS ENTIER => ON ITERE c write(6,*) 'IND2,(MTABTI(IND2)=',IND2,MTABTI(IND2) IF (MTABTI(IND2)(1:8).NE.'ENTIER ') GOTO 1 C VERIFICATION DU TYPE de L'OBJET CONTENU EN INDICE CTYP = MTABTV(IND2) c write(6,*) 'CTYP=',CTYP IF (CTYP.NE.TYPOBJ) THEN MOTERR(1:8) = CTYP RETURN ENDIF C AJOUT A LA LISTE NOBLU = NOBLU + 1 IF (IPLA.EQ.2) LISOBJ(NOBLU) = MTABIV(IND2) IF (IPLA.EQ.3) RLIREE(NOBLU) = RMTABV(IND2) IF (IPLA.GE.4) LISOBJ(NOBLU) = MTABIV(IND2) 1 CONTINUE C Ecriture du resultat IF (IPLA.EQ.2) NOBJ = NOBLU IF (IPLA.EQ.3) NREE = NOBLU IF (IPLA.GE.4) NOBJ = NOBLU SEGADJ, MLOBJE SEGACT, MLOBJE*NOMOD RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales