anchor.diff:    public :: rel_pos
     public :: profile_t
     public :: histogram_t
  +  public :: switch
   
     type profile_t
        double precision, allocatable :: data(:)
  
positive.code:      generic, public :: bin => histogram_bin
       procedure, private :: histogram_bin
    end type histogram_t
  
  contains
  
  
negative.code: 
    end subroutine histogram_bin
  
    subroutine switch_d2(p1, p2)
      double precision, pointer, dimension(:,:), intent(inout) :: p1, p2
      double precision, pointer, dimension(:,:) :: p
  
      p => p1
      p1 => p2
      p2 => p
  
    end subroutine switch_d2
  
    subroutine switch_i1(p1, p2)
      integer, pointer, dimension(:), intent(inout) :: p1, p2
      integer, pointer, dimension(:) :: p
  
      p => p1
      p1 => p2
      p2 => p
  
    end subroutine switch_i1
  
  end module common
  