1 subroutine pcfor2 ( nbpara, carenf, carchf,
3 > typfon, typcha, typgeo, nbtyas,
4 > ngauss, nnenmx, nnvapr, carsup, nbtafo,
5 > anvale, anvalr, anprpg, anobch, anlipr,
7 > apvale, apvalr, apprpg, apobch, apvatt,
11 > obpcan, obpcap, obprof, adpcan, adpcap,
13 > ulsort, langue, codret )
14 c ______________________________________________________________________
18 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
20 c Version originale enregistree le 18 juin 1996 sous le numero 96036
21 c aupres des huissiers de justice Simart et Lavoir a Clamart
22 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
23 c aupres des huissiers de justice
24 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
26 c HOMARD est une marque deposee d'Electricite de France
32 c ______________________________________________________________________
34 c aPres adaptation - Fonctions - Recuperation - phase 2
36 c ______________________________________________________________________
38 c . nom . e/s . taille . description .
39 c .____________________________________________________________________.
40 c . nbpara . e . 1 . nombre de parametres a enregistrer par fonc.
41 c . carenf . e .nbpara* . caracteristiques entieres des fonctions : .
42 c . . . nnfopa. 1 : 0, pour une fonction ancienne isolee .
43 c . . . . 1, pour une ancienne associee a une .
44 c . . . . autre fonction .
45 c . . . . -1, pour une nouvelle fonction .
46 c . . . . 2 : typcha .
47 c . . . . 3 : typgeo .
48 c . . . . 4 : nbtyas .
49 c . . . . 5 : ngauss .
50 c . . . . 6 : nnenmx .
51 c . . . . 7 : nnvapr .
52 c . . . . 8 : carsup .
53 c . . . . 9 : nbtafo .
54 c . . . . 10 : anvale .
55 c . . . . 11 : anvalr .
56 c . . . . 12 : anobch .
57 c . . . . 13 : anprpg .
58 c . . . . 14 : anlipr .
59 c . . . . 15 : npenmx .
60 c . . . . 16 : npvapr .
61 c . . . . 17 : apvale .
62 c . . . . 18 : apvalr .
63 c . . . . 19 : apobch .
64 c . . . . 20 : apprpg .
65 c . . . . 21 : apvatt .
66 c . . . . 22 : apvane .
67 c . . . . 23 : antyas .
68 c . . . . 24 : aptyas .
69 c . . . . 25 : numero de la 1ere fonction associee .
70 c . . . . 26 : numero de la 2nde fonction associee .
71 c . carchf . e .nbpara* . caracteristiques caracteres des fonctions :.
72 c . . . nnfopa. 1 : nom de la fonction .
73 c . . . . 2 : nom de la fonction n associee .
74 c . . . . 3 : nom de la fonction p associee .
75 c . . . . 4 : obpcan .
76 c . . . . 5 : obpcap .
77 c . . . . 6 : obprof .
78 c . . . . 7 : oblopg .
79 c . . . . 8 : si aux points de Gauss, nom de la .
80 c . . . . fonction n ELNO correspondante .
81 c . . . . 9 : si aux points de Gauss, nom de la .
82 c . . . . fonction p ELNO correspondante .
83 c . nrfonc . e . 1 . numero de la fonction a examiner .
84 c . typfon . s . 1 . 0, si ancienne isolee, 1, si ancienne .
85 c . . . . associee a une autre fonction, -1, si .
87 c . typcha . s . 1 . edin64/edfl64 selon entier/reel .
88 c . typgeo . s . 1 . type geometrique au sens MED .
89 c . ngauss . s . 1 . nombre de points de Gauss .
90 c . nbenmx . s . 1 . nombre d'entites maximum .
91 c . nbvapr . s . 1 . nombre de valeurs du profil .
92 c . . . . -1, si pas de profil .
93 c . nbtyas . s . 1 . 0, si aucun autre type geometrique n'est .
94 c . . . . associe dans une autre fonction .
95 c . . . . n, produit des types associes .
96 c . nbtafo . s . 1 . nombre de tableaux de la fonction .
97 c . anvale . s . 1 . adresse du tableau de valeurs entieres .
98 c . anvalr . s . 1 . adresse du tableau de valeurs reelles .
99 c . anobch . s . 1 . adresse des noms des objets 'Champ' .
100 c . anprpg . s . 1 . adresse des noms des objets 'Profil' et .
101 c . . . . 'LocaPG' eventuellement associes .
102 c . anlipr . s . 1 . adresse du tableau de travail .
103 c . npenmx . s . 1 . nombre d'entites maximum .
104 c . npvapr . s . 1 . nombre de valeurs du profil .
105 c . . . . -1, si pas de profil .
106 c . apvale . s . 1 . adresse du tableau de valeurs entieres .
107 c . apvalr . s . 1 . adresse du tableau de valeurs reelles .
108 c . apobch . s . 1 . adresse des noms des objets 'Champ' .
109 c . apprpg . s . 1 . adresse des noms des objets 'Profil' et .
110 c . . . . 'LocaPG' eventuellement associes .
111 c . apvatt . s . 1 . adresse du tableau de travail .
112 c . nofonc . s . char*8 . nom de la fonction .
113 c . obpcan . s . char*8 . objet du profil en entree .
114 c . obpcap . s . char*8 . objet du profil en sortie .
115 c . obprof . s . char*8 . objet du profil global .
116 c . oblopg . s . char*8 . objet de la localisation des pts de Gauss .
117 c . adpcan . s . 1 . adresse du profil en entree .
118 c . adpcap . s . 1 . adresse du profil en sortie .
119 c . nrfon2 . s . 1 . numero de la 1ere fonction associee .
120 c . nrfon3 . s . 1 . numero de la 2nde fonction associee .
121 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
122 c . langue . e . 1 . langue des messages .
123 c . . . . 1 : francais, 2 : anglais .
124 c . codret . es . 1 . code de retour des modules .
125 c . . . . 0 : pas de probleme .
126 c . . . . 1 : probleme .
127 c ______________________________________________________________________
130 c 0. declarations et dimensionnement
133 c 0.1. ==> generalites
139 parameter ( nompro = 'PCFOR2' )
152 integer carenf(nbpara,*)
155 integer typfon, typcha, typgeo, nbtyas
156 integer ngauss, nnenmx, nnvapr, carsup, nbtafo
157 integer anvale, anvalr, anprpg, anobch, anlipr
158 integer npenmx, npvapr
159 integer apvale, apvalr, apprpg, apobch, apvatt
160 integer apvane, aptyas
161 integer adpcan, adpcap
162 integer nrfon2, nrfon3
164 character*8 carchf(nbpara,*)
165 character*8 nofonc, obpcan, obpcap, obprof
168 integer ulsort, langue, codret
170 c 0.4. ==> variables locales
173 integer codre1, codre2
177 parameter ( nbmess = 10 )
178 character*80 texte(nblang,nbmess)
180 c 0.5. ==> initialisations
181 c ______________________________________________________________________
191 #ifdef _DEBUG_HOMARD_
192 write (ulsort,texte(langue,1)) 'Entree', nompro
196 texte(1,6) = '(''.... profil '',a,'' : '',a)'
198 texte(2,6) = '(''.... profile '',a,'' : '',a)'
203 #ifdef _DEBUG_HOMARD_
204 write (ulsort,texte(langue,4)) nrfonc
205 cgn write(ulsort,90002) 'carenf ',(carenf(iaux,nrfonc),iaux= 1,10)
206 cgn write(ulsort,90002) 'carenf ',(carenf(iaux,nrfonc),iaux=11,20)
207 cgn write(ulsort,90002) 'carenf ',
208 cgn > (carenf(iaux,nrfonc),iaux=21,nbpara)
209 cgn write(ulsort,90003) 'carchf ',(carchf(iaux,nrfonc),iaux= 1,9)
213 c 2. le nom de l'objet fonction
216 if ( codret.eq.0 ) then
218 nofonc = carchf( 1,nrfonc)
226 if ( codret.eq.0 ) then
228 typfon = carenf( 1,nrfonc)
229 typcha = carenf( 2,nrfonc)
230 typgeo = carenf( 3,nrfonc)
231 nbtyas = carenf( 4,nrfonc)
232 ngauss = carenf( 5,nrfonc)
233 nnenmx = carenf( 6,nrfonc)
234 nnvapr = carenf( 7,nrfonc)
235 carsup = carenf( 8,nrfonc)
236 nbtafo = carenf( 9,nrfonc)
238 anvale = carenf(10,nrfonc)
239 anvalr = carenf(11,nrfonc)
240 anobch = carenf(12,nrfonc)
241 anprpg = carenf(13,nrfonc)
242 anlipr = carenf(14,nrfonc)
244 npenmx = carenf(15,nrfonc)
245 npvapr = carenf(16,nrfonc)
247 apvale = carenf(17,nrfonc)
248 apvalr = carenf(18,nrfonc)
249 apobch = carenf(19,nrfonc)
250 apprpg = carenf(20,nrfonc)
251 apvatt = carenf(21,nrfonc)
253 apvane = carenf(22,nrfonc)
255 aptyas = carenf(24,nrfonc)
257 nrfon2 = carenf(25,nrfonc)
258 nrfon3 = carenf(26,nrfonc)
262 #ifdef _DEBUG_HOMARD_
264 write (ulsort,90002) 'typfon', typfon
265 write (ulsort,90002) 'typcha', typcha
266 write (ulsort,90002) 'typgeo', typgeo
267 write (ulsort,90002) 'nbtyas', nbtyas
268 write (ulsort,90002) 'ngauss', ngauss
269 write (ulsort,90002) 'nnenmx', nnenmx
270 write (ulsort,90002) 'nnvapr', nnvapr
271 write (ulsort,90002) 'nbtafo', nbtafo
273 write (ulsort,90002) 'npenmx', npenmx
274 write (ulsort,90002) 'npvapr', npvapr
276 write (ulsort,90002) 'anvale', anvale
277 write (ulsort,90002) 'anvalr', anvalr
278 write (ulsort,90002) 'anobch', anobch
279 write (ulsort,90002) 'anprpg', anprpg
280 write (ulsort,90002) 'anlipr', anlipr
282 write (ulsort,90002) 'apvale', apvale
283 write (ulsort,90002) 'apvalr', apvalr
284 write (ulsort,90002) 'apobch', apobch
285 write (ulsort,90002) 'apprpg', apprpg
286 write (ulsort,90002) 'apvatt', apvatt
288 write (ulsort,90002) 'apvane', apvane
290 write (ulsort,90002) 'aptyas', aptyas
292 write (ulsort,90002) 'nrfon2', nrfon2
293 write (ulsort,90002) 'nrfon3', nrfon3
297 c 4. les noms des profils
300 if ( codret.eq.0 ) then
302 obpcan = carchf( 4,nrfonc)
303 obpcap = carchf( 5,nrfonc)
304 obprof = carchf( 6,nrfonc)
306 #ifdef _DEBUG_HOMARD_
308 write (ulsort,texte(langue,6)) 'n', obpcan
309 call gmprsx (nompro,obpcan)
310 write (ulsort,texte(langue,6)) 'p', obpcap
311 call gmprsx (nompro,obpcap)
312 write (ulsort,texte(langue,6)) 'g', obprof
315 if ( typfon.ge.0 ) then
316 call gmadoj ( obpcan, adpcan, iaux, codre1 )
320 call gmadoj ( obpcap, adpcap, iaux, codre2 )
322 codre0 = min ( codre1, codre2 )
323 codret = max ( abs(codre0), codret,
329 c 5. les localisations de points de Gauss
332 if ( codret.eq.0 ) then
334 oblopg = carchf( 7,nrfonc)
336 #ifdef _DEBUG_HOMARD_
337 if ( oblopg.ne.blan08 ) then
339 write (ulsort,*) 'Objet localisations des points de Gauss'
340 call gmprsx (nompro,oblopg)
350 if ( codret.ne.0 ) then
354 write (ulsort,texte(langue,1)) 'Sortie', nompro
355 write (ulsort,texte(langue,2)) codret
359 #ifdef _DEBUG_HOMARD_
360 write (ulsort,texte(langue,1)) 'Sortie', nompro