Télécharger place3.eso

Retour à la liste

Numérotation des lignes :

  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.  
  106.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales