1 subroutine utmfv1 ( typenh, nbvoto, nbvoco,
5 > ulsort, langue, codret)
6 c ______________________________________________________________________
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c HOMARD est une marque deposee d'Electricite de France
24 c ______________________________________________________________________
26 c UTilitaire - passage de Mere a Fille pour les Volumes - 1
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . typenh . e . 1 . code des entites .
33 c . . . . 6 : hexaedres .
34 c . . . . 7 : pentaedres .
35 c . nbvoto . e . 1 . nombre total de volumes concernes .
36 c . nbvoco . e . 1 . nombre de volumes decoupes en conformite .
37 c . filvol . es . nbvoto . fils des volumes .
38 c . fvpyte . e .2*nbvoco. fvpyte(1,j) = numero de la 1ere pyramide .
39 c . . . . fille du volume k tel que filvol(k) =-j .
40 c . . . . fvpyte(2,j) = numero du 1er tetraedre .
41 c . . . . fils du volume k tel que filvol(k) = -j .
42 c . pertet . e . nbteto . pere des tetraedres .
43 c . . . . si pertet(i) > 0 : numero du tetraedre .
44 c . . . . si pertet(i) < 0 : -numero dans pthepe .
45 c . perpyr . e . nbpyto . pere des pyramides .
46 c . . . . si perpyr(i) > 0 : numero de la pyramide .
47 c . . . . si perpyr(i) < 0 : -numero dans pphepe .
48 c . pthepe . es . * . si i <= nbheco : numero de l'hexaedre .
49 c . . . . si non : numero du pentaedre .
50 c . pphepe . es . * . si i <= nbheco : numero de l'hexaedre .
51 c . . . . si non : numero du pentaedre .
52 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
53 c . langue . e . 1 . langue des messages .
54 c . . . . 1 : francais, 2 : anglais .
55 c . codret . es . 1 . code de retour des modules .
56 c . . . . 0 : pas de probleme .
57 c . . . . 1 : probleme .
58 c ______________________________________________________________________
61 c 0. declarations et dimensionnement
64 c 0.1. ==> generalites
70 parameter ( nompro = 'UTMFV1' )
84 integer typenh, nbvoto, nbvoco
85 integer filvol(nbvoto)
86 integer fvpyte(2,nbvoco)
87 integer pertet(nbteto)
88 integer perpyr(nbpyto)
92 integer ulsort, langue, codret
94 c 0.4. ==> variables locales
97 integer indic1, indic2
98 integer lapyra, letetr
101 parameter ( nbmess = 10 )
102 character*80 texte(nblang,nbmess)
104 c 0.5. ==> initialisations
105 c ______________________________________________________________________
113 #ifdef _DEBUG_HOMARD_
114 write (ulsort,texte(langue,1)) 'Entree', nompro
118 texte(1,4) = '(''. Reperage des filles des '',a)'
120 >'(''.. Nombre de '',a,'' decoupes en conformite :'',i10)'
121 texte(1,6) = '(''Probleme de parentes pour les '',a)'
122 texte(1,7) = '(''Indice du pere de '',a,i10,'' :'',i10))'
123 texte(1,8) = '(''Incoherence.''))'
124 texte(1,9) = '(''. Reperage des filles du'',i6,''-ieme '',a)'
126 texte(2,4) = '(''. Son arrays from father arrays for '',a)'
128 >'(''.. Number of '',a,'' cut for conformal reasons :'',i10)'
129 texte(2,6) = '(''Problems with the parents of the '',a)'
131 > '(''Index for the father of '',a,'',i10,'' is '',i10))'
132 texte(2,8) = '(''Incoherence.''))'
133 texte(2,9) = '(''. Search for the sons of'',i6,''-th '',a)'
139 #ifdef _DEBUG_HOMARD_
140 write (ulsort,texte(langue,4)) mess14(langue,3,typenh)
141 write (ulsort,texte(langue,5)) mess14(langue,3,typenh), nbvoco
145 c 2. parcours des volumes concernes
148 do 21 , iaux = 1 , nbvoco
150 if ( codret.eq.0 ) then
152 #ifdef _DEBUG_HOMARD_
153 write (ulsort,texte(langue,9)) iaux, mess14(langue,1,typenh)
156 c 2.1. ==> Examen par les pyramides
158 lapyra = fvpyte(1,iaux)
159 if ( lapyra.gt.0 ) then
160 indic1 = -perpyr(lapyra)
161 if ( indic1.eq.0 ) then
168 c 2.2. ==> Examen par les tetraedres
170 letetr = fvpyte(2,iaux)
171 if ( letetr.gt.0 ) then
172 indic2 = -pertet(letetr)
173 if ( indic2.eq.0 ) then
180 c 2.3. ==> Controle et affectation
182 #ifdef _DEBUG_HOMARD_
183 write (ulsort,texte(langue,7)) mess14(langue,1,5),lapyra, indic1
184 write (ulsort,texte(langue,7)) mess14(langue,1,3),letetr, indic2
186 if ( indic1.ne.0 .and. indic2.ne.0 ) then
187 if ( indic1.ne.indic2 ) then
192 if ( codret.eq.0 ) then
193 if ( indic1.ne.0 ) then
194 filvol(pphepe(indic1)) = -iaux
196 filvol(pthepe(indic2)) = -iaux
208 if ( codret.ne.0 ) then
212 write (ulsort,texte(langue,1)) 'Sortie', nompro
213 write (ulsort,texte(langue,2)) codret
214 if ( codret.eq.1 ) then
215 write (ulsort,texte(langue,6)) mess14(langue,3,5)
216 elseif ( codret.eq.2 ) then
217 write (ulsort,texte(langue,6)) mess14(langue,3,3)
218 elseif ( codret.eq.3 ) then
219 write (ulsort,texte(langue,7)) mess14(langue,1,5),lapyra, indic1
220 write (ulsort,texte(langue,7)) mess14(langue,1,3),letetr, indic2
221 write (ulsort,texte(langue,8))
226 #ifdef _DEBUG_HOMARD_
227 write (ulsort,texte(langue,1)) 'Sortie', nompro