anchor.diff:       type(vector3d_dp) :: position
   
        ! Collection of positions (used for PointSourceCollection)
  -     real(dp),allocatable :: position_collection(:,:)
  +     type(pdf_discrete_dp) :: collection_pdf
  +     type(vector3d_dp),allocatable :: position_collection(:)
   
        ! Spot position and size
        integer :: n_spots = 0
  
positive.code:     real(dp) :: dx, dy, dz
      real(dp) :: theta, phi
      real(dp),allocatable :: tmp3d(:,:,:)
  
      call mp_read_keyword(group, '.', 'type', type)
  
  
negative.code: 
         s%type = 8
  
         call mp_read_keyword(group, '.', 'peeloff', s%peeloff)
         call mp_read_array_auto(group, 'position', position_collection)
         call mp_read_array_auto(group, 'luminosity', luminosity_collection)
  
         s%position_collection%x = position_collection(1,:)
         s%position_collection%y = position_collection(2,:)
         s%position_collection%z = position_collection(3,:)
  
         s%luminosity = sum(luminosity_collection)
         call set_pdf(s%collection_pdf, luminosity_collection)
  
         call set_spectrum(group, s%freq_type, s%spectrum, s%temperature)
  
  