function bfld(z,r,brfld) c---------------------------------------------------------------------- c include 'param_sz.h' include 'bfieldcom.h' include 'flagcom.h' include 'pfieldcom.h' include 'syscom.h' include 'ucom.h' c c----- Champ Poisson c if(poiflag .and. (z.ge.pzmin.and.z.le.pzmax))then l=(z-pzmin)/pdz k=r/pdr f1=(pdz*(l+1)-z+pzmin)/pdz f2=1.-f1 f3=(pdr*(k+1)-r)/pdr f4=1.-f3 if(k.ge.nrp)then brfld=0. bfld=0. return endif brfld=f1*(f3*rbfld(k,l)+f4*rbfld(k+1,l))+ * f2*(f3*rbfld(k,l+1)+f4*rbfld(k+1,l+1)) bfld=f1*(f3*zbfld(k,l)+f4*zbfld(k+1,l))+ * f2*(f3*zbfld(k,l+1)+f4*zbfld(k+1,l+1)) return endif c c---- c if(ifld.ne.0 .and. (z.ge.zmin.and.z.lt.zmax))then i=(z-zmin)/dzz +1 cbm 04/02/2010 if(i.gt.nptcb) then write(nnout,*) ' bfld i gt ',nptcb stop endif f1=(dzz*i-z+zmin)/dzz f2=1.-f1 rsq=r**2 bf1=bf(i,1)*f1+bf(i+1,1)*f2 bf2=bf(i,2)*f1+bf(i+1,2)*f2 bf3=bf(i,3)*f1+bf(i+1,3)*f2 bf4=bf(i,4)*f1+bf(i+1,4)*f2 bf5=bf(i,5)*f1+bf(i+1,5)*f2 bf6=bf(i,6)*f1+bf(i+1,6)*f2 bfld=bf(i,0)*f1+bf(i+1,0)*f2-rsq*(bf2-rsq*bf4/16.+ * rsq**2*bf6/576.)/4. brfld=-r*(bf1-rsq*bf3/8.+rsq**2*bf5/192.)/2. else bfld=0 brfld=0 endif return end c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*