anchor.diff:  	end function new_Kernel
   
   
  -	function new_GP(cov_matrix, kernel_ptr)
  +	function new_GP(cov_matrix, kernel_ptr, subkernel_ptr1, subkernel_ptr2)
   		! this is the GP derived-type constructor
   		real(kind=8), dimension(:, :) :: cov_matrix
   		class(Kernel), pointer :: kernel_ptr
  +		class(Kernel), pointer, optional :: subkernel_ptr1, subkernel_ptr2
   		type(GP) new_GP
   		integer :: shape_cov(2), N
   
  
positive.code: 		class(SumKernels), intent(inout) :: self
  		integer, intent(in) :: k
  		if (k==1) print *, self%kernel1%pars
  		if (k==2) print *, self%kernel1%pars
  	end subroutine get_sub_kernel_pars_sum
  
  	subroutine get_sub_kernel_pars_prod(self, k)
  
negative.code: 		class(ProductKernels), intent(inout) :: self
  		integer, intent(in) :: k
  		if (k==1) print *, self%kernel1%pars
  		if (k==2) print *, self%kernel2%pars
  	end subroutine get_sub_kernel_pars_prod
  
  
  