init_source Function

public function init_source(choice)

Bind emission function to photon object

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: choice

Name of light source to use

Return Value type(photon)


Source Code

        type(photon) function init_source(choice)
        !! Bind emission function to photon object
            !> Name of light source to use
            character(*), intent(IN) :: choice

            if(choice == "uniform")then
                init_source%emit => uniform
            elseif(choice == "pencil")then
                init_source%emit => pencil
            elseif(choice == "dslit")then
                init_source%emit => dslit
            elseif(choice == "aperture")then
                init_source%emit => aperture
            elseif(choice == "annulus")then
                init_source%emit => annulus
            elseif(choice == "focus")then
                init_source%emit => focus
            elseif(choice == "point")then
                init_source%emit => point
            elseif(choice == "circular")then
                init_source%emit => circular
            elseif(choice == "slm")then
                init_source%emit => slm
            else
                error stop "No such source!"
            end if


        end function init_source