Download elimin3.eso

Back to the list

   1 : C ELIMIN3   SOURCE    FANDEUR   13/01/02    21:15:04     7653           
   2 : 
   3 : ************************************************************************
   4 : * NOM         : ELIMIN3
   5 : * DESCRIPTION : Supprime les doublons dans un LISTREEL
   6 : ************************************************************************
   7 : * HISTORIQUE : 22/05/2012 : JCARDO : Creation de la subroutine
   8 : * HISTORIQUE : 21/12/2012 : OF : Adaptation a UNIQue
   9 : ************************************************************************
  10 : * Priere de PRENDRE LE TEMPS DE COMPLETER LES COMMENTAIRES
  11 : * en cas de modification de ce sous-programme afin de faciliter
  12 : * la maintenance !
  13 : ************************************************************************
  14 : * SYNTAXE (GIBIANE)
  15 : *        LREELS = UNIQ LREELE (FLOT1) ;
  16 : ************************************************************************
  17 : 
  18 :       SUBROUTINE ELIMIN3(IPLREE,ICRIT,RCRIT)
  19 : 
  20 :       IMPLICIT INTEGER(I-N)
  21 :       IMPLICIT REAL*8(A-H,O-Z)
  22 : 
  23 : -INC SMLREEL
  24 : 
  25 :       MLREE1 = IPLREE
  26 :       SEGINI,MLREEL=MLREE1
  27 : 
  28 :       NN = PROG(/1)
  29 : 
  30 : c Recherche des doublons (a la precision pres)
  31 :       IF (NN.GT.1) THEN
  32 :         JG = 1
  33 :         IF (ICRIT.EQ.0) THEN
  34 :           DO 10 I = 2, NN
  35 :             R_ZI = PROG(I)
  36 :             R_ZA = ABS(R_ZI)
  37 :             DO J = 1, JG
  38 :               R_ZJ = PROG(J)
  39 :               XCRIT = RCRIT * MAX(R_ZA, ABS(R_ZJ))
  40 :               IF (ABS(R_ZI-R_ZJ).LT.XCRIT) GOTO 10
  41 :             ENDDO
  42 :             JG = JG + 1
  43 :             PROG(JG) = R_ZI
  44 :  10       CONTINUE
  45 :         ELSE
  46 :           DO 11 I = 2, NN
  47 :             R_ZI = PROG(I)
  48 :             DO J = 1, JG
  49 :               IF (ABS(R_ZI-PROG(J)).LT.RCRIT) GOTO 11
  50 :             ENDDO
  51 :             JG = JG + 1
  52 :             PROG(JG) = R_ZI
  53 :  11       CONTINUE
  54 :         ENDIF
  55 :         IF (JG.NE.NN) SEGADJ,MLREEL
  56 :       ENDIF
  57 : 
  58 :       SEGDES,MLREEL
  59 :       IPLREE = MLREEL
  60 : 
  61 :       RETURN
  62 :       END
  63 : 
  64 :  

© Cast3M 2003 - All rights reserved.
Disclaimer