Added spline interpolation of S_I in projxyzt. To be fixed...
This commit is contained in:
parent
9edc3079ba
commit
03bd185017
85
src/gray.f
85
src/gray.f
@ -505,6 +505,7 @@ c
|
|||||||
.'N Npl ki alpha tau Pt Jcd dIds nh iohkw index_rt'
|
.'N Npl ki alpha tau Pt Jcd dIds nh iohkw index_rt'
|
||||||
write(8,*) ' #istep j k xt yt zt rt psin'
|
write(8,*) ' #istep j k xt yt zt rt psin'
|
||||||
write(9,*) ' #istep j k xt yt zt rt psin'
|
write(9,*) ' #istep j k xt yt zt rt psin'
|
||||||
|
write(82,*) ' #istep j k xt yt zwspl zwparab'
|
||||||
write(17,*) ' #sst Dr_11 Dr_Nr1 Di_Nr1'
|
write(17,*) ' #sst Dr_11 Dr_Nr1 Di_Nr1'
|
||||||
write(33,*) ' #i j k sst x y R z psi tauv Npl alpha index_rt'
|
write(33,*) ' #i j k sst x y R z psi tauv Npl alpha index_rt'
|
||||||
write(12,*) ' #i sst w1 w2 phiw rci1 rci2 phir errw errr '//
|
write(12,*) ' #i sst w1 w2 phiw rci1 rci2 phir errw errr '//
|
||||||
@ -593,6 +594,8 @@ c
|
|||||||
common/mode/sox
|
common/mode/sox
|
||||||
common/angles/alpha0,beta0
|
common/angles/alpha0,beta0
|
||||||
common/scal/iscal
|
common/scal/iscal
|
||||||
|
|
||||||
|
common/waist/w0csi,w0eta
|
||||||
c
|
c
|
||||||
open(2,file='gray.data',status= 'unknown')
|
open(2,file='gray.data',status= 'unknown')
|
||||||
c
|
c
|
||||||
@ -5669,6 +5672,22 @@ c gg=F(u)/u with F(u) as in Cohen paper
|
|||||||
complex*16 ui,aac,bbc,ccc,ddc,aak,bbk,cck
|
complex*16 ui,aac,bbc,ccc,ddc,aak,bbk,cck
|
||||||
parameter(ui=(0.0d0,1.0d0))
|
parameter(ui=(0.0d0,1.0d0))
|
||||||
dimension tauv(jmx,kmx,nmx),alphav(jmx,kmx,nmx)
|
dimension tauv(jmx,kmx,nmx),alphav(jmx,kmx,nmx)
|
||||||
|
parameter(nrmax=(jmx-1)*kmx+1)
|
||||||
|
dimension xtiv(nrmax),ytiv(nrmax),zwjv(nrmax),w(nrmax)
|
||||||
|
c parameter(nxmax=2*jmx-1)
|
||||||
|
parameter(nxmax=2*kmx)
|
||||||
|
parameter(kspl=3,nxest=nxmax+4)
|
||||||
|
parameter(km=kspl+1,nu=nxest-km)
|
||||||
|
parameter(ne=nxest,kb1=kspl*nu+km,kb2=kb1+nu-kspl)
|
||||||
|
parameter(lwrk1=nu*nu*(2+kb1+kb2)+
|
||||||
|
. 2*(2*nu+km*(nrmax+ne)+ne-2*kspl)+kb2+1)
|
||||||
|
parameter(lwrk2=nu*nu*(kb2+1)+kb2)
|
||||||
|
parameter(kwrk=nrmax+(nxest-kspl-km)*(nxest-kspl-km))
|
||||||
|
dimension xgridv(nxmax),ygridv(nxmax)
|
||||||
|
dimension zwint(nxmax*nxmax),ccexp(nxmax*nxmax)
|
||||||
|
dimension tx(nxest),ty(nxest),wrk1(lwrk1),wrk2(lwrk2),iwrk(kwrk)
|
||||||
|
parameter(lwrkbsp=8*nxmax,liwrkbsp=2*nxmax)
|
||||||
|
dimension wrkbsp(lwrkbsp),iwrkbsp(liwrkbsp)
|
||||||
c
|
c
|
||||||
common/nray/nrayr,nrayth
|
common/nray/nrayr,nrayth
|
||||||
common/wrk/ywrk,ypwrk
|
common/wrk/ywrk,ypwrk
|
||||||
@ -5678,6 +5697,7 @@ c
|
|||||||
common/ss/st
|
common/ss/st
|
||||||
common/dnpar/dnpara
|
common/dnpar/dnpara
|
||||||
common/atjki/tauv,alphav
|
common/atjki/tauv,alphav
|
||||||
|
common/waist/w0csi,w0eta
|
||||||
c
|
c
|
||||||
x4m=0.0d0
|
x4m=0.0d0
|
||||||
x3ym=0.0d0
|
x3ym=0.0d0
|
||||||
@ -5692,6 +5712,9 @@ c
|
|||||||
y2zwm=0.0d0
|
y2zwm=0.0d0
|
||||||
z2wm=0.0d0
|
z2wm=0.0d0
|
||||||
z2rm=0.0d0
|
z2rm=0.0d0
|
||||||
|
c initialize grid dimension for spline interpolation
|
||||||
|
xmaxgrid=2*max(w0csi,w0eta)
|
||||||
|
iray=0
|
||||||
c
|
c
|
||||||
do j=1,nrayr
|
do j=1,nrayr
|
||||||
kktx=nrayth
|
kktx=nrayth
|
||||||
@ -5699,7 +5722,6 @@ c
|
|||||||
do k=1,kktx
|
do k=1,kktx
|
||||||
zwj=(dble(j-1)*rwmax/dble(nrayr-1))**2+
|
zwj=(dble(j-1)*rwmax/dble(nrayr-1))**2+
|
||||||
. 0.5*(tauv(j,k,istep)-tauv(1,1,istep))
|
. 0.5*(tauv(j,k,istep)-tauv(1,1,istep))
|
||||||
|
|
||||||
c
|
c
|
||||||
dx=ywrk(1,j,k)-ywrk(1,1,1)
|
dx=ywrk(1,j,k)-ywrk(1,1,1)
|
||||||
dy=ywrk(2,j,k)-ywrk(2,1,1)
|
dy=ywrk(2,j,k)-ywrk(2,1,1)
|
||||||
@ -5723,7 +5745,14 @@ c
|
|||||||
xti= dx*csps1-dy*snps1
|
xti= dx*csps1-dy*snps1
|
||||||
yti=(dx*snps1+dy*csps1)*csth1-dz*snth1
|
yti=(dx*snps1+dy*csps1)*csth1-dz*snth1
|
||||||
zti=(dx*snps1+dy*csps1)*snth1+dz*csth1
|
zti=(dx*snps1+dy*csps1)*snth1+dz*csth1
|
||||||
rti=sqrt(xti**2+yti**2)
|
rti=sqrt(xti**2+yti**2)
|
||||||
|
c store x,y,z values for spline interpolation
|
||||||
|
iray=iray+1
|
||||||
|
xtiv(iray)=xti
|
||||||
|
ytiv(iray)=yti
|
||||||
|
zwjv(iray)=zwj
|
||||||
|
c initialize grid dimension for spline interpolation
|
||||||
|
xmaxgrid=max(xmaxgrid,rti)
|
||||||
c
|
c
|
||||||
dirxt= (dirx*csps1-diry*snps1)/dir
|
dirxt= (dirx*csps1-diry*snps1)/dir
|
||||||
diryt=((dirx*snps1+diry*csps1)*csth1-dirz*snth1)/dir
|
diryt=((dirx*snps1+diry*csps1)*csth1-dirz*snth1)/dir
|
||||||
@ -5880,6 +5909,58 @@ c
|
|||||||
c in common dnpara=dnpar/2 to match westerhof Delta function
|
c in common dnpara=dnpar/2 to match westerhof Delta function
|
||||||
c Delta -> exp[-(...)^2/(2*DeltaQ)]
|
c Delta -> exp[-(...)^2/(2*DeltaQ)]
|
||||||
c
|
c
|
||||||
|
|
||||||
|
|
||||||
|
c Spline fit
|
||||||
|
if(nrayr.gt.1) then
|
||||||
|
|
||||||
|
npoints=iray
|
||||||
|
xmin=-xmaxgrid
|
||||||
|
xmax=xmaxgrid
|
||||||
|
ymin=-xmaxgrid
|
||||||
|
ymax=xmaxgrid
|
||||||
|
nxgrid=2*nrayr-1
|
||||||
|
dx=(xmax-xmin)/(nxgrid-1)
|
||||||
|
do i=1,nxgrid
|
||||||
|
xgridv(i)=xmin+(i-1)*dx
|
||||||
|
ygridv(i)=xgridv(i)
|
||||||
|
end do
|
||||||
|
|
||||||
|
c call interp spline
|
||||||
|
iopt=0
|
||||||
|
sspl=1.0d-3
|
||||||
|
eps=1.0d-7
|
||||||
|
do iray=1,npoints
|
||||||
|
w(iray) = 1.0d0
|
||||||
|
end do
|
||||||
|
call surfit(iopt,npoints,xtiv,ytiv,zwjv,w,xmin,xmax,ymin,ymax,
|
||||||
|
. kspl,kspl,sspl,nxest,nxest,nxest,eps,
|
||||||
|
. nkntx,tx,nknty,ty,ccexp,resid,wrk1,lwrk1,wrk2,lwrk2,
|
||||||
|
. iwrk,kwrk,ierr)
|
||||||
|
if (ierr.gt.0) then
|
||||||
|
print*, 'surfit:',istep,nkntx,nknty,ierr,resid
|
||||||
|
do j=1,nxgrid
|
||||||
|
do i=1,nxgrid
|
||||||
|
zwint(nxgrid*(i-1)+j)=0.0d0
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
else
|
||||||
|
c call eval spline
|
||||||
|
call bispev(tx,nkntx,ty,nknty,ccexp,kspl,kspl,xgridv,nxgrid,
|
||||||
|
. ygridv,nxgrid,zwint,wrkbsp,lwrkbsp,iwrkbsp,liwrkbsp,ierr)
|
||||||
|
if (ierr.ne.0) print*, 'bispev:',istep,ierr
|
||||||
|
end if
|
||||||
|
do j=1,nxgrid
|
||||||
|
do i=1,nxgrid
|
||||||
|
ij=nxgrid*(i-1)+j
|
||||||
|
write(82,111) istep,i,j,xgridv(i),ygridv(j),zwint(ij),
|
||||||
|
. aaw*xgridv(i)**2+ccw*xgridv(i)*ygridv(j)+bbw*ygridv(j)**2
|
||||||
|
end do
|
||||||
|
write(82,*) ''
|
||||||
|
end do
|
||||||
|
write(82,*) ''
|
||||||
|
end if
|
||||||
|
|
||||||
write(12,99) istep,st,
|
write(12,99) istep,st,
|
||||||
. wcsi,weta,phiwdeg,rcicsi,rcieta,phirdeg,errw,errr,
|
. wcsi,weta,phiwdeg,rcicsi,rcieta,phirdeg,errw,errr,
|
||||||
. dk1,dk2,dkpar,phik*180.0d0/pi,dnpar
|
. dk1,dk2,dkpar,phik*180.0d0/pi,dnpar
|
||||||
|
Loading…
Reference in New Issue
Block a user