1 subroutine pppma2 ( vafomi, vafoma,
2 > typcof, nbtrvi, nbquvi,
5 > ulsort, langue, codret )
6 c ______________________________________________________________________
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c HOMARD est une marque deposee d'Electricite de France
24 c ______________________________________________________________________
26 c Post-Processeur - Preparation du MAillage - phase 2
28 c ______________________________________________________________________
30 c . nom . e/s . taille . description .
31 c .____________________________________________________________________.
32 c . vafomi . s . 1 . minimum de l'echelle de la fonction .
33 c . vafoma . s . 1 . maximum de l'echelle de la fonction .
34 c . typcof . e . 1 . type de coloriage des faces .
35 c . . . . 0 : incolore transparent .
36 c . . . . 1 : incolore opaque .
37 c . . . . 2 : famille HOMARD .
38 c . . . . 3 : famille HOMARD, sans orientation .
39 c . . . . 4/5 : idem 2/3, en niveau de gris .
40 c . . . . +-6 : couleur selon un champ, echelle auto..
41 c . . . . +-7 : idem avec echelle fixe .
42 c . . . . +-8/+-9 : idem +-6/+-7, en niveau de gris .
43 c . . . . 10 : niveau .
44 c . nbtrvi . e . 1 . nombre triangles visualisables .
45 c . nbquvi . e . 1 . nombre de quadrangles visualisables .
46 c . fotrva . e . nbtrvi . fonctions triangles : valeur .
47 c . foquva . e . nbquvi . fonctions quadrangles : valeur .
48 c . ulsost . e . 1 . unite logique de la sortie standard .
49 c . ulsort . e . 1 . unite logique de la sortie generale .
50 c . langue . e . 1 . langue des messages .
51 c . . . . 1 : francais, 2 : anglais .
52 c . codret . s . 1 . code de retour des modules .
53 c . . . . 0 : pas de probleme .
54 c ______________________________________________________________________
57 c 0. declarations et dimensionnement
60 c 0.1. ==> generalites
66 parameter ( nompro = 'PPPMA2' )
79 integer nbtrvi, nbquvi
82 double precision vafomi, vafoma
83 double precision fotrva(nbtrvi), foquva(nbquvi)
85 integer ulsort, langue, codret
87 c 0.4. ==> variables locales
92 parameter ( nbmess = 10 )
93 character*80 texte(nblang,nbmess)
95 c 0.5. ==> initialisations
96 c_______________________________________________________________________
104 #ifdef _DEBUG_HOMARD_
105 write (ulsort,texte(langue,1)) 'Entree', nompro
109 texte(1,4) = '(''Type de coloriage :'',i6)'
110 texte(1,5) = '(''Fonction sur les '',a)'
111 texte(1,6) = '(''min = '',g12.5,'', max = '',g12.5)'
113 texte(2,4) = '(''Colouring type :'',i6)'
114 texte(2,5) = '(''Function over '',a)'
115 texte(2,6) = '(''min = '',g12.5,'', max = '',g12.5)'
119 #ifdef _DEBUG_HOMARD_
120 write (ulsort,texte(langue,4)) typcof
121 write (ulsort,90002) 'nbtrvi', nbtrvi
122 write (ulsort,90002) 'nbquvi', nbquvi
124 cgn write (ulsort,*) 'fotrva'
125 cgn write (ulsort,92010) (fotrva(iaux), iaux = 1 , nbtrvi)
126 cgn write (ulsort,*) 'foquva'
127 cgn write (ulsort,92010) (foquva(iaux), iaux = 1 , nbquvi)
130 c 2. fonction exprimee sur les triangles
133 if ( nbtrvi.ne.0 ) then
135 c 2.1. ==> valeur brute
137 if ( typcof.gt.0 ) then
142 do 21 , iaux = 2 , nbtrvi
143 vafomi = min (vafomi,fotrva(iaux))
144 vafoma = max (vafoma,fotrva(iaux))
147 c 2.2. ==> valeur absolue
151 vafomi = abs(fotrva(1))
154 do 22 , iaux = 2 , nbtrvi
155 vafomi = min (vafomi,abs(fotrva(iaux)))
156 vafoma = max (vafoma,abs(fotrva(iaux)))
161 #ifdef _DEBUG_HOMARD_
163 write (ulsort,texte(langue,5)) mess14(langue,3,iaux)
164 write (ulsort,texte(langue,6)) vafomi, vafoma
165 if ( ulsost.ne.ulsort ) then
166 write (ulsost,texte(langue,5)) mess14(langue,3,iaux)
167 write (ulsost,texte(langue,6)) vafomi, vafoma
174 c 3. fonction exprimee sur les quadrangles
177 if ( nbquvi.ne.0 ) then
179 c 3.1. ==> valeur brute
181 if ( typcof.gt.0 ) then
183 if ( nbtrvi.eq.0 ) then
188 do 31 , iaux = 2 , nbquvi
189 vafomi = min (vafomi,foquva(iaux))
190 vafoma = max (vafoma,foquva(iaux))
193 c 3.2. ==> valeur absolue
197 if ( nbtrvi.eq.0 ) then
198 vafomi = abs(foquva(1))
202 do 32 , iaux = 2 , nbquvi
203 vafomi = min (vafomi,abs(foquva(iaux)))
204 vafoma = max (vafoma,abs(foquva(iaux)))
211 #ifdef _DEBUG_HOMARD_
212 if ( nbquvi.ne.0 ) then
214 if ( nbtrvi.eq.0 ) then
220 write (ulsort,texte(langue,5)) mess14(langue,3,iaux)
221 write (ulsost,texte(langue,5)) mess14(langue,3,iaux)
222 write (ulsort,texte(langue,6)) vafomi, vafoma
223 write (ulsost,texte(langue,6)) vafomi, vafoma
232 if ( codret.ne.0 ) then
236 write (ulsort,texte(langue,1)) 'Sortie', nompro
237 write (ulsort,texte(langue,2)) codret
241 #ifdef _DEBUG_HOMARD_
242 write (ulsort,texte(langue,1)) 'Sortie', nompro