C ENUCOM SOURCE SP204843 26/02/03 21:15:15 12461 SUBROUTINE ENUCOM *--------------------------------------------------------------------- * * OPTION 'COMP' OPERATEUR ENUMERER * * SYNTAXE : voir notice ENUM * *-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLOBJE -INC SMLMOTS CHARACTER*8 CTYP CHARACTER*(LOCOMP) MOT C--------------------------------- C LECTURE DES CHAMPS C--------------------------------- CALL QUETYP(CTYP,1,IRET) IF (IERR.NE.0) RETURN IK = 0 CALL PLAMO8(LTYPOB,NTYPOB,IPLA,CTYP) IF (IPLA.EQ.0) THEN CALL ERREUR(1138) RETURN ELSEIF (IPLA.EQ.30) THEN IK = 1 ELSEIF (IPLA.EQ.9) THEN IK = 2 ELSE CALL ERREUR(21) RETURN ENDIF CALL LIROBJ(CTYP,IPOBJ,1,IRET) IF (IERR.NE.0) RETURN CALL ACTOBJ(CTYP,IPOBJ,1) IF (IERR.NE.0) RETURN C--------------------------------- C EXTRACTION DES NOMS DE COMPOSANTE C--------------------------------- IF (IK.EQ.1) THEN CALL EXTR17(IPOBJ,IPLMO) IF (IERR.NE.0) RETURN ELSEIF (IK.EQ.2) THEN CALL EXTR11(IPOBJ,IPLMO) IF (IERR.NE.0) RETURN ELSE CALL ERREUR(5) RETURN ENDIF C--------------------------------- C DEFINITION DU LISTOBJE C--------------------------------- MLMOTS = IPLMO SEGACT,MLMOTS NOBJ = MOTS(/2) NREE = 0 SEGINI,MLOBJE TYPOBJ = CTYP C BOUCLE SUR LES COMPOSANTES IF (NOBJ.GT.0) THEN C CAS D'UN MCHAML IF (IK.EQ.1) THEN DO ICP=1,NOBJ MOT = MOTS(ICP) CALL EXCOC1(IPOBJ,MOT,IPCH2,MOT,0) IF (IERR.NE.0) RETURN LISOBJ(ICP) = IPCH2 CALL ACTOBJ('MCHAML ',IPCH2,1) ENDDO C CAS D'UN CHPOINT ELSE IF (IFOUR.EQ.1) then NIF1 = NIFOUR NIF2 = NIFOUR ELSE NIF1 = 0 NIF2 = 0 ENDIF DO ICP=1,NOBJ MOT = MOTS(ICP) CALL EXCOPP(IPOBJ,MOT,NIF1,IPCH2,MOT,NIF2,0) IF (IERR.NE.0) RETURN LISOBJ(ICP) = IPCH2 CALL ACTOBJ('CHPOINT ',IPCH2,1) ENDDO ENDIF ENDIF C--------------------------------- C ECRITURE DU RESULTAT C--------------------------------- SEGACT, MLOBJE*NOMOD CALL ECROBJ('LISTOBJE',MLOBJE) RETURN END