Salome HOME
Homard executable
[modules/homard.git] / src / tool / Creation_Maillage / cmchpa.F
1       subroutine cmchpa ( indare, nbaret,
2      >                    noefix, lesnoe, areint,
3      >                    hetare, somare,
4      >                    filare, merare, famare,
5      >                    ulsort, langue, codret )
6 c ______________________________________________________________________
7 c
8 c                             H O M A R D
9 c
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c
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
17 c
18 c    HOMARD est une marque deposee d'Electricite de France
19 c
20 c Copyright EDF 1996
21 c Copyright EDF 1998
22 c Copyright EDF 2002
23 c Copyright EDF 2020
24 c ______________________________________________________________________
25 c
26 c    Creation du Maillage - Conformite - decoupage des
27 c    -           -          -
28 c                           Hexaedres ou Pentaedres - phase A
29 c                           -            -                  -
30 c    Construction des aretes internes
31 c ______________________________________________________________________
32 c .        .     .        .                                            .
33 c .  nom   . e/s . taille .           description                      .
34 c .____________________________________________________________________.
35 c . indnoe . es  .   1    . indice du dernier noeud cree               .
36 c . indare . es  .   1    . indice de la derniere arete creee          .
37 c . nbaret . e   .   1    . nombre d'aretes a creer                    .
38 c . lesnoe . e   . nbaret . liste des noeuds pour les extremites des   .
39 c .        .     .        . aretes  a creer                            .
40 c . areint .  s  . nbaret . aretes internes creees                     .
41 c . hetare . es  . nouvar . historique de l'etat des aretes            .
42 c . somare . es  .2*nouvar. numeros des extremites d'arete             .
43 c . filare . es  . nouvar . premiere fille des aretes                  .
44 c . merare . es  . nouvar . mere des aretes                            .
45 c . famare .     . nouvar . famille des aretes                         .
46 c . ulsort . e   .   1    . unite logique de la sortie generale        .
47 c . langue . e   .    1   . langue des messages                        .
48 c .        .     .        . 1 : francais, 2 : anglais                  .
49 c . codret . es  .    1   . code de retour des modules                 .
50 c .        .     .        . 0 : pas de probleme                        .
51 c .        .     .        . 1 : aucune arete ne correspond             .
52 c ______________________________________________________________________
53 c
54 c====
55 c 0. declarations et dimensionnement
56 c====
57 c
58 c 0.1. ==> generalites
59 c
60       implicit none
61       save
62 c
63       character*6 nompro
64       parameter ( nompro = 'CMCHPA' )
65 c
66 #include "nblang.h"
67 c
68 c 0.2. ==> communs
69 c
70 #include "envex1.h"
71 c
72 #include "nouvnb.h"
73 #include "fractf.h"
74 c
75 c 0.3. ==> arguments
76 c
77       integer indare
78       integer nbaret
79       integer noefix, lesnoe(nbaret), areint(nbaret)
80       integer hetare(nouvar), somare(2,nouvar)
81       integer filare(nouvar), merare(nouvar), famare(nouvar)
82 c
83       integer ulsort, langue, codret
84 c
85 c 0.4. ==> variables locales
86 c
87       integer iaux
88 c
89       integer nbmess
90       parameter ( nbmess = 10 )
91       character*80 texte(nblang,nbmess)
92 c
93 c 0.5. ==> initialisations
94 c ______________________________________________________________________
95 c
96 c====
97 c 1. initialisations
98 c====
99 c
100 c 1.1. ==> messages
101 c
102 #include "impr01.h"
103 c
104 #ifdef _DEBUG_HOMARD_
105       write (ulsort,texte(langue,1)) 'Entree', nompro
106       call dmflsh (iaux)
107 #endif
108 c
109 #include "impr03.h"
110 #include "impr04.h"
111 c
112       codret = 0
113 c
114 c====
115 c 2. Creation des aretes internes
116 c    L'arete i part du sommet i vers le noeud central
117 c====
118 c
119       if ( codret.eq.0 ) then
120 c
121       do 21 , iaux = 1 , nbaret
122 c
123         indare = indare + 1
124         areint(iaux) = indare
125 c
126         somare(1,areint(iaux)) = min ( noefix , lesnoe(iaux) )
127         somare(2,areint(iaux)) = max ( noefix , lesnoe(iaux) )
128 c
129         famare(areint(iaux)) = 1
130         hetare(areint(iaux)) = 50
131         merare(areint(iaux)) = 0
132         filare(areint(iaux)) = 0
133 #ifdef _DEBUG_HOMARD_
134       write(ulsort,91002) iaux, areint(iaux),
135      >                    somare(1,areint(iaux)),
136      >                    somare(2,areint(iaux)), 0
137 #endif
138 c
139    21 continue
140 c
141       endif
142 c
143 c====
144 c 3. la fin
145 c====
146 c
147       if ( codret.ne.0 ) then
148 c
149 #include "envex2.h"
150 c
151       write (ulsort,texte(langue,1)) 'Sortie', nompro
152       write (ulsort,texte(langue,2)) codret
153 c
154       endif
155 c
156 #ifdef _DEBUG_HOMARD_
157       write (ulsort,texte(langue,1)) 'Sortie', nompro
158       call dmflsh (iaux)
159 #endif
160 c
161       end