Télécharger ords01.eso

Retour à la liste

Numérotation des lignes :

ords01
  1. C ORDS01 SOURCE GOUNAND 26/01/09 21:15:45 12442
  2. SUBROUTINE ORDS01 (XLIST,LLIST,ISTRID)
  3. ************************************************************************
  4. *
  5. * O R D O 0 1
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * ORDONNER LE CONTENU D'UN TABLEAU UNICOLONNE DE REELS.
  12. *
  13. * MODE D'APPEL:
  14. * -------------
  15. *
  16. * CALL ORDO01 (XLIST,LLIST,CROISS)
  17. *
  18. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  19. * -----------
  20. *
  21. * XLIST REEL DP (E) TABLEAU UNICOLONNE A REORDONNER.
  22. * (S) MEME TABLEAU, AVEC LES ELEMENTS REORDONNES.
  23. * LLIST ENTIER (E) DIMENSION DE "XLIST".
  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. REAL*8 XLIST(*)
  44. PARAMETER(ISTMAX=5)
  45. REAL*8 XL100(ISTMAX),XL110
  46. *
  47. IF (ISTRID.LT.1.OR.ISTRID.GT.ISTMAX) THEN
  48. write(6,*) 'Incorrect ISTRID=',ISTRID
  49. CALL ERREUR(5)
  50. RETURN
  51. ENDIF
  52. * write(6,188) 'Deb ords',(XLIST(II),II=1,ISTRID*LLIST)
  53.  
  54. DO 100 IB100=2,LLIST
  55. *
  56. JB100=(IB100-1)*ISTRID
  57. DO K=1,ISTRID
  58. XL100(K) = XLIST(JB100+K)
  59. ENDDO
  60. IB101 = IB100 - 1
  61. *
  62. NRANG = IB100
  63. DO 110 IB110=IB101,1,-1
  64. JB110=(IB110-1)*ISTRID
  65. DO K=1,ISTRID
  66. *! DO K=1,1
  67. XL110 = XLIST(JB110+K)
  68. IF (XL100(K).LT.XL110) THEN
  69. NRANG = NRANG - 1
  70. GOTO 111
  71. * --> SORTIE DE BOUCLE K
  72. ELSEIF (XL100(K).GT.XL110) THEN
  73. * --> SORTIE DE BOUCLE N.110
  74. GOTO 112
  75. END IF
  76. ENDDO
  77. 111 CONTINUE
  78. 110 CONTINUE
  79. * END DO
  80. 112 CONTINUE
  81. *
  82. DO 120 IB120=IB101,NRANG,-1
  83. JB120=(IB120-1)*ISTRID
  84. DO K=1,ISTRID
  85. XLIST(JB120+ISTRID+K) = XLIST(JB120+K)
  86. ENDDO
  87. 120 CONTINUE
  88. * END DO
  89. JRANG=(NRANG-1)*ISTRID
  90. DO K=1,ISTRID
  91. XLIST(JRANG+K) = XL100(K)
  92. ENDDO
  93. *
  94. 100 CONTINUE
  95. * END DO
  96. 188 FORMAT (A12,2X,12(1PG12.5,2X))
  97. *
  98. END
  99.  
  100.  

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