cuniq
C CUNIQ SOURCE GOUNAND 06/08/03 21:15:02 5513 $ LMUNIQ,NBUNIQ, $ IMPR,IRET) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : CUNIQ C PROJET : Noyau linéaire NLIN C DESCRIPTION : Un tableau de mots avec des doublons => un tableau de C mots sans doublons. C Algorithme en n^2 => pas de longs tableaux C C LANGAGE : Fortran 77 (sauf E/S) C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELE PAR : PRASEM C*********************************************************************** C ENTREES : LDOUBL, LNMOTS, NBMOTS C SORTIES : LMUNIQ, NBUNIQ C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 30/09/99, version initiale C HISTORIQUE : v1, 30/09/99, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO INTEGER LNMOTS,NBMOTS CHARACTER*(*) LDOUBL(NBMOTS) CHARACTER*(*) LMUNIQ(NBMOTS) INTEGER NBUNIQ * INTEGER IMPR,IRET * INTEGER I,J LOGICAL LFOUND * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans cuniq' IF (NBMOTS.GT.0) THEN NBUNIQ=1 LMUNIQ(1)(1:LNMOTS)=LDOUBL(1)(1:LNMOTS) DO 1 I=2,NBMOTS LFOUND=.FALSE. J=0 12 CONTINUE J=J+1 IF (LMUNIQ(J)(1:LNMOTS).EQ.LDOUBL(I)(1:LNMOTS)) THEN LFOUND=.TRUE. ELSE IF (J.LT.NBUNIQ) THEN GOTO 12 ENDIF ENDIF IF (.NOT.LFOUND) THEN NBUNIQ=NBUNIQ+1 LMUNIQ(NBUNIQ)(1:LNMOTS)=LDOUBL(I)(1:LNMOTS) ENDIF 1 CONTINUE ELSE NBUNIQ=0 ENDIF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine cuniq' RETURN * * End of subroutine CUNIQ * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales