subroutine cfield(r,z,nc,ez,er,bt) c--------------------------------------------------------------------------- c include 'param_sz.h' include 'cfldscom.h' include 'constcom.h' include 'ucom.h' c c-------------------------------------------------------------------------- c* if(nc.lt.1 .or. nc.gt.numc)then write(ndiag,*)' cell id number (',nc,') is out of range' call appendparm stop ' Abnormal stop cfield ' endif if(iflag(nc).ge.0)call genfld(nc) 1 dz=hcll(nc)/(numz-1) abz=abs(z) if(z.lt.0.)then s=-1. else s=1. endif nz=abz/dz+1 if(nz.gt.numz-1)then nz=numz-1 dz1=1. else dz1=abz/dz-nz+1 endif nr=r/dr(nc)+1 if(nr.gt.numr-1)then nr=numr-1 dr1=1. else dr1=r/dr(nc)-nr+1 endif c1=(1.-dr1)*(1.-dz1) c2=(1.-dr1)*dz1 c3=dr1*(1.-dz1) c4=dr1*dz1 er=c1*fer(nr,nz,nc)+c2*fer(nr,nz+1,nc)+ 1 c3*fer(nr+1,nz,nc)+c4*fer(nr+1,nz+1,nc) er=er*s ez=c1*fez(nr,nz,nc)+c2*fez(nr,nz+1,nc)+ 1 c3*fez(nr+1,nz,nc)+c4*fez(nr+1,nz+1,nc) bt=c1*fbt(nr,nz,nc)+c2*fbt(nr,nz+1,nc)+ 1 c3*fbt(nr+1,nz,nc)+c4*fbt(nr+1,nz+1,nc) return end c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*