Salome HOME
Homard executable
[modules/homard.git] / src / tool / AV_Conversion / vcme27.F
1       subroutine vcme27 ( notftr, nofatr, cofatr,
2      >                    nhtrfa,
3      >                    pcfatr,
4      >                    pcfaqu,
5      >                    pcfahe,
6      >                    ulsort, langue, codret )
7 c ______________________________________________________________________
8 c
9 c                             H O M A R D
10 c
11 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c
13 c Version originale enregistree le 18 juin 1996 sous le numero 96036
14 c aupres des huissiers de justice Simart et Lavoir a Clamart
15 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
16 c aupres des huissiers de justice
17 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c
19 c    HOMARD est une marque deposee d'Electricite de France
20 c
21 c Copyright EDF 1996
22 c Copyright EDF 1998
23 c Copyright EDF 2002
24 c Copyright EDF 2020
25 c ______________________________________________________________________
26 c
27 c    aVant adaptation - Conversion de Maillage Extrude - phase 27
28 c     -                 -             -        -               --
29 c Determine les familles pour la relation quadrangles/triangles
30 c ______________________________________________________________________
31 c .        .     .        .                                            .
32 c .  nom   . e/s . taille .           description                      .
33 c .____________________________________________________________________.
34 c . notftr . e   .  1     . nombre d'origine des carac. des triangles  .
35 c . nofatr . e   .  1     . nombre d'origine de familles de triangles  .
36 c . cofatr . e   . notftr*. codes d'origine des familles des triangles .
37 c .        .     . nofatr .                                            .
38 c . nhtrfa . e   . char8  . objet decrivant les familles de triangles  .
39 c . pcfatr . es  .    1   . codes des familles des triangles           .
40 c . pcfaqu . es  .    1   . codes des familles des quadrangles         .
41 c . pcfahe . e   .    1   . codes des familles des hexaedres           .
42 c . ulsort . e   .   1    . numero d'unite logique de la liste standard.
43 c . langue . e   .    1   . langue des messages                        .
44 c .        .     .        . 1 : francais, 2 : anglais                  .
45 c . codret . e   .    1   . code de retour des modules                 .
46 c .        .     .        . 0 : pas de probleme                        .
47 c .        .     .        . 1 : probleme                               .
48 c ______________________________________________________________________
49 c
50 c====
51 c 0. declarations et dimensionnement
52 c====
53 c
54 c 0.1. ==> generalites
55 c
56       implicit none
57       save
58 c
59       character*6 nompro
60       parameter ( nompro = 'VCME27' )
61 c
62 #include "nblang.h"
63 c
64 c 0.2. ==> communs
65 c
66 #include "envex1.h"
67 #include "gmenti.h"
68 c
69 #include "impr02.h"
70 #include "dicfen.h"
71 #include "nbfami.h"
72 c
73 c 0.3. ==> arguments
74 c
75       integer notftr, nofatr, cofatr(notftr,nofatr)
76       integer pcfatr
77       integer pcfaqu
78       integer pcfahe
79 c
80       character*8 nhtrfa
81 c
82       integer ulsort, langue, codret
83 c
84 c 0.4. ==> variables locales
85 c
86       integer iaux
87       integer nbftr0
88       integer numfam
89 c
90       integer nbmess
91       parameter ( nbmess = 10 )
92       character*80 texte(nblang,nbmess)
93 c
94 c 0.5. ==> initialisations
95 c ______________________________________________________________________
96 c
97 c====
98 c 1. messages
99 c====
100 c
101 #include "impr01.h"
102 c
103 #ifdef _DEBUG_HOMARD_
104       write (ulsort,texte(langue,1)) 'Entree', nompro
105       call dmflsh (iaux)
106 #endif
107 c
108 #include "impr03.h"
109 c
110       codret = 0
111 c
112 c====
113 c. Parcours des familles initiales
114 c====
115 #ifdef _DEBUG_HOMARD_
116       write (ulsort,90002) '3. parcours ; codret', codret
117 #endif
118 c
119 c 2.1. ==> Taille initiale du tableau
120 c
121       nbftr0 = nbftri
122       numfam = 0
123 c
124 c 2.2. ==> Allongement de la taille du tableau des familles de triangles
125 c
126    22 continue
127 c
128       if ( codret.eq.0 ) then
129 c
130       nbftr0 = nbftr0 + 27
131 c
132       iaux = 2
133 #ifdef _DEBUG_HOMARD_
134       write (ulsort,texte(langue,3)) 'UTFAM2', nompro
135 #endif
136       call utfam2 (   iaux, nhtrfa, nctftr, nbftr0,
137      >              pcfatr,
138      >              ulsort, langue, codret)
139 c
140       endif
141 c
142 c 2.3. ==> Programme utilitaire
143 c
144       if ( codret.eq.0 ) then
145 c
146 #ifdef _DEBUG_HOMARD_
147       write (ulsort,texte(langue,3)) 'VCME28', nompro
148 #endif
149       call vcme28 ( numfam,
150      >              nbftr0,
151      >              notftr, nofatr, cofatr,
152      >              imem(pcfatr),
153      >              imem(pcfaqu),
154      >              imem(pcfahe),
155      >              ulsort, langue, codret )
156 c
157       endif
158 c
159 c 2.4. ==> A rallonger ?
160 c
161       if ( codret.eq.0 ) then
162 c
163       if ( nbftri.lt.0 ) then
164 c
165         nbftri = -nbftri
166         goto 22
167 c
168       endif
169 c
170       endif
171 c
172 c====
173 c 3. Redimensionnement final
174 c====
175 #ifdef _DEBUG_HOMARD_
176       write (ulsort,90002) '3. Redimensionnement ; codret', codret
177       write (ulsort,90002) 'nbftri', nbftri
178       write (ulsort,90002) 'nbftr0', nbftr0
179 #endif
180 c
181       if ( nbftri.ne.nbftr0 ) then
182 c
183         if ( codret.eq.0 ) then
184 c
185         iaux = 2
186 #ifdef _DEBUG_HOMARD_
187         write (ulsort,texte(langue,3)) 'UTFAM2', nompro
188 #endif
189         call utfam2 (   iaux, nhtrfa, nctftr, nbftri,
190      >                pcfatr,
191      >                ulsort, langue, codret)
192 c
193         endif
194 c
195       endif
196 c
197 c====
198 c 4. la fin
199 c====
200 c
201       if ( codret.ne.0 ) then
202 c
203 #include "envex2.h"
204 c
205       write (ulsort,texte(langue,1)) 'Sortie', nompro
206       write (ulsort,texte(langue,2)) codret
207 c
208       endif
209 c
210 #ifdef _DEBUG_HOMARD_
211       write (ulsort,texte(langue,1)) 'Sortie', nompro
212       call dmflsh (iaux)
213 #endif
214 c
215       end