1 subroutine sfdefg ( suifro,
2 > nocman, nocmaf, ncafdg,
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 - DEFinition des Groupes
26 c ______________________________________________________________________
27 c . nom . e/s . taille . description .
28 c .____________________________________________________________________.
29 c . suifro . e . 1 . 1 : pas de suivi de frontiere .
30 c . . . . 2x : frontiere discrete .
31 c . . . . 3x : frontiere analytique .
32 c . . . . 5x : frontiere cao .
33 c . nocman . e . char*8 . nom de l'objet maillage calcul iteration n .
34 c . nocmaf . e . char*8 . nom de l'objet maillage frontiere discrete .
35 c . ncafdg . e . char*8 . nom de l'objet des frontieres discretes/CAO.
36 c . . . . nom des groupes .
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 . es . 1 . code de retour des modules .
41 c . . . . 0 : pas de probleme .
42 c . . . . 2 : probleme avec la memoire .
43 c . . . . 3 : probleme avec le fichier .
44 c . . . . 5 : contenu incorrect .
45 c ______________________________________________________________________
48 c 0. declarations et dimensionnement
51 c 0.1. ==> generalites
57 parameter ( nompro = 'SFDEFG' )
71 character*8 nocman, nocmaf, ncafdg
73 integer ulsort, langue, codret
75 c 0.4. ==> variables locales
79 integer nbf, nblign, nbgrmx
85 parameter ( nbmess = 10 )
86 character*80 texte(nblang,nbmess)
88 c 0.5. ==> initialisations
89 c ______________________________________________________________________
98 write (ulsort,texte(langue,1)) 'Entree', nompro
102 #ifdef _DEBUG_HOMARD_
103 write (ulsort,90002) 'suifro', suifro
104 if ( mod(suifro,2).eq.0 ) then
105 call gmprsx (nompro//' - maillage frontiere', nocmaf)
107 call gmprsx (nompro//' - maillage calcul', nocman)
109 call gmprsx (nompro//' - groupes de la frontiere', ncafdg)
110 call gmprsx (nompro//' - groupes de la frontiere',
118 c 2.1. ==> Allocation de la branche de la frontiere de taille egale au
119 c nombre de familles MED presentes
121 if ( mod(suifro,2).eq.0 ) then
126 #ifdef _DEBUG_HOMARD_
127 call gmprsx ( nompro//' - saux08', saux08 )
130 c 2.3.1. ==> Caracteristiques des familles du maillage de la frontiere
132 if ( codret.eq.0 ) then
134 call gmnomc ( saux08//'.Famille' , ncfami, codret )
138 if ( codret.eq.0 ) then
140 call gmliat ( ncfami, 1, nbf, codret )
142 #ifdef _DEBUG_HOMARD_
143 write (ulsort,90002) 'nbf', nbf
148 if ( codret.eq.0 ) then
150 call gmmod ( saux08//'.Frontier',
151 > iaux, 0, nbf, 1, 1, codret )
154 #ifdef _DEBUG_HOMARD_
155 call gmprsx ( nompro, saux08//'.Frontier' )
159 c 3. Les bords sont-ils definis par des groupes dans les donnees,
160 c ou par des groupes dans les familles du maillage de frontiere ?
162 #ifdef _DEBUG_HOMARD_
163 write (ulsort,90002) '3. Bords ; codret', codret
166 if ( codret.eq.0 ) then
168 #ifdef _DEBUG_HOMARD_
169 write (ulsort,texte(langue,3)) 'SFGROU', nompro
171 call sfgrou ( ncfami, ncafdg,
173 > ulsort, langue, codret)
175 #ifdef _DEBUG_HOMARD_
176 write (ulsort,90002) 'nblign', nblign
177 write (ulsort,90002) 'nbgrmx', nbgrmx
178 call gmprsx ( nompro, ncafdg )
184 c 4. Quand aucune ligne n'a ete definie dans le fichier de configuration
185 c on suivra toutes celles definies dans le maillage de la frontiere
187 #ifdef _DEBUG_HOMARD_
188 write (ulsort,90002) '4. ; codret', codret
191 if ( nblign.eq.0 ) then
193 #ifdef _DEBUG_HOMARD_
194 write (ulsort,90002) '4. 0 ligne ; codret', codret
197 if ( codret.eq.0 ) then
199 #ifdef _DEBUG_HOMARD_
200 write (ulsort,texte(langue,3)) 'SFGRFA', nompro
202 call sfgrfa ( saux08, ncafdg,
203 > nblign, nbf, nbgrmx,
204 > ulsort, langue, codret)
209 c 5. Quand des lignes ont ete definies dans le fichier de configuration
210 c on eliminera toutes celles inconnues dans le maillage de la
216 #ifdef _DEBUG_HOMARD_
217 write (ulsort,90015) '5.', nblign, 'lignes ; codret', codret
220 if ( codret.eq.0 ) then
222 #ifdef _DEBUG_HOMARD_
223 write (ulsort,texte(langue,3)) 'SFGRFB', nompro
225 call sfgrfb ( saux08, ncafdg,
226 > nblign, nbf, nbgrmx,
227 > ulsort, langue, codret)
233 #ifdef _DEBUG_HOMARD_
234 call gmprsx ( nompro, ncafdg )
235 call gmprsx ( nompro, ncafdg//'.Pointeur' )
236 call gmprsx ( nompro, ncafdg//'.Taille' )
237 call gmprsx ( nompro, ncafdg//'.Table' )
244 if ( codret.ne.0 ) then
248 write (ulsort,texte(langue,1)) 'Sortie', nompro
249 write (ulsort,texte(langue,2)) codret
253 #ifdef _DEBUG_HOMARD_
254 write (ulsort,texte(langue,1)) 'Sortie', nompro