1 | subroutine field |
---|
2 | c---define background field (e.g., helmholz coil field) |
---|
3 | c---parameters for field coil are position,radius,current,(z0,zmax on |
---|
4 | c---first only) |
---|
5 | c---------------------------------------------------------------------- |
---|
6 | c |
---|
7 | include 'param_sz.h' |
---|
8 | include 'bfieldcom.h' |
---|
9 | include 'flagcom.h' |
---|
10 | include 'misccom.h' |
---|
11 | include 'syscom.h' |
---|
12 | c |
---|
13 | real*8 rz3ov2,rz5ov2,rz7ov2,rz9ov2,rz11ov2,rz13ov2 |
---|
14 | c---------------------------------------------------------------------- |
---|
15 | div=nptcbu |
---|
16 | cbm if(ifld.eq.0)then |
---|
17 | cbm write(nnout,*) |
---|
18 | cbm * 'Number of used values for magnetic field ',vv(6) |
---|
19 | cbm div=vv(6) |
---|
20 | cbm nptcbu=div |
---|
21 | cbm endif |
---|
22 | if(ifld.eq.0)then |
---|
23 | cbm28/09/09 do 1 i=1,1002 |
---|
24 | do 1 i=1,nptcbu+2 |
---|
25 | do 1 j=0,6 |
---|
26 | bf(i,j)=0. |
---|
27 | 1 continue |
---|
28 | zmin=vv(4) |
---|
29 | zmax=vv(5) |
---|
30 | order=6. |
---|
31 | cbm28/09/09 dzz=(zmax-zmin)/1000. |
---|
32 | dzz=(zmax-zmin)/div |
---|
33 | ifld=1 |
---|
34 | endif |
---|
35 | cbm if(nn.eq.7) order=vv(7) |
---|
36 | if(nn.eq.6) order=vv(6) |
---|
37 | cur=vv(3) |
---|
38 | pos=vv(1) |
---|
39 | radus2=vv(2)**2 |
---|
40 | a=.6283*cur*radus2 |
---|
41 | cbm28/09/09 do 10 i=1,1001 |
---|
42 | do 10 i=1,nptcbu+1 |
---|
43 | z=((i-1)*dzz+zmin)-pos |
---|
44 | zsq=z**2 |
---|
45 | rsqzsq=radus2+zsq |
---|
46 | rz3ov2=rsqzsq**1.5 |
---|
47 | rz5ov2=rz3ov2*rsqzsq |
---|
48 | rz7ov2=rz5ov2*rsqzsq |
---|
49 | rz9ov2=rz7ov2*rsqzsq |
---|
50 | rz11ov2=rz9ov2*rsqzsq |
---|
51 | rz13ov2=rz11ov2*rsqzsq |
---|
52 | bf(i,0)=bf(i,0)+a/rz3ov2 |
---|
53 | bf(i,1)=bf(i,1)-a*3.*z/rz5ov2 |
---|
54 | if(order.ne.1)then |
---|
55 | bf(i,2)=bf(i,2)-a*(3.*rsqzsq-15.*zsq)/rz7ov2 |
---|
56 | bf(i,3)=bf(i,3)+a*(45.*z*rsqzsq-105.*z*zsq)/rz9ov2 |
---|
57 | bf(i,4)=bf(i,4)+a*(45.*rsqzsq**2-630.*zsq*rsqzsq+945.*zsq**2)/ |
---|
58 | * rz11ov2 |
---|
59 | bf(i,5)=bf(1,5)-a*(1575.*z*rsqzsq**2-9450.*z*zsq*rsqzsq+ |
---|
60 | * 10395.*z**5)/rz13ov2 |
---|
61 | bf(i,6)=bf(i,6)-a*(1575.*rsqzsq**3-42525.*zsq*rsqzsq**2+ |
---|
62 | * 155925.*zsq**2*rsqzsq-.135135*z**6)/(rz13ov2*rsqzsq) |
---|
63 | endif |
---|
64 | 10 continue |
---|
65 | return |
---|
66 | end |
---|
67 | c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++* |
---|