1 subroutine utchs8 ( chacar, lgchac, tabch8,
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 - transfere une CHaine dans un tableau de String*8
26 c Remarque : on transfere stricto sensu le nombre de caracteres
27 c demandes, sans se preoccuper de savoir s'il y a des
28 c blancs ou des "mauvais" caracteres.
29 c Remarque : si on est oblige d'entamer une nouvelle case du tableau,
30 c on complete a droite par des blancs.
34 c chacar = 'Sous le pont Mirabeau coule la Seine'
35 c 123456789012345678901234567890123456
38 c devient : tabch8 (1) = 'Sous le '
39 c tabch8 (2) = 'pont Mir'
40 c tabch8 (3) = 'abeau co'
41 c tabch8 (4) = 'ule la S'
42 c tabch8 (5) = 'eine '
43 c ______________________________________________________________________
45 c . nom . e/s . taille . description .
46 c .____________________________________________________________________.
47 c . chacar . e .char*(*). chaine de caractere .
48 c . lgchac . e . 1 . nombre de caracteres a transferer .
49 c . tabch8 . s . * . tableau a remplir .
50 c . ulsort . e . 1 . unite logique de la sortie generale .
51 c . langue . e . 1 . langue des messages .
52 c . . . . 1 : francais, 2 : anglais .
53 c . codret . s . 1 . code de retour des modules .
54 c . . . . 0 : pas de probleme .
55 c . . . . 1 : chaine trop courte .
56 c ______________________________________________________________________
59 c 0. declarations et dimensionnement
62 c 0.1. ==> generalites
68 parameter ( nompro = 'UTCHS8' )
83 integer ulsort, langue, codret
86 parameter (nbmess = 10 )
87 character*80 texte(nblang,nbmess)
89 c 0.4. ==> variables locales
92 integer lencha, nbchar, nbpack
94 c 0.5. ==> initialisations
95 c ______________________________________________________________________
103 #ifdef _DEBUG_HOMARD_
104 write (ulsort,texte(langue,1)) 'Entree', nompro
108 texte(1,4) = '(''Chaine a transferer : '')'
109 texte(1,5) = '(''La chaine est declaree en char*'',i4)'
110 texte(1,6) = '(''mais on veut transferer '',i4,'' caracteres !'')'
112 texte(2,4) = '(''String to convert : '')'
113 texte(2,5) = '(''The string is declared as char*'',i4)'
114 texte(2,6) = '(''but, '',i4,'' characters must be moved !'')'
116 #ifdef _DEBUG_HOMARD_
117 write (ulsort,texte(langue,4))
118 write (ulsort,*) chacar
122 c 2. verification de la longueur
128 if ( lgchac.gt.lencha ) then
136 if ( codret.eq.0 ) then
138 nbchar = mod(lgchac,8)
139 nbpack = ( lgchac - nbchar ) / 8
142 do 31 , iaux = 1 , nbpack
143 tabch8(iaux) = chacar(jaux:jaux+7)
147 if ( nbchar.gt.0 ) then
149 tabch8(nbpack+1) = ' '
150 tabch8(nbpack+1)(1:nbchar) = chacar(jaux:jaux+nbchar-1)
159 if ( codret.ne.0 ) then
162 write (ulsort,texte(langue,1)) 'Sortie', nompro
163 write (ulsort,texte(langue,2)) codret
164 write (ulsort,texte(langue,4))
165 write (ulsort,*) chacar
166 write (ulsort,texte(langue,5)) lencha
167 write (ulsort,texte(langue,6)) lgchac
170 #ifdef _DEBUG_HOMARD_
171 write (ulsort,texte(langue,1)) 'Sortie', nompro