module lapfill {  # fill empty 2-D bins by minimum output of Laplacian operator
  use laplac2
  use cgstep_mod
  use solver_mod
contains
  subroutine lapfill2( niter, m1, m2, yy, mfixed) {
    integer,                    intent (in)     :: niter, m1, m2
    logical, dimension (m1*m2), intent (in)     :: mfixed # mask for known
    real,    dimension (m1*m2), intent (in out) :: yy     # model
    real,    dimension (m1*m2)                  :: zero   # laplacian output
    call laplac2_init ( m1,m2);            zero = 0.      # initialize

    call solver ( laplac2_lop, cgstep, yy,  zero, niter,
				  x0 = yy,  known = mfixed)

    call laplac2_close ()                                 # garbage collection
    call cgstep_close ()                                  # garbage collection
  }
}
