source: PSPA/parmelaPSPA/trunk/bfld.f @ 404

Last change on this file since 404 was 12, checked in by lemeur, 12 years ago

parmela pspa initial

File size: 1.6 KB
Line 
1      function bfld(z,r,brfld)
2c----------------------------------------------------------------------
3c
4      include 'param_sz.h'
5      include 'bfieldcom.h'
6      include 'flagcom.h'
7      include 'pfieldcom.h'
8      include 'syscom.h'
9      include 'ucom.h'
10c
11c----- Champ Poisson
12c
13      if(poiflag .and. (z.ge.pzmin.and.z.le.pzmax))then
14         l=(z-pzmin)/pdz
15         k=r/pdr
16         f1=(pdz*(l+1)-z+pzmin)/pdz
17         f2=1.-f1
18         f3=(pdr*(k+1)-r)/pdr
19         f4=1.-f3
20         if(k.ge.nrp)then
21             brfld=0.
22             bfld=0.
23         return
24         endif
25         brfld=f1*(f3*rbfld(k,l)+f4*rbfld(k+1,l))+
26     *         f2*(f3*rbfld(k,l+1)+f4*rbfld(k+1,l+1))
27         bfld=f1*(f3*zbfld(k,l)+f4*zbfld(k+1,l))+
28     *        f2*(f3*zbfld(k,l+1)+f4*zbfld(k+1,l+1))
29         return
30      endif
31c
32c----
33c
34      if(ifld.ne.0 .and. (z.ge.zmin.and.z.lt.zmax))then
35      i=(z-zmin)/dzz +1
36cbm 04/02/2010
37      if(i.gt.nptcb) then
38        write(nnout,*) ' bfld i gt ',nptcb
39        stop
40      endif
41      f1=(dzz*i-z+zmin)/dzz
42      f2=1.-f1
43      rsq=r**2
44      bf1=bf(i,1)*f1+bf(i+1,1)*f2
45      bf2=bf(i,2)*f1+bf(i+1,2)*f2
46      bf3=bf(i,3)*f1+bf(i+1,3)*f2
47      bf4=bf(i,4)*f1+bf(i+1,4)*f2
48      bf5=bf(i,5)*f1+bf(i+1,5)*f2
49      bf6=bf(i,6)*f1+bf(i+1,6)*f2
50      bfld=bf(i,0)*f1+bf(i+1,0)*f2-rsq*(bf2-rsq*bf4/16.+
51     *                                  rsq**2*bf6/576.)/4.
52      brfld=-r*(bf1-rsq*bf3/8.+rsq**2*bf5/192.)/2.
53      else
54      bfld=0
55      brfld=0
56      endif
57      return
58      end
59c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
Note: See TracBrowser for help on using the repository browser.