subroutine sum_fields(map_inj,map_inf, xmin_inj, xmin_inf,map, xmin) use magfield implicit none type(magfield_struct), allocatable :: map_inj(:,:,:), map_inf(:,:,:) type(magfield_struct), allocatable :: map(:,:,:) type(magfield_struct) x0, xmax, xmin, dxyz(-1:1), xmin_inj, xmin_inf, diffx integer ntot(3), ntot_inf(3), idif(3) integer i,j,k,l forall(i=1:3)ntot(i) = size(map_inj,i) forall(i=1:3)ntot_inf(i) = size(map_inf,i) idif(1:3) = 2*(xmin_inf%x(1:3) - xmin_inj%x(1:3)) allocate(map(1:ntot(1),1:ntot(2),1:ntot(3))) map(:,:,:) = map_inj(:,:,:) xmin%x = xmin_inj%x do i=1+idif(1),ntot(1) ! write(13,'(/,a,/)')'#' do j=1+idif(2),ntot(2) ! write(13,'(/,a,/)')'#' do k=1+idif(3),ntot(3) map(i,j,k)%B(1:3) = map_inj(i,j,k)%B(1:3) + map_inf(i-idif(1),j-idif(2),k-idif(3))%B(1:3) diffx%x(1:3) = map_inj(i,j,k)%x(1:3) - map_inf(i-idif(1),j-idif(2),k-idif(3))%x(1:3) if(any(abs(diffx%x(1:3)) > 0.00001))then ! print '(4(3es12.4))', map(i,j,k)%B(2), map_inj(i,j,k)%B(2), map_inf(i-idif(1),j-idif(2),k-idif(3))%B(2), & ! map_inf(i-idif(1),j-idif(2),k-idif(3))%x(1:3),map_inj(i,j,k)%x(1:3),diffx%x write(13,'(4(3es12.4))')map(i,j,k)%B(2), map_inj(i,j,k)%B(2), map_inf(i-idif(1),j-idif(2),k-idif(3))%B(2), & map_inf(i-idif(1),j-idif(2),k-idif(3))%x(1:3),map_inj(i,j,k)%x(1:3),diffx%x endif end do end do end do ! do k=1,ntot(3) ! end do return end