Salome HOME
Homard executable
[modules/homard.git] / src / tool / AV_Conversion / vcvar1.F
1       subroutine vcvar1 ( areele, typele, povoar )
2 c ______________________________________________________________________
3 c
4 c                             H O M A R D
5 c
6 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
7 c
8 c Version originale enregistree le 18 juin 1996 sous le numero 96036
9 c aupres des huissiers de justice Simart et Lavoir a Clamart
10 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
11 c aupres des huissiers de justice
12 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
13 c
14 c    HOMARD est une marque deposee d'Electricite de France
15 c
16 c Copyright EDF 1996
17 c Copyright EDF 1998
18 c Copyright EDF 2002
19 c Copyright EDF 2020
20 c ______________________________________________________________________
21 c
22 c    aVant adaptation - Conversion - VOisins des Aretes - phase 1
23 c     -                 -            --          -              -
24 c ______________________________________________________________________
25 c
26 c but : determine le nombre d'elements 2d ou 3d voisins de chaque arete
27 c ______________________________________________________________________
28 c .        .     .        .                                            .
29 c .  nom   . e/s . taille .           description                      .
30 c .____________________________________________________________________.
31 c . areele . e   . nbelem . aretes des elements                        .
32 c .        .     .*nbmaae .                                            .
33 c . typele . e   . nbelem . type des elements pour le code de calcul   .
34 c . povoar .  s  .0:nbarto. pointeur des voisins par arete             .
35 c ______________________________________________________________________
36 c
37 c====
38 c 0. declarations et dimensionnement
39 c====
40 c
41 c 0.1. ==> generalites
42 c
43       implicit none
44       save
45 c
46 #include "referx.h"
47 c
48 c 0.2. ==> communs
49 c
50 #include "nbutil.h"
51 #include "nombar.h"
52 #include "refere.h"
53 #include "rftmed.h"
54 c
55 c 0.3. ==> arguments
56 c
57       integer areele(nbelem,nbmaae), typele(nbelem)
58       integer povoar(0:nbarto)
59 c
60 c 0.4. ==> variables locales
61 c
62       integer el, arete, typhom
63       integer iaux
64       integer nbarel
65 c ______________________________________________________________________
66 c
67 c====
68 c 1. on passe en revue chaque element
69 c    si c'est un element 2d ou 3d, on incremente de 1 le nombre
70 c    d'elements 2d ou 3d voisins de ses aretes
71 c    selon le type, il n'y a pas le meme nombre d'aretes
72 c====
73 c
74       do 11 , arete = 1 , nbarto
75         povoar(arete) = 0
76    11 continue
77 c
78       do 12 , el = 1 , nbelem
79 c
80         typhom = medtrf(typele(el))
81         nbarel = nbaref(typhom)
82         if ( tyeref(typhom).ne.0 ) then
83           nbarel = 0
84         endif
85 c
86         do 121 , iaux = 1 , nbarel
87          povoar(areele(el,iaux)) = povoar(areele(el,iaux)) + 1
88   121   continue
89 c
90    12 continue
91 c
92 c====
93 c 2. on initialise le pointeur dans le tableau des voisins
94 c    povoar(i) = position du dernier voisin de l'arete i-1
95 c              = nombre cumule de voisins pour les (i-1) 1eres aretes
96 c====
97 c
98       povoar(0) = 0
99 c
100       do 21 , arete = 1 , nbarto
101         povoar(arete) = povoar(arete) + povoar(arete-1)
102    21 continue
103 c
104       nvoare = povoar(nbarto)
105 c
106       do 22 , arete = nbarto , 1 , -1
107         povoar(arete) = povoar(arete-1)
108    22 continue
109 c
110       end