GBTOlib: library for evaluation of molecular integrals in mixed Gaussian / B-spline basis  111
Data Types | Functions/Subroutines | Variables
precisn_gbl Module Reference

Data Types

interface  f1mach
 This function resolves into the particular routines depending on the type of the second dummy argument 'p' which specifies the data type for which the machine parameters are required. More...
 

Functions/Subroutines

subroutine, public print_precision_params (stdout)
 
integer function, public I1MACH (I)
 

Variables

integer, parameter rbyte = 8
 
integer, parameter sp =selected_real_kind(6)
 
integer, parameter sp_bytes = 4
 
integer, parameter wp =selected_real_kind(12)
 
integer, parameter wp_bytes = 8
 
integer, parameter ep1 =selected_real_kind(19)
 
integer, parameter ep1_bytes = 16
 
integer, parameter ep = MAX(ep1, wp)
 
integer, parameter shortint =selected_int_kind(9)
 
integer, parameter longint =selected_int_kind(10)
 
integer, parameter cfp = ep
 Floating point precision for which the library is to be compiled (Current-Float-Precision). It must be one of: wp, ep, ep1. Single precision (sp) is not supported. More...
 
integer, parameter cfp_bytes = ep1_bytes
 Number of bytes in float of type real(kind=cfp). More...
 
integer, parameter storage_unit_cfp = cfp_bytes
 Storage unit used when writing values of kind cfp into disk. More...
 
integer, parameter storage_unit_int = bit_size(wp)/8
 Storage unit used when writing values of default integer kind into disk. More...
 
real(kind=cfp), parameter cfp_dummy = 1.0_cfp
 Dummy variable used on input to F1MACH in various routines. More...
 
real(kind=wp), parameter wp_dummy = 1.0_cfp
 Dummy variable used on input to F1MACH in various routines. More...
 
real(kind=ep1), parameter ep_dummy = 1.0_cfp
 Dummy variable used on input to F1MACH in various routines. More...
 

Function/Subroutine Documentation

◆ I1MACH()

integer function, public precisn_gbl::I1MACH ( integer  I)
***PURPOSE  Return integer machine dependent constants.
***LIBRARY   SLATEC
***CATEGORY  R1
***TYPE      INTEGER (I1MACH-I)
***KEYWORDS  MACHINE CONSTANTS
***AUTHOR  Fox, P. A., (Bell Labs)
           Hall, A. D., (Bell Labs)
           Schryer, N. L., (Bell Labs)
***DESCRIPTION

   I1MACH can be used to obtain machine-dependent parameters for the
   local machine environment.  It is a function subprogram with one
   (input) argument and can be referenced as follows:

        K = I1MACH(I)

   where I=1,...,16.  The (output) value of K above is determined by
   the (input) value of I.  The results for various values of I are
   discussed below.

   I/O unit numbers:
     I1MACH( 1) = the standard input unit.
     I1MACH( 2) = the standard output unit.
     I1MACH( 3) = the standard punch unit.
     I1MACH( 4) = the standard error message unit.

   Words:
     I1MACH( 5) = the number of bits per integer storage unit.
     I1MACH( 6) = the number of characters per integer storage unit.

   Integers:
     assume integers are represented in the S-digit, base-A form

                sign ( X(S-1)*A**(S-1) + ... + X(1)*A + X(0) )

                where 0 .LE. X(I) .LT. A for I=0,...,S-1.
     I1MACH( 7) = A, the base.
     I1MACH( 8) = S, the number of base-A digits.
     I1MACH( 9) = A**S - 1, the largest magnitude.

   Floating-Point Numbers:
     Assume floating-point numbers are represented in the T-digit,
     base-B form
                sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) )

                where 0 .LE. X(I) .LT. B for I=1,...,T,
                0 .LT. X(1), and EMIN .LE. E .LE. EMAX.
     I1MACH(10) = B, the base.

   Single-Precision:
     I1MACH(11) = T, the number of base-B digits.
     I1MACH(12) = EMIN, the smallest exponent E.
     I1MACH(13) = EMAX, the largest exponent E.

   Double-Precision:
     I1MACH(14) = T, the number of base-B digits.
     I1MACH(15) = EMIN, the smallest exponent E.
     I1MACH(16) = EMAX, the largest exponent E.

   Quad-Precision:
     I1MACH(17) = T, the number of base-B digits.
     I1MACH(18) = EMIN, the smallest exponent E.
     I1MACH(19) = EMAX, the largest exponent E.

***REFERENCES  P. A. Fox, A. D. Hall and N. L. Schryer, Framework for
                 a portable library, ACM Transactions on Mathematical
                 Software 4, 2 (June 1978), pp. 177-188.
***ROUTINES CALLED  (NONE)

◆ print_precision_params()

subroutine, public precisn_gbl::print_precision_params ( integer, intent(in)  stdout)
Here is the call graph for this function:

Variable Documentation

◆ cfp

integer parameter precisn_gbl::cfp = ep

Floating point precision for which the library is to be compiled (Current-Float-Precision). It must be one of: wp, ep, ep1. Single precision (sp) is not supported.

Warning
Under no circumstances chnage or swap the definitions of sp,wp,ep,ep1 - these must correspond to the single,double and extended (quadruple) precision kind parameters.

◆ cfp_bytes

integer parameter precisn_gbl::cfp_bytes = ep1_bytes

Number of bytes in float of type real(kind=cfp).

Warning
This number is NOT the same as wp,ep1 contrary to popular belief! The number of bytes used to represent the data type with the selected kind value is compiler-specific.

◆ cfp_dummy

real(kind=cfp), parameter precisn_gbl::cfp_dummy = 1.0_cfp

Dummy variable used on input to F1MACH in various routines.

◆ ep

integer, parameter precisn_gbl::ep = MAX(ep1, wp)

◆ ep1

integer, parameter precisn_gbl::ep1 =selected_real_kind(19)

◆ ep1_bytes

integer, parameter precisn_gbl::ep1_bytes = 16

◆ ep_dummy

real(kind=ep1), parameter precisn_gbl::ep_dummy = 1.0_cfp

Dummy variable used on input to F1MACH in various routines.

◆ longint

integer, parameter precisn_gbl::longint =selected_int_kind(10)

◆ rbyte

integer, parameter precisn_gbl::rbyte = 8

◆ shortint

integer, parameter precisn_gbl::shortint =selected_int_kind(9)

◆ sp

integer, parameter precisn_gbl::sp =selected_real_kind(6)

◆ sp_bytes

integer, parameter precisn_gbl::sp_bytes = 4

◆ storage_unit_cfp

integer, parameter precisn_gbl::storage_unit_cfp = cfp_bytes

Storage unit used when writing values of kind cfp into disk.

◆ storage_unit_int

integer, parameter precisn_gbl::storage_unit_int = bit_size(wp)/8

Storage unit used when writing values of default integer kind into disk.

◆ wp

integer, parameter precisn_gbl::wp =selected_real_kind(12)

◆ wp_bytes

integer, parameter precisn_gbl::wp_bytes = 8

◆ wp_dummy

real(kind=wp), parameter precisn_gbl::wp_dummy = 1.0_cfp

Dummy variable used on input to F1MACH in various routines.