xyz_to_uvw Subroutine

public subroutine xyz_to_uvw(xyz, uvw)

Convert beam coordinate xyz to machine coordinate uvw

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in), dimension(3):: xyz
real(kind=Float64), intent(out), dimension(3):: uvw

Called by

proc~~xyz_to_uvw~~CalledByGraph proc~xyz_to_uvw xyz_to_uvw proc~get_fields get_fields proc~get_fields->proc~xyz_to_uvw proc~in_plasma in_plasma proc~get_fields->proc~in_plasma proc~write_birth_profile write_birth_profile proc~write_birth_profile->proc~xyz_to_uvw proc~write_beam_grid write_beam_grid proc~write_birth_profile->proc~write_beam_grid proc~store_npa store_npa proc~store_npa->proc~xyz_to_uvw proc~store_npa->proc~get_fields proc~write_beam_grid->proc~xyz_to_uvw proc~get_plasma get_plasma proc~get_plasma->proc~xyz_to_uvw proc~get_plasma->proc~in_plasma proc~in_plasma->proc~xyz_to_uvw proc~xyz_to_cyl xyz_to_cyl proc~xyz_to_cyl->proc~xyz_to_uvw proc~get_ep_denf get_ep_denf proc~get_ep_denf->proc~xyz_to_uvw proc~get_distribution get_distribution proc~get_distribution->proc~xyz_to_uvw proc~pnpa_f pnpa_f proc~pnpa_f->proc~store_npa proc~pnpa_f->proc~get_plasma proc~mc_fastion_pass_grid mc_fastion_pass_grid proc~pnpa_f->proc~mc_fastion_pass_grid proc~attenuate attenuate proc~pnpa_f->proc~attenuate proc~dcx_spec dcx_spec proc~dcx_spec->proc~get_plasma proc~dcx_spec->proc~in_plasma proc~store_photons store_photons proc~dcx_spec->proc~store_photons proc~bremsstrahlung bremsstrahlung proc~bremsstrahlung->proc~get_plasma proc~mc_fastion_pass_grid->proc~get_fields proc~mc_fastion_pass_grid->proc~get_distribution proc~attenuate->proc~get_plasma proc~ndmc ndmc proc~ndmc->proc~get_fields proc~track track proc~ndmc->proc~track proc~mc_nbi mc_nbi proc~ndmc->proc~mc_nbi proc~pfida_f pfida_f proc~pfida_f->proc~get_plasma proc~pfida_f->proc~mc_fastion_pass_grid proc~track_cylindrical track_cylindrical proc~pfida_f->proc~track_cylindrical proc~track->proc~get_fields proc~track->proc~in_plasma proc~nbi_spec nbi_spec proc~nbi_spec->proc~in_plasma proc~nbi_spec->proc~store_photons program~fidasim fidasim program~fidasim->proc~write_birth_profile program~fidasim->proc~pnpa_f program~fidasim->proc~dcx_spec program~fidasim->proc~bremsstrahlung program~fidasim->proc~ndmc program~fidasim->proc~pfida_f program~fidasim->proc~nbi_spec proc~npa_weights npa_weights program~fidasim->proc~npa_weights proc~fida_mc fida_mc program~fidasim->proc~fida_mc proc~write_neutrals write_neutrals program~fidasim->proc~write_neutrals proc~make_beam_grid make_beam_grid program~fidasim->proc~make_beam_grid proc~pnpa_mc pnpa_mc program~fidasim->proc~pnpa_mc proc~halo halo program~fidasim->proc~halo proc~pfida_mc pfida_mc program~fidasim->proc~pfida_mc proc~dcx dcx program~fidasim->proc~dcx proc~fida_weights_los fida_weights_los program~fidasim->proc~fida_weights_los proc~fida_f fida_f program~fidasim->proc~fida_f proc~neutron_mc neutron_mc program~fidasim->proc~neutron_mc proc~npa_f npa_f program~fidasim->proc~npa_f proc~npa_mc npa_mc program~fidasim->proc~npa_mc proc~fida_weights_mc fida_weights_mc program~fidasim->proc~fida_weights_mc proc~halo_spec halo_spec program~fidasim->proc~halo_spec proc~make_diagnostic_grids make_diagnostic_grids program~fidasim->proc~make_diagnostic_grids proc~cold_spec cold_spec program~fidasim->proc~cold_spec proc~neutron_f neutron_f program~fidasim->proc~neutron_f proc~read_distribution read_distribution program~fidasim->proc~read_distribution proc~npa_weights->proc~get_fields proc~npa_weights->proc~attenuate proc~get_beam_cx_rate get_beam_cx_rate proc~npa_weights->proc~get_beam_cx_rate proc~write_npa_weights write_npa_weights proc~npa_weights->proc~write_npa_weights proc~fida_mc->proc~get_fields proc~fida_mc->proc~track proc~write_neutrals->proc~write_beam_grid proc~make_beam_grid->proc~in_plasma proc~store_photons->proc~get_fields proc~track_cylindrical->proc~get_fields proc~track_cylindrical->proc~in_plasma proc~pnpa_mc->proc~get_fields proc~pnpa_mc->proc~store_npa proc~pnpa_mc->proc~get_plasma proc~pnpa_mc->proc~attenuate proc~halo->proc~get_plasma proc~halo->proc~track proc~mc_halo mc_halo proc~halo->proc~mc_halo proc~pfida_mc->proc~get_fields proc~pfida_mc->proc~get_plasma proc~pfida_mc->proc~track_cylindrical proc~dcx->proc~get_plasma proc~dcx->proc~track proc~dcx->proc~mc_halo proc~fida_weights_los->proc~get_fields proc~fida_weights_los->proc~get_plasma proc~fida_weights_los->proc~in_plasma proc~fida_weights_los->proc~track proc~read_mc read_mc proc~read_mc->proc~in_plasma proc~fida_f->proc~get_plasma proc~fida_f->proc~track proc~mc_fastion mc_fastion proc~fida_f->proc~mc_fastion proc~neutron_mc->proc~get_fields proc~neutron_mc->proc~get_plasma proc~mc_halo->proc~get_plasma proc~npa_f->proc~store_npa proc~npa_f->proc~get_plasma proc~npa_f->proc~attenuate proc~npa_f->proc~get_beam_cx_rate proc~npa_f->proc~mc_fastion proc~npa_mc->proc~get_fields proc~npa_mc->proc~store_npa proc~npa_mc->proc~attenuate proc~npa_mc->proc~get_beam_cx_rate proc~get_beam_cx_rate->proc~get_plasma proc~store_fw_photons store_fw_photons proc~store_fw_photons->proc~get_fields proc~fida_weights_mc->proc~get_fields proc~fida_weights_mc->proc~get_plasma proc~fida_weights_mc->proc~get_ep_denf proc~fida_weights_mc->proc~track proc~mc_nbi->proc~in_plasma proc~halo_spec->proc~get_plasma proc~halo_spec->proc~in_plasma proc~halo_spec->proc~store_photons proc~write_npa_weights->proc~write_beam_grid proc~make_diagnostic_grids->proc~get_fields proc~make_diagnostic_grids->proc~track proc~make_diagnostic_grids->proc~track_cylindrical proc~make_passive_grid make_passive_grid proc~make_diagnostic_grids->proc~make_passive_grid proc~cold_spec->proc~get_plasma proc~cold_spec->proc~store_photons proc~get_plasma_extrema get_plasma_extrema proc~get_plasma_extrema->proc~in_plasma proc~neutron_f->proc~get_fields proc~neutron_f->proc~get_plasma proc~mc_fastion->proc~get_fields proc~mc_fastion->proc~get_distribution proc~store_bes_photons store_bes_photons proc~store_bes_photons->proc~store_photons proc~make_passive_grid->proc~get_plasma_extrema proc~store_fida_photons store_fida_photons proc~store_fida_photons->proc~store_photons proc~read_distribution->proc~read_mc

Contents

Source Code


Source Code

subroutine xyz_to_uvw(xyz, uvw)
    !+ Convert beam coordinate `xyz` to machine coordinate `uvw`
    real(Float64), dimension(3), intent(in)  :: xyz
    real(Float64), dimension(3), intent(out) :: uvw

    real(Float64), dimension(3) :: origin
    real(Float64), dimension(3,3) :: basis

    origin = beam_grid%origin
    basis = beam_grid%basis
    uvw = matmul(basis,xyz)
    uvw = uvw + origin

end subroutine xyz_to_uvw