1*59599516SKenneth E. Jansenc----------------------------------------------------------------------- 2*59599516SKenneth E. Jansen subroutine BCprofileScale(vbc_prof,BC,yold) 3*59599516SKenneth E. Jansen use pvsQbi 4*59599516SKenneth E. Jansen include "common.h" 5*59599516SKenneth E. Jansen real*8 vbc_prof(nshg,3) 6*59599516SKenneth E. Jansen real*8 BC(nshg,ndofBC),yold(nshg,ndof) 7*59599516SKenneth E. Jansen real*8 offphase 8*59599516SKenneth E. Jansen integer factor 9*59599516SKenneth E. Jansen 10*59599516SKenneth E. Jansen r_amp =rampmdot(1,1) 11*59599516SKenneth E. Jansen r_freq=rampmdot(2,1) 12*59599516SKenneth E. Jansen! Usual sinusoidal in time syn jet is given in the next line. It assumes that you are NOT changing the time step from previous runs since it computes the 13*59599516SKenneth E. Jansen! current time in the sin function to be (lstep+1)* Dt where lstep is a running total of all of the runs up to now. This will be "ok" under the following 14*59599516SKenneth E. Jansen! assumption: lstep*dt_current = m * T where m is an integer and T is the period of the jet. That is because this will evaluate to 2*m*Pi and the sin 15*59599516SKenneth E. Jansen! that is zero 16*59599516SKenneth E. Jansen 17*59599516SKenneth E. Jansen if(abs(rampmdot(1,2)) .lt. 1.0e-5) then 18*59599516SKenneth E. Jansen r_time_factor = r_amp*sin(two*pi*r_freq*(lstep+1)*Delt(1)) ! BC set for next time step - all phases are computed 19*59599516SKenneth E. Jansen else 20*59599516SKenneth E. Jansen r_time_factor = rampmdot(1,2)*r_amp ! read parameter scales Vmax 21*59599516SKenneth E. Jansen endif 22*59599516SKenneth E. Jansen 23*59599516SKenneth E. Jansen icount = 0 24*59599516SKenneth E. Jansen do kk=1,nshg 25*59599516SKenneth E. Jansen if(ndsurf(kk).eq.18) then ! this means diaphragm for the Cube Test case 26*59599516SKenneth E. Jansen 27*59599516SKenneth E. Jansen factor = idnint(rampmdot(2,2)) 28*59599516SKenneth E. Jansen 29*59599516SKenneth E. Jansen if(factor == 0) then 30*59599516SKenneth E. Jansen offphase = 0.d0 31*59599516SKenneth E. Jansen 32*59599516SKenneth E. Jansen elseif(factor == 1) then 33*59599516SKenneth E. Jansen offphase = 1.d0 34*59599516SKenneth E. Jansen 35*59599516SKenneth E. Jansen elseif(factor == 2) then 36*59599516SKenneth E. Jansen !Start to count from tip. If factor == 2 -> 1, 3, 5, etc 37*59599516SKenneth E. Jansen if(mod(ndsurf(kk)-1,factor) == 0) then 38*59599516SKenneth E. Jansen offphase = 1.d0 39*59599516SKenneth E. Jansen else 40*59599516SKenneth E. Jansen offphase = 0.d0 41*59599516SKenneth E. Jansen endif 42*59599516SKenneth E. Jansen 43*59599516SKenneth E. Jansen elseif(factor == 3) then 44*59599516SKenneth E. Jansen !Start to count from tip. If factor == 3 -> 2, 5, 8, etc 45*59599516SKenneth E. Jansen if(mod(ndsurf(kk)+1,factor) == 0) then 46*59599516SKenneth E. Jansen offphase = 1.d0 47*59599516SKenneth E. Jansen else 48*59599516SKenneth E. Jansen offphase = 0.d0 49*59599516SKenneth E. Jansen endif 50*59599516SKenneth E. Jansen 51*59599516SKenneth E. Jansen elseif(factor < 0) then 52*59599516SKenneth E. Jansen !Only one jet blowing. If factor = -5, then jet 5 only 53*59599516SKenneth E. Jansen !blows 54*59599516SKenneth E. Jansen if (ndsurf(kk) == -factor) then 55*59599516SKenneth E. Jansen offphase = 1.d0 56*59599516SKenneth E. Jansen else 57*59599516SKenneth E. Jansen offphase = 0.d0 58*59599516SKenneth E. Jansen endif 59*59599516SKenneth E. Jansen endif 60*59599516SKenneth E. Jansen 61*59599516SKenneth E. Jansen BC(kk,3)=r_time_factor*vbc_prof(kk,1)*offphase 62*59599516SKenneth E. Jansen BC(kk,4)=r_time_factor*vbc_prof(kk,2)*offphase 63*59599516SKenneth E. Jansen BC(kk,5)=r_time_factor*vbc_prof(kk,3)*offphase 64*59599516SKenneth E. Jansen 65*59599516SKenneth E. Jansen icount = icount + 1 66*59599516SKenneth E. Jansen 67*59599516SKenneth E. Jansen endif 68*59599516SKenneth E. Jansen enddo 69*59599516SKenneth E. Jansen 70*59599516SKenneth E. Jansen! if(istep.eq.0 .and. icount.ne.0) 71*59599516SKenneth E. Jansen! & write(*,*) 'BCprofile count',myrank,icount 72*59599516SKenneth E. Jansen 73*59599516SKenneth E. Jansen return 74*59599516SKenneth E. Jansen end 75*59599516SKenneth E. Jansen 76*59599516SKenneth E. Jansenc-------------------------------------------------------------- 77*59599516SKenneth E. Jansen subroutine BCprofileInit(vbc_prof,x) 78*59599516SKenneth E. Jansen 79*59599516SKenneth E. Jansen use pvsQbi 80*59599516SKenneth E. Jansen include "common.h" 81*59599516SKenneth E. Jansen real*8 vbc_prof(nshg,3), x(numnp,nsd) 82*59599516SKenneth E. Jansen real*8 rcenter(3),rnorml(3) 83*59599516SKenneth E. Jansen 84*59599516SKenneth E. Jansen open(unit=789, file='bcprofile.dat',status='unknown') 85*59599516SKenneth E. Jansen do kk=1,nshg 86*59599516SKenneth E. Jansenc.............Factors below are negative for desired blowing direction 87*59599516SKenneth E. Jansen if(ndsurf(kk).eq.18) then 88*59599516SKenneth E. Jansen x1=-0.025d0 89*59599516SKenneth E. Jansen x2=0.025d0 90*59599516SKenneth E. Jansen z1=-0.01d0 91*59599516SKenneth E. Jansen z2=0.01d0 92*59599516SKenneth E. Jansen vbc_prof(kk,1)=0.d0 93*59599516SKenneth E. Jansen vbc_prof(kk,2)=-1.6*1E7*(x(kk,1)-x1)*(x(kk,1)-x2)* 94*59599516SKenneth E. Jansen & (x(kk,3)-z1)*(x(kk,3)-z2) 95*59599516SKenneth E. Jansen vbc_prof(kk,3)=0.d0 96*59599516SKenneth E. Jansen 97*59599516SKenneth E. Jansen write(789,987) kk,vbc_prof(kk,1),vbc_prof(kk,2), 98*59599516SKenneth E. Jansen & vbc_prof(kk,3) 99*59599516SKenneth E. Jansen 100*59599516SKenneth E. Jansen else 101*59599516SKenneth E. Jansen vbc_prof(kk,:)=zero 102*59599516SKenneth E. Jansen endif 103*59599516SKenneth E. Jansen 104*59599516SKenneth E. Jansen enddo 105*59599516SKenneth E. Jansen close(789) 106*59599516SKenneth E. Jansen987 format(i6,3(2x,e14.7)) 107*59599516SKenneth E. Jansen 108*59599516SKenneth E. Jansen return 109*59599516SKenneth E. Jansen end 110