anchor.diff:      real(dp) :: dx, dy, dz
       real(dp) :: theta, phi
       real(dp),allocatable :: tmp3d(:,:,:)
  +    real(dp),allocatable :: luminosity_collection(:), position_collection(:,:)
   
       call mp_read_keyword(group, '.', 'type', type)
   
  
positive.code: 
         s%type = 8
  
         call mp_read_keyword(group, '.', 'luminosity', s%luminosity)
         call mp_read_keyword(group, '.', 'peeloff', s%peeloff)
         call mp_read_array_auto(group, 'position', s%position_collection)
  
         call set_spectrum(group, s%freq_type, s%spectrum, s%temperature)
  
  
negative.code:     type(photon),intent(inout) :: p
      ! the emitted photon
  
      integer :: i_source
  
      ! Set position to that of one of the point sources
      i_source = sample_pdf(src%collection_pdf)
      p%r = src%position_collection(i_source)
  
      ! Sample isotropic angle
      call random_sphere_angle3d(p%a)
  