1 subroutine utadpt ( nobjet, choix,
3 > adpoin, adtail, adtabl,
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 d'un objet de type PtTabxxx
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . nobjet . e . char8 . nom de l'objet PtTabxxx .
32 c . choix . e . 1 . option de la recherche : .
33 c . . . . 2 : les attributs .
34 c . . . . 3 : les adresses .
35 c . nombre . s . 1 . le tableau Pointeur est (0:nombre) .
36 c . lgtabl . s . 1 . longueur commune a Taille et Table .
37 c . adpoin . s . 1 . adresse de Pointeur .
38 c . adtail . s . 1 . adresse de Taille .
39 c . adtabl . s . 1 . adresse de Table .
40 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
41 c . langue . e . 1 . langue des messages .
42 c . . . . 1 : francais, 2 : anglais .
43 c . codret . es . 1 . code de retour des modules .
44 c . . . . 0 : pas de probleme .
45 c ______________________________________________________________________
48 c 0. declarations et dimensionnement
51 c 0.1. ==> generalites
57 parameter ( nompro = 'UTADPT' )
70 integer nombre, lgtabl
71 integer adpoin, adtail, adtabl
73 integer ulsort, langue, codret
75 c 0.4. ==> variables locales
77 integer codre1, codre2
84 parameter ( nbmess = 10 )
85 character*80 texte(nblang,nbmess)
87 c 0.5. ==> initialisations
88 c ______________________________________________________________________
93 c 1.1. ==> les messages
98 write (ulsort,texte(langue,1)) 'Entree', nompro
104 #ifdef _DEBUG_HOMARD_
105 write (ulsort,90002) 'choix', choix
108 c 1.2. ==> Nom court de l'objet
110 call gmnomc ( nobjet, nomobj, codret )
112 #ifdef _DEBUG_HOMARD_
113 call gmprsx (nompro, nomobj )
114 call gmprsx (nompro, nomobj//'.Pointeur' )
115 call gmprsx (nompro, nomobj//'.Taille' )
116 call gmprsx (nompro, nomobj//'.Table' )
123 if ( mod(choix,2).eq.0 ) then
125 call gmliat ( nomobj, 1, nombre, codret )
126 #ifdef _DEBUG_HOMARD_
127 write (ulsort,90002) 'nombre', nombre
130 if ( codret.eq.0 ) then
132 if ( nombre.gt.0 ) then
133 call gmliat ( nomobj, 2, lgtabl, codret )
134 #ifdef _DEBUG_HOMARD_
135 write (ulsort,90002) 'lgtabl', lgtabl
146 #ifdef _DEBUG_HOMARD_
147 write (ulsort,*) '3. Adresses ; codret =', codret
150 if ( codret.eq.0 ) then
152 call gmliat ( nomobj, 1, nombre, codret )
153 #ifdef _DEBUG_HOMARD_
154 write (ulsort,90002) 'nombre', nombre
159 if ( codret.eq.0 ) then
161 if ( mod(choix,3).eq.0 .and. nombre.gt.0 ) then
163 if ( codret.eq.0 ) then
165 call gmadoj ( nomobj//'.Pointeur', adpoin, iaux, codre1 )
166 call gmadoj ( nomobj//'.Table' , adtabl, iaux, codre2 )
168 codre0 = min ( codre1, codre2 )
169 codret = max ( abs(codre0), codret,
174 if ( codret.eq.0 ) then
176 call gmobal ( nomobj//'.Taille', codre0 )
177 if ( codre0.eq.2 ) then
178 call gmadoj ( nomobj//'.Taille', adtail, iaux, codret )
179 elseif ( codre0.ne.0 ) then
193 if ( codret.ne.0 ) then
197 write (ulsort,texte(langue,1)) 'Sortie', nompro
198 write (ulsort,texte(langue,2)) codret
202 #ifdef _DEBUG_HOMARD_
203 write (ulsort,texte(langue,1)) 'Sortie', nompro