1 subroutine utad21 ( nhnoeu,
2 > adcoor, adhist, adarno,
7 > ulsort, langue, codret )
8 c ______________________________________________________________________
12 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
14 c Version originale enregistree le 18 juin 1996 sous le numero 96036
15 c aupres des huissiers de justice Simart et Lavoir a Clamart
16 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
17 c aupres des huissiers de justice
18 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
20 c HOMARD est une marque deposee d'Electricite de France
26 c ______________________________________________________________________
28 c UTilitaire - ADresses - phase 21
30 c ______________________________________________________________________
31 c Recuperation des adresses des tableaux pour les noeuds HOM_Noeu
32 c Attention : Si le tableau est absent ou de longueur nulle, on
33 c retourne une adresse valant 0. C'est une valeur
34 c impossible car cela voudrait dire que malloc a reserve
35 c une place exactement la ou est le common.
36 c ______________________________________________________________________
38 c . nom . e/s . taille . description .
39 c .____________________________________________________________________.
40 c . nhnoeu . e . char8 . nom de l'objet decrivant l'entite .
41 c . adhist . s . 1 . historique de l'etat .
42 c . adfami . s . 1 . famille des noeuds .
43 c . adcofa . s . 1 . codes des familles des noeuds .
44 c . adcoor . s . 1 . coordonnees .
45 c . adarno . s . 1 . arete supportant le noeud .
46 c . adhono . s . 1 . homologue du noeud .
47 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
48 c . langue . e . 1 . langue des messages .
49 c . . . . 1 : francais, 2 : anglais .
50 c . codret . es . 1 . code de retour des modules .
51 c ______________________________________________________________________
54 c 0. declarations et dimensionnement
57 c 0.1. ==> generalites
63 parameter ( nompro = 'UTAD21' )
75 integer adcoor, adhist, adarno
76 integer adhono, addera
77 integer adcoco, adinfg
79 integer adfami, adcofa
81 integer ulsort, langue, codret
83 c 0.4. ==> variables locales
85 integer iaux, jaux, kaux
91 parameter ( nbmess = 10 )
92 character*80 texte(nblang,nbmess)
94 c 0.5. ==> initialisations
95 c ______________________________________________________________________
101 c 1.3. ==> les messages
105 #ifdef _DEBUG_HOMARD_
106 write (ulsort,texte(langue,1)) 'Entree', nompro
110 texte(1,4) = '(''Adresses relatives aux noeuds'')'
112 texte(2,4) = '(''Adresses for nodes'')'
114 #ifdef _DEBUG_HOMARD_
115 write (ulsort,texte(langue,4))
116 ccc call gmprsx(nompro,nhnoeu)
122 c 2. Reperage des tableaux
123 c On explore tous ceux possibles dans HOM_Noeu (cf. typobj.stu)
126 do 21 , iaux = 1 , 10
128 c 2.1. ==> Le nom de la iaux-ieme branche
130 if ( codret.eq.0 ) then
133 if ( iaux.eq.1 ) then
135 elseif ( iaux.eq.2 ) then
137 elseif ( iaux.eq.3 ) then
139 elseif ( iaux.eq.4 ) then
141 elseif ( iaux.eq.5 ) then
143 elseif ( iaux.eq.6 ) then
145 elseif ( iaux.eq.7 ) then
147 elseif ( iaux.eq.8 ) then
149 elseif ( iaux.eq.9 ) then
150 saux16 = 'Famille.EntiFamm'
151 elseif ( iaux.eq.10 ) then
152 saux16 = 'Famille.Codes '
157 c 2.2. ==> Recherche du tableau
159 if ( codret.eq.0 ) then
161 c 2.2.1. ==> Existence du tableau
163 call gmobal ( nhnoeu//'.'//saux16, codre0 )
165 c 2.2.1. ==> Le tableau existe : quelles adresse et longueur ?
167 if ( codre0.eq.2 ) then
169 call gmadoj ( nhnoeu//'.'//saux16, jaux, kaux, codre0 )
171 if ( codre0.eq.0 ) then
172 if ( kaux.eq.0 ) then
179 c 2.2.2. ==> Probleme
181 elseif ( codre0.ne.0 ) then
184 c 2.2.3. ==> Le tableau n'existe pas
192 c 2.3. ==> Stockage de l'adresse et eventuellement de la longueur
194 if ( codret.eq.0 ) then
196 if ( iaux.eq.1 ) then
198 elseif ( iaux.eq.2 ) then
200 elseif ( iaux.eq.3 ) then
202 elseif ( iaux.eq.4 ) then
204 elseif ( iaux.eq.5 ) then
206 elseif ( iaux.eq.6 ) then
208 elseif ( iaux.eq.7 ) then
210 elseif ( iaux.eq.8 ) then
212 elseif ( iaux.eq.9 ) then
214 elseif ( iaux.eq.10 ) then
226 if ( codret.ne.0 ) then
230 write (ulsort,texte(langue,1)) 'Sortie', nompro
231 write (ulsort,texte(langue,2)) codret
235 #ifdef _DEBUG_HOMARD_
236 write (ulsort,texte(langue,1)) 'Sortie', nompro