1 subroutine uttrir ( classt, vmin, vmax,
3 > ulsort, langue, codret)
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c UTilitaire - TRI d'un tableau Reel
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . classt . s . nbval . classement des numeros associes aux valeurs.
31 c . . . . 1 : le numero de la plus petite valeur .
32 c . . . . nbval : le numero de la plus grande valeur .
33 c . vmin . s . 1 . valeur minimale atteinte .
34 c . vmax . s . 1 . valeur maximale atteinte .
35 c . nbval . e . 1 . nombre de valeurs a traiter .
36 c . valeur . e . nbval . liste des valeurs a ranger .
37 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
38 c . langue . e . 1 . langue des messages .
39 c . . . . 1 : francais, 2 : anglais .
40 c . codret . es . 1 . code de retour des modules .
41 c . . . . 0 : pas de probleme .
42 c . . . . 1 : probleme .
43 c ______________________________________________________________________
46 c 0. declarations et dimensionnement
49 c 0.1. ==> generalites
55 parameter ( nompro = 'UTTRIR' )
68 double precision valeur(nbval), vmin, vmax
70 integer ulsort, langue, codret
72 c 0.4. ==> variables locales
75 integer numero, nbvtri
78 parameter ( nbmess = 10 )
79 character*80 texte(nblang,nbmess)
81 c 0.5. ==> initialisations
82 c ______________________________________________________________________
91 write (ulsort,texte(langue,1)) 'Entree', nompro
95 texte(1,4) = '(''Tri d''''un tableau reel.'')'
96 texte(1,5) = '(''Nombre de valeurs a trier :'',i13)'
97 texte(1,6) = '(''Valeur minimale :'',g13.7)'
98 texte(1,7) = '(''Valeur maximale :'',g13.7)'
100 texte(2,4) = '(''Sort of a real array.'')'
101 texte(2,5) = '(''Number of valeurs to sort :'',i13)'
102 texte(2,6) = '(''Minimum value :'',g13.7)'
103 texte(2,7) = '(''Maximum value :'',g13.7)'
105 #ifdef _DEBUG_HOMARD_
106 write (ulsort,texte(langue,4))
107 write (ulsort,texte(langue,5)) nbval
108 1000 format (a,'(',i13,') = ',g13.8)
109 1001 format (a,'(',g13.8,') = ',g13.8)
118 do 21 , iaux = 1 , nbval
120 #ifdef _DEBUG_HOMARD_
121 write (ulsort,1000) 'valeur',iaux, valeur(iaux)
124 c 2.1. ==> recherche de la valeur superieure a la courante parmi
125 c les valeurs deja classees
127 do 211 , jaux = 1 , nbvtri
128 #ifdef _DEBUG_HOMARD_
129 write (ulsort,1000) ' classt',jaux, classt(jaux)
131 if ( valeur(classt(jaux)).gt.valeur(iaux) ) then
139 c 2.2. ==> insertion de l'element courant a la bonne place dans la liste
143 #ifdef _DEBUG_HOMARD_
144 write (ulsort,1001) ' ==> numero',valeur(iaux), numero
147 do 213 , jaux = nbvtri, numero, -1
148 classt(jaux+1) = classt(jaux)
151 classt(numero) = iaux
157 vmin = valeur(classt(1))
158 vmax = valeur(classt(nbval))
160 #ifdef _DEBUG_HOMARD_
161 write (ulsort,texte(langue,6)) vmin
162 write (ulsort,texte(langue,7)) vmax
169 if ( codret.ne.0 ) then
173 write (ulsort,texte(langue,1)) 'Sortie', nompro
174 write (ulsort,texte(langue,2)) codret
178 #ifdef _DEBUG_HOMARD_
179 write (ulsort,texte(langue,1)) 'Sortie', nompro