59 use,
intrinsic:: iso_fortran_env, only: stdout => output_unit, stderr => error_unit
89 integer,
parameter::
endianl = 1
90 integer,
parameter::
endianb = 0
96 integer,
parameter::
r16p = selected_real_kind(33,4931)
98 integer,
parameter::
r16p = selected_real_kind(15,307)
100 integer,
parameter::
r8p = selected_real_kind(15,307)
101 integer,
parameter::
r4p = selected_real_kind(6,37)
102 integer,
parameter::
r_p =
r8p
104 integer,
parameter::
i8p = selected_int_kind(18)
105 integer,
parameter::
i4p = selected_int_kind(9)
106 integer,
parameter::
i2p = selected_int_kind(4)
107 integer,
parameter::
i1p = selected_int_kind(2)
108 integer,
parameter::
i_p =
i4p
112 character(10),
parameter::
fr16p =
'(E42.33E4)'
113 character(10),
parameter::
fr8p =
'(E23.15E3)'
114 character(9),
parameter::
fr4p =
'(E13.6E2)'
115 character(10),
parameter::
fr_p =
fr8p
117 integer,
parameter::
dr16p = 42
118 integer,
parameter::
dr8p = 23
119 integer,
parameter::
dr4p = 13
122 character(5),
parameter::
fi8p =
'(I20)'
123 character(8),
parameter::
fi8pzp =
'(I20.19)'
124 character(5),
parameter::
fi4p =
'(I11)'
125 character(8),
parameter::
fi4pzp =
'(I11.10)'
126 character(4),
parameter::
fi2p =
'(I6)'
127 character(6),
parameter::
fi2pzp =
'(I6.5)'
128 character(4),
parameter::
fi1p =
'(I4)'
129 character(6),
parameter::
fi1pzp =
'(I4.3)'
130 character(5),
parameter::
fi_p =
fi4p
133 integer,
parameter::
di8p = 20
134 integer,
parameter::
di4p = 11
135 integer,
parameter::
di2p = 6
136 integer,
parameter::
di1p = 4
139 integer,
parameter::
nrknd=4
140 integer,
parameter:: RPl(1:NRknd)=[R16P,R8P,R4P,R_P]
141 character(10),
parameter:: FRl(1:NRknd)=[FR16P,FR8P,FR4P//
' ',FR_P]
142 integer,
parameter:: NIknd=5
143 integer,
parameter:: RIl(1:NIknd)=[I8P,I4P,I2P,I1P,I_P]
144 character(5),
parameter:: FIl(1:NIknd)=[FI8P,FI4P,FI2P//
' ',FI1P//
' ',FI_P]
148 real(R16P),
parameter:: MinR16P = -huge(1._R16P), MaxR16P = huge(1._R16P)
149 real(R8P),
parameter:: MinR8P = -huge(1._R8P ), MaxR8P = huge(1._R8P )
150 real(R4P),
parameter:: MinR4P = -huge(1._R4P ), MaxR4P = huge(1._R4P )
151 real(R_P),
parameter:: MinR_P = MinR8P, MaxR_P = MaxR8P
153 integer(I2P):: BIR16P, BYR16P
154 integer(I1P):: BIR8P, BYR8P
155 integer(I1P):: BIR4P, BYR4P
156 integer(I1P):: BIR_P, BYR_P
158 real(R16P),
parameter:: smallR16P = tiny(1._R16P)
159 real(R8P),
parameter:: smallR8P = tiny(1._R8P )
160 real(R4P),
parameter:: smallR4P = tiny(1._R4P )
161 real(R_P),
parameter:: smallR_P = smallR8P
163 integer(I8P),
parameter:: MinI8P = -huge(1_I8P), MaxI8P = huge(1_I8P)
164 integer(I4P),
parameter:: MinI4P = -huge(1_I4P), MaxI4P = huge(1_I4P)
165 integer(I2P),
parameter:: MinI2P = -huge(1_I2P), MaxI2P = huge(1_I2P)
166 integer(I1P),
parameter:: MinI1P = -huge(1_I1P), MaxI1P = huge(1_I1P)
167 integer(I_P),
parameter:: MinI_P = MinI4P, MaxI_P = MaxI4P
169 integer(I8P),
parameter:: BII8P = bit_size(MaxI8P), BYI8P = bit_size(MaxI8P)/8_I8P
170 integer(I4P),
parameter:: BII4P = bit_size(MaxI4P), BYI4P = bit_size(MaxI4P)/8_I4P
171 integer(I2P),
parameter:: BII2P = bit_size(MaxI2P), BYI2P = bit_size(MaxI2P)/8_I2P
172 integer(I1P),
parameter:: BII1P = bit_size(MaxI1P), BYI1P = bit_size(MaxI1P)/8_I1P
173 integer(I_P),
parameter:: BII_P = bit_size(MaxI_P), BYI_P = bit_size(MaxI_P)/8_I_P
176 real(R16P),
parameter:: ZeroR16 = 0._R16P
177 real(R8P),
parameter:: ZeroR8 = 0._R8P
178 real(R4P),
parameter:: ZeroR4 = 0._R4P
180 real(R16P),
parameter:: ZeroR16 = nearest(1._R16P, 1._R16P) - &
181 nearest(1._R16P,-1._R16P)
182 real(R8P),
parameter:: ZeroR8 = nearest(1._R8P, 1._R8P) - &
183 nearest(1._R8P,-1._R8P)
184 real(R4P),
parameter:: ZeroR4 = nearest(1._R4P, 1._R4P) - &
185 nearest(1._R4P,-1._R4P)
187 real(R_P),
parameter:: Zero = ZeroR8
306 integer(I1P):: int1(1:4)
310 int1 = transfer(1_i4p,int1)
311 is_little = (int1(1)==1_i1p)
340 real(R16P),
intent(IN):: r
342 integer(I1P):: mold(1)
346 bits =
size(transfer(r,mold),dim=1,kind=i2p)*8_i2p
355 real(R8P),
intent(IN):: r
357 integer(I1P):: mold(1)
361 bits =
size(transfer(r,mold),dim=1,kind=i1p)*8_i1p
370 real(R4P),
intent(IN):: r
372 integer(I1P):: mold(1)
376 bits =
size(transfer(r,mold),dim=1,kind=i1p)*8_i1p
385 character(*),
intent(IN):: c
387 integer(I1P):: mold(1)
391 bits =
size(transfer(c,mold),dim=1,kind=i4p)*8_i4p
400 integer(I8P),
intent(IN):: i
414 integer(I4P),
intent(IN):: i
428 integer(I2P),
intent(IN):: i
442 integer(I1P),
intent(IN):: i
456 real(R16P),
intent(IN):: r
470 real(R8P),
intent(IN):: r
484 real(R4P),
intent(IN):: r
498 character(*),
intent(IN):: c
509 elemental function strf_r16p(fm,n) result(str)
512 character(*),
intent(IN):: fm
513 real(R16P),
intent(IN):: n
514 character(DR16P)::
str
518 write(
str,trim(fm)) n
524 elemental function strf_r8p(fm,n) result(str)
527 character(*),
intent(IN):: fm
528 real(R8P),
intent(IN):: n
529 character(DR8P)::
str
533 write(
str,trim(fm)) n
539 elemental function strf_r4p(fm,n) result(str)
542 character(*),
intent(IN):: fm
543 real(R4P),
intent(IN):: n
544 character(DR4P)::
str
554 elemental function strf_i8p(fm,n) result(str)
557 character(*),
intent(IN):: fm
558 integer(I8P),
intent(IN):: n
559 character(DI8P)::
str
563 write(
str,trim(fm)) n
569 elemental function strf_i4p(fm,n) result(str)
572 character(*),
intent(IN):: fm
573 integer(I4P),
intent(IN):: n
574 character(DI4P)::
str
578 write(
str,trim(fm)) n
584 elemental function strf_i2p(fm,n) result(str)
587 character(*),
intent(IN):: fm
588 integer(I2P),
intent(IN):: n
589 character(DI2P)::
str
593 write(
str,trim(fm)) n
599 elemental function strf_i1p(fm,n) result(str)
602 character(*),
intent(IN):: fm
603 integer(I1P),
intent(IN):: n
604 character(DI1P)::
str
608 write(
str,trim(fm)) n
614 elemental function str_r16p(no_sign,n) result(str)
617 logical,
intent(IN),
optional:: no_sign
618 real(R16P),
intent(IN):: n
619 character(DR16P)::
str
624 if (n>0._r16p)
str(1:1)=
'+'
625 if (present(no_sign))
str=
str(2:)
631 elemental function str_r8p(no_sign,n) result(str)
634 logical,
intent(IN),
optional:: no_sign
635 real(R8P),
intent(IN):: n
636 character(DR8P)::
str
641 if (n>0._r8p)
str(1:1)=
'+'
642 if (present(no_sign))
str=
str(2:)
648 elemental function str_r4p(no_sign,n) result(str)
651 logical,
intent(IN),
optional:: no_sign
652 real(R4P),
intent(IN):: n
653 character(DR4P)::
str
658 if (n>0._r4p)
str(1:1)=
'+'
659 if (present(no_sign))
str=
str(2:)
665 elemental function str_i8p(no_sign,n) result(str)
668 logical,
intent(IN),
optional:: no_sign
669 integer(I8P),
intent(IN):: n
670 character(DI8P)::
str
676 if (n>=0_i8p)
str=
'+'//trim(
str)
677 if (present(no_sign))
str=
str(2:)
683 elemental function str_i4p(no_sign,n) result(str)
686 logical,
intent(IN),
optional:: no_sign
687 integer(I4P),
intent(IN):: n
688 character(DI4P)::
str
694 if (n>=0_i4p)
str=
'+'//trim(
str)
695 if (present(no_sign))
str=
str(2:)
701 elemental function str_i2p(no_sign,n) result(str)
704 logical,
intent(IN),
optional:: no_sign
705 integer(I2P),
intent(IN):: n
706 character(DI2P)::
str
712 if (n>=0_i2p)
str=
'+'//trim(
str)
713 if (present(no_sign))
str=
str(2:)
719 elemental function str_i1p(no_sign,n) result(str)
722 logical,
intent(IN),
optional:: no_sign
723 integer(I1P),
intent(IN):: n
724 character(DI1P)::
str
730 if (n>=0_i1p)
str=
'+'//trim(
str)
731 if (present(no_sign))
str=
str(2:)
738 elemental function strz_i8p(nz_pad,n) result(str)
741 integer(I4P),
intent(IN),
optional:: nz_pad
742 integer(I8P),
intent(IN):: n
743 character(DI8P)::
str
756 elemental function strz_i4p(nz_pad,n) result(str)
759 integer(I4P),
intent(IN),
optional:: nz_pad
760 integer(I4P),
intent(IN):: n
761 character(DI4P)::
str
774 elemental function strz_i2p(nz_pad,n) result(str)
777 integer(I4P),
intent(IN),
optional:: nz_pad
778 integer(I2P),
intent(IN):: n
779 character(DI2P)::
str
792 elemental function strz_i1p(nz_pad,n) result(str)
795 integer(I4P),
intent(IN),
optional:: nz_pad
796 integer(I1P),
intent(IN):: n
797 character(DI1P)::
str
812 character(*),
intent(IN)::
str
813 real(R16P),
intent(IN):: knd
819 read(
str,*,iostat=err) n
821 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to real failed'
822 write(stderr,
'(A,'//fr16p//
')')
'Kind parameter ',knd
823 write(stderr,
'(A)')
'Function used "ctor_R16P"'
830 function ctor_r8p(str,knd) result(n)
833 character(*),
intent(IN)::
str
834 real(R8P),
intent(IN):: knd
840 read(
str,*,iostat=err) n
842 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to real failed'
843 write(stderr,
'(A,'//fr8p//
')')
'Kind parameter ',knd
844 write(stderr,
'(A)')
'Function used "ctor_R8P"'
851 function ctor_r4p(str,knd) result(n)
854 character(*),
intent(IN)::
str
855 real(R4P),
intent(IN):: knd
861 read(
str,*,iostat=err) n
863 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to real failed'
864 write(stderr,
'(A,'//fr4p//
')')
'Kind parameter ',knd
865 write(stderr,
'(A)')
'Function used "ctor_R4P"'
872 function ctoi_i8p(str,knd) result(n)
875 character(*),
intent(IN)::
str
876 integer(I8P),
intent(IN):: knd
882 read(
str,*,iostat=err) n
884 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to integer failed'
885 write(stderr,
'(A,'//fi8p//
')')
'Kind parameter ',knd
886 write(stderr,
'(A)')
'Function used "ctoi_I8P"'
893 function ctoi_i4p(str,knd) result(n)
896 character(*),
intent(IN)::
str
897 integer(I4P),
intent(IN):: knd
903 read(
str,*,iostat=err) n
905 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to integer failed'
906 write(stderr,
'(A,'//fi4p//
')')
'Kind parameter ',knd
907 write(stderr,
'(A)')
'Function used "ctoi_I4P"'
914 function ctoi_i2p(str,knd) result(n)
917 character(*),
intent(IN)::
str
918 integer(I2P),
intent(IN):: knd
924 read(
str,*,iostat=err) n
926 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to integer failed'
927 write(stderr,
'(A,'//fi2p//
')')
'Kind parameter ',knd
928 write(stderr,
'(A)')
'Function used "ctoi_I2P"'
935 function ctoi_i1p(str,knd) result(n)
938 character(*),
intent(IN)::
str
939 integer(I1P),
intent(IN):: knd
945 read(
str,*,iostat=err) n
947 write(stderr,
'(A)')
'Conversion of string "'//
str//
'" to integer failed'
948 write(stderr,
'(A,'//fi1p//
')')
'Kind parameter ',knd
949 write(stderr,
'(A)')
'Function used "ctoi_I1P"'
957 elemental function bstr_r16p(n) result(bstr)
960 real(R8P),
intent(IN):: n
961 character(128)::
bstr
965 write(
bstr,
'(B128.128)')n
972 elemental function bstr_r8p(n) result(bstr)
975 real(R8P),
intent(IN):: n
980 write(
bstr,
'(B64.64)')n
987 elemental function bstr_r4p(n) result(bstr)
990 real(R4P),
intent(IN):: n
995 write(
bstr,
'(B32.32)')n
1002 elemental function bstr_i8p(n) result(bstr)
1005 integer(I8P),
intent(IN):: n
1006 character(64)::
bstr
1017 elemental function bstr_i4p(n) result(bstr)
1020 integer(I4P),
intent(IN):: n
1021 character(32)::
bstr
1032 elemental function bstr_i2p(n) result(bstr)
1035 integer(I2P),
intent(IN):: n
1036 character(16)::
bstr
1047 elemental function bstr_i1p(n) result(bstr)
1050 integer(I1P),
intent(IN):: n
1061 elemental function bctor_r8p(bstr,knd) result(n)
1064 character(*),
intent(IN)::
bstr
1065 real(R8P),
intent(IN):: knd
1076 elemental function bctor_r4p(bstr,knd) result(n)
1079 character(*),
intent(IN)::
bstr
1080 real(R4P),
intent(IN):: knd
1091 elemental function bctoi_i8p(bstr,knd) result(n)
1094 character(*),
intent(IN)::
bstr
1095 integer(I8P),
intent(IN):: knd
1106 elemental function bctoi_i4p(bstr,knd) result(n)
1109 character(*),
intent(IN)::
bstr
1110 integer(I4P),
intent(IN):: knd
1121 elemental function bctoi_i2p(bstr,knd) result(n)
1124 character(*),
intent(IN)::
bstr
1125 integer(I2P),
intent(IN):: knd
1136 elemental function bctoi_i1p(bstr,knd) result(n)
1139 character(*),
intent(IN)::
bstr
1140 integer(I1P),
intent(IN):: knd
1162 bir8p =
bit_size(r=maxr8p) ; byr8p = bir8p/8_i1p
1163 bir4p =
bit_size(r=maxr4p) ; byr4p = bir4p/8_i1p
1164 bir_p =
bit_size(r=maxr_p) ; byr_p = bir_p/8_i1p
1166 bir16p =
bit_size(r=maxr16p) ; byr16p = bir16p/8_i2p
1168 bir16p = int(bir8p,kind=i2p) ; byr16p = bir16p/8_i2p
1180 integer(I4P),
intent(IN),
optional:: myrank
1181 integer(I4P),
intent(IN),
optional:: nproc
1182 character(DI4P):: rks
1183 integer(I4P):: rank,np
1188 rank = 0 ;
if (present(myrank)) rank = myrank ; np = 1 ;
if (present(nproc)) np = nproc ; rks =
'rank'//trim(
strz(np,rank))
1191 write(stdout,
'(A)') trim(rks)//
' This architecture has LITTLE Endian bit ordering'
1193 write(stdout,
'(A)') trim(rks)//
' This architecture has BIG Endian bit ordering'
1195 write(stdout,
'(A)') trim(rks)//
' Reals kind precision definition'
1196 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R16P Kind "',r16p,
'" | FR16P format "'//fr16p//
'" | DR16P chars "',
dr16p,
'"'
1197 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R8P Kind "',r8p,
'" | FR8P format "'//fr8p//
'" | DR8P chars "',
dr8p ,
'"'
1198 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R4P Kind "',r4p,
'" | FR4P format "'//fr4p//
'" | DR4P chars "',
dr4p ,
'"'
1199 write(stdout,
'(A)') trim(rks)//
' Integers kind precision definition'
1200 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I8P Kind "',i8p,
'" | FI8P format "'//fi8p//
'" | DI8P chars "',
di8p,
'"'
1201 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I4P Kind "',i4p,
'" | FI4P format "'//fi4p//
'" | DI4P chars "',
di4p,
'"'
1202 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I2P Kind "',i2p,
'" | FI2P format "'//fi2p//
'" | DI2P chars "',
di2p,
'"'
1203 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I1P Kind "',i1p,
'" | FI1P format "'//fi1p//
'" | DI1P chars "',
di1p,
'"'
1204 write(stdout,
'(A)') trim(rks)//
' Reals minimum and maximum values'
1205 write(stdout,
'(A)') trim(rks)//
' MinR16P "'//trim(
str(n=minr16p))//
'" | MaxR16P "'//trim(
str(n=maxr16p))//
'"'
1206 write(stdout,
'(A)') trim(rks)//
' MinR8P "'//trim(
str(n=minr8p))//
'" | MaxR8P "'//trim(
str(n=maxr8p))//
'"'
1207 write(stdout,
'(A)') trim(rks)//
' MinR4P "'//trim(
str(n=minr4p))//
'" | MaxR4P "'//trim(
str(n=maxr4p))//
'"'
1208 write(stdout,
'(A)') trim(rks)//
' Reals bits/bytes sizes'
1209 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R16P bits "',bir16p,
'", bytes "',byr16p,
'"'
1210 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R8P bits "', bir8p,
'", bytes "',byr8p,
'"'
1211 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R4P bits "', bir4p,
'", bytes "',byr4p,
'"'
1212 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' R_P bits "', bir_p,
'", bytes "',byr_p,
'"'
1213 write(stdout,
'(A)') trim(rks)//
' Integers minimum and maximum values'
1214 write(stdout,
'(A)') trim(rks)//
' MinI8P "'//trim(
str(n=mini8p))//
'" | MaxI8P "'//trim(
str(n=maxi8p))//
'"'
1215 write(stdout,
'(A)') trim(rks)//
' MinI4P "'//trim(
str(n=mini4p))//
'" | MaxI4P "'//trim(
str(n=maxi4p))//
'"'
1216 write(stdout,
'(A)') trim(rks)//
' MinI2P "'//trim(
str(n=mini2p))//
'" | MaxI2P "'//trim(
str(n=maxi2p))//
'"'
1217 write(stdout,
'(A)') trim(rks)//
' MinI1P "'//trim(
str(n=mini1p))//
'" | MaxI1P "'//trim(
str(n=maxi1p))//
'"'
1218 write(stdout,
'(A)') trim(rks)//
' Integers bits/bytes sizes'
1219 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I8P bits "',bii8p,
'", bytes "',byi8p,
'"'
1220 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I4P bits "',bii4p,
'", bytes "',byi4p,
'"'
1221 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I2P bits "',bii2p,
'", bytes "',byi2p,
'"'
1222 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I1P bits "',bii1p,
'", bytes "',byi1p,
'"'
1223 write(stdout,
'(A,I2,A,I2,A)')trim(rks)//
' I_P bits "',bii_p,
'", bytes "',byi_p,
'"'
1224 write(stdout,
'(A)') trim(rks)//
' Machine precisions'
1225 write(stdout,
'(A)') trim(rks)//
' ZeroR16 "'//trim(
str(.true.,zeror16))//
'"'
1226 write(stdout,
'(A)') trim(rks)//
' ZeroR8 "'//trim(
str(.true.,zeror8 ))//
'"'
1227 write(stdout,
'(A)') trim(rks)//
' ZeroR4 "'//trim(
str(.true.,zeror4 ))//
'"'
integer(i2p), public byr16p
Number of bits/bytes of kind=R16P variable.
integer, parameter, public di2p
Number of digits of output format I2P.
character(8), parameter fi4pzp
Output format with zero prefixing for kind=I4P variable.
integer, parameter, public endianl
Little endian parameter.
integer(i_p), parameter, public maxi_p
Min and max values of kind=I_P variable.
integer(i2p), public bir16p
elemental character(dr16p) function str_r16p(no_sign, n)
Procedure for converting real to string.
subroutine, public check_endian()
Subroutine for checking the type of bit ordering (big or little endian) of the running architecture; ...
elemental integer(i1p) function byte_size_i4p(i)
Procedure for computing the number of bytes of an integer variable.
real(r16p), parameter, public smallr16p
Smallest representable value of kind=R16P variable.
real(r4p), parameter, public minr4p
Procedure for converting string to number, real or initeger, (string to number type casting); string...
integer(i8p), parameter, public mini8p
elemental character(di4p) function str_i4p(no_sign, n)
Procedure for converting integer to string.
real(r8p), parameter, public smallr8p
Smallest representable value of kind=R8P variable.
real(r4p), parameter, public smallr4p
Smallest representable value of kind=R4P variable.
elemental character(di4p) function strz_i4p(nz_pad, n)
Procedure for converting integer to string, prefixing with the right number of zeros.
character(8), parameter fi8pzp
Output format with zero prefixing for kind=I8P variable.
character(10), parameter, public fr8p
Output format for kind=R8P variable.
integer(i1p), public bir8p
elemental character(64) function bstr_i8p(n)
Procedure for converting integer to string of bits.
integer(i2p), parameter, public bii2p
integer(i2p) function ctoi_i2p(str, knd)
Procedure for converting string to integer.
elemental integer(i2p) function bit_size_r16p(r)
Procedure for computing the number of bits of a real variable.
integer, parameter, public niknd
Number of defined integer kinds.
integer(i1p), public bir4p
integer, parameter, public r4p
6 digits, range ; 32 bits.
elemental integer(i1p) function byte_size_i8p(i)
Procedure for computing the number of bytes of an integer variable.
integer, parameter, public endianb
Big endian parameter.
elemental integer(i4p) function bit_size_chr(c)
Procedure for computing the number of bits of a character variable.
Procedure for converting number, real and integer, to bit-string (number to bit-string type casting);...
elemental character(di1p) function strz_i1p(nz_pad, n)
Procedure for converting integer to string, prefixing with the right number of zeros.
real(r16p), parameter, public minr16p
Overloading of the "byte_size" function for computing the number of bytes.
real(r4p) function ctor_r4p(str, knd)
Procedure for converting string to real.
elemental character(32) function bstr_r4p(n)
Procedure for converting real to string of bits.
elemental character(di2p) function strz_i2p(nz_pad, n)
Procedure for converting integer to string, prefixing with the right number of zeros.
elemental integer(i4p) function bctoi_i4p(bstr, knd)
Procedure for converting bit-string to integer.
real(r16p), parameter, public zeror16
Smallest representable difference of kind=R16P variable.
character(10), parameter, public fr_p
Output format for kind=R_P variable.
logical, public ir_initialized
Flag for chcecking the initialization of some variables that must be initialized by IR_Init...
integer(i4p), parameter, public byi4p
Number of bits/bytes of kind=I4P variable.
elemental character(dr8p) function strf_r8p(fm, n)
Procedure for converting real to string.
elemental integer(i8p) function bctoi_i8p(bstr, knd)
Procedure for converting bit-string to integer.
integer(i8p), parameter, public byi8p
Number of bits/bytes of kind=I8P variable.
integer(i1p), public byr_p
Number of bits/bytes of kind=R_P variable.
real(r_p), parameter, public smallr_p
Smallest representable value of kind=R_P variable.
elemental character(8) function bstr_i1p(n)
Procedure for converting integer to string of bits.
real(r_p), parameter, public minr_p
character(6), parameter fi2pzp
Output format with zero prefixing for kind=I2P variable.
elemental integer(i1p) function byte_size_r16p(r)
Procedure for computing the number of bytes of a real variable.
integer, parameter, public i8p
Range , 19 digits plus sign; 64 bits.
elemental character(di2p) function str_i2p(no_sign, n)
Procedure for converting integer to string.
elemental character(64) function bstr_r8p(n)
Procedure for converting real to string of bits.
character(5), dimension(1:niknd), parameter, public fil
List of defined integer kinds output format.
elemental character(di4p) function strf_i4p(fm, n)
Procedure for converting integer to string.
integer, parameter, public dr16p
Number of digits of output format FR16P.
integer(i_p), parameter, public bii_p
integer(i1p), parameter, public mini1p
integer(i4p), parameter, public bii4p
integer(i2p), parameter, public mini2p
elemental character(di8p) function str_i8p(no_sign, n)
Procedure for converting integer to string.
integer(i_p), parameter, public byi_p
Number of bits/bytes of kind=I_P variable.
elemental integer(i1p) function byte_size_i2p(i)
Procedure for computing the number of bytes of an integer variable.
integer(i1p), parameter, public byi1p
Number of bits/bytes of kind=I1P variable.
integer(i2p), parameter, public maxi2p
Min and max values of kind=I2P variable.
integer(i4p) function ctoi_i4p(str, knd)
Procedure for converting string to integer.
elemental character(di1p) function str_i1p(no_sign, n)
Procedure for converting integer to string.
Overloading of the intrinsic "bit_size" function for computing the number of bits of (also) real and ...
elemental real(r8p) function bctor_r8p(bstr, knd)
Procedure for converting bit-string to real.
integer(i8p), parameter, public bii8p
elemental character(dr8p) function str_r8p(no_sign, n)
Procedure for converting real to string.
integer, parameter, public i1p
Range , 3 digits plus sign; 8 bits.
character(5), parameter, public fi8p
Output format for kind=I8P variable.
real(r_p), parameter, public maxr_p
Min and max values of kind=R_P variable.
integer(i1p), parameter, public bii1p
elemental character(di8p) function strz_i8p(nz_pad, n)
Procedure for converting integer to string, prefixing with the right number of zeros.
integer(i_p), parameter, public mini_p
real(r16p) function ctor_r16p(str, knd)
Procedure for converting string to real.
elemental character(dr4p) function str_r4p(no_sign, n)
Procedure for converting real to string.
character(5), parameter, public fi4p
Output format for kind=I4P variable.
elemental integer(i2p) function bctoi_i2p(bstr, knd)
Procedure for converting bit-string to integer.
Procedure for converting number, real and integer, to string (number to string type casting); logical...
integer, parameter, public di8p
Number of digits of output format I8P.
integer(i8p), parameter, public maxi8p
Min and max values of kind=I8P variable.
elemental character(32) function bstr_i4p(n)
Procedure for converting integer to string of bits.
integer, parameter, public dr4p
Number of digits of output format FR4P.
integer, public endian
Bit ordering: Little endian (endianL), or Big endian (endianB).
Procedure for converting bit-string to number, real or initeger, (bit-string to number type casting);...
integer(i2p), parameter, public byi2p
Number of bits/bytes of kind=I2P variable.
integer(i1p), public byr8p
Number of bits/bytes of kind=R8P variable.
integer, parameter, public r8p
15 digits, range ; 64 bits.
real(r_p), parameter, public zero
Smallest representable difference of kind=R_P variable.
integer, parameter, public i4p
Range , 10 digits plus sign; 32 bits.
integer, parameter, public dr_p
Number of digits of output format FR_P.
real(r8p), parameter, public minr8p
subroutine, public ir_init()
Subroutine for initilizing module's variables that are not initialized into the definition specificat...
integer, dimension(1:nrknd), parameter, public rpl
List of defined real kinds.
real(r16p), parameter, public maxr16p
Min and max values of kind=R16P variable.
character(6), parameter fi1pzp
Output format with zero prefixing for kind=I1P variable.
integer, parameter, public di4p
Number of digits of output format I4P.
integer, parameter, public dr8p
Number of digits of output format FR8P.
integer(i1p), public bir_p
integer, parameter, public nrknd
Number of defined real kinds.
integer, parameter, public r_p
Default real precision.
real(r4p), parameter, public maxr4p
Min and max values of kind=R4P variable.
character(8), parameter fi_pzp
Output format with zero prefixing for kind=I_P variable.
elemental character(di2p) function strf_i2p(fm, n)
Procedure for converting integer to string.
character(4), parameter, public fi2p
Output format for kind=I2P variable.
integer(i8p) function ctoi_i8p(str, knd)
Procedure for converting string to integer.
elemental integer(i4p) function byte_size_chr(c)
Procedure for computing the number of bytes of a character variable.
integer(i4p), parameter, public maxi4p
Min and max values of kind=I4P variable.
elemental integer(i1p) function byte_size_r8p(r)
Procedure for computing the number of bytes of a real variable.
character(4), parameter, public fi1p
Output format for kind=I1P variable.
character(10), dimension(1:nrknd), parameter, public frl
List of defined real kinds output format.
integer, parameter, public i2p
Range , 5 digits plus sign; 16 bits.
elemental integer(i1p) function byte_size_i1p(i)
Procedure for computing the number of bytes of an integer variable.
character(10), parameter, public fr16p
Output format for kind=R16P variable.
real(r8p) function ctor_r8p(str, knd)
Procedure for converting string to real.
integer(i1p) function ctoi_i1p(str, knd)
Procedure for converting string to integer.
elemental integer(i1p) function bctoi_i1p(bstr, knd)
Procedure for converting bit-string to integer.
integer, parameter, public r16p
Defined as R8P; 64 bits.
Procedure for converting number, integer, to string, prefixing with the right number of zeros (number...
integer(i1p), parameter, public maxi1p
Min and max values of kind=I1P variable.
subroutine, public ir_print(myrank, Nproc)
Subroutine for printing to the standard output the kind definition of reals and integers and the util...
integer, parameter, public di1p
Number of digits of output format I1P.
elemental character(dr4p) function strf_r4p(fm, n)
Procedure for converting real to string.
real(r8p), parameter, public maxr8p
Min and max values of kind=R8P variable.
integer, parameter, public i_p
Default integer precision.
real(r4p), parameter, public zeror4
Smallest representable difference of kind=R4P variable.
character(5), parameter, public fi_p
Output format for kind=I_P variable.
pure logical function is_little_endian()
Procedure for checking if the type of the bit ordering of the running architecture is little endian...
elemental character(16) function bstr_i2p(n)
Procedure for converting integer to string of bits.
elemental character(128) function bstr_r16p(n)
Procedure for converting real to string of bits.
elemental integer(i1p) function byte_size_r4p(r)
Procedure for computing the number of bytes of a real variable.
integer, dimension(1:niknd), parameter, public ril
List of defined integer kinds.
integer(i1p), public byr4p
Number of bits/bytes of kind=R4P variable.
character(9), parameter, public fr4p
Output format for kind=R4P variable.
elemental real(r4p) function bctor_r4p(bstr, knd)
Procedure for converting bit-string to real.
elemental character(dr16p) function strf_r16p(fm, n)
Procedure for converting real to string.
real(r8p), parameter, public zeror8
Smallest representable difference of kind=R8P variable.
integer, parameter, public di_p
Number of digits of output format I_P.
integer(i4p), parameter, public mini4p
elemental character(di1p) function strf_i1p(fm, n)
Procedure for converting integer to string.
elemental integer(i1p) function bit_size_r8p(r)
Procedure for computing the number of bits of a real variable.
elemental character(di8p) function strf_i8p(fm, n)
Procedure for converting integer to string.
elemental integer(i1p) function bit_size_r4p(r)
Procedure for computing the number of bits of a real variable.
Module IR_Precision makes available some portable kind-parameters and some useful procedures to deal ...