1 subroutine pcsprn ( typprf, numnp1,
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 - PRofil - Noeuds
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . typprf . s . 1 . type du support defini par le profil .
31 c . . . . 0 : rien de special .
32 c . . . . 1 : tous les noeuds P1 et eux seuls .
33 c . . . . 2 : une partie des noeuds P1 .
34 c . numnp1 . e . 1 . nombre de noeuds P1 en entree .
35 c . hetnoe . e . nbnoto . historique de l'etat des noeuds .
36 c . nnoeho . e . renoac . numero des noeuds en entre pour homard .
37 c . nbvapr . e . 1 . nombre de valeurs du profil .
38 c . listpr . e . * . liste des numeros de noeuds ou la fonction .
39 c . . . . est definie. .
40 c ______________________________________________________________________
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
51 cgn character*6 nompro
52 cgn parameter ( nompro = 'PCSPRN' )
64 integer nbvapr, listpr(*)
66 integer hetnoe(nbnoto)
67 integer nnoeho(renoac)
69 c 0.4. ==> variables locales
72 integer nbnpr1, nbnpr2
73 c ______________________________________________________________________
79 c 1. si le maillage est inchange ou s'il n'y a eu que du raffinement,
80 c chaque noeud en entree de HOMARD est encore un noeud en sortie.
81 c Le numero d'un noeud dans HOMARD reste inchange.
82 c Il suffit de tester l'etat du noeud en entree
83 c Numero dans le calcul en entree <---> Numero HOMARD
84 c lenoeu <---> nnoeho(lenoeu)
87 cgn write(*,*) 'Dans pcsprn, nbvapr =', nbvapr
88 cgn 1789 format(a,'(',i5,',) =',i10,', noeud',i10)
90 do 10 , iaux = 1 , nbvapr
91 cgn write (*,1789)'listpr',iaux,listpr(iaux),nnoeho(listpr(iaux))
92 jaux = hetnoe(nnoeho(listpr(iaux)))
93 if ( ((jaux-mod(jaux,10))/10).eq.1 ) then
103 c Si au moins un noeud non P1 est dans le profil, c'est du quelconque
109 cgn write(*,*) 'Dans pcsprn, nbnpr1 =', nbnpr1
110 cgn write(*,*) 'Dans pcsprn, nbnpr2 =', nbnpr2
111 cgn write(*,*) 'Dans pcsprn, numnp1 =', numnp1
112 if ( nbnpr2.gt.0 ) then
115 if ( nbnpr1.eq.numnp1 ) then
117 elseif ( nbnpr1.lt.numnp1 ) then
123 cgn write(*,*) 'Dans pcsprn, typprf =', typprf