1 subroutine deiucm ( nohind,
2 > lgopti, taopti, lgetco, taetco,
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 traitement des DEcisions - Initialisations - Usage des CoMposantes
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . nohind . e . ch8 . nom de l'objet contenant l'indicateur .
31 c . lgopti . e . 1 . longueur du tableau des options .
32 c . taopti . e . lgopti . tableau des options .
33 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
34 c . taetco . e . lgetco . tableau de l'etat courant .
35 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
36 c . langue . e . 1 . langue des messages .
37 c . . . . 1 : francais, 2 : anglais .
38 c . codret . es . 1 . code de retour des modules .
39 c . . . . 0 : pas de probleme .
40 c ______________________________________________________________________
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
52 parameter ( nompro = 'DEIUCM' )
70 integer taopti(lgopti)
73 integer taetco(lgetco)
75 integer ulsort, langue, codret
77 c 0.4. ==> variables locales
81 integer nretap, nrsset
84 integer adnoin, adnorn, adnosu
85 integer adarin, adarrn, adarsu
86 integer adtrin, adtrrn, adtrsu
87 integer adquin, adqurn, adqusu
88 integer adtein, adtern, adtesu
89 integer adhein, adhern, adhesu
90 integer adpyin, adpyrn, adpysu
91 integer adpein, adpern, adpesu
92 integer nbvnoe, nbvare
93 integer nbvtri, nbvqua
94 integer nbvtet, nbvhex, nbvpyr, nbvpen
97 integer typind, ncmpin
104 #ifdef _DEBUG_HOMARD_
105 character*7 saux07(nblang,2)
109 parameter ( nbmess = 15 )
110 character*80 texte(nblang,nbmess)
112 c 0.5. ==> initialisations
113 c ______________________________________________________________________
121 #ifdef _DEBUG_HOMARD_
122 write (ulsort,texte(langue,1)) 'Entree', nompro
128 c=======================================================================
129 if ( codava.eq.0 ) then
130 c=======================================================================
132 c 1.1. ==> le debut des mesures de temps
137 c 1.3. ==> les messages
140 > '(/,a6,'' USAGE DES COMPOSANTES'')'
141 texte(1,5) = '(28(''=''),/)'
142 texte(1,6) = '(''Le champ d''''indicateur est '',a)'
143 texte(1,7) = '(''Nombre de composantes :'',i3)'
144 texte(1,8) = '(''Nombre de valeurs pour les '',a,'':'',i10)'
145 texte(1,9) = '(''. Norme L2 des composantes.'')'
146 texte(1,10) = '(''. Norme infinie des composantes.'')'
147 texte(1,11) = '(''. Valeur relative de la composante.'')'
150 > '(/,a6,'' USE OF THE COMPONENTS'')'
151 texte(2,5) = '(28(''=''),/)'
152 texte(2,6) = '(''The type of the indicator is '',a)'
153 texte(2,7) = '(''Number of components:'',i3)'
154 texte(2,8) = '(''Number of values for the '',a,'':'',i10)'
155 texte(2,9) = '(''. L2 norm of components.'')'
156 texte(2,10) = '(''. Infinite norm of components.'')'
157 texte(2,11) = '(''. Relative value for the component.'')'
159 c 1.4. ==> le numero de sous-etape
162 nrsset = taetco(2) + 1
165 call utcvne ( nretap, nrsset, saux, iaux, codret )
169 write (ulsort,texte(langue,4)) saux
170 write (ulsort,texte(langue,5))
173 c 2. gestion des tableaux
176 c 2.1. ==> structure generale de l'indicateur
178 if ( codret.eq.0 ) then
180 #ifdef _DEBUG_HOMARD_
181 write (ulsort,texte(langue,3)) 'DEINI0', nompro
183 call deini0 ( nohind, typind, ncmpin,
186 > nbvtet, nbvhex, nbvpyr, nbvpen,
187 > adnoin, adnorn, adnosu,
188 > adarin, adarrn, adarsu,
189 > adtrin, adtrrn, adtrsu,
190 > adquin, adqurn, adqusu,
191 > adtein, adtern, adtesu,
192 > adhein, adhern, adhesu,
193 > adpyin, adpyrn, adpysu,
194 > adpein, adpern, adpesu,
195 > ulsort, langue, codret )
199 if ( codret.eq.0 ) then
229 #ifdef _DEBUG_HOMARD_
230 saux07(1,1) = 'entier '
231 saux07(1,2) = 'reel '
232 saux07(2,1) = 'integer'
233 saux07(2,2) = 'real '
234 write (ulsort,texte(langue,6)) saux07(langue,typind-1)
235 write (ulsort,texte(langue,7)) ncmpin
237 write (ulsort,texte(langue,8)) mess14(langue,3,iaux), nbvent(iaux)
244 c 3. Calcul par type d'entite
246 #ifdef _DEBUG_HOMARD_
247 write (ulsort,*) '3. Calcul par type entite ; codret = ', codret
250 c 3.1. ==> Si une seule composante et si valeur relative, rien n'est
251 c a faire, sinon traitement
254 #ifdef _DEBUG_HOMARD_
255 write (ulsort,texte(langue,9+usacmp))
257 if ( usacmp.eq.2 .and. ncmpin.eq.1 ) then
261 c 3.2. ==> traitement
262 cgn call gmprsx(nompro,nohind//'.Arete.ValeursR')
266 if ( nbvent(iaux).gt.0 ) then
268 if ( codret.eq.0 ) then
270 #ifdef _DEBUG_HOMARD_
271 write (ulsort,texte(langue,3)) 'DEIUC0', nompro
273 call deiuc0 ( nbvent(iaux), ncmpin, usacmp,
274 > imem(adsupp(iaux)), rmem(advale(iaux)),
275 > ulsort, langue, codret)
284 cgn call gmprsx(nompro,nohind//'.Arete.ValeursR')
289 #ifdef _DEBUG_HOMARD_
290 write (ulsort,*) '4. Bilan ; codret = ', codret
293 if ( codret.eq.0 ) then
295 #ifdef _DEBUG_HOMARD_
296 write (ulsort,texte(langue,3)) 'DEIUC0', nompro
298 call deinbi ( nbvent, ncmpin,
299 > imem(adnosu), rmem(adnorn),
300 > imem(adarsu), rmem(adarrn),
301 > imem(adtrsu), rmem(adtrrn),
302 > imem(adqusu), rmem(adqurn),
303 > imem(adtesu), rmem(adtern),
304 > imem(adhesu), rmem(adhern),
305 > imem(adpysu), rmem(adpyrn),
306 > imem(adpesu), rmem(adpern),
307 > ulsort, langue, codret)
315 c 5.1. ==> message si erreur
317 if ( codret.ne.0 ) then
321 write (ulsort,texte(langue,1)) 'Sortie', nompro
322 write (ulsort,texte(langue,2)) codret
326 c 5.2. ==> fin des mesures de temps de la section
330 #ifdef _DEBUG_HOMARD_
331 write (ulsort,texte(langue,1)) 'Sortie', nompro
335 c=======================================================================
337 c=======================================================================