1 subroutine sfprep ( nomail, nocdfr,
3 > ulsort, langue, codret )
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c Suivi de Frontiere : PREParation
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . nomail . e . char8 . nom de l'objet maillage homard iter. n+1 .
31 c . nocdfr . e . char8 . nom de l'objet description de la frontiere .
32 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
33 c . taetco . e . lgetco . tableau de l'etat courant .
34 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
35 c . langue . e . 1 . langue des messages .
36 c . . . . 1 : francais, 2 : anglais .
37 c . codret . es . 1 . code de retour des modules .
38 c . . . . en entree = celui du module d'avant .
39 c . . . . en sortie = celui du module en cours .
40 c . . . . 0 : pas de probleme .
41 c . . . . 1 : manque de temps cpu .
42 c . . . . 2x : probleme dans les memoires .
43 c . . . . 3x : probleme dans les fichiers .
44 c . . . . 5 : mauvaises options .
45 c . . . . 6 : problemes dans les noms d'objet .
46 c ______________________________________________________________________
49 c 0. declarations et dimensionnement
52 c 0.1. ==> generalites
58 parameter ( nompro = 'SFPREP' )
73 character*8 nomail, nocdfr
76 integer taetco(lgetco)
78 integer ulsort, langue, codret
80 c 0.4. ==> variables locales
85 integer psomar, phetar, pnp2ar
86 integer pcfaar, pfamar
87 integer psegli, pnumli
89 integer codre0, codre1, codre2
93 parameter ( action = 'sufr ' )
96 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
97 character*8 nhtetr, nhhexa, nhpyra, nhpent
99 character*8 nhvois, nhsupe, nhsups
101 #ifdef _DEBUG_HOMARD_
106 parameter ( nbmess = 20 )
107 character*80 texte(nblang,nbmess)
109 c 0.5. ==> initialisations
110 c ______________________________________________________________________
118 #ifdef _DEBUG_HOMARD_
119 write (ulsort,texte(langue,1)) 'Entree', nompro
125 #ifdef _DEBUG_HOMARD_
126 if ( codret.eq.0 ) then
129 call utveri ( action, nomail, nompro, iaux,
130 > ulsort, langue, codret )
136 c 2. recuperation des pointeurs
139 c 2.1. ==> structure generale
141 if ( codret.eq.0 ) then
143 #ifdef _DEBUG_HOMARD_
144 write (ulsort,texte(langue,3)) 'UTNOMH', nompro
146 call utnomh ( nomail,
148 > degre, maconf, homolo, hierar,
149 > rafdef, nbmane, typcca, typsfr, maextr,
152 > nhnoeu, nhmapo, nharet,
154 > nhtetr, nhhexa, nhpyra, nhpent,
156 > nhvois, nhsupe, nhsups,
157 > ulsort, langue, codret)
163 if ( codret.eq.0 ) then
165 #ifdef _DEBUG_HOMARD_
166 write (ulsort,texte(langue,3)) 'UTAD01', nompro
169 call utad01 ( iaux, nhnoeu,
172 > pcoono, jaux, jaux, jaux,
173 > ulsort, langue, codret )
177 if ( codret.eq.0 ) then
179 #ifdef _DEBUG_HOMARD_
180 write (ulsort,texte(langue,3)) 'UTAD02_ar', nompro
183 if ( degre.eq.2 ) then
186 call utad02 ( iaux, nharet,
187 > phetar, psomar, jaux, jaux,
188 > pfamar, pcfaar, jaux,
189 > jaux, pnp2ar, jaux,
191 > ulsort, langue, codret )
196 c 3. Particularites de la frontiere discrete
198 #ifdef _DEBUG_HOMARD_
199 write (ulsort,90002) '3. frontiere discrete ; codret', codret
202 c 3.1.==> Description de la frontiere discrete
204 if ( codret.eq.0 ) then
206 call gmadoj ( nocdfr//'.PtrSomLi', psegli, iaux, codre1 )
207 call gmadoj ( nocdfr//'.NumeLign', pnumli, iaux, codre2 )
209 codre0 = min ( codre1, codre2 )
210 codret = max ( abs(codre0), codret,
215 c 3.2. ==> Compactage des numeros de ligne
217 #ifdef _DEBUG_HOMARD_
218 write (ulsort,90002) '3.2 compactage nros ligne ; codret', codret
221 if ( codret.eq.0 ) then
224 #ifdef _DEBUG_HOMARD_
225 write (ulsort,texte(langue,3)) 'SFNULI', nompro
227 call sfnuli ( imem(pcfaar), imem(pnumli), iaux,
229 > ulsort, langue, codret )
233 #ifdef _DEBUG_HOMARD_
234 if ( codret.eq.0 ) then
238 call utveri ( action, nomail, nompra, iaux,
239 > ulsort, langue, codret )
248 #ifdef _DEBUG_HOMARD_
249 if ( codret.eq.0 ) then
252 call utveri ( action, nomail, nompro, iaux,
253 > ulsort, langue, codret )
258 if ( codret.ne.0 ) then
262 write (ulsort,texte(langue,1)) 'Sortie', nompro
263 write (ulsort,texte(langue,2)) codret
267 #ifdef _DEBUG_HOMARD_
268 write (ulsort,texte(langue,1)) 'Sortie', nompro