Salome HOME
Homard executable
[modules/homard.git] / src / tool / Utilitaire / utlo04.F
1       subroutine utlo04 ( motcle, option, tyconf,
2      >                    ulsort, langue, codret )
3 c ______________________________________________________________________
4 c
5 c                             H O M A R D
6 c
7 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
8 c
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
14 c
15 c    HOMARD est une marque deposee d'Electricite de France
16 c
17 c Copyright EDF 1996
18 c Copyright EDF 1998
19 c Copyright EDF 2002
20 c Copyright EDF 2020
21 c ______________________________________________________________________
22 c
23 c   UTilitaire : Lectures des Options - 04
24 c   --           -            -         --
25 c ______________________________________________________________________
26 c
27 c but : decoder le texte relatif aux contraintes sur le raffinement
28 c ______________________________________________________________________
29 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 ______________________________________________________________________
62 c
63 c====
64 c 0. declarations et dimensionnement
65 c====
66 c
67 c 0.1. ==> generalites
68 c
69       implicit none
70       save
71 c
72       character*6 nompro
73       parameter ( nompro = 'UTLO04' )
74 c
75 #include "nblang.h"
76 c
77 c 0.2. ==> communs
78 c
79 #include "envex1.h"
80 c
81 c 0.3. ==> arguments
82 c
83       character*8 motcle
84 c
85       integer option
86       integer tyconf
87 c
88       integer ulsort, langue, codret
89 c
90 c 0.4. ==> variables locales
91 c
92       integer iaux
93       integer codre0
94       integer loptio
95       integer nbrmin, nbrmax
96 c
97       character*200 noptio
98 c
99       integer nbmess
100       parameter ( nbmess = 15 )
101       character*80 texte(nblang,nbmess)
102 c
103 c 0.5. ==> initialisations
104 c ______________________________________________________________________
105 c
106 c====
107 c 1. messages
108 c====
109 c
110 c 1.1. ==> tout va bien
111 c
112       codret = 0
113 c
114 c 1.2. ==> les messages
115 c
116 #include "impr01.h"
117 c
118 #ifdef _DEBUG_HOMARD_
119       write (ulsort,texte(langue,1)) 'Entree', nompro
120       call dmflsh (iaux)
121 #endif
122 c
123 #include "utlo00.h"
124 #include "utlo02.h"
125 c
126       nbrmin = 0
127       nbrmax = 1
128 c
129 c 1.3. ==> par defaut, aucune contrainte
130 c
131       option = 1
132 c
133 c====
134 c 2. options textuelles
135 c====
136 c
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
143 c
144       iaux = 1
145 #ifdef _DEBUG_HOMARD_
146       write (ulsort,texte(langue,3)) 'UTFIN2', nompro
147 #endif
148       call utfin2 ( motcle, iaux, noptio, loptio,
149      >              nbrmin, nbrmax,
150      >              ulsort, langue, codre0)
151 c
152 c 2.2. ==> decodage de l'option
153 c
154       if ( codre0.eq.0 ) then
155 c
156 #include "utlo03.h"
157 c
158         if ( loptio.eq.3 ) then
159 c
160           if ( noptio(1:loptio).eq.'NON' ) then
161             option = 1
162           else
163             codre0 = 5
164           endif
165 c
166         elseif ( loptio.eq.6 ) then
167 c
168           if ( noptio(1:loptio).eq.'AUCUNE' ) then
169             option = 1
170           else
171             codre0 = 5
172           endif
173 c
174         elseif ( loptio.eq.9 ) then
175 c
176 c               123456789012345678901234
177           if ( noptio(1:loptio).eq.
178      >         'VOISINAGE' ) then
179             option = 5
180           else
181             codre0 = 5
182           endif
183 c
184         elseif ( loptio.eq.12 ) then
185 c
186           if ( noptio(1:loptio).eq.'PAS_DE_BANDE' ) then
187             option = 3
188           else
189             codre0 = 5
190           endif
191 c
192         elseif ( loptio.eq.19 ) then
193 c
194 c                                   1234567890123456789
195           if ( noptio(1:loptio).eq.'DECALAGE_2_ELEMENTS' ) then
196             option = 2
197           else
198             codre0 = 5
199           endif
200 c
201         elseif ( loptio.eq.24 ) then
202 c
203 c               123456789012345678901234
204           if ( noptio(1:loptio).eq.
205      >         'PAS_DE_BORD_DECOUPE_SEUL' ) then
206             option = 7
207             option = 5
208           else
209             codre0 = 5
210           endif
211 c
212         elseif ( loptio.eq.32 ) then
213 c
214 c               12345678901234567890123456789012
215           if ( noptio(1:loptio).eq.
216      >         'PAS_DE_BANDE&DECALAGE_2_ELEMENTS' ) then
217             option = 6
218           else
219             codre0 = 5
220           endif
221 c
222         else
223           codre0 = 5
224         endif
225 c
226       elseif ( codre0.eq.2 ) then
227         codre0 = 0
228 c
229       else
230         codre0 = 6
231 c
232       endif
233 c
234 #include "utlo01.h"
235 c
236 c====
237 c 3. la fin
238 c====
239 c
240       if ( codret.ne.0 ) then
241 c
242 #include "envex2.h"
243 c
244       write (ulsort,texte(langue,1)) 'Sortie', nompro
245       write (ulsort,texte(langue,2)) codret
246 c
247       endif
248 c
249 #ifdef _DEBUG_HOMARD_
250       write (ulsort,texte(langue,1)) 'Sortie', nompro
251       call dmflsh (iaux)
252 #endif
253 c
254       end