SCALE-RM
|
module vector More...
Functions/Subroutines | |
subroutine, public | vectr_xyz2latlon (x, y, z, lat, lon) |
subroutine, public | vectr_latlon2xyz (lat, lon, x, y, z, radius) |
subroutine, public | vectr_cross (nv, a, b, c, d) |
exterior product of vector a->b and c->d More... | |
subroutine, public | vectr_dot (l, a, b, c, d) |
interior product of vector a->b and c->d More... | |
subroutine, public | vectr_abs (l, a) |
length of vector o->a More... | |
subroutine, public | vectr_angle (angle, a, b, c) |
calc angle between two vector(b->a,b->c) More... | |
subroutine, public | vectr_intersec (ifcross, p, a, b, c, d) |
judge intersection of two vector More... | |
subroutine, public | vectr_anticlockwise (vertex, nvert) |
bubble sort anticlockwise by angle More... | |
real(rp) function, public | vectr_triangle (a, b, c, polygon_type, radius) |
calc triangle area More... | |
real(rp) function, public | vectr_triangle_plane (a, b, c) |
calc triangle area on plane More... | |
subroutine, public | vectr_rotation (a, angle, iaxis) |
Apply rotation matrix. More... | |
subroutine, public | vectr_distance (r, lon1, lat1, lon2, lat2, dist) |
Get horizontal distance on the sphere. More... | |
Variables | |
integer, parameter, public | i_xaxis = 1 |
integer, parameter, public | i_yaxis = 2 |
integer, parameter, public | i_zaxis = 3 |
module vector
subroutine, public scale_vector::vectr_xyz2latlon | ( | real(rp), intent(in) | x, |
real(rp), intent(in) | y, | ||
real(rp), intent(in) | z, | ||
real(rp), intent(out) | lat, | ||
real(rp), intent(out) | lon | ||
) |
subroutine, public scale_vector::vectr_latlon2xyz | ( | real(rp), intent(in) | lat, |
real(rp), intent(in) | lon, | ||
real(rp), intent(out) | x, | ||
real(rp), intent(out) | y, | ||
real(rp), intent(out) | z, | ||
real(rp), intent(in) | radius | ||
) |
Definition at line 124 of file scale_vector.F90.
subroutine, public scale_vector::vectr_cross | ( | real(rp), dimension(3), intent(out) | nv, |
real(rp), dimension(3), intent(in) | a, | ||
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c, | ||
real(rp), dimension(3), intent(in) | d | ||
) |
exterior product of vector a->b and c->d
Definition at line 144 of file scale_vector.F90.
Referenced by vectr_angle(), vectr_anticlockwise(), vectr_intersec(), and vectr_triangle().
subroutine, public scale_vector::vectr_dot | ( | real(rp), intent(out) | l, |
real(rp), dimension(3), intent(in) | a, | ||
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c, | ||
real(rp), dimension(3), intent(in) | d | ||
) |
interior product of vector a->b and c->d
Definition at line 163 of file scale_vector.F90.
Referenced by vectr_angle(), vectr_anticlockwise(), vectr_intersec(), and vectr_triangle_plane().
subroutine, public scale_vector::vectr_abs | ( | real(rp), intent(out) | l, |
real(rp), dimension(3), intent(in) | a | ||
) |
length of vector o->a
Definition at line 180 of file scale_vector.F90.
Referenced by vectr_angle(), vectr_intersec(), and vectr_triangle().
subroutine, public scale_vector::vectr_angle | ( | real(rp), intent(out) | angle, |
real(rp), dimension(3), intent(in) | a, | ||
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c | ||
) |
calc angle between two vector(b->a,b->c)
Definition at line 195 of file scale_vector.F90.
References vectr_abs(), vectr_cross(), and vectr_dot().
Referenced by vectr_anticlockwise(), vectr_intersec(), and vectr_triangle().
subroutine, public scale_vector::vectr_intersec | ( | logical, intent(out) | ifcross, |
real(rp), dimension(3), intent(out) | p, | ||
real(rp), dimension(3), intent(in) | a, | ||
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c, | ||
real(rp), dimension(3), intent(in) | d | ||
) |
judge intersection of two vector
Definition at line 214 of file scale_vector.F90.
References scale_const::const_eps, vectr_abs(), vectr_angle(), vectr_cross(), and vectr_dot().
subroutine, public scale_vector::vectr_anticlockwise | ( | real(rp), dimension(nvert,3), intent(inout) | vertex, |
integer, intent(in) | nvert | ||
) |
bubble sort anticlockwise by angle
Definition at line 273 of file scale_vector.F90.
References scale_const::const_eps, vectr_angle(), vectr_cross(), and vectr_dot().
real(rp) function, public scale_vector::vectr_triangle | ( | real(rp), dimension(3), intent(in) | a, |
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c, | ||
character(len=*), intent(in) | polygon_type, | ||
real(rp), intent(in) | radius | ||
) |
calc triangle area
Definition at line 351 of file scale_vector.F90.
References scale_const::const_eps, scale_const::const_pi, vectr_abs(), vectr_angle(), and vectr_cross().
real(rp) function, public scale_vector::vectr_triangle_plane | ( | real(rp), dimension(3), intent(in) | a, |
real(rp), dimension(3), intent(in) | b, | ||
real(rp), dimension(3), intent(in) | c | ||
) |
calc triangle area on plane
Definition at line 449 of file scale_vector.F90.
References vectr_dot().
subroutine, public scale_vector::vectr_rotation | ( | real(rp), dimension(3), intent(inout) | a, |
real(rp), intent(in) | angle, | ||
integer, intent(in) | iaxis | ||
) |
Apply rotation matrix.
Definition at line 471 of file scale_vector.F90.
References i_xaxis, i_yaxis, and i_zaxis.
subroutine, public scale_vector::vectr_distance | ( | real(rp), intent(in) | r, |
real(rp), intent(in) | lon1, | ||
real(rp), intent(in) | lat1, | ||
real(rp), intent(in) | lon2, | ||
real(rp), intent(in) | lat2, | ||
real(rp), intent(out) | dist | ||
) |
Get horizontal distance on the sphere.
Definition at line 538 of file scale_vector.F90.
Referenced by scale_gridtrans::gtrans_rotcoef().
integer, parameter, public scale_vector::i_xaxis = 1 |
Definition at line 42 of file scale_vector.F90.
Referenced by vectr_rotation().
integer, parameter, public scale_vector::i_yaxis = 2 |
Definition at line 43 of file scale_vector.F90.
Referenced by vectr_rotation().
integer, parameter, public scale_vector::i_zaxis = 3 |
Definition at line 44 of file scale_vector.F90.
Referenced by vectr_rotation().