module triangle2 { # triangle smoothing in 2-D
  use triangle
  integer :: b1, b2, n1, n2
  real, dimension (n1,n2), allocatable :: tmp
#%_init (b1,b2,n1,n2)
#%_lop (x (n1,n2), y (n1,n2))
  integer i1, i2, stat1, stat2
  if (b1 > 1) {	
       	call triangle_init (b1,n1)
	do i2 = 1, n2 {	
       		if (b2 > 1) {
			if (adj)
             	  		stat1 = triangle_lop (adj, .false., tmp (:,i2), y (:,i2))
          		else
             			stat1 = triangle_lop (adj, .false., x (:,i2), tmp (:,i2))
        	} else {
          		stat1 = triangle_lop (adj, .true., x (:,i2), y (:,i2))
       		}
	}
       	call triangle_close ()
    }
    if (b2 > 1) {
       	call triangle_init (b2,n2)
	do i1 = 1, n1 {
       		if (b1 > 1) {
          		if (adj) 
              			stat2 = triangle_lop (adj, .true., x (i1,:), tmp (i1,:))
          		else
             			stat2 = triangle_lop (adj, .true., tmp (i1,:), y (i1,:))
       		} else {
          		 stat1 = triangle_lop (adj, .true., x (i1,:), y (i1,:))
       		}
	}

       	call triangle_close ()
    }
}




