cross_product Function

private pure function cross_product(x, y) result(z)

Returns the cross product of two vectors.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: x(3)

Input vector

real(kind=wp), intent(in) :: y(3)

Input vector

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

Result


Called by

proc~~cross_product~3~~CalledByGraph proc~cross_product~3 cross_product proc~collision_obj_computecollisionsppvib collision_obj%collision_obj_ComputeCollisionsPPvIB proc~collision_obj_computecollisionsppvib->proc~cross_product~3 proc~dem_col DEM_col proc~collision_obj_computecollisionsppvib->proc~dem_col proc~collision_obj_computecollisionsppvpp collision_obj%collision_obj_ComputeCollisionsPPvPP proc~collision_obj_computecollisionsppvpp->proc~cross_product~3 proc~collision_obj_computecollisionsppvpp->proc~dem_col proc~collision_obj_computecollisionsppvwall collision_obj%collision_obj_ComputeCollisionsPPvWALL proc~collision_obj_computecollisionsppvwall->proc~cross_product~3 proc~collision_obj_computecollisionsppvwall->proc~dem_col proc~collision_obj_computecollisionsrpvib collision_obj%collision_obj_ComputeCollisionsRPvIB proc~collision_obj_computecollisionsrpvib->proc~cross_product~3 proc~collision_obj_computecollisionsrpvib->proc~dem_col proc~collision_obj_computecollisionsrpvpp collision_obj%collision_obj_ComputeCollisionsRPvPP proc~collision_obj_computecollisionsrpvpp->proc~cross_product~3 proc~collision_obj_computecollisionsrpvpp->proc~dem_col proc~collision_obj_computecollisionsrpvrp collision_obj%collision_obj_ComputeCollisionsRPvRP proc~collision_obj_computecollisionsrpvrp->proc~cross_product~3 proc~collision_obj_computecollisionsrpvrp->proc~dem_col proc~collision_obj_computecollisionsrpvwall collision_obj%collision_obj_ComputeCollisionsRPvWALL proc~collision_obj_computecollisionsrpvwall->proc~cross_product~3 proc~collision_obj_computecollisionsrpvwall->proc~dem_col proc~dem_col->proc~cross_product~3 proc~collision_obj_computecollisions collision_obj%collision_obj_ComputeCollisions proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsppvpp proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsppvwall proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvib proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvpp proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvrp proc~collision_obj_computecollisions->proc~collision_obj_computecollisionsrpvwall proc~cdifs_obj_updatecollisions cdifs_obj_UpdateCollisions proc~cdifs_obj_updatecollisions->proc~collision_obj_computecollisions proc~grans_obj_advancesolution_computecollisionforces grans_obj_AdvanceSolution_ComputeCollisionForces proc~grans_obj_advancesolution_computecollisionforces->proc~collision_obj_computecollisions proc~cdifs_obj_advancesolutionrp cdifs_obj_AdvanceSolutionRP proc~cdifs_obj_advancesolutionrp->proc~cdifs_obj_updatecollisions proc~grans_obj_advancesolution grans_obj_AdvanceSolution proc~grans_obj_advancesolution->proc~grans_obj_advancesolution_computecollisionforces interface~grans_obj_advancesolution grans_obj%grans_obj_AdvanceSolution interface~grans_obj_advancesolution->proc~grans_obj_advancesolution proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionrp interface~cdifs_obj_advancesolution cdifs_obj%cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolution

Source Code

    pure function cross_product(x,y) result(z)
      !> Returns the cross product of two vectors.
      implicit none
      real(wp), intent(in) :: x(3)                                             !! Input vector
      real(wp), intent(in) :: y(3)                                             !! Input vector
      real(wp)             :: z(3)                                             !! Result

      z(1)=x(2)*y(3)-x(3)*y(2)
      z(2)=x(3)*y(1)-x(1)*y(3)
      z(3)=x(1)*y(2)-x(2)*y(1)

      return
    end function cross_product