1 subroutine utrech ( reel, cadrag, lgchac, chacar,
2 > ulsort, langue, codret )
3 c ______________________________________________________________________
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c Version originale enregistree le 18 juin 1996 sous le numero 96036
10 c aupres des huissiers de justice Simart et Lavoir a Clamart
11 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
12 c aupres des huissiers de justice
13 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c HOMARD est une marque deposee d'Electricite de France
21 c ______________________________________________________________________
23 c UTilitaire - convertit un REel en CHaine de caractere
26 c Si la chaine fournie est plus longue que le nombre de chiffres a
27 c ecrire, on complete par des blancs a droite ou a gauche, ou des 0
28 c a gauche selon le type de cadrage demande.
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . reel . e . 1 . reel a convertir .
34 c . cadrag . e . char*1 . type de cadrage d'entier ecrit .
35 c . . . . g/G : le nombre est cadre a gauche : '83 '.
36 c . . . . d/D : le nombre est cadre a droite : ' 83'.
37 c . . . . et on complete par des blancs .
38 c . lgchac . s . 1 . longueur de la chaine obtenue .
39 c . chacar . s .char*(*). chaine de caractere .
40 c . ulsort . e . 1 . unite logique de la sortie generale .
41 c . langue . e . 1 . langue des messages .
42 c . . . . 1 : francais, 2 : anglais .
43 c . codret . s . 1 . code de retour des modules .
44 c . . . . 0 : pas de probleme .
45 c . . . . 1 : chaine trop courte .
46 c . . . . 2 : le nombre est trop grand .
47 c . . . . 3 : type de cadrage inconnu .
48 c ______________________________________________________________________
51 c 0. declarations et dimensionnement
54 c 0.1. ==> generalites
60 parameter ( nompro = 'UTENCH' )
77 integer ulsort, langue, codret
80 parameter (nbmess = 10 )
81 character*80 texte(nblang,nbmess)
83 c 0.4. ==> variables locales
86 parameter ( lgfmt = 14 )
94 c 0.5. ==> initialisations
95 c ______________________________________________________________________
103 #ifdef _DEBUG_HOMARD_
104 write (ulsort,texte(langue,1)) 'Entree', nompro
108 texte(1,10) = '(''Reel a convertir : '',g14.5)'
109 texte(1,4) = '(''La chaine est trop petite : longueur = '',i4)'
110 texte(1,5) = '(''Il faudrait au moins '',i4,'' places.'')'
111 texte(1,7) = '(''Le type de cadrage est mauvais : '',a1)'
113 texte(2,10) = '(''Real to convert : '',g14.5)'
114 texte(2,4) = '(''The string is too short : length = '',i4)'
115 texte(2,5) = '(''At less'',i4,'' places are needed.'')'
116 texte(2,7) = '(''Bad choice : '',a1)'
118 #ifdef _DEBUG_HOMARD_
119 write (ulsort,texte(langue,10)) reel
128 c 2.1. ==> type de cadrage
130 if ( cadrag.eq.'d' .or. cadrag.eq.'D' ) then
132 elseif ( cadrag.eq.'g' .or. cadrag.eq.'G' ) then
138 c 2.2. ==> verification de la longueur
141 if ( lgfmt.gt.lgch00 ) then
147 if ( codret.eq.0 ) then
150 write(fmt(3:4),'(i2)') lgfmt
152 do 23 , iaux = 1 , lgch00
153 chacar(iaux:iaux) = ' '
157 write (chacar(1:lgfmt),fmt) reel
160 write (chacar(lgch00-lgfmt+1:lgch00),fmt) reel
170 if ( codret.ne.0 ) then
173 write (ulsort,texte(langue,1)) 'Sortie', nompro
174 write (ulsort,texte(langue,2)) codret
175 write (ulsort,texte(langue,10)) reel
176 if ( codret.eq.1 ) then
177 write (ulsort,texte(langue,4)) lgch00
178 write (ulsort,texte(langue,5)) lgfmt
179 elseif ( codret.eq.3 ) then
180 write (ulsort,texte(langue,7)) cadrag
182 #ifdef _DEBUG_HOMARD_
183 write (ulsort,texte(langue,1)) 'Sortie', nompro