real xd(2),yd(2) real,allocatable::elektr(:,:), pot(:,:) open(10,file="dipool_pot.out") open(20,file="dipool_elektr.out") nx=1000 ny=1000 dx=0.001 dy=0.001 q=1. xd(1)=300*dx xd(2)=700*dy yd(1)=nx*dx*0.5 yd(2)=ny*dy*0.5 allocate(elektr(nx,ny),pot(nx,ny)) do ix=1,nx do iy=1,ny xp=ix*dx yp=iy*dy r1=sqrt((xp-xd(1))**2+(yp-yd(1))**2) r2=sqrt((xp-xd(2))**2+(yp-yd(2))**2) if (r1.gt.1.e-2.and.r2.gt.1.e-2)then pot(ix,iy)=q/r1-q/r2 ex=q*((xp-xd(1))/r1**3-(xp-xd(2))/r2**3) ey=q*((yp-yd(1))/r1**3-(yp-yd(2))/r2**3) elektr(ix,iy)=sqrt(ex*ex+ey*ey) endif enddo enddo write(10,'(1000e15.5)') pot write(20,'(1000e15.5)') elektr stop end