unique
C UNIQUE SOURCE PV090527 23/02/02 21:15:10 11577 C======================================================================= C======================================================================= SUBROUTINE UNIQUE IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL SEGMENT MPILO INTEGER ITYOBJ(INOBJ) INTEGER IPEOBJ(INOBJ) INTEGER IPSOBJ(INOBJ) ENDSEGMENT PARAMETER (NCLE = 2, NTYP = 4) CHARACTER*4 LICLE(NCLE) CHARACTER*8 LITYP(NTYP) CHARACTER*8 TYPI DATA LICLE / 'NOCA','ORDO'/ DATA LITYP / 'LISTENTI','LISTREEL','LISTMOTS','MAILLAGE' / C- Lecture des mots-cles et autres options INOCA = 0 INOCA = 0 iordre=0 10 CONTINUE IF (IERR.NE.0) RETURN IF (IRETOU.EQ.1) inoca=1 IF (IRETOU.EQ.2) iordre=1 INOCA = IRETOU 11 CONTINUE IF (IERR.NE.0) RETURN IF (ICRIT.NE.0) THEN RCRIT = FLOT1 ELSE RCRIT = 10.D0 * XZPREC ENDIF RCRIT = ABS(RCRIT) C- Lecture des objets a analyser INOBJ = 50 SEGINI,MPILO NBOBJ = 0 20 CONTINUE TYPI = ' ' IF (IERR.NE.0) GOTO 900 IF (IRETOU.EQ.0) GOTO 21 IF (IPLAC.EQ.0) THEN C ERREUR => "On ne veut pas d'objet de type %m1:8" MOTERR(1:8) = TYPI GOTO 900 ENDIF IF (IERR.NE.0) GOTO 900 IF (NBOBJ.GE.INOBJ) THEN INOBJ = INOBJ + 50 SEGADJ,MPILO ENDIF NBOBJ = NBOBJ + 1 ITYOBJ(NBOBJ) = IPLAC IPEOBJ(NBOBJ) = IPOBJ IPSOBJ(NBOBJ) = IPOBJ GOTO 20 21 CONTINUE IF (NBOBJ.EQ.0) THEN GOTO 900 ENDIF C- Analyse des objets avec appel aux subroutines dediees DO I = 1, NBOBJ IPLAC = ITYOBJ(I) IPOBJ = IPSOBJ(I) IF (IPLAC.EQ.1) THEN ELSE IF (IPLAC.EQ.2) THEN ELSE IF (IPLAC.EQ.3) THEN ELSE IF (IPLAC.EQ.4) THEN ELSE ENDIF IPSOBJ(I) = IPOBJ ENDDO C- Ecriture des objets resultats sans doublon DO I = NBOBJ, 1, -1 TYPI = LITYP(ITYOBJ(I)) IPOBJ = IPSOBJ(I) ENDDO 900 CONTINUE SEGSUP,MPILO RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales