1 subroutine vcinrr ( nbvent,
11 > nbtafo, nbvind, indica,
21 > ulsort, langue, codret)
22 c ______________________________________________________________________
26 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
28 c Version originale enregistree le 18 juin 1996 sous le numero 96036
29 c aupres des huissiers de justice Simart et Lavoir a Clamart
30 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
31 c aupres des huissiers de justice
32 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
34 c HOMARD est une marque deposee d'Electricite de France
40 c ______________________________________________________________________
42 c aVant adaptation - Conversion d'INdicateur - REel
44 c but : conversion de l'indicateur d'erreur
45 c valeurs reelles double precision de l'indicateur
46 c ========================
47 c ______________________________________________________________________
49 c . nom . e/s . taille . description .
50 c .____________________________________________________________________.
51 c . nbvent . e . -1:7 . nombre d'entites actives pour chaque type .
52 c . . . . d'element au sens HOMARD avec indicateur .
53 c . nosupp . s . nbnoto . support pour les noeuds .
54 c . noindi . s . nbnoto . valeurs pour les noeuds .
55 c . arsupp . s . nbarto . support pour les aretes .
56 c . arindi . s . nbarto . valeurs pour les aretes .
57 c . trsupp . s . nbtrto . support pour les triangles .
58 c . trindi . s . nbtrto . valeurs pour les triangles .
59 c . qusupp . s . nbquto . support pour les quadrangles .
60 c . quindi . s . nbquto . valeurs pour les quadrangles .
61 c . tesupp . s . nbteto . support pour les tetraedres .
62 c . teindi . s . nbteto . valeurs pour les tetraedres .
63 c . hesupp . s . nbheto . support pour les hexaedres .
64 c . heindi . s . nbheto . valeurs pour les hexaedres .
65 c . pysupp . s . nbpyto . support pour les pyramides .
66 c . pyindi . s . nbpyto . valeurs pour les pyramides .
67 c . pesupp . s . nbpeto . support pour les pentaedres .
68 c . peindi . s . nbpeto . valeurs pour les pentaedres .
69 c . nbvapr . e . 1 . nombre de valeurs du profil .
70 c . . . . -1, si pas de profil .
71 c . listpr . e . * . liste des numeros d'elements ou l'indica- .
72 c . . . . teur est defini. .
73 c . nbtafo . e . 1 . nombre de tableaux dans la fonction .
74 c . nbvind . e . 1 . nombre d'entites maximum .
75 c . indica . e . nbtafo . valeurs de l'indicateur .
77 c . ncmpin . e . 1 . nombre de composantes retenues .
78 c . nucomp . e . ncmpin . numeros des composantes retenues .
79 c . nnovho . e . rvnoto . numero des noeuds dans homard .
80 c . narvho . e . rvarac . numero des aretes dans homard .
81 c . ntrvho . e . rvtrac . numero des triangles dans HOMARD .
82 c . nquvho . e . rvquac . numero des quadrangles dans HOMARD .
83 c . ntevho . e . rvteac . numero des tetraedres dans HOMARD .
84 c . nhevho . e . rvheac . numero des hexaedres dans HOMARD .
85 c . npyvho . e . rvpyac . numero des pyramides dans HOMARD .
86 c . npevho . e . rvpeac . numero des pentaedres dans HOMARD .
87 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
88 c . langue . e . 1 . langue des messages .
89 c . . . . 1 : francais, 2 : anglais .
90 c . codret . es . 1 . code de retour des modules .
91 c . . . . 0 : pas de probleme .
92 c . . . . 3 : probleme dans les fichiers .
93 c ______________________________________________________________________
96 c 0. declarations et dimensionnement
99 c 0.1. ==> generalites
105 parameter ( nompro = 'VCINRR' )
126 integer nosupp(nbnoto)
127 integer arsupp(nbarto)
128 integer trsupp(nbtrto)
129 integer qusupp(nbquto)
130 integer tesupp(nbteto)
131 integer hesupp(nbheto)
132 integer pysupp(nbpyto)
133 integer pesupp(nbpeto)
135 integer nbtafo, nbvind
136 integer ncmpin, nucomp(ncmpin)
148 integer ulsort, langue, codret
150 double precision noindi(nbnoto,ncmpin), arindi(nbarto,ncmpin)
151 double precision trindi(nbtrto,ncmpin), quindi(nbquto,ncmpin)
152 double precision teindi(nbteto,ncmpin), heindi(nbheto,ncmpin)
153 double precision pyindi(nbpyto,ncmpin), peindi(nbpeto,ncmpin)
154 double precision indica(nbtafo,nbvind)
156 c 0.4. ==> variables locales
161 parameter ( nbmess = 10 )
162 character*80 texte(nblang,nbmess)
164 c 0.5. ==> initialisations
165 c ______________________________________________________________________
173 #ifdef _DEBUG_HOMARD_
174 write (ulsort,texte(langue,1)) 'Entree', nompro
178 texte(1,4) = '(''. Indicateur d''''erreur sur les '',i10,1x,a)'
180 texte(2,4) = '(''. Error indicator over '',i10,1x,a)'
184 cgn do 111 , iaux = 1 , nbtafo
185 cgn do 111 , jaux = 1 , nbvind
186 cgn write (ulsort,90124) 'indica',iaux,jaux,indica(iaux,jaux)
188 cgn do 112 , iaux = 1 , rvtrac
189 cgn write (ulsort,90112) 'ntrvho',iaux,ntrvho(iaux)
191 cgn print *, 'dans ',nompro,', tyelho, nbvapr = ',tyelho, nbvapr
192 cgn print *, 'dans ',nompro,', nbtafo,nbvind = ',nbtafo,nbvind
195 c 2. conversion selon le type d'entite
198 c 2.1. ==> au moins un indicateur est exprime sur les tetraedres
201 if ( nbvent(iaux).gt.0 ) then
203 #ifdef _DEBUG_HOMARD_
204 write (ulsort,texte(langue,4)) nbteto, mess14(langue,3,iaux)
206 #ifdef _DEBUG_HOMARD_
207 write (ulsort,texte(langue,3)) 'VCINR1_te', nompro
209 call vcinr1 ( nbteto, nbvent(iaux), nbvapr,
210 > nbtafo, nbvind, ncmpin, nucomp,
211 > indica, ntevho, listpr,
213 > ulsort, langue, codret)
217 c 2.2. ==> au moins un indicateur est exprime sur les quadrangles
220 if ( nbvent(iaux).gt.0 ) then
222 #ifdef _DEBUG_HOMARD_
223 write (ulsort,texte(langue,4)) nbquto, mess14(langue,3,iaux)
225 #ifdef _DEBUG_HOMARD_
226 write (ulsort,texte(langue,3)) 'VCINR1_qu', nompro
228 call vcinr1 ( nbquto, nbvent(iaux), nbvapr,
229 > nbtafo, nbvind, ncmpin, nucomp,
230 > indica, nquvho, listpr,
232 > ulsort, langue, codret)
236 c 2.3. ==> au moins un indicateur est exprime sur les triangles
239 if ( nbvent(iaux).gt.0 ) then
241 #ifdef _DEBUG_HOMARD_
242 write (ulsort,texte(langue,4)) nbtrto, mess14(langue,3,iaux)
244 #ifdef _DEBUG_HOMARD_
245 write (ulsort,texte(langue,3)) 'VCINR1_tr', nompro
247 call vcinr1 ( nbtrto, nbvent(iaux), nbvapr,
248 > nbtafo, nbvind, ncmpin, nucomp,
249 > indica, ntrvho, listpr,
251 > ulsort, langue, codret)
255 c 2.4. ==> au moins un indicateur est exprime sur les aretes
258 if ( nbvent(iaux).gt.0 ) then
260 #ifdef _DEBUG_HOMARD_
261 write (ulsort,texte(langue,4)) nbarto, mess14(langue,3,iaux)
263 #ifdef _DEBUG_HOMARD_
264 write (ulsort,texte(langue,3)) 'VCINR1_ar', nompro
266 call vcinr1 ( nbarto, nbvent(iaux), nbvapr,
267 > nbtafo, nbvind, ncmpin, nucomp,
268 > indica, narvho, listpr,
270 > ulsort, langue, codret)
274 c 2.5. ==> au moins un indicateur est exprime sur les noeuds
277 if ( nbvent(iaux).gt.0 ) then
279 #ifdef _DEBUG_HOMARD_
280 write (ulsort,texte(langue,4)) nbnoto, mess14(langue,3,iaux)
282 #ifdef _DEBUG_HOMARD_
283 write (ulsort,texte(langue,3)) 'VCINR1_no', nompro
285 call vcinr1 ( nbnoto, nbvent(iaux), nbvapr,
286 > nbtafo, nbvind, ncmpin, nucomp,
287 > indica, nnovho, listpr,
289 > ulsort, langue, codret)
293 c 2.5. ==> au moins un indicateur est exprime sur les pyramides
296 if ( nbvent(iaux).gt.0 ) then
298 #ifdef _DEBUG_HOMARD_
299 write (ulsort,texte(langue,4)) nbpyto, mess14(langue,3,iaux)
301 #ifdef _DEBUG_HOMARD_
302 write (ulsort,texte(langue,3)) 'VCINR1_py', nompro
304 call vcinr1 ( nbpyto, nbvent(iaux), nbvapr,
305 > nbtafo, nbvind, ncmpin, nucomp,
306 > indica, npyvho, listpr,
308 > ulsort, langue, codret)
312 c 2.6. ==> au moins un indicateur est exprime sur les hexaedres
315 if ( nbvent(iaux).gt.0 ) then
317 #ifdef _DEBUG_HOMARD_
318 write (ulsort,texte(langue,4)) nbheto, mess14(langue,3,iaux)
320 #ifdef _DEBUG_HOMARD_
321 write (ulsort,texte(langue,3)) 'VCINR1_he', nompro
323 call vcinr1 ( nbheto, nbvent(iaux), nbvapr,
324 > nbtafo, nbvind, ncmpin, nucomp,
325 > indica, nhevho, listpr,
327 > ulsort, langue, codret)
331 c 2.7. ==> au moins un indicateur est exprime sur les pentaedres
334 if ( nbvent(iaux).gt.0 ) then
336 #ifdef _DEBUG_HOMARD_
337 write (ulsort,texte(langue,4)) nbheto, mess14(langue,3,iaux)
339 #ifdef _DEBUG_HOMARD_
340 write (ulsort,texte(langue,3)) 'VCINR1_pe', nompro
342 call vcinr1 ( nbpeto, nbvent(iaux), nbvapr,
343 > nbtafo, nbvind, ncmpin, nucomp,
344 > indica, npevho, listpr,
346 > ulsort, langue, codret)
354 if ( codret.ne.0 ) then
358 write (ulsort,texte(langue,1)) 'Sortie', nompro
359 write (ulsort,texte(langue,2)) codret
363 #ifdef _DEBUG_HOMARD_
364 write (ulsort,texte(langue,1)) 'Sortie', nompro