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 } }