DCS
a Driven-Cavity Open source Simulator code
 All Classes Files Functions Variables Groups Pages
data_type_vector Module Reference

This module contains the definition of Type_Vector and its procedures. More...

+ Collaboration diagram for data_type_vector:

Data Types

type  type_vector
 Derived type defining vectors. More...
 
type  type_vector_ptr
 Pointer of Type_Vector for creating array of pointers of Type_Vector. More...
 

Public Member Functions

elemental real(r8p) function,
public 
sq_norm (vec)
 Function for computing the square of the norm of a vector. More...
 
elemental real(r8p) function,
public 
norml2 (vec)
 Function for computing the norm L2 of a vector. More...
 
elemental type(type_vector)
function, public 
normalize (vec)
 Function for normalizing a vector. More...
 
elemental type(type_vector)
function, public 
face_normal4 (norm, pt1, pt2, pt3, pt4)
 Function for calculating the normal of the face defined by 4 points vector pt1, pt2, pt3 and pt4. More...
 
elemental type(type_vector)
function, public 
face_normal3 (norm, pt1, pt2, pt3)
 Function for calculating the normal of the face defined by the 3 points vector pt1, pt2 and pt3. More...
 

Public Attributes

type(type_vector), parameter,
public 
ex = Type_Vector(1._R8P, 0._R8P, 0._R8P)
 X direction versor (see definition). More...
 
type(type_vector), parameter,
public 
ey = Type_Vector(0._R8P, 1._R8P, 0._R8P)
 Y direction versor (see definition). More...
 
type(type_vector), parameter,
public 
ez = Type_Vector(0._R8P, 0._R8P, 1._R8P)
 Z direction versor (see definition). More...
 

Private Member Functions

elemental subroutine init_vector_self (vec)
 Subroutine for initializing components of Type_Vector variable. More...
 
elemental subroutine set_vector_self (vec, x, y, z)
 Subroutine for setting components of Type_Vector variable. More...
 
integer(i4p) function iolen_vector_self (vec)
 Procedure for computing IO length. More...
 
subroutine load_vector_self (vec, pos, iostat, iomsg, unit)
 Procedure for loading Type_Vector data. More...
 
subroutine save_vector_self (vec, pos, iostat, iomsg, unit)
 Procedure for saving Type_Vector data. More...
 
subroutine print_vector_self (vec, pref, iostat, iomsg, unit)
 Function for printing in a pretty ascii format the components of type Type_Vector. More...
 
elemental subroutine normalize_self (vec)
 Subroutine for normalizing a vector. More...
 
elemental type(type_vector)
function 
normalized_self (vec)
 Subroutine for obtaining a normalized copy of a vector. More...
 
elemental real(r8p) function sq_norm_self (vec)
 Function for computing the square of the norm of a vector. More...
 
elemental real(r8p) function norml2_self (vec)
 Function for computing the norm L2 of a vector. More...
 
elemental subroutine face_normal4_self (fnormal, norm, pt1, pt2, pt3, pt4)
 Function for calculating the normal of the face defined by 4 points vector pt1, pt2, pt3 and pt4. More...
 
elemental subroutine face_normal3_self (fnormal, norm, pt1, pt2, pt3)
 Function for calculating the normal of the face defined by the 3 points vector pt1, pt2 and pt3. More...
 
elemental type(type_vector)
function 
crossproduct (vec1, vec2)
 Procedure for computing the cross product of 2 vectors. More...
 
elemental real(r8p) function dotproduct (vec1, vec2)
 Procedure for computing the scalar (dot) product of 2 vectors. More...
 
elemental type(type_vector)
function 
parallel (vec1, vec2)
 Procedure for computing the component of vec1 parallel to vec2. More...
 
elemental type(type_vector)
function 
orthogonal (vec1, vec2)
 Procedure for computign the component of vec1 orthogonal to vec2. More...
 
pure subroutine assign_self (self1, self2)
 Procedure for assignment between two selfs. More...
 
elemental subroutine assign_scalr16p (self, scal)
 Assignment procedures definitions. More...
 
elemental subroutine assign_scalr8p (self, scal)
 Procedure for assignment between a scalar (real R8P) and self. More...
 
elemental subroutine assign_scalr4p (self, scal)
 Procedure for assignment between a scalar (real R4P) and self. More...
 
elemental subroutine assign_scali8p (self, scal)
 Procedure for assignment between a scalar (integer I8P) and self. More...
 
elemental subroutine assign_scali4p (self, scal)
 Procedure for assignment between a scalar (integer I4P) and self. More...
 
elemental subroutine assign_scali2p (self, scal)
 Procedure for assignment between a scalar (integer I2P) and self. More...
 
elemental subroutine assign_scali1p (self, scal)
 Procedure for assignment between a scalar (integer I1P) and self. More...
 
elemental type(type_vector)
function 
self_mul_self (self1, self2)
 Procedure for multiply (by components) two selfs. More...
 
elemental type(type_vector)
function 
scalr16p_mul_self (scal, self)
 Operator (*) procedures definitions. More...
 
elemental type(type_vector)
function 
self_mul_scalr16p (self, scal)
 Procedure for multiply self for scalar (real R16P). More...
 
elemental type(type_vector)
function 
scalr8p_mul_self (scal, self)
 Procedure for multiply scalar (real R8P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scalr8p (self, scal)
 Procedure for multiply self for scalar (real R8P). More...
 
elemental type(type_vector)
function 
scalr4p_mul_self (scal, self)
 Procedure for multiply scalar (real R4P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scalr4p (self, scal)
 Procedure for multiply self for scalar (real R4P). More...
 
elemental type(type_vector)
function 
scali8p_mul_self (scal, self)
 Procedure for multiply scalar (integer I8P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scali8p (self, scal)
 Procedure for multiply self for scalar (integer I8P). More...
 
elemental type(type_vector)
function 
scali4p_mul_self (scal, self)
 Procedure for multiply scalar (integer I4P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scali4p (self, scal)
 Procedure for multiply self for scalar (integer I4P). More...
 
elemental type(type_vector)
function 
scali2p_mul_self (scal, self)
 Procedure for multiply scalar (integer I2P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scali2p (self, scal)
 Procedure for multiply self for scalar (integer I2P). More...
 
elemental type(type_vector)
function 
scali1p_mul_self (scal, self)
 Procedure for multiply scalar (integer I1P) for self. More...
 
elemental type(type_vector)
function 
self_mul_scali1p (self, scal)
 Procedure for multiply self for scalar (integer I1P). More...
 
elemental type(type_vector)
function 
self_div_self (self1, self2)
 Procedure for divide self for self. More...
 
elemental type(type_vector)
function 
self_div_scalr16p (self, scal)
 Operator (/) procedures definitions. More...
 
elemental type(type_vector)
function 
self_div_scalr8p (self, scal)
 Procedure for divide self for scalar (real R8P). More...
 
elemental type(type_vector)
function 
self_div_scalr4p (self, scal)
 Procedure for divide self for scalar (real R4P). More...
 
elemental type(type_vector)
function 
self_div_scali8p (self, scal)
 Procedure for divide self for scalar (integer I8P). More...
 
elemental type(type_vector)
function 
self_div_scali4p (self, scal)
 Procedure for divide self for scalar (integer I4P). More...
 
elemental type(type_vector)
function 
self_div_scali2p (self, scal)
 Procedure for divide self for scalar (integer I2P). More...
 
elemental type(type_vector)
function 
self_div_scali1p (self, scal)
 Procedure for divide self for scalar (integer I1P). More...
 
elemental type(type_vector)
function 
positive_self (self)
 Procedure for applay unary + to a self. More...
 
elemental type(type_vector)
function 
self_sum_self (self1, self2)
 Procedure for sum self and self. More...
 
elemental type(type_vector)
function 
scalr16p_sum_self (scal, self)
 Operator (*) procedures definitions. More...
 
elemental type(type_vector)
function 
self_sum_scalr16p (self, scal)
 Procedure for sum self and scalar (real R16P). More...
 
elemental type(type_vector)
function 
scalr8p_sum_self (scal, self)
 Procedure for sum scalar (real R8P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scalr8p (self, scal)
 Procedure for sum self and scalar (real R8P). More...
 
elemental type(type_vector)
function 
scalr4p_sum_self (scal, self)
 Procedure for sum scalar (real R4P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scalr4p (self, scal)
 Procedure for sum self and scalar (real R4P). More...
 
elemental type(type_vector)
function 
scali8p_sum_self (scal, self)
 Procedure for sum scalar (integer I8P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scali8p (self, scal)
 Procedure for sum self and scalar (integer I8P). More...
 
elemental type(type_vector)
function 
scali4p_sum_self (scal, self)
 Procedure for sum scalar (integer I4P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scali4p (self, scal)
 Procedure for sum self and scalar (integer I4P). More...
 
elemental type(type_vector)
function 
scali2p_sum_self (scal, self)
 Procedure for sum scalar (integer I2P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scali2p (self, scal)
 Procedure for sum self and scalar (integer I2P). More...
 
elemental type(type_vector)
function 
scali1p_sum_self (scal, self)
 Procedure for sum scalar (integer I1P) and self. More...
 
elemental type(type_vector)
function 
self_sum_scali1p (self, scal)
 Procedure for sum self and scalar (integer I1P). More...
 
elemental type(type_vector)
function 
negative_self (self)
 Procedure for applay unary - to a self. More...
 
elemental type(type_vector)
function 
self_sub_self (self1, self2)
 Procedure for subtract self and self. More...
 
elemental type(type_vector)
function 
scalr16p_sub_self (scal, self)
 Operator (*) procedures definitions. More...
 
elemental type(type_vector)
function 
self_sub_scalr16p (self, scal)
 Procedure for subtract self and scalar (real R16P). More...
 
elemental type(type_vector)
function 
scalr8p_sub_self (scal, self)
 Procedure for subtract scalar (real R8P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scalr8p (self, scal)
 Procedure for subtract self and scalar (real R8P). More...
 
elemental type(type_vector)
function 
scalr4p_sub_self (scal, self)
 Procedure for subtract scalar (real R4P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scalr4p (self, scal)
 Procedure for subtract self and scalar (real R4P). More...
 
elemental type(type_vector)
function 
scali8p_sub_self (scal, self)
 Procedure for subtract scalar (integer I8P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scali8p (self, scal)
 Procedure for subtract self and scalar (integer I8P). More...
 
elemental type(type_vector)
function 
scali4p_sub_self (scal, self)
 Procedure for subtract scalar (integer I4P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scali4p (self, scal)
 Procedure for subtract self and scalar (integer I4P). More...
 
elemental type(type_vector)
function 
scali2p_sub_self (scal, self)
 Procedure for subtract scalar (integer I2P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scali2p (self, scal)
 Procedure for subtract self and scalar (integer I2P). More...
 
elemental type(type_vector)
function 
scali1p_sub_self (scal, self)
 Procedure for subtract scalar (integer I1P) and self. More...
 
elemental type(type_vector)
function 
self_sub_scali1p (self, scal)
 Procedure for subtract self and scalar (integer I1P). More...
 
elemental logical function self_not_eq_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_not_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_not_eq_i1p (self, scal)
 Procedure returns .true. More...
 
elemental logical function self_low_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_low_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_i1p (self, scal)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_low_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_low_eq_i1p (self, scal)
 Procedure returns .true. More...
 
elemental logical function self_eq_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_eq_i1p (self, scal)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_great_eq_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_eq_i1p (self, scal)
 Procedure returns .true. More...
 
elemental logical function self_great_self (self1, self2)
 Procedure returns .true. More...
 
elemental logical function r16p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_r16p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r8p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_r8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function r4p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_r4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i8p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_i8p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i4p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_i4p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i2p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_i2p (self, scal)
 Procedure returns .true. More...
 
elemental logical function i1p_great_self (scal, self)
 Procedure returns .true. More...
 
elemental logical function self_great_i1p (self, scal)
 Procedure returns .true. More...
 

Detailed Description

This module contains the definition of Type_Vector and its procedures.

This derived type is useful for manipulating selftors in 3D space. The components of the selftors are reals with R_P kind as defined by the IR_Precision module. The components are defined in a three-dimensional cartesian frame of reference. All the vectorial math procedures (cross, dot products, parallel...) assume a three-dimensional cartesian frame of reference.

Note
The operators of assignment (=), multiplication (*), division (/), sum (+) and subtraction (-) have been overloaded. Furthermore the dot and cross products have been defined. Therefore this module provides a far-complete algebra based on Type_Vector derived type. This algebra simplifies the vectorial operations of Partial Differential Equations (PDE) systems.
Todo:
DocComplete: Complete the documentation

Definition at line 87 of file Data_Type_Vector.f90.


The documentation for this module was generated from the following file: