1 subroutine utchnu ( option, nbenti, nounum,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c UTilitaire - CHangement de NUmerotation d'une table
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . option . e . 1 . type de renumerotation .
32 c . . . . 1 : changement de l'indice de la table .
33 c . . . . 2 : changement du contenu de la table .
34 c . . . . 3 : changement de l'indice et du contenu .
35 c . nbenti . e . 1 . nombre d'entites .
36 c . nounum . e . nbenti . nouveau numero des entites .
37 c . dim1 . e . 1 . 1ere dimension de la table a renumeroter .
38 c . dim2 . e . 1 . 2nde dimension de la table a renumeroter .
39 c . table . es .dim1dim2. table a renumeroter .
40 c . tabaux . a .dim1dim2. tableau auxiliaire pour les options 1 et 3 .
41 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
42 c . langue . e . 1 . langue des messages .
43 c . . . . 1 : francais, 2 : anglais .
44 c . codret . es . 1 . code de retour des modules .
45 c . . . . 0 : pas de probleme .
46 c . . . . 1 : mauvais choix d'option .
47 c . . . . 2 : mauvaises dimensions .
48 c ______________________________________________________________________
51 c 0. declarations et dimensionnement
54 c 0.1. ==> generalites
60 parameter ( nompro = 'UTCHNU' )
73 integer table(dim1,dim2)
74 integer nounum(0:nbenti)
75 integer tabaux(dim1,dim2)
77 integer ulsort, langue, codret
79 c 0.4. ==> variables locales
85 parameter ( nbmess = 10 )
86 character*80 texte(nblang,nbmess)
88 c 0.5. ==> initialisations
89 c ______________________________________________________________________
100 write (ulsort,texte(langue,1)) 'Entree', nompro
104 texte(1,4) = '(''Nombre d''''entites :'',i10)'
105 texte(1,5) = '(''Option'',i10,'' impossible.'')'
106 texte(1,6) = '(''Dimension'',i2,'' :'',i10)'
108 > '(''Une dimension doit etre egale au nombre d''''entites.'')'
109 texte(1,8) = '(''Changement de l''''indice de la table'')'
110 texte(1,9) = '(''Changement du contenu de la table'')'
111 texte(1,10) = '(''Changement de l''''indice et du contenu'')'
113 texte(2,4) = '(''Number of entities :'',i10)'
114 texte(2,5) = '(''Option'',i10,'' impossible.'')'
115 texte(2,6) = '(''Dimension #'',i2,'' :'',i10)'
117 > '(''One should be equal to the number of entities.'')'
121 #ifdef _DEBUG_HOMARD_
122 write (ulsort,texte(langue,4)) nbenti
123 write (ulsort,texte(langue,6)) 1, dim1
124 write (ulsort,texte(langue,6)) 2, dim2
132 if ( option.le.0 .or. option.ge.4 ) then
134 write (ulsort,texte(langue,5)) option
139 #ifdef _DEBUG_HOMARD_
140 if ( codret.eq.0 ) then
141 write (ulsort,texte(langue,7+option))
145 c 2.2. ==> Les dimensions
147 if ( codret.eq.0 ) then
149 if ( option.eq.1 .or. option.eq.3 ) then
151 if ( dim1.eq.nbenti ) then
153 elseif ( dim2.eq.nbenti ) then
156 write (ulsort,texte(langue,4)) nbenti
157 write (ulsort,texte(langue,6)) 1, dim1
158 write (ulsort,texte(langue,6)) 2, dim2
159 write (ulsort,texte(langue,7))
171 if ( codret.eq.0 ) then
173 cgn write (ulsort,*) '==> diment = ', diment
175 c 3.1. ==> Stockage de la table au depart
177 if ( option.eq.1 .or. option.eq.3 ) then
179 if ( diment.eq.1 ) then
181 do 311 , jaux = 1 , dim2
182 do 312 , iaux = 1 , nbenti
183 tabaux(iaux,jaux) = table(iaux,jaux)
189 do 313 , iaux = 1 , dim1
190 do 314 , jaux = 1 , nbenti
191 tabaux(iaux,jaux) = table(iaux,jaux)
194 cgn if ( dim1.eq.2 ) then
195 cgn write (ulsort,*) table(1,108482), table(2,108482)
196 cgn write (ulsort,*) table(1,109114), table(2,109114)
197 cgn write (ulsort,*) table(1,109215), table(2,109215)
206 c 3.2.1. ==> Changement de l'indice
208 if ( option.eq.1 ) then
210 if ( diment.eq.1 ) then
211 cgn write (ulsort,*) '3211'
213 do 3211 , jaux = 1 , dim2
214 cgn write (ulsort,*) '. jaux =', jaux
215 do 3212 , iaux = 1 , nbenti
216 cgn write (ulsort,*) '.. taux(',iaux,',',jaux,')',tabaux(iaux,jaux)
217 table(nounum(iaux),jaux) = tabaux(iaux,jaux)
223 cgn write (ulsort,*) '3211'
224 do 3213 , iaux = 1 , dim1
225 cgn write (ulsort,*) '. iaux =', iaux
226 do 3214 , jaux = 1 , nbenti
227 cgn write (ulsort,*) '.. taux(',iaux,',',jaux,')',tabaux(iaux,jaux)
228 table(iaux,nounum(jaux)) = tabaux(iaux,jaux)
234 c 3.2.2. ==> Changement du contenu
236 elseif ( option.eq.2 ) then
238 do 3221 , iaux = 1 , dim1
239 cgn write (ulsort,*) '. iaux =', iaux
240 do 3222 , jaux = 1 , dim2
241 cgn write (ulsort,*) '.. table(',iaux,',',jaux,')',table(iaux,jaux)
242 table(iaux,jaux) = nounum(table(iaux,jaux))
246 c 3.2.3. ==> Changement de l'indice et du contenu
248 elseif ( option.eq.3 ) then
250 if ( diment.eq.1 ) then
252 do 3231 , jaux = 1 , dim2
253 do 3232 , iaux = 1 , nbenti
254 table(nounum(iaux),jaux) = nounum(tabaux(iaux,jaux))
260 do 3233 , iaux = 1 , dim1
261 do 3234 , jaux = 1 , nbenti
262 table(iaux,nounum(jaux)) = nounum(tabaux(iaux,jaux))
276 if ( codret.ne.0 ) then
280 write (ulsort,texte(langue,1)) 'Sortie', nompro
281 write (ulsort,texte(langue,2)) codret
285 #ifdef _DEBUG_HOMARD_
286 write (ulsort,texte(langue,1)) 'Sortie', nompro