@@ -15,33 +15,43 @@ module penf_global_parameters_variables
15
15
integer :: endian = endianL ! < Bit ordering: Little endian (endianL), or Big endian (endianB).
16
16
17
17
! portable kind parameters
18
- #ifdef r16p
19
- integer , parameter :: R16P = selected_real_kind ( 33 , 4931 ) ! < 33 digits, range \([10^{-4931}, 10^{+4931} - 1]\); 128 bits .
18
+ #ifdef _ASCII_SUPPORTED
19
+ integer , parameter :: ASCII = selected_char_kind( ' ascii ' ) ! < ASCII character set kind .
20
20
#else
21
- integer , parameter :: R16P = selected_real_kind ( 15 , 307 ) ! < Defined as R8P; 64 bits .
21
+ integer , parameter :: ASCII = selected_char_kind( ' default ' ) ! < ASCII character set kind defined as default set .
22
22
#endif
23
- integer , parameter :: R8 P = selected_real_kind (15 ,307 ) ! < 15 digits, range \([10^{-307} , 10^{+307} - 1]\); 64 bits.
24
- integer , parameter :: R4 P = selected_real_kind (6 ,37 ) ! < 6 digits, range \([10^{-37} , 10^{+37} - 1]\); 32 bits.
25
- #ifdef r16p
26
- integer , parameter :: R_P = R16P ! < Default real precision.
23
+ #ifdef _UCS4_SUPPORTED
24
+ integer , parameter :: UCS4 = selected_char_kind(' iso_10646' ) ! < Unicode character set kind.
27
25
#else
28
- integer , parameter :: R_P = R8 P ! < Default real precision .
26
+ integer , parameter :: UCS4 = selected_char_kind( ' default ' ) ! < Unicode character set kind defined as default set .
29
27
#endif
30
- integer , parameter :: I8P = selected_int_kind (18 ) ! < Range \([-2^{63},+2^{63} - 1]\), 19 digits plus sign; 64 bits.
31
- integer , parameter :: I4P = selected_int_kind (9 ) ! < Range \([-2^{31},+2^{31} - 1]\), 10 digits plus sign; 32 bits.
32
- integer , parameter :: I2P = selected_int_kind (4 ) ! < Range \([-2^{15},+2^{15} - 1]\), 5 digits plus sign; 16 bits.
33
- integer , parameter :: I1P = selected_int_kind (2 ) ! < Range \([-2^{7} ,+2^{7} - 1]\), 3 digits plus sign; 8 bits.
34
- integer , parameter :: I_P = I4P ! < Default integer precision.
28
+ #ifdef _R16P_SUPPORTED
29
+ integer , parameter :: R16P = selected_real_kind (33 ,4931 ) ! < 33 digits, range \([10^{-4931}, 10^{+4931} - 1]\); 128 bits.
30
+ #else
31
+ integer , parameter :: R16P = selected_real_kind (15 ,307 ) ! < Defined as R8P; 64 bits.
32
+ #endif
33
+ integer , parameter :: R8 P = selected_real_kind (15 ,307 ) ! < 15 digits, range \([10^{-307} , 10^{+307} - 1]\); 64 bits.
34
+ integer , parameter :: R4 P = selected_real_kind (6 ,37 ) ! < 6 digits, range \([10^{-37} , 10^{+37} - 1]\); 32 bits.
35
+ #ifdef _R16P_SUPPORTED
36
+ integer , parameter :: R_P = R16P ! < Default real precision.
37
+ #else
38
+ integer , parameter :: R_P = R8 P ! < Default real precision.
39
+ #endif
40
+ integer , parameter :: I8P = selected_int_kind (18 ) ! < Range \([-2^{63},+2^{63} - 1]\), 19 digits plus sign; 64 bits.
41
+ integer , parameter :: I4P = selected_int_kind (9 ) ! < Range \([-2^{31},+2^{31} - 1]\), 10 digits plus sign; 32 bits.
42
+ integer , parameter :: I2P = selected_int_kind (4 ) ! < Range \([-2^{15},+2^{15} - 1]\), 5 digits plus sign; 16 bits.
43
+ integer , parameter :: I1P = selected_int_kind (2 ) ! < Range \([-2^{7} ,+2^{7} - 1]\), 3 digits plus sign; 8 bits.
44
+ integer , parameter :: I_P = I4P ! < Default integer precision.
35
45
36
46
! format parameters
37
- #ifdef r16p
47
+ #ifdef _R16P_SUPPORTED
38
48
character (* ), parameter :: FR16P = ' (E42.33E4)' ! < Output format for kind=R16P real.
39
49
#else
40
50
character (* ), parameter :: FR16P = ' (E23.15E3)' ! < Output format for kind=R16P real.
41
51
#endif
42
52
character (* ), parameter :: FR8 P = ' (E23.15E3)' ! < Output format for kind=R8P real.
43
53
character (* ), parameter :: FR4 P = ' (E13.6E2)' ! < Output format for kind=R4P real.
44
- #ifdef r16p
54
+ #ifdef _R16P_SUPPORTED
45
55
character (* ), parameter :: FR_P = FR16P ! < Output format for kind=R_P real.
46
56
#else
47
57
character (* ), parameter :: FR_P = FR8 P ! < Output format for kind=R_P real.
@@ -58,14 +68,14 @@ module penf_global_parameters_variables
58
68
character (* ), parameter :: FI_PZP = FI4PZP ! < Output format for kind=I_P integer with zero prefixing.
59
69
60
70
! length (number of digits) of formatted numbers
61
- #ifdef r16p
71
+ #ifdef _R16P_SUPPORTED
62
72
integer , parameter :: DR16P = 42 ! < Number of digits of output format FR16P.
63
73
#else
64
74
integer , parameter :: DR16P = 23 ! < Number of digits of output format FR16P.
65
75
#endif
66
76
integer , parameter :: DR8 P = 23 ! < Number of digits of output format FR8P.
67
77
integer , parameter :: DR4 P = 13 ! < Number of digits of output format FR4P.
68
- #ifdef r16p
78
+ #ifdef _R16P_SUPPORTED
69
79
integer , parameter :: DR_P = DR16P ! < Number of digits of output format FR_P.
70
80
#else
71
81
integer , parameter :: DR_P = DR8 P ! < Number of digits of output format FR_P.
0 commit comments