Salome HOME
Homard executable
[modules/homard.git] / src / tool / AV_Conversion / vcme29.F
1       subroutine vcme29 ( nofaar, cofaar,
2      >                    cfanoe,
3      >                    nharfa,
4      >                    pcfaar,
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    aVant adaptation - Conversion de Maillage Extrude - phase 29
27 c     -                 -             -        -               --
28 c Determine les familles pour le lien face avant / face perpendiculaire
29 c au cours de l'extrusion des noeuds
30 c ______________________________________________________________________
31 c .        .     .        .                                            .
32 c .  nom   . e/s . taille .           description                      .
33 c .____________________________________________________________________.
34 c . nofaar . e   .  1     . nombre d'origine de familles d'aretes      .
35 c . cofaar . e   . ncffar*. codes d'origine des familles d'aretes      .
36 c .        .     . nofaar .                                            .
37 c . cfanoe . e   . nctfno*. codes des familles des noeuds              .
38 c .        .     . nbfnoe .   1 : famille MED                          .
39 c .        .     .        . si extrusion :                             .
40 c .        .     .        .   2 : famille du noeud extrude             .
41 c .        .     .        .   3 : famille de l'arete perpendiculaire   .
42 c .        .     .        .   4 : position du noeud                    .
43 c .        .     .        . si equivalence :                           .
44 c .        .     .        . + l : appartenance a l'equivalence l       .
45 c . nharfa . e   . char8  . objet decrivant les familles d'aretes      .
46 c . pcfaar .  s  .  1     . codes des familles d'aretes                .
47 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
48 c . langue . e   .    1   . langue des messages                        .
49 c .        .     .        . 1 : francais, 2 : anglais                  .
50 c . codret . e   .    1   . code de retour des modules                 .
51 c .        .     .        . 0 : pas de probleme                        .
52 c .        .     .        . 1 : probleme                               .
53 c ______________________________________________________________________
54 c
55 c====
56 c 0. declarations et dimensionnement
57 c====
58 c
59 c 0.1. ==> generalites
60 c
61       implicit none
62       save
63 c
64       character*6 nompro
65       parameter ( nompro = 'VCME29' )
66 c
67 #include "nblang.h"
68 c
69 c 0.2. ==> communs
70 c
71 #include "envex1.h"
72 #include "gmenti.h"
73 #include "nbfami.h"
74 #include "dicfen.h"
75 c
76 #include "impr02.h"
77 c
78 c 0.3. ==> arguments
79 c
80       integer nofaar, cofaar(ncffar,nofaar)
81       integer cfanoe(nctfno,nbfnoe)
82       integer pcfaar
83 c
84       character*8 nharfa
85 c
86       integer ulsort, langue, codret
87 c
88 c 0.4. ==> variables locales
89 c
90       integer iaux
91       integer nbfar0
92       integer numfam
93 c
94       integer nbmess
95       parameter ( nbmess = 10 )
96       character*80 texte(nblang,nbmess)
97 c
98 c 0.5. ==> initialisations
99 c ______________________________________________________________________
100 c
101 c====
102 c 1. messages
103 c====
104 c
105 #include "impr01.h"
106 c
107 #ifdef _DEBUG_HOMARD_
108       write (ulsort,texte(langue,1)) 'Entree', nompro
109       call dmflsh (iaux)
110 #endif
111 c
112 #include "impr03.h"
113 c
114       texte(1,4) = '(''Familles d''''extrusion des '',a)'
115       texte(1,5) = '(''Influence des '',a)'
116 c
117       texte(2,4) = '(''Description of families of extruded '',a)'
118       texte(2,5) = '(''Influence of the '',a)'
119 c
120       codret = 0
121 c
122 #ifdef _DEBUG_HOMARD_
123       write (ulsort,texte(langue,4)) mess14(langue,3,-1)
124       write (ulsort,texte(langue,5)) mess14(langue,3,1)
125       write (ulsort,90002) 'nctfno', nctfno
126       write (ulsort,90002) 'ncffar', ncffar
127 #endif
128 c
129 c====
130 c. Parcours des familles initiales
131 c====
132 #ifdef _DEBUG_HOMARD_
133       write (ulsort,90002) '3. parcours ; codret', codret
134 #endif
135 c
136 c 2.1. ==> Taille initiale du tableau
137 c
138       nbfar0 = nbfare
139       numfam = 0
140 c
141 c 2.2. ==> Allongement de la taille du tableau des familles
142 c
143    22 continue
144 c
145       if ( codret.eq.0 ) then
146 c
147       nbfar0 = nbfar0 + 29
148 c
149       iaux = 1
150 #ifdef _DEBUG_HOMARD_
151       write (ulsort,texte(langue,3)) 'UTFAM2', nompro
152 #endif
153       call utfam2 (   iaux, nharfa, nctfar, nbfar0,
154      >              pcfaar,
155      >              ulsort, langue, codret)
156 c
157       endif
158 c
159 c 2.3. ==> Programme utilitaire
160 c
161       if ( codret.eq.0 ) then
162 c
163 #ifdef _DEBUG_HOMARD_
164       write (ulsort,texte(langue,3)) 'VCME30', nompro
165 #endif
166       call vcme30 ( numfam,
167      >              nbfar0,
168      >              nofaar, cofaar,
169      >              nbfnoe, cfanoe,
170      >              nbfare, imem(pcfaar),
171      >              ulsort, langue, codret )
172 c
173       endif
174 c
175 c 2.4. ==> A rallonger ?
176 c
177       if ( codret.eq.0 ) then
178 c
179       if ( nbfare.lt.0 ) then
180 c
181         nbfare = -nbfare
182         goto 22
183 c
184       endif
185 c
186       endif
187 c
188 c====
189 c 3. Redimensionnement final
190 c====
191 #ifdef _DEBUG_HOMARD_
192       write (ulsort,90002) '3. Redimensionnement ; codret', codret
193       write (ulsort,90002) 'nbfare', nbfare
194       write (ulsort,90002) 'nbfar0', nbfar0
195 #endif
196 c
197       if ( nbfare.ne.nbfar0 ) then
198 c
199         if ( codret.eq.0 ) then
200 c
201         iaux = 1
202 #ifdef _DEBUG_HOMARD_
203         write (ulsort,texte(langue,3)) 'UTFAM2', nompro
204 #endif
205         call utfam2 (   iaux, nharfa, nctfar, nbfare,
206      >                pcfaar,
207      >                ulsort, langue, codret)
208 c
209         endif
210 c
211       endif
212 c
213 #ifdef _DEBUG_HOMARD_
214       call gmprsx ( mess14(langue,3,1), nharfa//'.Codes')
215 #endif
216 c
217 c====
218 c 4. la fin
219 c====
220 c
221       if ( codret.ne.0 ) then
222 c
223 #include "envex2.h"
224 c
225       write (ulsort,texte(langue,1)) 'Sortie', nompro
226       write (ulsort,texte(langue,2)) codret
227 c
228       endif
229 c
230 #ifdef _DEBUG_HOMARD_
231       write (ulsort,texte(langue,1)) 'Sortie', nompro
232       call dmflsh (iaux)
233 #endif
234 c
235       end