1 subroutine eslmno ( idfmed, nomamd,
3 > nbnoto, sdim, coonno, fameno,
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'un Maillage au format MED - NOeuds
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . idfmed . e . 1 . identificateur du fichier de .
32 c . . . . maillage de sortie .
33 c . nomamd . e . char64 . nom du maillage MED .
34 c . option . e . 1 . option de lecture du maillage .
35 c . . . . 1 : lecture integrale .
36 c . . . . 2 : uniquement les coordonnees des noeuds .
37 c . nbnoto . e . 1 . nombre de noeuds .
38 c . sdim . e . 1 . dimension .
39 c . coonno . e . nbnoto . coordonnees des noeuds dans le calcul .
41 c . fameno . e . nbnoto . famille des noeuds .
42 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
43 c . langue . e . 1 . langue des messages .
44 c . . . . 1 : francais, 2 : anglais .
45 c . codret . es . 1 . code de retour des modules .
46 c . . . . 0 : pas de probleme .
47 c . . . . 1 : probleme .
48 c ______________________________________________________________________
51 c 0. declarations et dimensionnement
54 c 0.1. ==> generalites
60 parameter ( nompro = 'ESLMNO' )
75 integer fameno(nbnoto)
79 double precision coonno(nbnoto,sdim)
81 integer ulsort, langue, codret
83 c 0.4. ==> variables locales
90 integer datype, chgt, tsf
94 parameter ( nbmess = 150 )
95 character*80 texte(nblang,nbmess)
96 c ______________________________________________________________________
104 #ifdef _DEBUG_HOMARD_
105 write (ulsort,texte(langue,1)) 'Entree', nompro
111 texte(1,61) = '(''Coordonnees des'',i10,'' noeuds.'')'
112 texte(1,62) = '(''Familles des'',i10,'' noeuds.'')'
113 texte(1,63) = '(''Toutes les familles sont nulles.'')'
115 texte(2,61) = '(''Coordinates of the'',i10,'' nodes.'')'
116 texte(2,62) = '(''Families of the'',i10,'' nodes.'')'
117 texte(2,63) = '(''All the families are 0.'')'
121 #ifdef _DEBUG_HOMARD_
122 write (ulsort,90002) 'option', option
131 c 2. les coordonnees des noeuds
134 c . les numeros des familles
135 c le tableau coonno est declare ainsi : coonno(nbnoto,sdim).
136 c En fortran, cela correspond au stockage memoire suivant :
137 c coonno(1,1), coonno(2,1), coonno(3,1), ..., coonno(nbnoto,1),
138 c coonno(1,2), coonno(2,2), coonno(3,2), ..., coonno(nbnoto,2),
140 c coonno(1,sdim), coonno(2,sdim), ..., coonno(nbnoto,sdim)
141 c on a ainsi toutes les abscisses, puis toutes les ordonnees, etc.
142 c C'est ce que MED appelle le mode non entrelace.
145 if ( codret.eq.0 ) then
147 #ifdef _DEBUG_HOMARD_
148 write (ulsort,texte(langue,3)) 'MMHCOR', nompro
150 call mmhcor ( idfmed, nomamd, numdt, numit,
151 > ednoin, coonno, codret )
156 c 3. Les familles de noeuds
157 c Par convention, si le tableau est absent, les familles sont
160 #ifdef _DEBUG_HOMARD_
161 write (ulsort,90002) '3. familles de noeuds ; codret', codret
164 if ( option.eq.1 ) then
166 c 3.1. ==> Longueur du tableau des familles
168 if ( codret.eq.0 ) then
172 #ifdef _DEBUG_HOMARD_
173 write (ulsort,texte(langue,3)) 'MMHNME', nompro
175 call mmhnme ( idfmed, nomamd, numdt, numit,
176 > ednoeu, typnoe, datype, ednoda, chgt, tsf,
181 c 3.2. ==> Remplissage du tableau
182 c 3.2.1. ==> 0 par defaut
184 if ( nbfami.eq.0 ) then
186 if ( codret.eq.0 ) then
188 #ifdef _DEBUG_HOMARD_
189 write (ulsort,texte(langue,63))
192 do 32 , iaux = 1 , nbnoto
202 if ( codret.eq.0 ) then
204 #ifdef _DEBUG_HOMARD_
205 write (ulsort,texte(langue,3)) 'MMHFNR', nompro
207 call mmhfnr ( idfmed, nomamd, numdt, numit,
221 if ( codret.ne.0 ) then
225 write (ulsort,texte(langue,1)) 'Sortie', nompro
226 write (ulsort,texte(langue,2)) codret
227 if ( codret.ge.61 .and. codret.le.62 ) then
228 write (ulsort,texte(langue,codret)) nbnoto
230 write (ulsort,texte(langue,80))
234 #ifdef _DEBUG_HOMARD_
235 write (ulsort,texte(langue,1)) 'Sortie', nompro