1 subroutine vcmmpo ( noempo, hetmpo, coexmp,
2 > nnosca, nmpsho, nmpsca,
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 aVant adaptation - Conversion de Maillage - Mailles-POints
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . noempo . s . nbmpto . numeros des noeuds associes aux mailles .
33 c . hetmpo . s . rbar00 . historique de l'etat des mailles-points .
34 c . coexmp . s . nbmpto*. codes externes sur les mailles-points .
35 c . . . nctfmp . 1 : famille MED .
36 c . . . . 2 : type de maille-point .
37 c . nnosca . e . rsnoto . numero des noeuds dans le calcul .
38 c . nmpsho . s . rsmpac . numero des mailles-points dans HOMARD .
39 c . nmpsca . s . rsmpto . numero des mailles-points du calcul .
40 c . fameel . e . nbelem . famille med des elements .
41 c . typele . e . nbelem . type des elements pour le code de calcul .
42 c . povoso . e .0:nbnoto. pointeur des voisins par sommet .
43 c . voisom . e . nvosom . voisins des sommets en stockage morse .
44 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
45 c . langue . e . 1 . langue des messages .
46 c . . . . 1 : francais, 2 : anglais .
47 c . codret . es . 1 . code de retour des modules .
48 c . . . . 0 : pas de probleme .
49 c . . . . 3 : probleme .
50 c ______________________________________________________________________
53 c 0. declarations et dimensionnement
56 c 0.1. ==> generalites
62 parameter ( nompro = 'VCMMPO' )
80 integer noempo(nbmpto), hetmpo(nbmpto)
81 integer nnosca(rsnoto)
82 integer nmpsho(rsmpac), nmpsca(rsmpto)
83 integer coexmp(nbmpto,nctfmp)
84 integer fameel(nbelem), typele(nbelem)
85 integer voisom(nvosom), povoso(0:nbnoto)
87 integer ulsort, langue, codret
89 c 0.4. ==> variables locales
92 integer poinde, poinfi, point, nucode
94 integer lamapo, elem, typhom
97 parameter ( nbmess = 10 )
98 character*80 texte(nblang,nbmess)
100 c 0.5. ==> initialisations
101 c ______________________________________________________________________
111 #ifdef _DEBUG_HOMARD_
112 write (ulsort,texte(langue,1)) 'Entree', nompro
116 texte(1,4) = '(''Nombre de mailles-points attendues : '',i10)'
117 texte(1,5) = '(''Nombre de mailles-points trouvees : '',i10)'
119 texte(2,4) = '(''Expected point-meshes : '',i10)'
120 texte(2,5) = '(''Found point-meshes : '',i10)'
122 c 1.2. ==> mise a zero
126 do 11 , lamapo = 1 , rsmpac
130 do 12 , nucode = 1 , nctfmp
131 do 121 , lamapo = 1 , nbmpto
132 coexmp(lamapo,nucode) = 0
139 c 2. on passe en revue chaque sommet
140 c remarque : l'exploration se fait dans la numerotation HOMARD
141 c ses elements voisins sont dans le tableau voisom, aux places
142 c comprises entre povoso(somm-1)+1 et povoso(somm), somm etant le
143 c numero dans le calcul correspondant au numero sommet dans
147 do 21 , sommet = 1 , nbnoto
149 poinde = povoso(nnosca(sommet)-1) + 1
150 poinfi = povoso(nnosca(sommet))
152 do 22 , point = poinde , poinfi
154 c 2.1. ==> caracterisation de l'element
155 c elem : son numero global
156 c typhom : son type dans HOMARD
159 typhom = medtrf(typele(elem))
161 c 2.2. ==> si l'element est une maille-point, il faut
162 c se souvenir de son type et de sa famille MED.
164 if ( typhom.eq.tyhmpo ) then
167 noempo(lamapo) = sommet
168 coexmp(lamapo,1) = fameel(elem)
169 coexmp(lamapo,2) = typele(elem)
170 nmpsho(elem) = lamapo
171 nmpsca(lamapo) = elem
178 if ( lamapo.ne.nbmpto ) then
179 write(ulsort,texte(langue,4)) nbmpto
180 write(ulsort,texte(langue,5)) lamapo
188 do 32 , lamapo = 1 , nbmpto
196 if ( codret.ne.0 ) then
200 write (ulsort,texte(langue,1)) 'Sortie', nompro
201 write (ulsort,texte(langue,2)) codret
205 #ifdef _DEBUG_HOMARD_
206 write (ulsort,texte(langue,1)) 'Sortie', nompro