40    type(box_list_t), 
public :: list
 
   50    class(multibox_t), 
intent(inout) :: this
 
   52    type(box_iterator_t)  :: iter
 
   53    class(box_t), 
pointer :: box
 
   57    safe_deallocate_a(this%bounding_box_l)
 
   59    call iter%start(this%list)
 
   60    do while (iter%has_next())
 
   61      box => iter%get_next()
 
   62      safe_deallocate_p(box)
 
   75    class(multibox_t),                
intent(in)  :: this
 
   76    class(basis_vectors_t), 
optional, 
intent(in)  :: axes
 
   77    real(real64) :: bounds(2, this%dim)
 
   79    real(real64) :: box_bounds(2, this%dim)
 
   80    type(box_iterator_t) :: iter
 
   81    class(box_t), 
pointer :: box
 
   87    call iter%start(this%list)
 
   88    do while (iter%has_next())
 
   89      box => iter%get_next()
 
   90      if (this%is_inside_out()) 
then 
   91        call box%turn_inside_out()
 
  100      if (this%is_inside_out()) 
then 
  101        call box%turn_inside_out()
 
  110    class(multibox_t), 
intent(inout) :: this
 
  111    class(box_t),      
intent(in)    :: new_box
 
  117    assert(this%dim == new_box%dim)
 
  119    do idir = 1, this%dim
 
  120      if (new_box%bounding_box_l(idir) > this%bounding_box_l(idir)) 
then 
  121        this%bounding_box_l(idir) = new_box%bounding_box_l(idir)
 
  125    call this%list%add(new_box)
 
Box bounds along some axes.
 
real(real64), parameter, public m_huge
 
This module implements fully polymorphic linked lists, and some specializations thereof.
 
real(real64) function, dimension(2, this%dim) multibox_bounds(this, axes)
 
subroutine multibox_add_box(this, new_box)
 
subroutine, public multibox_end(this)
 
class to tell whether a point is inside or outside
 
Abstract class for boxes that are made up of a list of boxes.