Download place3.eso

Back to the list

   1 : C PLACE3    SOURCE    CHAT      05/01/13    02:14:36     5004           
   2 :       SUBROUTINE PLACE3 (XLIST,IL,JL,RR,  IR,AR)                                
   3 : ************************************************************************        
   4 : *                                                                               
   5 : *                             P L A C E 3                                       
   6 : *                             -----------                                       
   7 : *                                                                               
   8 : * FONCTION:                                                                     
   9 : * ---------                                                                     
  10 : *                                                                               
  11 : *     DONNER LA POSITION D'UN REEL DANS UNE LISTE DE REELS ORDONNES             
  12 : *     EN ORDRE STRICTEMENT CROISSANT.                                           
  13 : *     LE REEL PEUT NE PAS APPARTENIR A LA LISTE.                                
  14 : *                                                                               
  15 : * MODULES UTILISES:                                                             
  16 : * -----------------                                                             
  17 : *                                                                               
  18 :       IMPLICIT INTEGER(I-N)
  19 : -INC CCREEL                                                                     
  20 : *                                                                               
  21 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  22 : * -----------                                                                   
  23 : *                                                                               
  24 : *     XLIST   (E)  LISTE DE REELS EN ORDRE STRICTEMENT CROISSANT.               
  25 : *     IL      (E)  DEBUT DE LA PARTIE UTILE DE "XLIST".                         
  26 : *     JL      (E)  FIN DE LA PARTIE UTILE DE "XLIST".                           
  27 : *     RR      (E)  REEL A POSITIONNER DANS LA PARTIE (IL,JL) DE "XLIST".        
  28 : *     IR      (S)  POSITION, DANS LA LISTE, DU REEL IMMEDIATEMENT               
  29 : *                  INFERIEUR (OU EGAL) A "RR".                                  
  30 : *                  = (IL-1)  SI  RR < XLIST(IL)                                 
  31 : *                  = JL      SI  RR > XLIST(JL)                                 
  32 : *                                                                               
  33 : *     AR      (S)  DISTANCE RELATIVE DE "RR" AVEC SON VOISIN DANS LA            
  34 : *                  LISTE. PLUS PRECISEMENT:                                     
  35 : *                                                                               
  36 : *                           RR - XLIST(IR)                                      
  37 : *                  AR = -----------------------                                 
  38 : *                       XLIST(IR+1) - XLIST(IR)                                 
  39 : *                                                                               
  40 : *                           XLIST(IL) - RR                                      
  41 : *                  OU   -----------------------   SI  IR=IL-1                   
  42 : *                        MIN(|XLIST(IL)|,|RR|)                                  
  43 : *                                                                               
  44 : *                           RR - XLIST(JL)                                      
  45 : *                  OU   -----------------------   SI  IR=JL                     
  46 : *                        MIN(|RR|,|XLIST(JL)|)                                  
  47 : *                                                                               
  48 : *     RQ:  RR = (1-AR)*XLIST(IR) + AR*XLIST(IR+1)                               
  49 : *          (SAUF SI "IR" VAUT "(IL-1)" OU "JL").                                
  50 : *                                                                               
  51 :       INTEGER IL,JL,IR                                                          
  52 :       REAL*8 XLIST(*),RR,AR                                                     
  53 : *                                                                               
  54 : * VARIABLES:                                                                    
  55 : * ----------                                                                    
  56 : *                                                                               
  57 :       REAL*8 RR1                                                                
  58 : *                                                                               
  59 : * MODE DE FONCTIONNEMENT:                                                       
  60 : * -----------------------                                                       
  61 : *                                                                               
  62 : *     L'INDICE "IL" EST SUPPOSE BIEN CHOISI POUR QU'UNE RECHERCHE PAS A         
  63 : *     PAS DANS LE SENS DES INDICES CROISSANTS SOIT LA METHODE LA PLUS           
  64 : *     RAPIDE POUR POSITIONNER "RR".                                             
  65 : *                                                                               
  66 : * AUTEUR, DATE DE CREATION:                                                     
  67 : * -------------------------                                                     
  68 : *                                                                               
  69 : *     PASCAL MANIGOT     24 MARS 1988                                           
  70 : *                                                                               
  71 : * LANGAGE:                                                                      
  72 : * --------                                                                      
  73 : *                                                                               
  74 : *     FORTRAN77                                                                 
  75 : *                                                                               
  76 : ************************************************************************        
  77 : *                                                                               
  78 :       IR = JL                                                                   
  79 : *                                                                               
  80 :       DO 100 I=IL,JL                                                            
  81 :          IF (XLIST(I) .GT. RR) THEN                                             
  82 :             IR = I - 1                                                          
  83 : *           EXIT                                                                
  84 :             GOTO 102                                                            
  85 :          END IF                                                                 
  86 :   100    CONTINUE                                                               
  87 : *     END DO                                                                    
  88 :   102 CONTINUE                                                                  
  89 : *                                                                               
  90 :       IF (IR .EQ. (IL-1) ) THEN                                                 
  91 :          RR1 = MIN( ABS(RR),ABS(XLIST(IL)) )                                    
  92 :          RR1 = MAX(RR1,XPETIT)                                                  
  93 :          AR = (XLIST(IL) - RR) / RR1                                            
  94 :       ELSE IF (IR .EQ. JL) THEN                                                 
  95 :          RR1 = MIN( ABS(RR),ABS(XLIST(JL)) )                                    
  96 :          RR1 = MAX(RR1,XPETIT)                                                  
  97 :          AR = (RR - XLIST(JL) ) / RR1                                           
  98 :       ELSE                                                                      
  99 :          AR = (RR - XLIST(IR) ) / (XLIST(IR+1) - XLIST(IR) )                    
 100 :       END IF                                                                    
 101 : *                                                                               
 102 :       END                                                                       
 103 :  
 104 :  
 105 :  

© Cast3M 2003 - All rights reserved.
Disclaimer