1 subroutine utad03 ( option, nhenti,
2 > nbenci, nbenrc, numead,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c UTilitaire - ADresses - phase 03
27 c ______________________________________________________________________
28 c Recuperation d'informations pour le recollement non conforme
29 c d'une entite HOM_Enti
30 c Remarque : le code de retour en entree ne doit pas etre ecrase
31 c brutalement ; il doit etre cumule avec les operations
33 c ______________________________________________________________________
35 c . nom . e/s . taille . description .
36 c .____________________________________________________________________.
37 c . option . e . 1 . option de pilotage des infos. a recuperer .
38 c . . . . c'est un multiple des entiers suivants : .
39 c . . . . 2 : nombre de non conformites initiales .
40 c . . . . 3 : nbre d'entites / recollement unitaire .
41 c . . . . 5 : numero de la mere adoptive .
42 c . . . . 7 : aretes recouvrant une autre .
43 c . . . . 11 : aretes recouvertes par une autre .
44 c . nhenti . e . char8 . nom de l'objet decrivant l'entite .
45 c . nbenci . s . 1 . nombre de non conformites initiales .
46 c . nbenrc . s . 1 . nombre d'entites par recollement unitaire .
47 c . numead . s . 1 . numero de la mere adoptive .
48 c . adenra . s . 1 . liste des entites recouvrant une autre .
49 c . adenrb . s . 1 . liste des entites recouvertes par une autre.
50 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
51 c . langue . e . 1 . langue des messages .
52 c . . . . 1 : francais, 2 : anglais .
53 c . codret . es . 1 . code de retour des modules .
54 c ______________________________________________________________________
57 c 0. declarations et dimensionnement
60 c 0.1. ==> generalites
66 parameter ( nompro = 'UTAD03' )
79 integer nbenci, nbenrc, numead
80 integer adenra, adenrb
82 integer ulsort, langue, codret
84 c 0.4. ==> variables locales
89 integer codre1, codre2, codre3, codre4, codre5
93 parameter ( nbmess = 10 )
94 character*80 texte(nblang,nbmess)
96 c 0.5. ==> initialisations
97 c ______________________________________________________________________
103 c 1.3. ==> les messages
107 #ifdef _DEBUG_HOMARD_
108 write (ulsort,texte(langue,1)) 'Entree', nompro
112 texte(1,4) = '(''Adresses relatives aux recollements'')'
113 texte(1,5) = '(''Option :'',i10)'
114 texte(1,6) = '(''Codes de retour'',20i3)'
116 texte(2,4) = '(''Adresses for glue'')'
117 texte(2,5) = '(''Option :'',i10)'
118 texte(2,6) = '(''Error codes'',20i3)'
120 #ifdef _DEBUG_HOMARD_
121 write (ulsort,texte(langue,4))
122 write (ulsort,texte(langue,5)) option
123 call gmprsx (nompro,nhenti//'.Recollem')
131 c 2. Structure generale
134 call gmobal ( nhenti//'.Recollem', codre0 )
135 if ( codre0.eq.0 ) then
140 elseif ( codre0.eq.1 ) then
145 codret = max ( abs(codre0), codret )
149 c 3. Nombre de non conformites initiales
151 #ifdef _DEBUG_HOMARD_
152 write (ulsort,*) '3. Nbr non conformites init ; codret = ', codret
155 if ( option.gt.0 ) then
157 if ( mod(option,2).eq.0 ) then
161 call gmliat ( nhenti//'.Recollem', 1, nbenci, codre1 )
163 codret = max ( abs(codre1), codret )
172 c 4. Recherche des informations
174 #ifdef _DEBUG_HOMARD_
175 write (ulsort,*) '4. Recherche informations ; codret = ', codret
178 if ( option.gt.0 ) then
180 c 4.1. ==> Nombre d'entites par recollement unitaire
182 if ( mod(option,3).eq.0 ) then
186 call gmliat ( nhenti//'.Recollem', 2, nbenrc, codre2 )
188 codret = max ( abs(codre2), codret )
192 if ( mod(option,2).ne.0 ) then
193 codret = max ( 41, codret )
200 c 4.2. ==> Numero de la mere adoptive
201 c Remarque : si la structure n'existe pas, on renvoie 0 pour
202 c ne pas perturber le reste
204 if ( mod(option,5).eq.0 ) then
208 call gmliat ( nhenti//'.Recollem', 3, numead, codre3 )
210 codret = max ( abs(codre3), codret )
220 c 4.3. ==> liste des entites recouvrant une autre
222 if ( mod(option,7).eq.0 ) then
226 call gmadoj ( nhenti//'.Recollem.ListeA',
227 > adenra, iaux, codre4 )
229 codret = max ( abs(codre4), codret )
233 if ( mod(option,2).ne.0 ) then
234 codret = max ( 43, codret )
241 c 4.4. ==> Liste des entites recouvertes par une autre
243 if ( mod(option,11).eq.0 ) then
247 call gmadoj ( nhenti//'.Recollem.ListeB',
248 > adenrb, iaux, codre5 )
250 codret = max ( abs(codre5), codret )
254 if ( mod(option,2).ne.0 ) then
255 codret = max ( 44, codret )
268 if ( codret.ne.0 ) then
272 write (ulsort,texte(langue,1)) 'Sortie', nompro
273 write (ulsort,texte(langue,5)) option
274 write (ulsort,texte(langue,2)) codret
276 write (ulsort,texte(langue,6)) codre0,
277 > codre1, codre2, codre3, codre4, codre5
287 #ifdef _DEBUG_HOMARD_
288 write (ulsort,texte(langue,1)) 'Sortie', nompro