1 subroutine inqur2 ( choix, numdeb, numfin,
2 > ulfido, ulenst, ulsost,
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 INformation : QUestions / Reponses - phase 2
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . choix . s . 2 . choix .
31 c . numdeb . s . 1 . 1er numero ou 0 si qualite .
32 c . numfin . s . 1 . 2nd numero (eventuellement) .
33 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
34 c . ulfido . e . 1 . unite logique du fichier de donnees correct.
35 c . ulenst . e . 1 . unite logique de l'entree standard .
36 c . ulsost . e . 1 . unite logique de la sortie standard .
37 c . langue . e . 1 . langue des messages .
38 c . . . . 1 : francais, 2 : anglais .
39 c . codret . es . 1 . code de retour des modules .
40 c . . . . 0 : pas de probleme .
41 c . . . . 2 : probleme dans les memoires .
42 c . . . . 3 : probleme dans les fichiers .
43 c . . . . 5 : probleme autre .
44 c ______________________________________________________________________
47 c 0. declarations et dimensionnement
50 c 0.1. ==> generalites
57 parameter ( nompro = 'INQUR2' )
80 integer numdeb, numfin
82 integer ulfido, ulenst, ulsost
84 integer ulsort, langue, codret
86 c 0.4. ==> variables locales
90 integer typsig(3), valent(3)
96 parameter ( nbmess = 10 )
97 character*80 texte(nblang,nbmess)
99 c 0.5. ==> initialisations
100 c ______________________________________________________________________
108 #ifdef _DEBUG_HOMARD_
109 write (ulsort,texte(langue,1)) 'Entree', nompro
113 texte(1,4) = '(''Quel choix : '''''',a,'''''' ?'')'
114 texte(1,5) = '(''Quel choix apres '''''',a,'''''' ?'')'
115 texte(1,6) = '(''Information '',i1,'' illisible'')'
116 texte(1,7) = '(''Qualite impossible avec le choix '',a)'
117 texte(1,8) = '(''Uniquement faces ou tetraedres.'')'
119 > '(''Numero'',i10,'' impossible. Il faut un nombre >0.'')'
121 texte(2,4) = '(''What choice : '''''',a,'''''' ?'')'
122 texte(2,5) = '(''What choice after '''''',a,'''''' ?'')'
123 texte(2,6) = '(''Information '',i1,'' cannot be read.'')'
124 texte(2,7) = '(''Quality impossible with choice '',a)'
125 texte(2,8) = '(''Only faces or tetraedra.'')'
126 texte(2,9) = '(''#'',i10,'' impossible. A >0 # is required.'')'
131 >/,'Choisir . soit ''q'' pour quitter,',
132 >/,' . soit une sequence de type : ''a n1 (n2)'',',
133 >/,' . soit une sequence de type : ''a q +-n2''.',
134 >/,' . soit ''h'' pour un mode d''emploi.',/)
135 11000 format (60('='))
137 >/,'a : designe le type d''entite voulue, a choisir parmi :',
138 >/,' no pour les noeuds',
139 >/,' mp pour les mailles-points',
140 >/,' ar pour les aretes',
141 >/,' tr pour les triangles',
142 >/,' qu pour les quadrangles',
143 >/,' te pour les tetraedres',
144 >/,' he pour les hexaedres',
145 >/,' py pour les pyramides',
146 >/,' pe pour les pentaedres',/,
147 >/,'n1 : vaut le numero de l''entite voulue',
148 >/,'n2 : vaut le numero de la derniere entite examinee ;',
149 >/,' on aura les infos sur les entites de n1 a n2 ; si n2 est',
150 >/,' absent, on les aura pour la seule entite numero n1',
151 >/,'Pour les codes : minuscules : numerotation dans HOMARD',
152 >/,' MAJUSCULES : numerotation du calcul',/,
153 >/,'''q'' pour des informations sur la qualite des entites a',
154 >/,' +n2 : on affichera les n2 meilleures,',
155 >/,' -n2 : on affichera les n2 pires.')
158 >/,'''NO 14'' : description du noeud 14 dans le calcul',
159 >/,'''te 345 350'' : description des tetraedres',
160 >/,' de 345 a 350 dans HOMARD',
161 >/,'''tr q 10'' : reperage des 10 meilleurs triangles,',
162 >/,'''te q -5'' : reperage des 10 tetraedres les pires.',/)
165 >/,'Choose . either ''q'' to quit,',
166 >/,' . either sequence like : ''a n1 (n2)'',',
167 >/,' . either sequence like : ''a q +-n2''.',
168 >/,' . either ''h'' for help,')
170 >/,'a : indicates the kind of entity, in :',
172 >/,' mp for points-meshes',
174 >/,' tr for triangles',
175 >/,' qu for quadrangles',
176 >/,' te for tetrahedron',
177 >/,' he for hexahedron',
178 >/,' py for pyramids',
179 >/,' pe for pentahedrons',/,
180 >/,'n1 : is the # of the choosen entity',
181 >/,'n2 : is the # of the last entity ;',
182 >/,' infos will be displayed for entities # from n1 to n2 ;',
183 >/,' if n2 is not given, infos will only be displayed for',
185 >/,' lower case : numerotation in HOMARD',
186 >/,' UPPER CASE : numerotation in calculation',/,
187 >/,'''q'' for information about quality of entity ''a''',
188 >/,' +n2 : n2 best will be displayed,',
189 >/,' -n2 : n2 worst will be displayed.')
192 >/,'''NO 14'' : description of node # 14 in calculation',
193 >/,'''te 345 350'' : description of tetraedra',
194 >/,' from 345 to 350 in HOMARD',
195 >/,'''tr q 10'' : information about 10 best triangles,',
196 >/,'''te q -5'' : information about 5 worst tetraedra.',/)
208 c 2.1. ==> lecture de la demande
210 if ( codret.eq.0 ) then
212 if ( langue.eq.2 ) then
220 if ( codret.eq.0 ) then
221 read (ulenst,20080,err=20,end=20) chaine
224 c 2.2. ==> decoupage de la chaine
225 c nbsign : nombre de signes dans la chaine
226 c typsig : type des signes :
231 c valcha : valeur du signe s'il est caractere
232 c valent : valeur du signe s'il est entier
234 #ifdef _DEBUG_HOMARD_
235 write (ulsort,texte(langue,3)) 'UTQURE', nompro
237 call utqure ( chaine,
238 > nbsign, typsig, valcha, valent,
239 > ulsort, langue, codret )
241 #ifdef _DEBUG_HOMARD_
242 write (ulsort,90002) 'nbsign', nbsign
243 write (ulsort,90002) 'typsig', typsig
244 write (ulsort,90003) 'valcha', valcha
245 write (ulsort,90002) 'valent', valent
248 if ( nbsign.eq.0 ) then
254 if ( codret.eq.0 ) then
256 if ( typsig(1).ne.0 ) then
260 if ( choix.eq.'h ' ) then
263 if ( langue.eq.2 ) then
273 elseif ( choix.eq.'q ' ) then
277 elseif ( choix.eq.'no' .or.
281 > choix.eq.'E ' ) then
285 elseif ( nbmpto.ne.0 .and.
286 > ( choix.eq.'mp' .or.choix.eq.'MP' ) ) then
290 elseif ( nbtrto.ne.0 .and.
291 > ( choix.eq.'tr' .or.choix.eq.'TR' ) ) then
295 elseif ( nbquto.ne.0 .and.
296 > ( choix.eq.'qu' .or.choix.eq.'QU' ) ) then
300 elseif ( nbteto.ne.0 .and.
301 > ( choix.eq.'te' .or.choix.eq.'TE' ) ) then
305 elseif ( nbheto.ne.0 .and.
306 > ( choix.eq.'he' .or.choix.eq.'HE' ) ) then
310 elseif ( nbpyto.ne.0 .and.
311 > ( choix.eq.'py' .or.choix.eq.'PY' ) ) then
315 elseif ( nbpeto.ne.0 .and.
316 > ( choix.eq.'pe' .or.choix.eq.'PE' ) ) then
322 write (ulsost,texte(langue,4)) choix
330 write (ulsost,texte(langue,6)) 1
338 c 2.4. ==> le premier numero ou la qualite
340 if ( codret.eq.0 ) then
342 if ( nbsign.ge.2 ) then
344 if ( typsig(2).ne.0 ) then
346 if ( valcha(2).eq.'q ' .or.
347 > valcha(2).eq.'Q ' ) then
348 if ( choix.eq.'tr' .or.
359 > choix.eq.'PE' ) then
362 write (ulsost,texte(langue,7)) choix
363 write (ulsost,texte(langue,8))
368 write (ulsost,texte(langue,6)) 2
373 elseif ( typsig(2).eq.0 ) then
376 if ( numdeb.le.0 ) then
377 write (ulsost,texte(langue,9)) numdeb
384 write (ulsost,texte(langue,6)) 2
392 write (ulsost,texte(langue,5)) choix
400 c 2.5. ==> l'eventuel second numero
402 if ( codret.eq.0 ) then
404 if ( nbsign.ge.3 ) then
406 if ( typsig(3).eq.0 ) then
412 write (ulsost,texte(langue,6)) 3
420 if ( numdeb.ne.0 ) then
423 write (ulsost,texte(langue,5)) choix//' q'
438 if ( codret.eq.0 ) then
440 call utlgut ( iaux, chaine,
441 > ulsort, langue, codret )
442 write(ulfido,1000) chaine(1:iaux)
448 #ifdef _DEBUG_HOMARD_
450 if ( codret.ne.0 ) then
454 write (ulsort,texte(langue,1)) 'Sortie', nompro
455 write (ulsort,texte(langue,2)) codret
460 #ifdef _DEBUG_HOMARD_
461 write (ulsort,texte(langue,1)) 'Sortie', nompro