1 subroutine utalso ( nocsol,
2 > nbcham, nbpafo, nbprof, nblopg,
3 > adinch, adinpf, adinpr, adinlg,
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'une SOlution
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . nocsol . s . char8 . nom de l'objet solution .
32 c . nbcham . e . 1 . nombre de champs associes .
33 c . nbpafo . e . 1 . nombre d'inf. sur les paquets de fonctions .
34 c . nbprof . e . 1 . nombre de profils associes .
35 c . nblopg . e . 1 . nombre de localisations de points de Gauss .
36 c . adinch . s . 1 . adresse de l'information sur les champs .
37 c . adinpf . s . 1 . adresse de l'inf. sur paquets de fonctions .
38 c . adinpr . s . 1 . adresse de l'information sur les profils .
39 c . adinlg . s . 1 . adresse de l'information sur les .
40 c . . . . localisations de points de Gauss .
41 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
42 c . langue . e . 1 . langue des messages .
43 c . . . . 1 : francais, 2 : anglais .
44 c . codret . es . 1 . code de retour des modules .
45 c . . . . 0 : pas de probleme .
46 c . . . . 1 : probleme .
47 c ______________________________________________________________________
50 c 0. declarations et dimensionnement
53 c 0.1. ==> generalites
59 parameter ( nompro = 'UTALSO' )
71 integer nbcham, nbpafo, nbprof, nblopg
72 integer adinch, adinpf, adinpr, adinlg
74 integer ulsort, langue, codret
76 c 0.4. ==> variables locales
79 integer codre1, codre2, codre3, codre4
85 parameter ( nbmess = 10 )
86 character*80 texte(nblang,nbmess)
88 c 0.5. ==> initialisations
89 c ______________________________________________________________________
100 write (ulsort,texte(langue,1)) 'Entree', nompro
104 texte(1,4) = '(''Erreur en allouant '',a)'
106 texte(2,4) = '(''Error while allocating '',a)'
111 c 2. structure generale
114 if ( codret.eq.0 ) then
116 call gmalot ( nocsol, 'Solution', 0, iaux, codret )
118 if ( codret.ne.0 ) then
128 if ( codret.eq.0 ) then
130 call gmecat ( nocsol, 1, nbcham, codre1 )
131 call gmecat ( nocsol, 2, nbpafo, codre2 )
132 call gmecat ( nocsol, 3, nbprof, codre3 )
133 call gmecat ( nocsol, 4, nblopg, codre4 )
135 codre0 = min ( codre1, codre2, codre3, codre4 )
136 codret = max ( abs(codre0), codret,
137 > codre1, codre2, codre3, codre4 )
139 if ( codret.ne.0 ) then
146 c 4. les eventuelles branches
149 c 4.1. ==> l'information sur les champs
151 if ( codret.eq.0 ) then
153 if ( nbcham.ne.0 ) then
154 call gmaloj ( nocsol//'.InfoCham', ' ', nbcham, adinch, codret )
155 if ( codret.ne.0 ) then
162 c 4.2. ==> l'information sur les paquets de fonctions
164 if ( codret.eq.0 ) then
166 if ( nbpafo.ne.0 ) then
167 call gmaloj ( nocsol//'.InfoPaFo', ' ', nbpafo, adinpf, codret )
168 if ( codret.ne.0 ) then
175 c 4.3. ==> l'information sur les profils
177 if ( codret.eq.0 ) then
179 if ( nbprof.ne.0 ) then
180 call gmaloj ( nocsol//'.InfoProf', ' ', nbprof, adinpr, codret )
181 if ( codret.ne.0 ) then
188 c 4.4. ==> les localisations de points de Gauss
190 if ( codret.eq.0 ) then
192 if ( nblopg.ne.0 ) then
193 call gmaloj ( nocsol//'.InfoLoPG', ' ', nblopg, adinlg, codret )
194 if ( codret.ne.0 ) then
205 #ifdef _DEBUG_HOMARD_
206 call gmprsx (nompro, nocsol )
207 call gmprsx (nompro, nocsol//'.InfoCham' )
208 call gmprsx (nompro, nocsol//'.InfoPaFo' )
209 call gmprsx (nompro, nocsol//'.InfoProf' )
210 call gmprsx (nompro, nocsol//'.InfoLoPG' )
213 if ( codret.ne.0 ) then
217 write (ulsort,texte(langue,1)) 'Sortie', nompro
218 write (ulsort,texte(langue,2)) codret
219 write (ulsort,texte(langue,4)) saux08
223 #ifdef _DEBUG_HOMARD_
224 write (ulsort,texte(langue,1)) 'Sortie', nompro