1 : C IUNIQ SOURCE CHAT 05/01/13 00:45:28 5004 2 : SUBROUTINE IUNIQ(LIDOUB,NBENTI, 3 : $ LIUNIQ,NBUNIQ, 4 : $ IMPR,IRET) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8 (A-H,O-Z) 7 : C*********************************************************************** 8 : C NOM : IUNIQ 9 : C PROJET : Castem 2000 10 : C DESCRIPTION : Une liste d'entiers avec des doublons => une liste 11 : C d'entiers sans doublons. 12 : C 13 : C LANGAGE : Fortran 77 (sauf E/S) 14 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 15 : C mél : gounand@semt2.smts.cea.fr 16 : C*********************************************************************** 17 : C APPELE PAR : PRASEM 18 : C*********************************************************************** 19 : C ENTREES : LIDOUB, NBENTI 20 : C SORTIES : LIUNIQ, NBUNIQ 21 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 22 : C*********************************************************************** 23 : C VERSION : v1, 05/10/99, version initiale 24 : C HISTORIQUE : v1, 05/10/99, création 25 : C HISTORIQUE : 26 : C HISTORIQUE : 27 : C*********************************************************************** 28 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 29 : C en cas de modification de ce sous-programme afin de faciliter 30 : C la maintenance ! 31 : C*********************************************************************** 32 : -INC CCOPTIO 33 : INTEGER NBENTI,NBUNIQ 34 : INTEGER LIDOUB(NBENTI) 35 : INTEGER LIUNIQ(NBUNIQ) 36 : * 37 : INTEGER IMPR,IRET 38 : * 39 : INTEGER I,J 40 : LOGICAL LFOUND 41 : * 42 : * Executable statements 43 : * 44 : IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans iuniq' 45 : NBUNIQ=1 46 : LIUNIQ(1)=LIDOUB(1) 47 : DO 1 I=2,NBENTI 48 : LFOUND=.FALSE. 49 : J=0 50 : 12 CONTINUE 51 : J=J+1 52 : IF (LIUNIQ(J).EQ.LIDOUB(I)) THEN 53 : LFOUND=.TRUE. 54 : ELSE 55 : IF (J.LT.NBUNIQ) THEN 56 : GOTO 12 57 : ENDIF 58 : ENDIF 59 : IF (.NOT.LFOUND) THEN 60 : NBUNIQ=NBUNIQ+1 61 : LIUNIQ(NBUNIQ)=LIDOUB(I) 62 : ENDIF 63 : 1 CONTINUE 64 : * 65 : * Normal termination 66 : * 67 : IRET=0 68 : RETURN 69 : * 70 : * Format handling 71 : * 72 : * 73 : * Error handling 74 : * 75 : 9999 CONTINUE 76 : IRET=1 77 : WRITE(IOIMP,*) 'An error was detected in subroutine iuniq' 78 : RETURN 79 : * 80 : * End of subroutine IUNIQ 81 : * 82 : END 83 : 84 : 85 :
© Cast3M 2003 - All rights reserved.
Disclaimer