blob: 61c9d98b80bf3198ada5881d39aa8957cf26f802 [file] [log] [blame]
subroutine detune(iv,ekk,ep,beta,dtu,dtup,dfac)
implicit real*8 (a-h,o-z)
parameter(npart=64,nmac=1)
parameter(nele=700,nblo=300,nper=16,
&nelb=100,nblz=20000,nzfz=300000,mmul=11)
parameter(nran=280000,ncom=100,mran=500,mpa=6,nrco=5,nema=15)
parameter(mcor=10)
parameter(npos=20000,nlya=10000,ninv=1000,nplo=20000)
parameter(nmon1=600,ncor1=600)
parameter(pieni=1d-17)
parameter(zero=0.0d0,half=0.5d0,one=1.0d0)
parameter(two=2.0d0,three=3.0d0,four=4.0d0)
dimension dfac(10),dtu(2,5),ep(2),beta(2),dtup(2,5,0:4,0:4)
save
pi=four*atan(one)
iv2=2*iv
iv3=iv+1
vtu1=-ekk*(half**iv2)*dfac(iv2)/pi
dtu1=zero
dtu2=zero
do 10 iv4=1,iv3
iv5=iv4-1
iv6=iv-iv5
vor=one
if(mod(iv6,2).ne.0) vor=-one
vtu2=vor/(dfac(iv5+1)**2)/(dfac(iv6+1)**2)*(beta(1)**iv5)* (beta
+ (2)**iv6)
if(iv5.ne.0) then
dtu1=dtu1+vtu2*iv5*(ep(1)**(iv5-1))*(ep(2)**iv6)
dtup(1,iv,iv5-1,iv6)=dtup(1,iv,iv5-1,iv6)+vtu2*iv5*vtu1
endif
if(iv6.ne.0) then
dtu2=dtu2+vtu2*iv6*(ep(1)**iv5)*(ep(2)**(iv6-1))
dtup(2,iv,iv5,iv6-1)=dtup(2,iv,iv5,iv6-1)+vtu2*iv6*vtu1
endif
10 continue
dtu(1,iv)=dtu(1,iv)+vtu1*dtu1
dtu(2,iv)=dtu(2,iv)+vtu1*dtu2
return
end