Télécharger ordo04.eso

Retour à la liste

Numérotation des lignes :

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

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