module dipinteg_mod{ use igrad2 use solver_smp_mod use cgstep_mod # simple dip integrator for flattening using cg contains subroutine dipinteg(px,py,tau,niter,verb,nx,ny){ integer, intent(in) :: niter,nx,ny logical, intent(in) :: verb real, dimension(:,:),intent(in ):: px,py real, dimension(:), intent(out):: tau real, dimension(:) :: px_py(2*nx*ny) call igrad2_init(nx,ny) px_py(1:nx*ny) =reshape(py,(/nx*ny/)) px_py(nx*ny+1:2*nx*ny)=reshape(px,(/nx*ny/)) call solver_smp(tau,px_py,igrad2_lop,cgstep,niter,verb) } }