Salome HOME
Homard executable
[modules/homard.git] / src / tool / AV_Conversion / vcme23.F
1       subroutine vcme23 ( nhpefa,
2      >                    pcfaqu,
3      >                    pcfahe,
4      >                    pcfape,
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 23
27 c     -                 -             -        -               --
28 c Determine les familles pour la relation hexaedres/pentaedres
29 c ______________________________________________________________________
30 c .        .     .        .                                            .
31 c .  nom   . e/s . taille .           description                      .
32 c .____________________________________________________________________.
33 c . nhpefa . e   . char8  . objet decrivant les familles de pentaedres .
34 c . pcfaqu . es  .    1   . codes des familles des quadrangles         .
35 c . pcfahe . es  .    1   . codes des familles des hexaedres           .
36 c . pcfape .  s  .  1     . codes des familles de pentaedres           .
37 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
38 c . langue . e   .    1   . langue des messages                        .
39 c .        .     .        . 1 : francais, 2 : anglais                  .
40 c . codret . e   .    1   . code de retour des modules                 .
41 c .        .     .        . 0 : pas de probleme                        .
42 c .        .     .        . 1 : probleme                               .
43 c ______________________________________________________________________
44 c
45 c====
46 c 0. declarations et dimensionnement
47 c====
48 c
49 c 0.1. ==> generalites
50 c
51       implicit none
52       save
53 c
54       character*6 nompro
55       parameter ( nompro = 'VCME23' )
56 c
57 #include "nblang.h"
58 c
59 c 0.2. ==> communs
60 c
61 #include "envex1.h"
62 #include "gmenti.h"
63 c
64 #include "impr02.h"
65 #include "dicfen.h"
66 #include "nbfami.h"
67 c
68 c 0.3. ==> arguments
69 c
70       integer pcfaqu
71       integer pcfahe
72       integer pcfape
73 c
74       character*8 nhpefa
75 c
76       integer ulsort, langue, codret
77 c
78 c 0.4. ==> variables locales
79 c
80       integer iaux
81       integer nbfpe0
82       integer numfam
83 c
84       integer nbmess
85       parameter ( nbmess = 10 )
86       character*80 texte(nblang,nbmess)
87 c
88 c 0.5. ==> initialisations
89 c ______________________________________________________________________
90 c
91 c====
92 c 1. messages
93 c====
94 c
95 #include "impr01.h"
96 c
97 #ifdef _DEBUG_HOMARD_
98       write (ulsort,texte(langue,1)) 'Entree', nompro
99       call dmflsh (iaux)
100 #endif
101 c
102 #include "impr03.h"
103 c
104       codret = 0
105 c
106 c====
107 c. Parcours des familles initiales
108 c====
109 #ifdef _DEBUG_HOMARD_
110       write (ulsort,90002) '3. parcours ; codret', codret
111 #endif
112 c
113 c 2.1. ==> Taille initiale du tableau
114 c
115       nbfpe0 = nbfpen
116       numfam = 0
117 c
118 c 2.2. ==> Allongement de la taille du tableau des familles
119 c          des pentaedres
120 c
121    22 continue
122 c
123       if ( codret.eq.0 ) then
124 c
125       nbfpe0 = nbfpe0 + 23
126 c
127       iaux = 7
128 #ifdef _DEBUG_HOMARD_
129       write (ulsort,texte(langue,3)) 'UTFAM2', nompro
130 #endif
131       call utfam2 (   iaux, nhpefa, nctfpe, nbfpe0,
132      >              pcfape,
133      >              ulsort, langue, codret)
134 c
135       endif
136 c
137 c 2.3. ==> Programme utilitaire
138 c
139       if ( codret.eq.0 ) then
140 c
141 #ifdef _DEBUG_HOMARD_
142       write (ulsort,texte(langue,3)) 'VCME24', nompro
143 #endif
144       call vcme24 ( numfam,
145      >              nbfpe0,
146      >              imem(pcfaqu),
147      >              imem(pcfahe),
148      >              imem(pcfape),
149      >              ulsort, langue, codret )
150 c
151       endif
152 c
153 c 2.4. ==> A rallonger ?
154 c
155       if ( codret.eq.0 ) then
156 c
157       if ( nbfpen.lt.0 ) then
158 c
159         nbfpen = -nbfpen
160         goto 22
161 c
162       endif
163 c
164       endif
165 c
166 c====
167 c 3. Redimensionnement final
168 c====
169 #ifdef _DEBUG_HOMARD_
170       write (ulsort,90002) '3. Redimensionnement ; codret', codret
171       write (ulsort,90002) 'nbfpen', nbfpen
172       write (ulsort,90002) 'nbfpe0', nbfpe0
173 #endif
174 c
175       if ( nbfpen.ne.nbfpe0 ) then
176 c
177         if ( codret.eq.0 ) then
178 c
179         iaux = 7
180 #ifdef _DEBUG_HOMARD_
181         write (ulsort,texte(langue,3)) 'UTFAM2', nompro
182 #endif
183         call utfam2 (   iaux, nhpefa, nctfpe, nbfpen,
184      >                pcfape,
185      >                ulsort, langue, codret)
186 c
187         endif
188 c
189       endif
190 c
191 c====
192 c 4. la fin
193 c====
194 c
195       if ( codret.ne.0 ) then
196 c
197 #include "envex2.h"
198 c
199       write (ulsort,texte(langue,1)) 'Sortie', nompro
200       write (ulsort,texte(langue,2)) codret
201 c
202       endif
203 c
204 #ifdef _DEBUG_HOMARD_
205       write (ulsort,texte(langue,1)) 'Sortie', nompro
206       call dmflsh (iaux)
207 #endif
208 c
209       end