Salome HOME
Homard executable
[modules/homard.git] / src / tool / AP_Conversion / pcceq1.F
1       subroutine pcceq1 ( cfanoe, famnoe, nnosho,
2      >                    cfampo, fammpo, nmpsho,
3      >                    cfaare, famare, narsho,
4      >                    cfatri, famtri, ntrsho,
5      >                    cfaqua, famqua, nqusho,
6      >                    typele,
7      >                    ulsort, langue, codret )
8 c ______________________________________________________________________
9 c
10 c                             H O M A R D
11 c
12 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
13 c
14 c Version originale enregistree le 18 juin 1996 sous le numero 96036
15 c aupres des huissiers de justice Simart et Lavoir a Clamart
16 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
17 c aupres des huissiers de justice
18 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
19 c
20 c    HOMARD est une marque deposee d'Electricite de France
21 c
22 c Copyright EDF 1996
23 c Copyright EDF 1998
24 c Copyright EDF 2002
25 c Copyright EDF 2020
26 c ______________________________________________________________________
27 c
28 c    aPres adaptation - Conversion - Creation des EQuivalences - phase 1
29 c     -                 -            -            --                   -
30 c ______________________________________________________________________
31 c .        .     .        .                                            .
32 c .  nom   . e/s . taille .           description                      .
33 c .____________________________________________________________________.
34 c . cfanoe . e   . nctfno*. codes des familles des noeuds              .
35 c .        .     . nbnoto .   1 : famille MED                          .
36 c .        .     .        . + l : appartenance a l'equivalence l       .
37 c . famnoe . e   . nbnoto . famille des aretes                         .
38 c . nnosho . e   . rsnoto . numero des noeuds dans HOMARD              .
39 c . cfampo . e   . nctfmp*. codes des familles des mailles-points      .
40 c .        .     . nbfmpo .   1 : famille MED                          .
41 c .        .     .        .   2 : type de maille-point                 .
42 c .        .     .        .   3 : famille des sommets                  .
43 c .        .     .        . + l : appartenance a l'equivalence l       .
44 c . fammpo . e   . nbmpto . famille des mailles-points                 .
45 c . nmpsho . e   . rsmpac . numero des mailles-points dans HOMARD      .
46 c . cfaare . e   . nctfar*. codes des familles des aretes              .
47 c .        .     . nbfare .   1 : famille MED                          .
48 c .        .     .        .   2 : type de segment                      .
49 c .        .     .        .   3 : orientation                          .
50 c .        .     .        .   4 : famille d'orientation inverse        .
51 c .        .     .        .   5 : numero de ligne de frontiere         .
52 c .        .     .        .  > 0 si concernee par le suivi de frontiere.
53 c .        .     .        . <= 0 si non concernee                      .
54 c .        .     .        .   6 : famille frontiere active/inactive    .
55 c .        .     .        .   7 : numero de surface de frontiere       .
56 c .        .     .        . + l : appartenance a l'equivalence l       .
57 c . famare . e   . nbarto . famille des aretes                         .
58 c . narsho . e   . rsarac . numero des aretes dans HOMARD              .
59 c . cfatri . e   . nctftr*. codes des familles des triangles           .
60 c .        .     . nbftri .   1 : famille MED                          .
61 c .        .     .        .   2 : type de triangle                     .
62 c .        .     .        .   3 : numero de surface de frontiere       .
63 c .        .     .        .   4 : famille des aretes internes apres raf.
64 c .        .     .        . + l : appartenance a l'equivalence l       .
65 c . famtri . e   . nbtrto . famille des triangles                      .
66 c . ntrsho . e   . rstrac . numero des triangles dans HOMARD           .
67 c . cfaqua . e   . nctfqu*. codes des familles des quadrangles         .
68 c .        .     . nbfqua .   1 : famille MED                          .
69 c .        .     .        .   2 : type de quadrangle                   .
70 c .        .     .        .   3 : numero de surface de frontiere       .
71 c .        .     .        .   4 : famille des aretes internes apres raf.
72 c .        .     .        .   5 : famille des triangles de conformite  .
73 c .        .     .        .   6 : famille de sf active/inactive        .
74 c .        .     .        . + l : appartenance a l'equivalence l       .
75 c . famqua .     . nbquto . famille des quadrangles                    .
76 c . nqusho . e   . rsquac . numero des quadrangles dans HOMARD         .
77 c . typele . e   . nbelem . type des elements                          .
78 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
79 c . langue . e   .    1   . langue des messages                        .
80 c .        .     .        . 1 : francais, 2 : anglais                  .
81 c . codret . es  .    1   . code de retour des modules                 .
82 c .        .     .        . 0 : pas de probleme                        .
83 c .        .     .        . 1 : probleme                               .
84 c ______________________________________________________________________
85 c
86 c====
87 c 0. declarations et dimensionnement
88 c====
89 c
90 c 0.1. ==> generalites
91 c
92       implicit none
93       save
94 c
95       character*6 nompro
96       parameter ( nompro = 'PCCEQ1' )
97 c
98 #include "nblang.h"
99 c
100 c 0.2. ==> communs
101 c
102 #include "envex1.h"
103 c
104 #include "nombno.h"
105 #include "nbfami.h"
106 #include "nombar.h"
107 #include "nombmp.h"
108 #include "nombtr.h"
109 #include "nombqu.h"
110 #include "nombsr.h"
111 #include "nbutil.h"
112 #include "dicfen.h"
113 #include "refert.h"
114 c
115 c 0.3. ==> arguments
116 c
117       integer nnosho(rsnoto), nmpsho(rsmpac), narsho(rsarac)
118       integer ntrsho(rstrac), nqusho(rsteac)
119       integer typele(nbelem)
120 c
121       integer cfanoe(nctfno,nbfnoe), famnoe(nbnoto)
122       integer cfampo(nctfmp,nbfmpo), fammpo(nbmpto)
123       integer cfaare(nctfar,nbfare), famare(nbarto)
124       integer cfatri(nctftr,nbftri), famtri(nbtrto)
125       integer cfaqua(nctfqu,nbfqua), famqua(nbquto)
126 c
127       integer ulsort, langue, codret
128 c
129 c 0.4. ==> variables locales
130 c
131       integer iaux, jaux
132 c
133       integer nbmess
134       parameter ( nbmess = 10 )
135       character*80 texte(nblang,nbmess)
136 c
137 c 0.5. ==> initialisations
138 c ______________________________________________________________________
139 c
140 c====
141 c 1. les messages
142 c====
143 c
144 #include "impr01.h"
145 c
146 #ifdef _DEBUG_HOMARD_
147       write (ulsort,texte(langue,1)) 'Entree', nompro
148       call dmflsh (iaux)
149 #endif
150 c
151       texte(1,10) = '(/,''Decompte des equivalences - Phase 1 :'')'
152 c
153       texte(2,10) = '(/,''Description of equivalences - Phase # 1 :'')'
154 c
155 #ifdef _DEBUG_HOMARD_
156       write (ulsort,texte(langue,10))
157 #endif
158 c
159       codret = 0
160 c
161 c====
162 c 2. on compte combien d'entites appartiennent a des equivalences.
163 c====
164 c
165 c 2.1. ==> les noeuds
166 c
167       if ( codret.eq.0 ) then
168 c
169       iaux = -1
170 c
171 #ifdef _DEBUG_HOMARD_
172       write (ulsort,texte(langue,3)) 'PCCEQ2_no', nompro
173 #endif
174       call pcceq2 ( iaux,
175      >              nbnoto, nctfno, nbfnoe,
176      >              ncefno, nbeqno, jaux, jaux, rsnoto,
177      >              cfanoe, famnoe, nnosho,
178      >              typele,
179      >              ulsort, langue, codret )
180 c
181       endif
182 c
183 c 2.2. ==> les mailles-points
184 c
185       if ( codret.eq.0 ) then
186 c
187       iaux = 0
188 c
189 #ifdef _DEBUG_HOMARD_
190       write (ulsort,texte(langue,3)) 'PCCEQ2_mp', nompro
191 #endif
192       call pcceq2 ( iaux,
193      >              nbmpto, nctfmp, nbfmpo,
194      >              ncefmp, nbeqmp, tyhmpo, tyhmpo, nbelem,
195      >              cfampo, fammpo, nmpsho,
196      >              typele,
197      >              ulsort, langue, codret )
198 c
199       endif
200 c
201 c 2.3. ==> les aretes
202 c
203       if ( codret.eq.0 ) then
204 c
205       iaux = 1
206 c
207 #ifdef _DEBUG_HOMARD_
208       write (ulsort,texte(langue,3)) 'PCCEQ2_ar', nompro
209 #endif
210       call pcceq2 ( iaux,
211      >              nbarto, nctfar, nbfare,
212      >              ncefar, nbeqar, tyhse1, tyhse2, nbelem,
213      >              cfaare, famare, narsho,
214      >              typele,
215      >              ulsort, langue, codret )
216 c
217       endif
218 c
219 c 2.4. ==> les triangles
220 c
221       if ( codret.eq.0 ) then
222 c
223       iaux = 2
224 c
225 #ifdef _DEBUG_HOMARD_
226       write (ulsort,texte(langue,3)) 'PCCEQ2_tr', nompro
227 #endif
228       call pcceq2 ( iaux,
229      >              nbtrto, nctftr, nbftri,
230      >              nceftr, nbeqtr, tyhtr1, tyhtr2, nbelem,
231      >              cfatri, famtri, ntrsho,
232      >              typele,
233      >              ulsort, langue, codret )
234 c
235       endif
236 c
237 c 2.5. ==> les quadrangles
238 c
239       if ( codret.eq.0 ) then
240 c
241       iaux = 4
242 c
243 #ifdef _DEBUG_HOMARD_
244       write (ulsort,texte(langue,3)) 'PCCEQ2_qu', nompro
245 #endif
246       call pcceq2 ( iaux,
247      >              nbquto, nctfqu, nbfqua,
248      >              ncefqu, nbeqqu, tyhqu1, tyhqu2, nbelem,
249      >              cfaqua, famqua, nqusho,
250      >              typele,
251      >              ulsort, langue, codret )
252 c
253       endif
254 c
255 c====
256 c 3. la fin
257 c====
258 c
259       if ( codret.ne.0 ) then
260 c
261 #include "envex2.h"
262 c
263       write (ulsort,texte(langue,1)) 'Sortie', nompro
264       write (ulsort,texte(langue,2)) codret
265 c
266       endif
267 c
268 #ifdef _DEBUG_HOMARD_
269       write (ulsort,texte(langue,1)) 'Sortie', nompro
270       call dmflsh (iaux)
271 #endif
272 c
273       end