subroutine field c---define background field (e.g., helmholz coil field) c---parameters for field coil are position,radius,current,(z0,zmax on c---first only) c---------------------------------------------------------------------- c include 'param_sz.h' include 'bfieldcom.h' include 'flagcom.h' include 'misccom.h' include 'syscom.h' c real*8 rz3ov2,rz5ov2,rz7ov2,rz9ov2,rz11ov2,rz13ov2 c---------------------------------------------------------------------- div=nptcbu cbm if(ifld.eq.0)then cbm write(nnout,*) cbm * 'Number of used values for magnetic field ',vv(6) cbm div=vv(6) cbm nptcbu=div cbm endif if(ifld.eq.0)then cbm28/09/09 do 1 i=1,1002 do 1 i=1,nptcbu+2 do 1 j=0,6 bf(i,j)=0. 1 continue zmin=vv(4) zmax=vv(5) order=6. cbm28/09/09 dzz=(zmax-zmin)/1000. dzz=(zmax-zmin)/div ifld=1 endif cbm if(nn.eq.7) order=vv(7) if(nn.eq.6) order=vv(6) cur=vv(3) pos=vv(1) radus2=vv(2)**2 a=.6283*cur*radus2 cbm28/09/09 do 10 i=1,1001 do 10 i=1,nptcbu+1 z=((i-1)*dzz+zmin)-pos zsq=z**2 rsqzsq=radus2+zsq rz3ov2=rsqzsq**1.5 rz5ov2=rz3ov2*rsqzsq rz7ov2=rz5ov2*rsqzsq rz9ov2=rz7ov2*rsqzsq rz11ov2=rz9ov2*rsqzsq rz13ov2=rz11ov2*rsqzsq bf(i,0)=bf(i,0)+a/rz3ov2 bf(i,1)=bf(i,1)-a*3.*z/rz5ov2 if(order.ne.1)then bf(i,2)=bf(i,2)-a*(3.*rsqzsq-15.*zsq)/rz7ov2 bf(i,3)=bf(i,3)+a*(45.*z*rsqzsq-105.*z*zsq)/rz9ov2 bf(i,4)=bf(i,4)+a*(45.*rsqzsq**2-630.*zsq*rsqzsq+945.*zsq**2)/ * rz11ov2 bf(i,5)=bf(1,5)-a*(1575.*z*rsqzsq**2-9450.*z*zsq*rsqzsq+ * 10395.*z**5)/rz13ov2 bf(i,6)=bf(i,6)-a*(1575.*rsqzsq**3-42525.*zsq*rsqzsq**2+ * 155925.*zsq**2*rsqzsq-.135135*z**6)/(rz13ov2*rsqzsq) endif 10 continue return end c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*