enumer
C ENUMER SOURCE SP204843 26/02/03 21:15:18 12461 SUBROUTINE ENUMER *--------------------------------------------------------------------- * * OPERATEUR ENUMERER * * SYNTAXE : voir notice ENUM * *-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NCLE = 3) CHARACTER*8 CTYP CHARACTER*4 MOCLE(NCLE) LOGICAL LOGI1 C TYPES EXCLUS DE LA LISTE DATA MOCLE /'TABL','* ','COMP'/ -INC PPARAM -INC CCOPTIO -INC SMLOBJE C--------------------------------- C Option TABLE, '*', COMP C--------------------------------- ICLE = 0 C write(6,*) 'ICLE=',ICLE IF (ICLE.EQ.1) THEN CALL ENUTAB RETURN ELSE IF (ICLE.EQ.2) THEN CALL ENUFOI RETURN ELSE IF (ICLE.EQ.3) THEN CALL ENUCOM RETURN ENDIF C--------------------------------- C INITIALISATION RESULTAT C--------------------------------- IF (IERR.NE.0) RETURN IF (IPLA.EQ.0) THEN RETURN ENDIF * ENTIERS ou OBJETS (POINTEUR) LOGI1 = (IPLA.EQ.2).OR.(IPLA.GE.4) NOBJ = 0 NREE = 0 IF (LOGI1) NOBJ = 10000 IF (IPLA.EQ.3) NREE = 10000 SEGINI,MLOBJE NOBLU = 0 IF (IRETOU.EQ.0) GOTO 999 TYPOBJ(1:8) = CTYP NELT = MAX(NOBJ,NREE) C--------------------------------- C BOUCLE DE LECTURE DES OBJETS C--------------------------------- 1 CONTINUE C---- LECTURE D'UN OBJET ET AJOUT A LA LISTE IF (IERR.NE.0) RETURN NOBLU = NOBLU + 1 IF (NOBLU.GT.NELT) THEN IF (LOGI1) NOBJ = NOBJ + 10000 IF (IPLA.EQ.3) NREE = NREE + 10000 SEGADJ, MLOBJE ENDIF IF (LOGI1) LISOBJ(NOBLU) = IOBJ IF (IPLA.EQ.3) RLIREE(NOBLU) = XFLO C---- LECTURE ARGUMENT SUIVANT IF (IRETOU.EQ.0) THEN GOTO 999 ENDIF C---- VERIFICATION DU TYPE DE L'OBJET C MEME TYPE QUE 1ER ? IF (CTYP.NE.TYPOBJ) THEN MOTERR(1:8) = CTYP RETURN ENDIF C--------------------------------- C FIN DE BOUCLE C--------------------------------- GOTO 1 C--------------------------------- C SORTIE C--------------------------------- 999 CONTINUE IF (LOGI1) NOBJ = NOBLU IF (IPLA.EQ.3) NREE = NOBLU SEGADJ, MLOBJE SEGACT, MLOBJE*NOMOD RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales