module binpull1 { # From each bin on model mesh, pull nearest data value. integer, dimension (m1), allocatable :: jd integer :: m1 #% _init( o1, d1, coordinate, m1) integer im, id real x, near, dist, o1,d1,coordinate(:) do im= 1, m1 { x = o1 + (im-1)*d1 near = 1.e30 do id= 1, size(coordinate) { dist = abs( x -coordinate(id)) if( dist < near) { jd(im) = id near = dist } } } #% _lop ( mm, dd) integer im,id do im= 1, m1 { id = jd(im) if( adj) mm(im) = mm(im) + dd(id) else dd(id) = dd(id) + mm(im) } }