cross Function

public pure function cross(r, v) result(rxv)

Cross product of two 3x1 vectors

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in), dimension(3) :: r
real(kind=wp), intent(in), dimension(3) :: v

Return Value real(kind=wp), dimension(3)


Called by

proc~~cross~~CalledByGraph proc~cross cross proc~angle_between_vectors angle_between_vectors proc~angle_between_vectors->proc~cross proc~axis_angle_rotation axis_angle_rotation proc~axis_angle_rotation->proc~cross proc~box_product box_product proc~box_product->proc~cross proc~bplane bplane proc~bplane->proc~cross proc~ucross ucross proc~bplane->proc~ucross proc~calculate_bplane_data calculate_bplane_data proc~calculate_bplane_data->proc~cross proc~cartesian_to_equinoctial cartesian_to_equinoctial proc~cartesian_to_equinoctial->proc~cross proc~compute_vinf_vectors compute_vinf_vectors proc~compute_vinf_vectors->proc~cross proc~distance_from_point_to_line distance_from_point_to_line proc~distance_from_point_to_line->proc~cross proc~from_ijk_to_lvlh_mat from_ijk_to_lvlh_mat proc~from_ijk_to_lvlh_mat->proc~cross proc~from_ijk_to_rsw_mat from_ijk_to_rsw_mat proc~from_ijk_to_rsw_mat->proc~cross proc~from_ijk_to_vuw_mat from_ijk_to_vuw_mat proc~from_ijk_to_vuw_mat->proc~cross proc~get_c_cdot_two_body_rotating two_body_rotating_frame%get_c_cdot_two_body_rotating proc~get_c_cdot_two_body_rotating->proc~cross proc~rv_to_orbital_elements rv_to_orbital_elements proc~rv_to_orbital_elements->proc~cross proc~solve_lambert_gooding solve_lambert_gooding proc~solve_lambert_gooding->proc~cross proc~ucross->proc~cross interface~from_ijk_to_lvlh from_ijk_to_lvlh interface~from_ijk_to_lvlh->proc~from_ijk_to_lvlh_mat interface~from_ijk_to_rsw from_ijk_to_rsw interface~from_ijk_to_rsw->proc~from_ijk_to_rsw_mat interface~from_ijk_to_vuw from_ijk_to_vuw interface~from_ijk_to_vuw->proc~from_ijk_to_vuw_mat proc~bplane_test bplane_test proc~bplane_test->proc~bplane proc~bplane_test->proc~calculate_bplane_data proc~bplane_test->proc~compute_vinf_vectors proc~get_c_cdot_two_body_rotating_pulsating two_body_rotating_pulsating_frame%get_c_cdot_two_body_rotating_pulsating proc~get_c_cdot_two_body_rotating_pulsating->proc~get_c_cdot_two_body_rotating proc~lambert_test lambert_test proc~lambert_test->proc~solve_lambert_gooding proc~solve_lambert_izzo solve_lambert_izzo proc~lambert_test->proc~solve_lambert_izzo proc~modified_equinoctial_test modified_equinoctial_test proc~modified_equinoctial_test->proc~cartesian_to_equinoctial proc~solve_lambert_izzo->proc~ucross proc~sphere_of_influence_earth_moon sphere_of_influence_earth_moon proc~sphere_of_influence_earth_moon->proc~angle_between_vectors proc~vector_test vector_test proc~vector_test->proc~axis_angle_rotation proc~from_lvlh_to_ijk_mat from_lvlh_to_ijk_mat proc~from_lvlh_to_ijk_mat->interface~from_ijk_to_lvlh proc~from_rsw_to_ijk_mat from_rsw_to_ijk_mat proc~from_rsw_to_ijk_mat->interface~from_ijk_to_rsw proc~from_vuw_to_ijk_mat from_vuw_to_ijk_mat proc~from_vuw_to_ijk_mat->interface~from_ijk_to_vuw proc~relative_motion_test relative_motion_test proc~relative_motion_test->interface~from_ijk_to_lvlh proc~relative_motion_test->interface~from_ijk_to_rsw interface~from_lvlh_to_ijk from_lvlh_to_ijk interface~from_lvlh_to_ijk->proc~from_lvlh_to_ijk_mat interface~from_rsw_to_ijk from_rsw_to_ijk interface~from_rsw_to_ijk->proc~from_rsw_to_ijk_mat interface~from_vuw_to_ijk from_vuw_to_ijk interface~from_vuw_to_ijk->proc~from_vuw_to_ijk_mat

Source Code

    pure function cross(r,v) result(rxv)

    implicit none

    real(wp),dimension(3),intent(in) :: r
    real(wp),dimension(3),intent(in) :: v
    real(wp),dimension(3)            :: rxv

    rxv = [r(2)*v(3) - v(2)*r(3), &
           r(3)*v(1) - v(3)*r(1), &
           r(1)*v(2) - v(1)*r(2) ]

    end function cross