xref: /phasta/phSolver/common/genscale.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen      subroutine genscale(y, x, iBC)
2*59599516SKenneth E. Jansenc
3*59599516SKenneth E. Jansenc----------------------------------------------------------------------
4*59599516SKenneth E. Jansenc This subroutine calculate the y^+ and eta at inflow and internal face.
5*59599516SKenneth E. Jansenc From these generate the scaling for the inflow data.
6*59599516SKenneth E. Jansenc
7*59599516SKenneth E. Jansenc input:
8*59599516SKenneth E. Jansenc  iBC    (numnp)               : boundary condition code
9*59599516SKenneth E. Jansenc  x      (numnp,nsd)           : node coordinates
10*59599516SKenneth E. Jansenc
11*59599516SKenneth E. Jansenc output:
12*59599516SKenneth E. Jansenc  y      (numnp,ndof)          : initial values of Y variables
13*59599516SKenneth E. Jansenc
14*59599516SKenneth E. Jansenc
15*59599516SKenneth E. Jansenc Elaine Bohr december 2001
16*59599516SKenneth E. Jansenc----------------------------------------------------------------------
17*59599516SKenneth E. Jansenc
18*59599516SKenneth E. Jansen       use spebc
19*59599516SKenneth E. Jansenc       use pointer_data
20*59599516SKenneth E. Jansen       include "common.h"
21*59599516SKenneth E. Jansen       include "mpif.h"
22*59599516SKenneth E. Jansen       include "auxmpi.h"
23*59599516SKenneth E. Jansenc
24*59599516SKenneth E. Jansen       dimension y(numnp,ndof),   iBC(numnp),
25*59599516SKenneth E. Jansen     &           x(numnp,nsd), velbarR(nfint,nflow)
26*59599516SKenneth E. Jansen       dimension ifath(numnp),  velbarl(nelint,nshl,nflow),
27*59599516SKenneth E. Jansen     &           v1(nfint),       ymapped(numnp,ndof),
28*59599516SKenneth E. Jansen     &		 shapef(nshl),	shgradl(nshl,nsd),
29*59599516SKenneth E. Jansen     &		 xsi(nsd), yintl(nelint,nshl,nflow),
30*59599516SKenneth E. Jansen     &		 flucl(nelint,nshl,nflow),
31*59599516SKenneth E. Jansen     &		 ubarintl(nelint,nshl,nflow),
32*59599516SKenneth E. Jansen     &		 fluc1(npin,nflow), fluc2(npin,nflow),
33*59599516SKenneth E. Jansen     &		 ubar1(npin,nflow), ubar2(npin,nflow)
34*59599516SKenneth E. Jansen       integer   element, dir
35*59599516SKenneth E. Jansen
36*59599516SKenneth E. Jansen       real*8    ymax, displTi, displTr, correction
37*59599516SKenneth E. Jansen       real*8	 freestream(nflow)
38*59599516SKenneth E. Jansen       save deltaint
39*59599516SKenneth E. Jansen
40*59599516SKenneth E. Jansen
41*59599516SKenneth E. Jansenc	return
42*59599516SKenneth E. Jansen        ymapped(:,2:4)=y(:,1:3)
43*59599516SKenneth E. Jansen	ymapped(:,1)=y(:,4)
44*59599516SKenneth E. Jansen	ymapped(:,5)=y(:,5)
45*59599516SKenneth E. Jansen
46*59599516SKenneth E. Jansen	ubar2 = 0
47*59599516SKenneth E. Jansen	fluc2 = 0
48*59599516SKenneth E. Jansen
49*59599516SKenneth E. Jansen	ymax = xyn(nfint)
50*59599516SKenneth E. Jansen
51*59599516SKenneth E. Jansenc
52*59599516SKenneth E. Jansenc .... Localizing the solution vector on virtual plane
53*59599516SKenneth E. Jansenc
54*59599516SKenneth E. Jansen
55*59599516SKenneth E. Jansen        do i = 1, nelint
56*59599516SKenneth E. Jansen          do j = 1, 3
57*59599516SKenneth E. Jansen            yintl(i,:,j+1) = y(ien2D(i,:),j)
58*59599516SKenneth E. Jansen          enddo
59*59599516SKenneth E. Jansen          yintl(i,:,1) = y(ien2D(i,:),4)
60*59599516SKenneth E. Jansen	  if(nflow.gt.4) then
61*59599516SKenneth E. Jansen            do j = 5, nflow
62*59599516SKenneth E. Jansen              yintl(i,:,j) = y(ien2D(i,:),j)
63*59599516SKenneth E. Jansen            enddo
64*59599516SKenneth E. Jansen          endif
65*59599516SKenneth E. Jansen	enddo
66*59599516SKenneth E. Jansen
67*59599516SKenneth E. Jansenc
68*59599516SKenneth E. Jansenc .... Finding averaged velocity in spanwise direction
69*59599516SKenneth E. Jansenc      for the virtual plane
70*59599516SKenneth E. Jansenc
71*59599516SKenneth E. Jansen
72*59599516SKenneth E. Jansen	do i=1,nfint
73*59599516SKenneth E. Jansen	  velbarR(i,:)=0
74*59599516SKenneth E. Jansen	  do j=1,imax(i)+1
75*59599516SKenneth E. Jansen	    call shptet(ipord,xsinfin(i,j,:),shapef(:),shgradl(:,:))
76*59599516SKenneth E. Jansen	    do k=1,nshl
77*59599516SKenneth E. Jansen	      velbarR(i,:)=velbarR(i,:)
78*59599516SKenneth E. Jansen     &		+ yintl(elcnfin(i,j),k,:)*shapef(k)
79*59599516SKenneth E. Jansen	    enddo
80*59599516SKenneth E. Jansen	  enddo
81*59599516SKenneth E. Jansen	  velbarR(i,:)=velbarR(i,:) / (imax(i)+1)
82*59599516SKenneth E. Jansen	enddo
83*59599516SKenneth E. Jansen
84*59599516SKenneth E. Jansenc
85*59599516SKenneth E. Jansenc .... Label the nodes that near the BL thickness
86*59599516SKenneth E. Jansenc
87*59599516SKenneth E. Jansen
88*59599516SKenneth E. Jansen       if (thetag.eq.0.0) then
89*59599516SKenneth E. Jansen         dir = 2
90*59599516SKenneth E. Jansen       else
91*59599516SKenneth E. Jansen         dir = 4
92*59599516SKenneth E. Jansen       endif
93*59599516SKenneth E. Jansen
94*59599516SKenneth E. Jansen       v1(1)=10.0
95*59599516SKenneth E. Jansen       do i=2,nfint+1
96*59599516SKenneth E. Jansen          v1(i)=velbarR(i-1,dir)-0.99*vel
97*59599516SKenneth E. Jansen          if((v1(i).gt.0).and.(v1(i-1).le.0)) then
98*59599516SKenneth E. Jansen             label=i-1
99*59599516SKenneth E. Jansen             go to 200
100*59599516SKenneth E. Jansen          endif
101*59599516SKenneth E. Jansen       enddo
102*59599516SKenneth E. Jansen       label=i-1
103*59599516SKenneth E. Jansen
104*59599516SKenneth E. Jansenc
105*59599516SKenneth E. Jansenc.... Find the BL thickness by means of finding the y coord
106*59599516SKenneth E. Jansenc
107*59599516SKenneth E. Jansen
108*59599516SKenneth E. Jansen 200   continue
109*59599516SKenneth E. Jansen       dv=velbarR(label,dir)-velbarR(label-1,dir)
110*59599516SKenneth E. Jansen       dy=xyn(label)-xyn(label-1)
111*59599516SKenneth E. Jansen
112*59599516SKenneth E. Jansenc
113*59599516SKenneth E. Jansenc .... Current calculation of bl thickness at recycle plane
114*59599516SKenneth E. Jansenc
115*59599516SKenneth E. Jansen
116*59599516SKenneth E. Jansen       if(istep.ne.0) then
117*59599516SKenneth E. Jansen          dlast=deltaint
118*59599516SKenneth E. Jansen          deltaint=xyn(label-1)
119*59599516SKenneth E. Jansen     &		+ dy*(0.99*vel-velbarR(label-1,dir))/dv
120*59599516SKenneth E. Jansen
121*59599516SKenneth E. Jansenc
122*59599516SKenneth E. Jansenc .... Early transients cause jumpy delta, smooth it.
123*59599516SKenneth E. Jansenc
124*59599516SKenneth E. Jansen
125*59599516SKenneth E. Jansen          deltaint=min(1.05*dlast,max(deltaint,0.95*dlast))
126*59599516SKenneth E. Jansen       else
127*59599516SKenneth E. Jansen          deltaint=xyn(label-1)
128*59599516SKenneth E. Jansen     &		+ dy*(0.99*vel-velbarR(label-1,dir))/dv
129*59599516SKenneth E. Jansen       endif
130*59599516SKenneth E. Jansen
131*59599516SKenneth E. Jansenc
132*59599516SKenneth E. Jansenc .... Deltaint is now the ratio of BL thickness at the interior plane
133*59599516SKenneth E. Jansenc      to the BL thickness at the inlet plane
134*59599516SKenneth E. Jansenc
135*59599516SKenneth E. Jansen
136*59599516SKenneth E. Jansen       deltaint=min(two*rbltin,max(deltaint,pt5*rbltin))
137*59599516SKenneth E. Jansen       rdelta = deltaint/rbltin
138*59599516SKenneth E. Jansen
139*59599516SKenneth E. Jansenc
140*59599516SKenneth E. Jansenc .... Finding freestream solutions
141*59599516SKenneth E. Jansenc
142*59599516SKenneth E. Jansen
143*59599516SKenneth E. Jansen	freestream = 0
144*59599516SKenneth E. Jansen	icount = 0
145*59599516SKenneth E. Jansen	do i=1, nfint
146*59599516SKenneth E. Jansen	  if (xyn(i).ge.deltaint) then
147*59599516SKenneth E. Jansen	    freestream(:) = freestream(:) + velbarR(i,:)
148*59599516SKenneth E. Jansen	    icount = icount + 1
149*59599516SKenneth E. Jansen	  endif
150*59599516SKenneth E. Jansen	enddo
151*59599516SKenneth E. Jansen	freestream = freestream / icount
152*59599516SKenneth E. Jansen
153*59599516SKenneth E. Jansenc
154*59599516SKenneth E. Jansenc .... Putting the freestream values into the average outside the BLT
155*59599516SKenneth E. Jansenc
156*59599516SKenneth E. Jansen
157*59599516SKenneth E. Jansen	do i=1, nfint
158*59599516SKenneth E. Jansen	  if (xyn(i).ge.deltaint) then
159*59599516SKenneth E. Jansen	    velbarR(i,:) = freestream(:)
160*59599516SKenneth E. Jansen	  endif
161*59599516SKenneth E. Jansen	enddo
162*59599516SKenneth E. Jansen
163*59599516SKenneth E. Jansenc
164*59599516SKenneth E. Jansenc .... Localizing the averaged velocity found above
165*59599516SKenneth E. Jansenc
166*59599516SKenneth E. Jansen
167*59599516SKenneth E. Jansen	do i=1,nelint
168*59599516SKenneth E. Jansen	  do k=1,nshl
169*59599516SKenneth E. Jansen	    do j=1,nfint-1
170*59599516SKenneth E. Jansen	      if (thetag.eq.0.0) then
171*59599516SKenneth E. Jansen	        if ((x(ien2D(i,k),2).ge.xyn(j)) .and.
172*59599516SKenneth E. Jansen     &		    (x(ien2D(i,k),2).le.(xyn(j+1)+0.000001))) then
173*59599516SKenneth E. Jansen		  tmp = (x(ien2D(i,k),2) - xyn(j)) /
174*59599516SKenneth E. Jansen     &			(xyn(j+1) - xyn(j))
175*59599516SKenneth E. Jansen     		  do l=1,nflow
176*59599516SKenneth E. Jansen		     velbarl(i,k,l) =
177*59599516SKenneth E. Jansen     &		            (velbarR(j+1,l) - velbarR(j,l)) *
178*59599516SKenneth E. Jansen     &                       tmp + velbarR(j,l)
179*59599516SKenneth E. Jansen	          enddo
180*59599516SKenneth E. Jansen		endif
181*59599516SKenneth E. Jansen	      else
182*59599516SKenneth E. Jansen	        if ((xcyl(ien2D(i,k),1).ge.xcyl(nrint(j+1),1)) .and.
183*59599516SKenneth E. Jansen     &		    (xcyl(ien2D(i,k),1).le.xcyl(nrint(j),1))) then
184*59599516SKenneth E. Jansen                  tmp = (xcyl(ien2D(i,k),1) - xcyl(nrint(j+1),1)) /
185*59599516SKenneth E. Jansen     &	              (xcyl(nrint(j),1) - xcyl(nrint(j+1),1))
186*59599516SKenneth E. Jansen     		  do l=1,nflow
187*59599516SKenneth E. Jansen		     velbarl(i,k,l) =
188*59599516SKenneth E. Jansen     &		            (velbarR(j,l) - velbarR(j+1,l)) *
189*59599516SKenneth E. Jansen     &                       tmp + velbarR(j+1,l)
190*59599516SKenneth E. Jansen	          enddo
191*59599516SKenneth E. Jansen		endif
192*59599516SKenneth E. Jansen     	      endif
193*59599516SKenneth E. Jansen	    enddo
194*59599516SKenneth E. Jansen	  enddo
195*59599516SKenneth E. Jansen	enddo
196*59599516SKenneth E. Jansen
197*59599516SKenneth E. Jansenc
198*59599516SKenneth E. Jansenc --- For now only Blasius is coded ---
199*59599516SKenneth E. Jansenc
200*59599516SKenneth E. Jansen
201*59599516SKenneth E. Jansenc
202*59599516SKenneth E. Jansenc .... Calculate fluctuations on elements of internal plane
203*59599516SKenneth E. Jansenc
204*59599516SKenneth E. Jansen
205*59599516SKenneth E. Jansenc       flucl = yintl - velbarl
206*59599516SKenneth E. Jansen
207*59599516SKenneth E. Jansenc
208*59599516SKenneth E. Jansenc .... Calculate mean values on elements of internal plane
209*59599516SKenneth E. Jansenc
210*59599516SKenneth E. Jansen
211*59599516SKenneth E. Jansen       ubarintl = velbarl
212*59599516SKenneth E. Jansen
213*59599516SKenneth E. Jansenc
214*59599516SKenneth E. Jansenc .... Calculating the coordinates of the point from where the
215*59599516SKenneth E. Jansenc      solution will be projected to the inlet plane
216*59599516SKenneth E. Jansenc
217*59599516SKenneth E. Jansen
218*59599516SKenneth E. Jansen
219*59599516SKenneth E. Jansen	do i=1,npin
220*59599516SKenneth E. Jansen
221*59599516SKenneth E. Jansenc
222*59599516SKenneth E. Jansenc .... Cartesian coodinate system
223*59599516SKenneth E. Jansenc
224*59599516SKenneth E. Jansen
225*59599516SKenneth E. Jansen	  if (thetag.eq.0.0) then
226*59599516SKenneth E. Jansen	    xts1 = x(nen1(i),1) + plandist
227*59599516SKenneth E. Jansen	    if (xynin(i)*rdelta.gt.ymax) then
228*59599516SKenneth E. Jansen	      xts2 = ymax
229*59599516SKenneth E. Jansen	    else
230*59599516SKenneth E. Jansen	      xts2 = xynin(i)*rdelta
231*59599516SKenneth E. Jansen	    endif
232*59599516SKenneth E. Jansen	    xts3 = x(nen1(i),3)
233*59599516SKenneth E. Jansen
234*59599516SKenneth E. Jansenc
235*59599516SKenneth E. Jansenc .... Cylindrical coordinate system
236*59599516SKenneth E. Jansenc
237*59599516SKenneth E. Jansen
238*59599516SKenneth E. Jansen	  else
239*59599516SKenneth E. Jansen	    if (xynin(i).le.0.00001) then
240*59599516SKenneth E. Jansen	      xts1 = (radcyl-xynin(i)*rdelta*sang-tolerence)
241*59599516SKenneth E. Jansen     & 		*cos(xcyl(nen1(i),2))
242*59599516SKenneth E. Jansen	      xts2 = (radcyl-xynin(i)*rdelta*sang-tolerence)
243*59599516SKenneth E. Jansen     &		*sin(xcyl(nen1(i),2))
244*59599516SKenneth E. Jansen	      xts3 = (aR-(radcyl-xynin(i)*rdelta*sang-tolerence)
245*59599516SKenneth E. Jansen     &	       * (xnrml*cos(xcyl(nen1(i),2))
246*59599516SKenneth E. Jansen     &	       +  ynrml*sin(xcyl(nen1(i),2))))/znrml
247*59599516SKenneth E. Jansen            elseif (xynin(i)*rdelta.gt.ymax) then
248*59599516SKenneth E. Jansen	      xts1 = (radcyl-ymax*sang)
249*59599516SKenneth E. Jansen     & 		*cos(xcyl(nen1(i),2))
250*59599516SKenneth E. Jansen	      xts2 = (radcyl-ymax*sang)
251*59599516SKenneth E. Jansen     &		*sin(xcyl(nen1(i),2))
252*59599516SKenneth E. Jansen	      xts3 = (aR-(radcyl-ymax*sang)
253*59599516SKenneth E. Jansen     &	       * (xnrml*cos(xcyl(nen1(i),2))
254*59599516SKenneth E. Jansen     &	       +  ynrml*sin(xcyl(nen1(i),2))))/znrml
255*59599516SKenneth E. Jansen	    else
256*59599516SKenneth E. Jansen	      xts1 = (radcyl-xynin(i)*rdelta*sang)
257*59599516SKenneth E. Jansen     & 		*cos(xcyl(nen1(i),2))
258*59599516SKenneth E. Jansen	      xts2 = (radcyl-xynin(i)*rdelta*sang)
259*59599516SKenneth E. Jansen     &		*sin(xcyl(nen1(i),2))
260*59599516SKenneth E. Jansen	      xts3 = (aR-(radcyl-xynin(i)*rdelta*sang)
261*59599516SKenneth E. Jansen     &	       * (xnrml*cos(xcyl(nen1(i),2))
262*59599516SKenneth E. Jansen     &	       +  ynrml*sin(xcyl(nen1(i),2))))/znrml
263*59599516SKenneth E. Jansen            endif
264*59599516SKenneth E. Jansen	  endif
265*59599516SKenneth E. Jansen
266*59599516SKenneth E. Jansenc
267*59599516SKenneth E. Jansenc .... Searching for the appropriate element
268*59599516SKenneth E. Jansenc
269*59599516SKenneth E. Jansen
270*59599516SKenneth E. Jansen     	  call elem_search(xintl, xts1, xts2, xts3,
271*59599516SKenneth E. Jansen     &			   xsi(:), element, 2)
272*59599516SKenneth E. Jansen      	  call shptet(ipord,xsi(:),shapef(:),shgradl(:,:))
273*59599516SKenneth E. Jansen
274*59599516SKenneth E. Jansenc
275*59599516SKenneth E. Jansenc .... Calculating the average velocity and fluctuations
276*59599516SKenneth E. Jansenc      for the inlet plane
277*59599516SKenneth E. Jansenc
278*59599516SKenneth E. Jansen
279*59599516SKenneth E. Jansen	  do k=1,nshl
280*59599516SKenneth E. Jansen	    fluc2(i,:)= 0 !fluc2(i,:) + flucl(element,k,:)*shapef(k)
281*59599516SKenneth E. Jansen	    ubar2(i,:)=ubar2(i,:) + ubarintl(element,k,:)*shapef(k)
282*59599516SKenneth E. Jansen	  enddo
283*59599516SKenneth E. Jansen	enddo
284*59599516SKenneth E. Jansen
285*59599516SKenneth E. Jansen
286*59599516SKenneth E. Jansenc$$$c
287*59599516SKenneth E. Jansenc$$$c keep freestream values set through averages
288*59599516SKenneth E. Jansenc$$$c
289*59599516SKenneth E. Jansenc$$$         ubaro=0
290*59599516SKenneth E. Jansenc$$$	 tbaro=0
291*59599516SKenneth E. Jansenc$$$         icount=0
292*59599516SKenneth E. Jansenc$$$         do i=1,nfin
293*59599516SKenneth E. Jansenc$$$            if(yin(i).ge.rbltin) then
294*59599516SKenneth E. Jansenc$$$               nzl=nsons(i)  !Elaine
295*59599516SKenneth E. Jansenc$$$               nzb=ienson1(i,1)
296*59599516SKenneth E. Jansenc$$$               nze=nzb+nzl-1
297*59599516SKenneth E. Jansenc$$$	       tbaro=tbaro+2.0*ubar2(i,5)+sum(fluc2(nzb:nze,5))
298*59599516SKenneth E. Jansenc$$$               ubaro=ubaro               +sum(fluc2(nzb:nze,2))
299*59599516SKenneth E. Jansenc$$$               icount=icount+nzl
300*59599516SKenneth E. Jansenc$$$            endif
301*59599516SKenneth E. Jansenc$$$         enddo
302*59599516SKenneth E. Jansenc$$$
303*59599516SKenneth E. Jansenc$$$c     alternative to myway
304*59599516SKenneth E. Jansenc$$$c
305*59599516SKenneth E. Jansenc$$$         ubaro=ubaro/icount
306*59599516SKenneth E. Jansenc$$$	 tmeaninflow=0.0625097048890964
307*59599516SKenneth E. Jansenc$$$	 fact= tmeaninflow/(tbaro/icount)
308*59599516SKenneth E. Jansenc$$$	 if (fact.ge. 0.9999999 .and. fact.le.1.0000001) fact = 1.0
309*59599516SKenneth E. Jansenc$$$
310*59599516SKenneth E. Jansenc$$$         do i=1,nfin
311*59599516SKenneth E. Jansenc$$$            if(yin(i).ge.rbltin) then
312*59599516SKenneth E. Jansenc$$$               ubar2(i,2)=1.0-ubaro
313*59599516SKenneth E. Jansenc$$$            endif
314*59599516SKenneth E. Jansenc$$$         enddo
315*59599516SKenneth E. Jansen         fact = 1.0
316*59599516SKenneth E. Jansen	 rvscal = 1.0
317*59599516SKenneth E. Jansen
318*59599516SKenneth E. Jansenc
319*59599516SKenneth E. Jansenc .... Putting the freestream value outside the BLT into ubar2
320*59599516SKenneth E. Jansenc
321*59599516SKenneth E. Jansen
322*59599516SKenneth E. Jansen	do i = 1, npin
323*59599516SKenneth E. Jansen	  if (xynin(i).ge.rbltin) then
324*59599516SKenneth E. Jansen	    ubar2(i,:) = freestream(:)
325*59599516SKenneth E. Jansenc	    ubar2(i,dir) = 1.0
326*59599516SKenneth E. Jansen	    fluc2(i,:) = 0
327*59599516SKenneth E. Jansen	  endif
328*59599516SKenneth E. Jansen	enddo
329*59599516SKenneth E. Jansen
330*59599516SKenneth E. Jansenc$$$c
331*59599516SKenneth E. Jansenc$$$c .... For the cylindrical case the freestream velocity needs
332*59599516SKenneth E. Jansenc$$$c      to be corrected for the blockage
333*59599516SKenneth E. Jansenc$$$c
334*59599516SKenneth E. Jansenc$$$
335*59599516SKenneth E. Jansenc$$$	if (thetag.ne.0.0) then
336*59599516SKenneth E. Jansenc$$$	  displTi = 0.0
337*59599516SKenneth E. Jansenc$$$	  displTr = 0.0
338*59599516SKenneth E. Jansenc$$$	  do i = 2, nfint
339*59599516SKenneth E. Jansenc$$$
340*59599516SKenneth E. Jansenc$$$c
341*59599516SKenneth E. Jansenc$$$c .... Displacement thickness for inlet plane
342*59599516SKenneth E. Jansenc$$$c
343*59599516SKenneth E. Jansenc$$$
344*59599516SKenneth E. Jansenc$$$	    displTi = displTi + (1 - y(nrint(i),3))
345*59599516SKenneth E. Jansenc$$$     &              * (xyn(i) - xyn(i-1)) * (radcyl - xyn(i))
346*59599516SKenneth E. Jansenc$$$
347*59599516SKenneth E. Jansenc$$$c
348*59599516SKenneth E. Jansenc$$$c .... Displacement thickness for recycle plane
349*59599516SKenneth E. Jansenc$$$c
350*59599516SKenneth E. Jansenc$$$
351*59599516SKenneth E. Jansenc$$$     	    displTr = displTr + (1 - velbarR(i,4))
352*59599516SKenneth E. Jansenc$$$     &              * (xyn(i) - xyn(i-1)) * (radcyl - xyn(i))
353*59599516SKenneth E. Jansenc$$$	  enddo
354*59599516SKenneth E. Jansenc$$$c	  displTi = radcyl - sqrt(radcyl*radcyl - displTi)
355*59599516SKenneth E. Jansenc$$$c	  displTr = radcyl - sqrt(radcyl*radcyl - displTr)
356*59599516SKenneth E. Jansenc$$$	  correction = (radcyl*radcyl - displTr)
357*59599516SKenneth E. Jansenc$$$     &               / (radcyl*radcyl - displTi)
358*59599516SKenneth E. Jansenc$$$        else
359*59599516SKenneth E. Jansen	  correction = 1.0
360*59599516SKenneth E. Jansenc$$$	endif
361*59599516SKenneth E. Jansen
362*59599516SKenneth E. Jansenc
363*59599516SKenneth E. Jansenc .... Scaled plane extraction boundary condition
364*59599516SKenneth E. Jansenc
365*59599516SKenneth E. Jansen
366*59599516SKenneth E. Jansen         ymapped(nen1(1:npin),1)= correction * (ubar2(:,1)+fluc2(:,1))
367*59599516SKenneth E. Jansen         ymapped(nen1(1:npin),2)= correction *
368*59599516SKenneth E. Jansen     &        (ubar2(:,2)+fluc2(:,2)) !myway *factu
369*59599516SKenneth E. Jansen         ymapped(nen1(1:npin),3)= correction *
370*59599516SKenneth E. Jansen     &        (ubar2(:,3)+fluc2(:,3))*rvscal
371*59599516SKenneth E. Jansen         ymapped(nen1(1:npin),4)= correction * (ubar2(:,4)+fluc2(:,4))
372*59599516SKenneth E. Jansenc     &			freestream(4)
373*59599516SKenneth E. Jansen	 ymapped(nen1(1:npin),5)= correction * fact*(ubar2(:,5)+fluc2(:,5))
374*59599516SKenneth E. Jansen
375*59599516SKenneth E. Jansen
376*59599516SKenneth E. Jansen
377*59599516SKenneth E. Jansenc
378*59599516SKenneth E. Jansenc .... Ready to put the solution on the inflow plane
379*59599516SKenneth E. Jansenc
380*59599516SKenneth E. Jansen
381*59599516SKenneth E. Jansen      if(intpres.eq.1) then     !interpolating pressure at inflow
382*59599516SKenneth E. Jansen         where (btest(iBC,11))
383*59599516SKenneth E. Jansen            y(:,1) = ymapped(:,2)
384*59599516SKenneth E. Jansen            y(:,2) = ymapped(:,3)
385*59599516SKenneth E. Jansen            y(:,3) = ymapped(:,4)
386*59599516SKenneth E. Jansen	    y(:,4) = ymapped(:,1)
387*59599516SKenneth E. Jansen	    y(:,5) = ymapped(:,5)
388*59599516SKenneth E. Jansen         endwhere
389*59599516SKenneth E. Jansen      else                      ! not interpolating pressure at inflow
390*59599516SKenneth E. Jansen         where (btest(iBC,11))
391*59599516SKenneth E. Jansen            y(:,1) = ymapped(:,2)
392*59599516SKenneth E. Jansen            y(:,2) = ymapped(:,3)
393*59599516SKenneth E. Jansen            y(:,3) = ymapped(:,4)
394*59599516SKenneth E. Jansen	    y(:,5) = ymapped(:,5)
395*59599516SKenneth E. Jansen         endwhere
396*59599516SKenneth E. Jansen      endif
397*59599516SKenneth E. Jansen
398*59599516SKenneth E. Jansenc
399*59599516SKenneth E. Jansenc     debugging variables
400*59599516SKenneth E. Jansenc
401*59599516SKenneth E. Jansenc      if(iter.eq.nitr) then
402*59599516SKenneth E. Jansenc         write(555,556)lstep+1,deltaint,label,nfint
403*59599516SKenneth E. Jansenc         write(554,556)lstep+1,yplusi(2),ypluso(2),factu,factt,gamt
404*59599516SKenneth E. Jansenc         call flush(554)
405*59599516SKenneth E. Jansenc         call flush(555)
406*59599516SKenneth E. Jansenc      endif
407*59599516SKenneth E. Jansenc 556  format(i6,5(2x,e14.7))
408*59599516SKenneth E. Jansenc
409*59599516SKenneth E. Jansenc.... return
410*59599516SKenneth E. Jansenc
411*59599516SKenneth E. Jansen
412*59599516SKenneth E. Jansen      return
413*59599516SKenneth E. Jansen      end
414