as pointed out by David your source routine does not include the volumetric sampling which you have to implement yourself.
Otherwise you can use the package provided in this post:
It supports all volumetric source definitions of FLUKA via the input file in combination with spectral sampling. Note that you would have to slightly adapt the input format of your spectrum.