Télécharger ordo02.eso

Retour à la liste

Numérotation des lignes :

ordo02
  1. C ORDO02 SOURCE CHAT 05/01/13 02:05:45 5004
  2. SUBROUTINE ORDO02 (MLIST,LLIST,CROISS)
  3. ************************************************************************
  4. *
  5. * O R D O 0 2
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * ORDONNER LE CONTENU D'UN TABLEAU UNICOLONNE D'ENTIERS.
  12. *
  13. * MODE D'APPEL:
  14. * -------------
  15. *
  16. * CALL ORDO02 (MLIST,LLIST,CROISS)
  17. *
  18. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  19. * -----------
  20. *
  21. * MLIST ENTIER (E) TABLEAU UNICOLONNE A REORDONNER.
  22. * (S) MEME TABLEAU, AVEC LES ELEMENTS REORDONNES.
  23. * LLIST ENTIER (E) DIMENSION DE "MLIST".
  24. * CROISS LOGIQUE (E) INDIQUE PAR "VRAI" OU "FAUX" SI LE TABLEAU
  25. * DOIT ETRE REORDONNE EN ORDRE CROISSANT.
  26. * SINON, CE SERA FAIT EN ORDRE DECROISSANT.
  27. *
  28. * AUTEUR, DATE DE CREATION:
  29. * -------------------------
  30. *
  31. * PASCAL MANIGOT 19 MARS 1985
  32. *
  33. * NOUVEL ALGORITHME PLUS PERFORMANT LE 14 MAI 1985 (P. MANIGOT)
  34. *
  35. * LANGAGE:
  36. * --------
  37. *
  38. * FORTRAN77
  39. *
  40. ************************************************************************
  41. *
  42. IMPLICIT INTEGER(I-N)
  43. INTEGER MLIST(*)
  44. *
  45. LOGICAL CROISS,DECROI
  46. *
  47. DECROI = .NOT.CROISS
  48. *
  49. DO 100 IB100=2,LLIST
  50. *
  51. ML100 = MLIST(IB100)
  52. IB101 = IB100 - 1
  53. *
  54. NRANG = IB100
  55. DO 110 IB110=IB101,1,-1
  56. ML110 = MLIST(IB110)
  57. IF ( (CROISS .AND. ML100.LT.ML110)
  58. & .OR. (DECROI .AND. ML100.GT.ML110) ) THEN
  59. NRANG = NRANG - 1
  60. ELSE
  61. * --> SORTIE DE BOUCLE N.110
  62. GOTO 112
  63. END IF
  64. 110 CONTINUE
  65. * END DO
  66. 112 CONTINUE
  67. *
  68. DO 120 IB120=IB101,NRANG,-1
  69. MLIST(IB120+1) = MLIST(IB120)
  70. 120 CONTINUE
  71. * END DO
  72. MLIST(NRANG) = ML100
  73. *
  74. 100 CONTINUE
  75. * END DO
  76. *
  77. END
  78.  
  79.  

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