1 subroutine eslsm3 ( nbfonc, defonc,
3 > ulsort, langue, codret )
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c Entree-Sortie - Lecture d'une Solution au format MED - phase 3
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . nbfonc . e . 1 . nombre de fonctions .
31 c . defonc . e . nbinec*. description des fonctions en entier .
32 c . . . nbfonc . 1. type de support au sens MED .
33 c . . . . 2. nombre de points de Gauss .
34 c . . . . 3. nombre de valeurs .
35 c . . . . 4. nombre de valeurs du profil eventuel .
36 c . . . . 5. nombre de supports associes .
37 c . . . . 6. 1, si aux noeuds par elements .
38 c . . . . 2, si aux points de Gauss, associe avec .
39 c . . . . un champ aux noeuds par elements .
40 c . . . . 3, si aux points de Gauss autonome .
42 c . . . . 7. nombre de tableaux de ce type .
43 c . . . . 8. numero du tableau dans la fonction .
44 c . . . . 9. numero de la fonction associee si champ .
45 c . . . . aux noeuds par element ou points de Gaus.
46 c . . . . 10. numero HOMARD du champ associe .
47 c . . . . 11. type interpolation .
48 c . . . . 0, si automatique .
49 c . . . . 1 si degre 1, 2 si degre 2, .
50 c . . . . 3 si iso-P2 .
51 c . . . . 12. type de champ edfl64/edin64 .
52 c . . . . 21-nbinec. type des supports associes .
53 c . nofonc . es .3*nbfonc. description des fonctions en caracteres .
54 c . . . . 1. nom de l'objet profil, blanc sinon .
55 c . . . . 2. nom de l'objet fonction .
56 c . . . . 3. nom de l'objet localisation des points .
57 c . . . . de Gauss, blanc sinon .
58 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
59 c . langue . e . 1 . langue des messages .
60 c . . . . 1 : francais, 2 : anglais .
61 c . codret . es . 1 . code de retour des modules .
62 c . . . . 0 : pas de probleme .
63 c . . . . 1 : probleme .
64 c ______________________________________________________________________
67 c 0. declarations et dimensionnement
70 c 0.1. ==> generalites
76 parameter ( nompro = 'ESLSM3' )
93 integer defonc(nbinec,*)
95 character*8 nofonc(3,*)
97 integer ulsort, langue, codret
99 c 0.4. ==> variables locales
104 integer typgeo, ngauss, nbenmx, nbvapr, nbtyas
105 integer carsup, nbtafo, typint
106 integer advale, advalr, adobch, adprpg, adtyas
111 parameter ( nbmess = 150 )
112 character*80 texte(nblang,nbmess)
114 c 0.5. ==> initialisations
115 c ______________________________________________________________________
123 #ifdef _DEBUG_HOMARD_
124 write (ulsort,texte(langue,1)) 'Entree', nompro
131 c 2. creations des fonctions
134 do 20 , nrfonc = 1 , nbfonc
136 if ( codret.eq.0 ) then
138 #ifdef _DEBUG_HOMARD_
139 write (ulsort,*) '============================================='
140 write (ulsort,texte(langue,36)) nompro, nrfonc
141 write (ulsort,texte(langue,64)) defonc(1,nrfonc)
142 write (ulsort,texte(langue,69)) defonc(12,nrfonc)
143 write (ulsort,texte(langue,64)) defonc(1,nrfonc)
144 write (ulsort,texte(langue,57)) defonc(2,nrfonc)
145 write (ulsort,texte(langue,58)) defonc(3,nrfonc)
146 write (ulsort,texte(langue,62)) defonc(4,nrfonc)
147 do 229 , iaux = 1, defonc(5,nrfonc)
148 write (ulsort,texte(langue,60)) defonc(20+iaux,nrfonc)
150 write (ulsort,texte(langue,65+defonc(6,nrfonc)))
151 write (ulsort,texte(langue,111)) defonc(7,nrfonc)
152 if ( defonc(11,nrfonc).ge.0 .and. defonc(11,nrfonc).le.3 ) then
153 write (ulsort,texte(langue,100+defonc(11,nrfonc)))
155 write (ulsort,texte(langue,104))
157 write (ulsort,texte(langue,61)) nofonc(1,nrfonc)
158 write (ulsort,*) 'numero tableau : ',defonc(9,nrfonc)
159 if ( defonc(2,nrfonc).eq.ednopg ) then
160 write (ulsort,*) 'Allocation a ',
161 > defonc(3,nrfonc)*defonc(7,nrfonc), ' = ',
162 > defonc(3,nrfonc), '*', defonc(7,nrfonc)
164 write (ulsort,*) 'Allocation a ',
165 > defonc(3,nrfonc)*defonc(7,nrfonc)*defonc(2,nrfonc), ' = ',
166 > defonc(3,nrfonc), '*', defonc(7,nrfonc), '*', defonc(2,nrfonc)
170 typcha = defonc(12,nrfonc)
171 #ifdef _DEBUG_HOMARD_
172 write (ulsort,texte(langue,3)) 'UTALFO', nompro
174 call utalfo ( obfonc, typcha,
175 > defonc(1,nrfonc), defonc(2,nrfonc),
176 > defonc(3,nrfonc), defonc(4,nrfonc),
177 > defonc(5,nrfonc), defonc(6,nrfonc),
178 > defonc(7,nrfonc), defonc(11,nrfonc),
179 > advale, advalr, adobch, adprpg, adtyas,
180 > ulsort, langue, codret )
184 #ifdef _DEBUG_HOMARD_
185 call gmprsx (nompro, obfonc )
188 if ( codret.eq.0 ) then
190 do 21 , iaux = 1, defonc(5,nrfonc)
191 imem(adtyas+iaux-1) = defonc(20+iaux,nrfonc)
193 nofonc(2,nrfonc) = obfonc
200 c 3. memorisation des fonctions associees
203 do 30 , nrfonc = 1 , nbfonc
205 iaux = defonc(9,nrfonc)
207 if ( iaux.ne.0 ) then
209 c 3.1. ==> caracteristiques de la fonction courante
211 if ( codret.eq.0 ) then
213 obfonc = nofonc(2,nrfonc)
214 #ifdef _DEBUG_HOMARD_
215 write (ulsort,texte(langue,3)) 'UTCAFO', nompro
217 call utcafo ( obfonc,
219 > typgeo, ngauss, nbenmx, nbvapr, nbtyas,
220 > carsup, nbtafo, typint,
221 > advale, advalr, adobch, adprpg, adtyas,
222 > ulsort, langue, codret )
225 c 3.2. ==> memorisation du nom de la fonction associee
227 if ( codret.eq.0 ) then
229 smem(adprpg+2) = nofonc(2,iaux)
241 if ( codret.ne.0 ) then
245 write (ulsort,texte(langue,1)) 'Sortie', nompro
246 write (ulsort,texte(langue,2)) codret
250 #ifdef _DEBUG_HOMARD_
251 write (ulsort,texte(langue,1)) 'Sortie', nompro