anchor.diff:       double precision, allocatable :: sigma_sq(:,:)
        double precision, allocatable :: cut(:,:)
        double precision, allocatable :: cut_sq(:,:)
  +     double precision, allocatable :: shift
      contains
        procedure :: init => lj_params_init
     end type lj_params_t
   
   contains
   
  -  subroutine lj_params_init(this, epsilon, sigma, cut)
  +  subroutine lj_params_init(this, epsilon, sigma, cut, shift)
       class(lj_params_t), intent(out) :: this
       double precision, intent(in) :: epsilon(:,:)
       double precision, intent(in) :: sigma(:,:)
       double precision, intent(in) :: cut(:,:)
  +    double precision, intent(in), optional :: shift
   
       integer :: n1, n2
   
  
positive.code: 
    end function lj_energy_9_6
  
  end module interaction
  
negative.code:   public :: lj_energy
    public :: lj_force_9_6
    public :: lj_energy_9_6
    public :: lj_force_9_3
    public :: lj_energy_9_3
  
    type lj_params_t
       integer :: n1, n2
  