1 subroutine utalpf ( obpafo,
2 > nbfopa, typgpf, ngauss, carsup, typint,
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 - ALlocation d'un Paquet de Fonctions
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . obpafo . s . char8 . nom de l'objet du paquet de fonctions .
32 c . nbfopa . e . 1 . nombre de fonctions dans le paquet .
33 c . typgpf . e . 1 . si >0 : type geometrique s'il est unique .
34 c . . . . si <0 : nombre de type geometriques associe.
35 c . ngauss . e . 1 . nombre de points de gauss .
36 c . carsup . e . 1 . caracteristiques du support .
37 c . . . . 1, si aux noeuds par elements .
38 c . . . . 2, si aux points de Gauss, associe avec .
39 c . . . . n champ aux noeuds par elements .
40 c . . . . 3 si aux points de Gauss autonome .
42 c . typint . e . 1 . type d'interpolation .
43 c . . . . 0, si automatique .
44 c . . . . elements : 0 si intensif, sans orientation.
45 c . . . . 1 si extensif, sans orientation.
46 c . . . . 2 si intensif, avec orientation.
47 c . . . . 3 si extensif, avec orientation.
48 c . . . . noeuds : 1 si degre 1 .
49 c . . . . 2 si degre 2 .
50 c . . . . 3 si iso-P2 .
51 c . adobfo . s . 1 . adresse des noms des objets 'Fonction' et .
52 c . . . . de l'eventuel paquet associe .
53 c . adtyge . s . 1 . adresse des types geometriques .
54 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
55 c . langue . e . 1 . langue des messages .
56 c . . . . 1 : francais, 2 : anglais .
57 c . codret . es . 1 . code de retour des modules .
58 c . . . . 0 : pas de probleme .
59 c . . . . 1 : probleme .
60 c ______________________________________________________________________
63 c 0. declarations et dimensionnement
66 c 0.1. ==> generalites
72 parameter ( nompro = 'UTALPF' )
86 integer nbfopa, typgpf, ngauss, carsup, typint
87 integer adobfo, adtyge
89 integer ulsort, langue, codret
91 c 0.4. ==> variables locales
94 integer codre1, codre2, codre3, codre4, codre5
98 parameter ( nbmess = 10 )
99 character*80 texte(nblang,nbmess)
101 c 0.5. ==> initialisations
102 c ______________________________________________________________________
110 #ifdef _DEBUG_HOMARD_
111 write (ulsort,texte(langue,1)) 'Entree', nompro
115 texte(1,4) = '(''Creation du paquet de fonctions : '',a)'
117 texte(2,4) = '(''Creation of pack of functions : '',a)'
122 c 2. creation de la structure generale du paquet de fonctions
125 if ( codret.eq.0 ) then
127 call gmalot ( obpafo, 'PackFonc', 0, iaux, codret )
131 #ifdef _DEBUG_HOMARD_
132 write (ulsort,texte(langue,4)) obpafo
136 c 3. les caracteristiques de ce paquet de fonctions
138 #ifdef _DEBUG_HOMARD_
139 write (ulsort,*) '3. caracteristiques ; codret = ', codret
142 if ( codret.eq.0 ) then
144 #ifdef _DEBUG_HOMARD_
145 write (ulsort,90002) 'nbfopa', nbfopa
146 write (ulsort,90002) 'typgpf', typgpf
147 write (ulsort,90002) 'ngauss', ngauss
148 write (ulsort,90002) 'carsup', carsup
149 write (ulsort,90002) 'typint', typint
152 call gmecat ( obpafo, 1, nbfopa, codre1 )
153 call gmecat ( obpafo, 2, typgpf, codre2 )
154 call gmecat ( obpafo, 3, ngauss, codre3 )
155 call gmecat ( obpafo, 4, carsup, codre4 )
156 call gmecat ( obpafo, 5, typint, codre5 )
158 codre0 = min ( codre1, codre2, codre3, codre4, codre5 )
159 codret = max ( abs(codre0), codret,
160 > codre1, codre2, codre3, codre4, codre5 )
167 #ifdef _DEBUG_HOMARD_
168 write (ulsort,*) '4. branches ; codret = ', codret
171 if ( codret.eq.0 ) then
174 call gmaloj ( obpafo//'.Fonction', ' ', iaux, adobfo, codre0 )
176 codret = max ( abs(codre0), codret )
180 if ( typgpf.lt.0 ) then
182 if ( codret.eq.0 ) then
185 call gmaloj ( obpafo//'.TypeSuAs', ' ', iaux, adtyge, codre0 )
187 codret = max ( abs(codre0), codret )
193 #ifdef _DEBUG_HOMARD_
194 call gmprsx (nompro, obpafo )
195 call gmprsx (nompro, obpafo//'.Fonction' )
196 call gmprsx (nompro, obpafo//'.TypeSuAs' )
203 if ( codret.ne.0 ) then
207 write (ulsort,texte(langue,1)) 'Sortie', nompro
208 write (ulsort,texte(langue,2)) codret
212 #ifdef _DEBUG_HOMARD_
213 write (ulsort,texte(langue,1)) 'Sortie', nompro