Choral
Data Types | Functions/Subroutines | Variables
real_type Module Reference

REAL NUMBERS PRECISION IN CHORAL: selects simple/double/quad More...

Data Types

interface  allocmem
 allocate memory for real(RP) arrays More...
 
interface  clear
 destructor More...
 
interface  equal
 Test real equality. More...
 
interface  freemem
 deallocate memory for real(RP) arrays More...
 
interface  print
 short description for real arrays More...
 
interface  r_1d
 R_1D: this type will allow to define arrays of 1D real arrays. More...
 
interface  r_2d
 R_2D: this type will allow to define arrays of 2D real arrays. More...
 
interface  re
 conversion integers or rational to real More...
 

Functions/Subroutines

subroutine r_1d_clear (r)
 Destructor. More...
 
subroutine r_2d_clear (r)
 Destructor. More...
 
type(r_1d) function r_1d_create (n)
 constructor More...
 
type(r_2d) function r_2d_create (n1, n2)
 constructor More...
 
subroutine r2d_print (x)
 print short informations More...
 
subroutine alloc_ra1d (p, n)
 allocate a one-dimensional real allocatable array More...
 
subroutine alloc_ra2d (p, n1, n2)
 allocate a two-dimensional real allocatable array More...
 
subroutine alloc_ra3d (p, n1, n2, n3)
 allocate a 3-dimensional real allocatable array More...
 
subroutine free_ra1d (p)
 de-allocate a one-dimensional real allocatable array More...
 
subroutine free_ra2d (p)
 de-allocate a 2-dimensional real allocatable array More...
 
subroutine free_ra3d (p)
 de-allocate a 3-dimensional real allocatable array More...
 
logical function real_equal (u, v)
  Check real equality More...
 
real(rp) function rf (n, d)
 Conversion of rational fraction n/d –> real(RP) More...
 
real(rp) function ri (n)
 Conversion integer –> real(RP) More...
 

Variables

integer, parameter, public sp = selected_real_kind(6, 37)
 simple precision for real numbers More...
 
integer, parameter, public dp = selected_real_kind(12)
 double precision for real numbers More...
 
integer, parameter tp = selected_real_kind(17)
 triple precision for real numbers More...
 
integer, parameter qp = selected_real_kind(32)
 quadruple precision for real numbers More...
 
integer, parameter, public rp = DP
 real(kind=RP) = real precision in the code REAL_TOL = epsilon to test real equality More...
 
real(rp), parameter, public real_tol = 1E-14_RP
 
real(rp), parameter, public pi =3.1415926535897932384626433832795028_RP
 REAL CONSTANT Pi. More...
 

Detailed Description

REAL NUMBERS PRECISION IN CHORAL: selects simple/double/quad

Real kind definition:

Real numbers in CHORAL have the type

real(kind=RP)

Tools on real numbers

Author
Charles Pierre, april 2019.

Function/Subroutine Documentation

◆ alloc_ra1d()

subroutine real_type::alloc_ra1d ( real(rp), dimension(:), allocatable  p,
integer, intent(in)  n 
)
private

allocate a one-dimensional real allocatable array

Definition at line 231 of file real_type.F90.

◆ alloc_ra2d()

subroutine real_type::alloc_ra2d ( real(rp), dimension(:,:), allocatable  p,
integer, intent(in)  n1,
integer, intent(in)  n2 
)
private

allocate a two-dimensional real allocatable array

Definition at line 247 of file real_type.F90.

◆ alloc_ra3d()

subroutine real_type::alloc_ra3d ( real(rp), dimension(:,:,:), allocatable  p,
integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3 
)
private

allocate a 3-dimensional real allocatable array

Definition at line 263 of file real_type.F90.

◆ free_ra1d()

subroutine real_type::free_ra1d ( real(rp), dimension(:), allocatable  p)
private

de-allocate a one-dimensional real allocatable array

Definition at line 279 of file real_type.F90.

◆ free_ra2d()

subroutine real_type::free_ra2d ( real(rp), dimension(:,:), allocatable  p)
private

de-allocate a 2-dimensional real allocatable array

Definition at line 294 of file real_type.F90.

◆ free_ra3d()

subroutine real_type::free_ra3d ( real(rp), dimension(:,:,:), allocatable  p)
private

de-allocate a 3-dimensional real allocatable array

Definition at line 310 of file real_type.F90.

◆ r2d_print()

subroutine real_type::r2d_print ( real(rp), dimension(:,:), intent(in)  x)
private

print short informations

Definition at line 211 of file real_type.F90.

◆ r_1d_clear()

subroutine real_type::r_1d_clear ( type(r_1d), intent(inout)  r)
private

Destructor.

Definition at line 172 of file real_type.F90.

◆ r_1d_create()

type(r_1d) function real_type::r_1d_create ( integer, intent(in)  n)
private

constructor

Definition at line 190 of file real_type.F90.

◆ r_2d_clear()

subroutine real_type::r_2d_clear ( type(r_2d), intent(inout)  r)
private

Destructor.

Definition at line 181 of file real_type.F90.

◆ r_2d_create()

type(r_2d) function real_type::r_2d_create ( integer, intent(in)  n1,
integer, intent(in)  n2 
)
private

constructor

Definition at line 200 of file real_type.F90.

◆ real_equal()

logical function real_type::real_equal ( real(rp), intent(in)  u,
real(rp), intent(in)  v 
)
private

Check real equality

Test if |x - y| < REAL_TOL

Definition at line 328 of file real_type.F90.

◆ rf()

real(rp) function real_type::rf ( integer, intent(in)  n,
integer, intent(in)  d 
)
private

Conversion of rational fraction n/d –> real(RP)

Definition at line 338 of file real_type.F90.

◆ ri()

real(rp) function real_type::ri ( integer, intent(in)  n)
private

Conversion integer –> real(RP)

Definition at line 347 of file real_type.F90.

Variable Documentation

◆ dp

integer, parameter, public real_type::dp = selected_real_kind(12)

double precision for real numbers

Definition at line 63 of file real_type.F90.

◆ pi

real(rp), parameter, public real_type::pi =3.1415926535897932384626433832795028_RP

REAL CONSTANT Pi.

Definition at line 96 of file real_type.F90.

◆ qp

integer, parameter real_type::qp = selected_real_kind(32)
private

quadruple precision for real numbers

Definition at line 69 of file real_type.F90.

◆ real_tol

real(rp), parameter, public real_type::real_tol = 1E-14_RP

Definition at line 91 of file real_type.F90.

◆ rp

integer, parameter, public real_type::rp = DP

real(kind=RP) = real precision in the code REAL_TOL = epsilon to test real equality

Definition at line 90 of file real_type.F90.

◆ sp

integer, parameter, public real_type::sp = selected_real_kind(6, 37)

simple precision for real numbers

Definition at line 60 of file real_type.F90.

◆ tp

integer, parameter real_type::tp = selected_real_kind(17)
private

triple precision for real numbers

Definition at line 66 of file real_type.F90.