0
-
Source:cross_products.f90
0
-
Graph:cross_products.gcno
0
-
Data:cross_products.gcda
1
-
!! Provides a standard 3D cross product function
3
-
MODULE cross_products
4
-
!! Provides a 3D cross product function for both single and double reals
9
-
INTERFACE cross_product
10
-
MODULE PROCEDURE cross_product_sngl, cross_product_dble
11
-
END INTERFACE cross_product
15
#####
FUNCTION cross_product_sngl( a, b )
16
-
!! Computes 3D cross product of single precision vectors
18
-
REAL (KIND=4), DIMENSION( 3 ) :: cross_product_sngl
19
-
REAL (KIND=4), DIMENSION( 3 ), INTENT( IN ) :: a, b
21
#####
cross_product_sngl( 1 ) = a( 2 ) * b( 3 ) - a( 3 ) * b( 2 )
22
#####
cross_product_sngl( 2 ) = a( 3 ) * b( 1 ) - a( 1 ) * b( 3 )
23
#####
cross_product_sngl( 3 ) = a( 1 ) * b( 2 ) - a( 2 ) * b( 1 )
25
-
END FUNCTION cross_product_sngl
27
#####
FUNCTION cross_product_dble( a, b )
28
-
!! Computes 3D cross product of double precision vectors
30
-
REAL (KIND=8), DIMENSION( 3 ) :: cross_product_dble
31
-
REAL (KIND=8), DIMENSION( 3 ), INTENT( IN ) :: a, b
33
#####
cross_product_dble( 1 ) = a( 2 ) * b( 3 ) - a( 3 ) * b( 2 )
34
#####
cross_product_dble( 2 ) = a( 3 ) * b( 1 ) - a( 1 ) * b( 3 )
35
#####
cross_product_dble( 3 ) = a( 1 ) * b( 2 ) - a( 2 ) * b( 1 )
37
-
END FUNCTION cross_product_dble
39
-
END MODULE cross_products