60 integer,
parameter ::
sp = selected_real_kind(6, 37)
63 integer,
parameter ::
dp = selected_real_kind(12)
66 integer,
parameter ::
tp = selected_real_kind(17)
69 integer,
parameter ::
qp = selected_real_kind(32)
74 integer ,
parameter ::
rp =
sp 78 integer ,
parameter ::
rp =
dp 79 real(RP),
parameter ::
real_tol = 1
e-14_rp
82 integer ,
parameter ::
rp =
tp 83 real(RP),
parameter ::
real_tol = 1
e-18_rp
86 integer ,
parameter ::
rp =
qp 87 real(RP),
parameter ::
real_tol = 1
e-28_rp
90 integer,
parameter ::
rp =
dp 96 real(RP),
parameter ::
pi=3.1415926535897932384626433832795028_rp
107 real(RP),
dimension(:),
allocatable :: y
115 real(RP),
dimension(:,:),
allocatable :: y
154 module procedure rf,
ri 191 integer,
intent(in) :: n
201 integer,
intent(in) :: n1, n2
211 real(RP),
dimension(:,:),
intent(in) :: x
216 write(*,*)
"real_type : R2D_print" 217 write(*,*)
" shape = ",&
218 & int(
size(x,1),4), int(
size(x,2),4)
219 write(*,*)
" Component Min Max" 221 min =
real( minval(x(ii,:)), SP)
222 max =
real( maxval(x(ii,:)), SP)
223 write(*,*) int(ii,4), min, max
231 real(RP),
dimension(:),
allocatable :: p
232 integer,
intent(in) :: n
235 character(len=100) :: errmsg
238 allocate(p(n), stat=stat, errmsg=errmsg)
239 if (stat > 0)
write(*,*) &
240 &
"ERROR = real_type: alloc_RA1D: ", trim(errmsg)
247 real(RP),
dimension(:,:),
allocatable :: p
248 integer,
intent(in) :: n1,n2
251 character(len=100) :: errmsg
254 allocate(p(n1,n2), stat=stat, errmsg=errmsg)
255 if (stat > 0)
write(*,*) &
256 &
"ERROR = real_type: alloc_RA2D: ", trim(errmsg)
263 real(RP),
dimension(:,:,:),
allocatable :: p
264 integer,
intent(in) :: n1,n2,n3
267 character(len=100) :: errmsg
270 allocate(p(n1,n2,n3), stat=stat, errmsg=errmsg)
271 if (stat > 0)
write(*,*) &
272 &
"ERROR = real_type:alloc_ RA3D: ", trim(errmsg)
279 real(RP),
dimension(:),
allocatable :: p
282 character(len=100) :: errmsg
284 if (
allocated(p))
then 285 deallocate(p, stat=stat, errmsg=errmsg)
286 if (stat > 0)
write(*,*) &
287 &
"ERROR = real_type: free_RA1D: ", trim(errmsg)
294 real(RP),
dimension(:,:),
allocatable :: p
297 character(len=100) :: errmsg
299 if (
allocated(p))
then 300 deallocate(p, stat=stat, errmsg=errmsg)
301 if (stat > 0)
write(*,*) &
302 &
"ERROR = real_type: free_RA2D: ", trim(errmsg)
310 real(RP),
dimension(:,:,:),
allocatable :: p
313 character(len=100) :: errmsg
315 if (
allocated(p))
then 316 deallocate(p, stat=stat, errmsg=errmsg)
317 if (stat > 0)
write(*,*) &
318 &
"ERROR = real_type: free_RA3D: ", trim(errmsg)
329 real(RP),
intent(in) :: u, v
338 integer,
intent(in) :: n, d
341 rf =
real(n,
rp)/
real(d,
rp)
347 integer,
intent(in) :: n
integer, parameter qp
quadruple precision for real numbers
integer, parameter tp
triple precision for real numbers
deallocate memory for real(RP) arrays
type(r_1d) function r_1d_create(n)
constructor
real(rp) function rf(n, d)
Conversion of rational fraction n/d –> real(RP)
subroutine r_2d_clear(r)
Destructor.
integer, parameter, public rp
real(kind=RP) = real precision in the code REAL_TOL = epsilon to test real equality ...
integer, parameter, public sp
simple precision for real numbers
conversion integers or rational to real
REAL NUMBERS PRECISION IN CHORAL: selects simple/double/quad
logical function real_equal(u, v)
Check real equality
real(rp) function ri(n)
Conversion integer –> real(RP)
subroutine free_ra1d(p)
de-allocate a one-dimensional real allocatable array
subroutine alloc_ra3d(p, n1, n2, n3)
allocate a 3-dimensional real allocatable array
subroutine r2d_print(x)
print short informations
real(rp) function e(x, v1, v2)
subroutine free_ra2d(p)
de-allocate a 2-dimensional real allocatable array
type(r_2d) function r_2d_create(n1, n2)
constructor
R_1D: this type will allow to define arrays of 1D real arrays.
subroutine r_1d_clear(r)
Destructor.
real(rp), parameter, public pi
REAL CONSTANT Pi.
allocate memory for real(RP) arrays
subroutine alloc_ra2d(p, n1, n2)
allocate a two-dimensional real allocatable array
subroutine free_ra3d(p)
de-allocate a 3-dimensional real allocatable array
subroutine alloc_ra1d(p, n)
allocate a one-dimensional real allocatable array
integer, parameter, public dp
double precision for real numbers
real(rp), parameter, public real_tol
short description for real arrays
R_2D: this type will allow to define arrays of 2D real arrays.