1 subroutine utlo04 ( motcle, option, tyconf,
2 > ulsort, langue, codret )
3 c ______________________________________________________________________
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
9 c Version originale enregistree le 18 juin 1996 sous le numero 96036
10 c aupres des huissiers de justice Simart et Lavoir a Clamart
11 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
12 c aupres des huissiers de justice
13 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
15 c HOMARD est une marque deposee d'Electricite de France
21 c ______________________________________________________________________
23 c UTilitaire : Lectures des Options - 04
25 c ______________________________________________________________________
27 c but : decoder le texte relatif aux contraintes sur le raffinement
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . motcle . e . char*8 . mot-cle a decoder .
33 c . option . s . 1 . c'est le produit de : .
34 c . . . . 1 : aucune (defaut) .
35 c . . . . 2 : decalage de deux elements avant .
36 c . . . . un changement de niveau (2D) .
37 c . . . . 3 : bande de raffinement interdite (3D) .
38 c . . . . 5 : pas de mailles decoupees sans leurs .
39 c . . . voisines de dimension superieure .
40 c . . . . 7 : pas de bord decoupe seul .
41 c . tyconf . e . 1 . 0 : conforme (defaut) .
42 c . . . . 1 : non-conforme avec au minimum 2 aretes .
43 c . . . . non decoupees en 2 .
44 c . . . . 2 : non-conforme avec 1 seul noeud .
45 c . . . . pendant par arete .
46 c . . . . 3 : non-conforme fidele a l'indicateur .
47 c . . . . -1 : conforme, avec des boites pour les .
48 c . . . . quadrangles, hexaedres et pentaedres .
49 c . . . . -2 : non-conforme avec au maximum 1 arete .
50 c . . . . decoupee en 2 (boite pour les .
51 c . . . . quadrangles, hexaedres et pentaedres) .
52 c . . . . -2 : non-conforme avec au maximum 1 arete .
53 c . . . . decoupee en 2 (boite pour les .
54 c . . . . quadrangles, hexaedres et pentaedres) .
55 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
56 c . langue . e . 1 . langue des messages .
57 c . . . . 1 : francais, 2 : anglais .
58 c . codret . es . 1 . code de retour des modules .
59 c . . . . 0 : pas de probleme .
60 c . . . . 6 : impossible de decoder les options .
61 c ______________________________________________________________________
64 c 0. declarations et dimensionnement
67 c 0.1. ==> generalites
73 parameter ( nompro = 'UTLO04' )
88 integer ulsort, langue, codret
90 c 0.4. ==> variables locales
95 integer nbrmin, nbrmax
100 parameter ( nbmess = 15 )
101 character*80 texte(nblang,nbmess)
103 c 0.5. ==> initialisations
104 c ______________________________________________________________________
110 c 1.1. ==> tout va bien
114 c 1.2. ==> les messages
118 #ifdef _DEBUG_HOMARD_
119 write (ulsort,texte(langue,1)) 'Entree', nompro
129 c 1.3. ==> par defaut, aucune contrainte
134 c 2. options textuelles
137 c 2.1. ==> recherche du texte associe au mot-cle
138 c code de retour de utfino :
139 c 0 : pas de probleme
140 c 1 : la configuration est perdue
141 c 2 : pas de nom dans la base
142 c remarque : on recupere le texte en majuscule
145 #ifdef _DEBUG_HOMARD_
146 write (ulsort,texte(langue,3)) 'UTFIN2', nompro
148 call utfin2 ( motcle, iaux, noptio, loptio,
150 > ulsort, langue, codre0)
152 c 2.2. ==> decodage de l'option
154 if ( codre0.eq.0 ) then
158 if ( loptio.eq.3 ) then
160 if ( noptio(1:loptio).eq.'NON' ) then
166 elseif ( loptio.eq.6 ) then
168 if ( noptio(1:loptio).eq.'AUCUNE' ) then
174 elseif ( loptio.eq.9 ) then
176 c 123456789012345678901234
177 if ( noptio(1:loptio).eq.
184 elseif ( loptio.eq.12 ) then
186 if ( noptio(1:loptio).eq.'PAS_DE_BANDE' ) then
192 elseif ( loptio.eq.19 ) then
194 c 1234567890123456789
195 if ( noptio(1:loptio).eq.'DECALAGE_2_ELEMENTS' ) then
201 elseif ( loptio.eq.24 ) then
203 c 123456789012345678901234
204 if ( noptio(1:loptio).eq.
205 > 'PAS_DE_BORD_DECOUPE_SEUL' ) then
212 elseif ( loptio.eq.32 ) then
214 c 12345678901234567890123456789012
215 if ( noptio(1:loptio).eq.
216 > 'PAS_DE_BANDE&DECALAGE_2_ELEMENTS' ) then
226 elseif ( codre0.eq.2 ) then
240 if ( codret.ne.0 ) then
244 write (ulsort,texte(langue,1)) 'Sortie', nompro
245 write (ulsort,texte(langue,2)) codret
249 #ifdef _DEBUG_HOMARD_
250 write (ulsort,texte(langue,1)) 'Sortie', nompro