1 subroutine pcs1ar ( nbfop1, profho,
2 > hetare, somare, filare,
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 aPres adaptation - Conversion de Solution -
26 c interpolation p1 sur les noeuds lors du decoupage des ARetes
28 c remarque : pcs1ar et pcsmar sont des clones
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . nbfop1 . e . 1 . nombre de fonctions P1 .
34 c . profho . es . * . pour chaque entite en numerotation homard :.
35 c . . . . 0 : l'entite est absente du profil .
36 c . . . . 1 : l'entite est presente dans le profil .
37 c . hetare . e . nbarto . historique de l'etat des aretes .
38 c . somare . e .2*nbarto. numeros des extremites d'arete .
39 c . filare . e . nbarto . premiere fille des aretes .
40 c . vap1ho . es . nbfop1*. variables p1 numerotation homard .
42 c ______________________________________________________________________
45 c 0. declarations et dimensionnement
48 c 0.1. ==> generalites
63 integer profho(nbnoto)
64 integer hetare(nbarto), somare(2,nbarto), filare(nbarto)
66 double precision vap1ho(nbfop1,*)
68 c 0.4. ==> variables locales
70 integer larete, nuv, s1, s2, sm
72 cgn double precision TTT(2)
74 cgn parameter ( lglist = 15)
75 cgn integer listno(lglist)
76 c ______________________________________________________________________
79 c 1. interpolation p1 pour les aretes qui viennent d'etre decoupees
82 cgn listno( 1) = 16358
83 cgn listno( 2) = 14604
84 cgn listno( 3) = 16395
85 cgn listno( 4) = 17054
86 cgn listno( 5) = 16394
87 cgn listno( 6) = 17072
88 cgn listno( 7) = 22390
89 cgn listno( 8) = 22395
90 cgn listno( 9) = 22414
91 cgn listno(10) = 22393
92 cgn listno(11) = 22418
93 cgn listno(12) = 22415
94 cgn listno(13) = 22417
95 cgn listno(14) = 25003
96 cgn listno(15) = 25006
99 cgn print *,'Avant passage dans PCS1AR'
102 cgn print 1786,s1,vap1ho(nbfop1,s1)
103 cgn ttt(1)=min(ttt(1),vap1ho(nbfop1,s1))
104 cgn ttt(2)=max(ttt(2),vap1ho(nbfop1,s1))
106 cgn print *,'minimum sur les 6 noeuds ',ttt(1)
107 cgn print *,'maximum sur les 6 noeuds ',ttt(2)
108 cgn write(*,*) 'nbfop1 =', nbfop1
110 if ( nbfop1.ne.0 ) then
112 do 1000, larete = 1, nbarto
114 cgn if ( larete.eq.34918 .or. larete.eq.32464 ) then
115 cgn print 1789,larete,hetare(larete)
116 cgn print 1788,somare(1,larete),somare(2,larete)
118 cgn 1789 format('Arete ',i6,' ==> etat = ',i3)
119 cgn 1788 format('Sommet 1 : ',i6,' ; Sommet 2 : ',i6)
120 cgn 1787 format('Sommet milieu : ',i6)
121 cgn 1786 format('Valeur sur le sommet ',i6,' : ',g14.5)
123 if ( hetare(larete).eq.2 ) then
125 c recuperation des sommets de l'arete
127 s1 = somare(1,larete)
128 s2 = somare(2,larete)
129 cgn write(*,1784) s1, profho(s1)
130 cgn write(*,1784) s2, profho(s2)
131 cgn 1784 format('Noeud',i3,' :',i2)
133 if ( profho(s1).eq.1 .and. profho(s2).eq.1 ) then
135 c recuperation du nouveau noeud sommet
137 sm = somare(2,filare(larete))
139 cgn write(*,1784) sm, profho(sm)
140 cgn if ( larete.eq.34918 .or. larete.eq.32464 ) then
142 cgn print 1786,s1,vap1ho(nbfop1,s1)
143 cgn print 1786,s2,vap1ho(nbfop1,s2)
146 c interpolation : interpolee (ui,i=1,2) = 1/2 (u1+u2)
148 do 11, nuv = 1, nbfop1
150 vap1ho(nuv,sm) = unsde
151 > * ( vap1ho(nuv,s1) + vap1ho(nuv,s2) )
160 cgn print 1786,22414,vap1ho(nbfop1,22414)
161 cgn print 1786,22390,vap1ho(nbfop1,22390)
164 cgn print *,'Apres passage dans PCS1AR'
165 cgn do 889 , nuv=1,13
167 cgn print 1786,s1,vap1ho(nbfop1,s1)
168 cgn ttt(1)=min(ttt(1),vap1ho(nbfop1,s1))
169 cgn ttt(2)=max(ttt(2),vap1ho(nbfop1,s1))
171 cgn print *,'minimum sur les 13 noeuds ',ttt(1)
172 cgn print *,'maximum sur les 13 noeuds ',ttt(2)