Salome HOME
Homard executable
[modules/homard.git] / src / tool / AV_Conversion / vcvos2.F
1       subroutine vcvos2 ( noeele, typele, povoso, voisom,
2      >                    nvosom, nbelem, nbmane, nbnoto )
3 c ______________________________________________________________________
4 c
5 c                             H O M A R D
6 c
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
8 c
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
14 c
15 c    HOMARD est une marque deposee d'Electricite de France
16 c
17 c Copyright EDF 1996
18 c Copyright EDF 1998
19 c Copyright EDF 2002
20 c Copyright EDF 2020
21 c ______________________________________________________________________
22 c
23 c    aVant adaptation - Conversion - VOisins des Sommets - phase 2
24 c     -                 -            --          -               -
25 c ______________________________________________________________________
26 c
27 c but : determine les elements 0d, 1d, 2d ou 3d voisins de
28 c       chaque sommet pour un maillage a la table de connectivite
29 c       du type med
30 c
31 c attention : tout est fait en numerotation du calcul pour les noeuds,
32 c             c'est-a-dire avec la numerotation initiale
33 c ______________________________________________________________________
34 c .        .     .        .                                            .
35 c .  nom   . e/s . taille .           description                      .
36 c .____________________________________________________________________.
37 c . noeele . e   . nbelem . noeuds des elements                        .
38 c .        .     .*nbmane .                                            .
39 c . typele . e   . nbelem . type des elements pour le code de calcul   .
40 c . povoso . e/s .0:nbnoto. pointeur des voisins par sommet            .
41 c . voisom .  s  . nvosom . voisins des sommets en stockage morse      .
42 c ______________________________________________________________________
43 c
44 c====
45 c 0. declarations et dimensionnement
46 c====
47 c
48 c 0.1. ==> generalites
49 c
50       implicit none
51       save
52 c
53 #include "referx.h"
54 c
55 c 0.2. ==> communs
56 c
57 #include "refere.h"
58 #include "rftmed.h"
59 c
60 c 0.3. ==> arguments
61 c
62       integer nbelem, nbmane, nbnoto
63       integer noeele(nbelem,nbmane), typele(nbelem)
64       integer nvosom
65       integer voisom(nvosom), povoso(0:nbnoto)
66 c
67 c 0.4. ==> variables locales
68 c
69       integer el, sommet, typhom
70       integer iaux
71       integer nbsoma
72 c ______________________________________________________________________
73 c
74 c====
75 c 1. on passe en revue chaque maille et on indique qu'il est
76 c    le voisin de ses sommets
77 c    selon le type, les sommets ne sont pas ranges au meme endroit
78 c
79 c    au depart :
80 c    povoso(i) = position du dernier voisin du sommet i-1
81 c              = nombre cumule de voisins pour les (i-1) 1ers sommets
82 c    a l'arrivee :
83 c    povoso(i) = position du dernier voisin du sommet i
84 c              = nombre cumule de voisins pour les i premiers sommets
85 c====
86 c
87       do 11 , el = 1 , nbelem
88 c
89         typhom = medtrf(typele(el))
90         nbsoma = nbnref(typhom,1)
91         if ( tyeref(typhom).ne.0 ) then
92           nbsoma = 0
93         endif
94 c
95         do 111 , iaux = 1 , nbsoma
96           sommet = noeele(el,iaux)
97           povoso(sommet) = povoso(sommet) + 1
98           voisom(povoso(sommet)) = el
99   111   continue
100 c
101    11 continue
102 c
103       end