1 subroutine eslsm4 ( idfmed,
3 > nbfonc, defonc, nofonc,
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 Entree-Sortie - Lecture d'une Solution au format MED - phase 2
27 c remarque : on ne lit que les champs reels
28 c remarque : on part du principe que les elements externes sont
29 c numerotes ainsi : tetraedres, triangles, segments,
30 c mailles-points, quadrangles, hexaedres, pyramides,
32 c C'est ce qui se passe a la lecture d'un maillage med par
33 c le programme eslmm2, lors de la creation du tableau des
34 c connectivite par noeuds.
35 c C'est aussi le cas pour la conversion du maillage apres
36 c adaptation (pcmav1).
37 c ______________________________________________________________________
39 c . nom . e/s . taille . description .
40 c .____________________________________________________________________.
41 c . idfmed . e . 1 . identifiant du fichier med en entree .
42 c . nbcham . e . 1 . nombre de champs dans le fichier .
43 c . obcham . e . nbcham . nom des objets qui contiennent la .
44 c . . . . description de chaque champ .
45 c . nbfonc . e . 1 . nombre de fonctions .
46 c . defonc . e . nbinec*. description des fonctions en entier .
47 c . . . nbfonc . 1. type de support au sens MED .
48 c . . . . 2. nombre de points de Gauss .
49 c . . . . 3. nombre de valeurs .
50 c . . . . 4. nombre de valeurs du profil eventuel .
51 c . . . . 5. nombre de supports associes .
52 c . . . . 6. 1, si aux noeuds par elements .
53 c . . . . 2, si aux points de Gauss, associe avec .
54 c . . . . un champ aux noeuds par elements .
55 c . . . . 3, si aux points de Gauss autonome .
57 c . . . . 7. nombre de tableaux de ce type .
58 c . . . . 8. numero du tableau dans la fonction .
59 c . . . . 9. numero de la fonction associee si champ .
60 c . . . . aux noeuds par element ou points de Gaus.
61 c . . . . 10. numero HOMARD du champ associe .
62 c . . . . 11. type interpolation .
63 c . . . . 0, si automatique .
64 c . . . . 1 si degre 1, 2 si degre 2, .
65 c . . . . 3 si iso-P2 .
66 c . . . . 12. type de champ edfl64/edin64 .
67 c . . . . 21-nbinec. type des supports associes .
68 c . nofonc . e .3*nbfonc. description des fonctions en caracteres .
69 c . . . . 1. nom de l'objet profil, blanc sinon .
70 c . . . . 2. nom de l'objet fonction .
71 c . . . . 3. nom de l'objet localisation des points .
72 c . . . . de Gauss, blanc sinon .
73 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
74 c . langue . e . 1 . langue des messages .
75 c . . . . 1 : francais, 2 : anglais .
76 c . codret . es . 1 . code de retour des modules .
77 c . . . . 0 : pas de probleme .
78 c . . . . 1 : probleme .
79 c ______________________________________________________________________
82 c 0. declarations et dimensionnement
85 c 0.1. ==> generalites
91 parameter ( nompro = 'ESLSM4' )
109 integer nbcham, nbfonc
110 integer defonc(nbinec,nbfonc)
112 character*8 obcham(nbcham)
113 character*8 nofonc(3,nbfonc)
115 integer ulsort, langue, codret
117 c 0.4. ==> variables locales
120 #ifdef _DEBUG_HOMARD_
125 integer adnocp, adcaen, adcare, adcaca
126 integer nbcomp, nbtvch, typcha
131 parameter ( nbmess = 150 )
132 character*80 texte(nblang,nbmess)
134 c 0.5. ==> initialisations
135 c ______________________________________________________________________
143 #ifdef _DEBUG_HOMARD_
144 write (ulsort,texte(langue,1)) 'Entree', nompro
153 c 2. lecture des valeurs, champ par champ
156 if ( codret.eq.0 ) then
158 do 20 , nrocha = 1 , nbcham
160 c 2.1. ==> informations sur la structure decrivant le champ
162 if ( codret.eq.0 ) then
164 #ifdef _DEBUG_HOMARD_
165 write (ulsort,*) '+++++++++++++++++++++++++++++++++++++++++++++'
166 write (ulsort,texte(langue,37)) nompro, nrocha
167 write (ulsort,texte(langue,51)) obcham(nrocha)
168 call gmprsx (nompro, obcham(nrocha)//'.Cham_Ent' )
169 write (ulsort,texte(langue,3)) 'UTCACH', nompro
172 call utcach ( obcham(nrocha),
174 > nbcomp, nbtvch, typcha,
175 > adnocp, adcaen, adcare, adcaca,
176 > ulsort, langue, codret )
177 cgn call gmprsx (nompro, obcham(nrocha)//'.Cham_Ent' )
178 cgn call gmprsx (nompro, obcham(nrocha)//'.Cham_Car' )
180 #ifdef _DEBUG_HOMARD_
181 write (ulsort,*) 'Retour de utcach avec :'
182 write (ulsort,texte(langue,32)) nomcha
183 write (ulsort,texte(langue,111)) nbtvch
184 write (ulsort,90002) 'nbcomp', nbcomp
185 write (ulsort,90002) 'typcha', typcha
186 write (ulsort,90002) 'codret', codret
191 c 2.2. ==> on passe en revue tous les tableaux du champ
193 if ( nbtvch.ne.0 ) then
195 if ( codret.eq.0 ) then
197 #ifdef _DEBUG_HOMARD_
198 if ( codret.eq.0 ) then
199 do 2222 , iaux = 1 , nbfonc
200 write (ulsort,*) '.. fonction numero', iaux,' /', nbfonc
201 write (ulsort,2220) (defonc(jaux,iaux),jaux=1,nbinec)
202 write (ulsort,2221) (nofonc(jaux,iaux),jaux=1,3)
205 2221 format(5(a8,1x))
209 #ifdef _DEBUG_HOMARD_
210 write (ulsort,texte(langue,3)) 'ESLCH4', nompro
213 call eslch4 ( idfmed,
214 > iaux, nomcha, nbcomp, nbtvch,
215 > obcham(nrocha), imem(adcaen), smem(adcaca),
216 > nbfonc, defonc, nofonc,
217 > ulsort, langue, codret )
223 #ifdef _DEBUG_HOMARD_
224 if ( codret.eq.0 ) then
225 call gmprsx (nompro, obcham(nrocha) )
226 call gmprsx (nompro, obcham(nrocha)//'.Nom_Comp' )
227 call gmprsx (nompro, obcham(nrocha)//'.Cham_Ent' )
228 call gmprsx (nompro, obcham(nrocha)//'.Cham_Ree' )
229 call gmprsx (nompro, obcham(nrocha)//'.Cham_Car' )
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