Skip to content

Commit bc94436

Browse files
committed
Merge branch 'release/1.2.0'
2 parents e98351f + 50095f9 commit bc94436

File tree

228 files changed

+2418
-1089
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+2418
-1089
lines changed

fobos

+11-15
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ $CSHARED_INT = -cpp -c -fpic -assume realloc_lhs
1010
$LSHARED = -shared
1111
$CSTATIC_GNU = -c -frealloc-lhs
1212
$CSTATIC_INT = -c -assume realloc_lhs
13-
$DEBUG_GNU = -Og -g3 -Warray-bounds -Wcharacter-truncation -Wline-truncation -Wimplicit-interface -Wimplicit-procedure -Wunderflow -Wuninitialized -fcheck=all -fmodule-private -ffree-line-length-132 -fimplicit-none -fbacktrace -fdump-core -finit-real=nan -std=f2003 -fall-intrinsics
14-
$DEBUG_INT = -O0 -debug all -check all -warn all -extend-source 132 -traceback -gen-interfaces#-fpe-all=0 -fp-stack-check -fstack-protector-all -ftrapuv -no-ftz -std03
13+
$DEBUG_GNU = -Og -g3 -Warray-bounds -Wcharacter-truncation -Wline-truncation -Wimplicit-interface -Wimplicit-procedure -Wunderflow -Wuninitialized -fcheck=all -fmodule-private -ffree-line-length-132 -fimplicit-none -fbacktrace -fdump-core -finit-real=nan -std=f2008 -fall-intrinsics
14+
$DEBUG_INT = -O0 -debug all -check all -warn all -extend-source 132 -traceback -gen-interfaces#-fpe-all=0 -fp-stack-check -fstack-protector-all -ftrapuv -no-ftz -std08
1515
$OPTIMIZE = -O2
1616

1717
# main modes
@@ -118,7 +118,7 @@ cflags_heritage = True
118118
compiler = gnu
119119
cflags = $CSHARED_GNU $DEBUG_GNU
120120
lflags = $LSHARED $DEBUG_GNU
121-
preproc = -D_R16P -D_ASCII_SUPPORTED -D_UCS4_SUPPORTED
121+
preproc = -D_R16P_SUPPORTED -D_ASCII_SUPPORTED -D_UCS4_SUPPORTED
122122
mod_dir = ./mod/
123123
obj_dir = ./obj/
124124
src = ./src/
@@ -132,7 +132,7 @@ cflags_heritage = True
132132
compiler = gnu
133133
cflags = $CSTATIC_GNU $DEBUG_GNU
134134
lflags = $DEBUG_GNU
135-
preproc = -D_R16P -D_ASCII_SUPPORTED -D_UCS4_SUPPORTED
135+
preproc = -D_R16P_SUPPORTED -D_ASCII_SUPPORTED -D_UCS4_SUPPORTED
136136
mod_dir = ./mod/
137137
obj_dir = ./obj/
138138
src = ./src/
@@ -221,17 +221,13 @@ rule = tar --xform="s%^%PENF/%" -czf PENF.tar.gz *
221221

222222
[rule-makecoverage]
223223
help = Perform coverage analysis
224-
rule_1 = FoBiS.py clean -mode tests-gnu-debug
225-
rule_2 = FoBiS.py build -mode tests-gnu-debug -coverage
226-
rule_3 = ./scripts/run_tests.sh
227-
rule_4 = gcov -o exe/obj/ src/lib/*
228-
rule_5 = rm -f *.gcov
224+
rule_1 = FoBiS.py doctests -mode tests-gnu-debug -coverage
225+
rule_2 = gcov -o exe/obj/ src/lib/*
226+
rule_3 = rm -f *.gcov
229227

230228
[rule-makecoverage-analysis]
231229
help = Perform coverage analysis and saving reports in markdown
232-
rule_1 = FoBiS.py clean -mode tests-gnu-debug
233-
rule_2 = FoBiS.py build -mode tests-gnu-debug -coverage
234-
rule_3 = ./scripts/run_tests.sh
235-
rule_4 = gcov -o exe/obj/ src/lib/*
236-
rule_5 = FoBiS.py rule -gcov_analyzer wiki/ Coverage-Analysis -verbose
237-
rule_6 = rm -f *.gcov
230+
rule_1 = FoBiS.py doctests -mode tests-gnu-debug -coverage
231+
rule_2 = gcov -o exe/obj/ src/lib/*
232+
rule_3 = FoBiS.py rule -gcov_analyzer wiki/ Coverage-Analysis -verbose
233+
rule_4 = rm -f *.gcov

src/lib/penf.F90

+194-132
Large diffs are not rendered by default.

src/lib/penf_b_size.F90

+171-99
Original file line numberDiff line numberDiff line change
@@ -36,103 +36,175 @@ module penf_b_size
3636
endinterface
3737

3838
contains
39-
elemental function bit_size_R16P(i) result(bits)
40-
!< Compute the number of bits of a real variable.
41-
real(R16P), intent(in) :: i !< Real variable whose number of bits must be computed.
42-
integer(I2P) :: bits !< Number of bits of r.
43-
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
44-
45-
bits = size(transfer(i, mold), dim=1, kind=I2P) * 8_I2P
46-
endfunction bit_size_R16P
47-
48-
elemental function bit_size_R8P(i) result(bits)
49-
!< Compute the number of bits of a real variable.
50-
real(R8P), intent(in) :: i !< Real variable whose number of bits must be computed.
51-
integer(I1P) :: bits !< Number of bits of r.
52-
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
53-
54-
bits = size(transfer(i, mold), dim=1, kind=I1P) * 8_I1P
55-
endfunction bit_size_R8P
56-
57-
elemental function bit_size_R4P(i) result(bits)
58-
!< Compute the number of bits of a real variable.
59-
real(R4P), intent(in) :: i !< Real variable whose number of bits must be computed.
60-
integer(I1P) :: bits !< Number of bits of r.
61-
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
62-
63-
bits = size(transfer(i, mold), dim=1, kind=I1P) * 8_I1P
64-
endfunction bit_size_R4P
65-
66-
elemental function bit_size_chr(i) result(bits)
67-
!< Compute the number of bits of a character variable.
68-
character(*), intent(IN) :: i !< Character variable whose number of bits must be computed.
69-
integer(I4P) :: bits !< Number of bits of c.
70-
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
71-
72-
bits = size(transfer(i, mold), dim=1, kind=I4P) * 8_I4P
73-
endfunction bit_size_chr
74-
75-
elemental function byte_size_I8P(i) result(bytes)
76-
!< Compute the number of bytes of an integer variable.
77-
integer(I8P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
78-
integer(I1P) :: bytes !< Number of bytes of i.
79-
80-
bytes = bit_size(i)/8_I1P
81-
endfunction byte_size_I8P
82-
83-
elemental function byte_size_I4P(i) result(bytes)
84-
!< Compute the number of bytes of an integer variable.
85-
integer(I4P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
86-
integer(I1P) :: bytes !< Number of bytes of i.
87-
88-
bytes = bit_size(i)/8_I1P
89-
endfunction byte_size_I4P
90-
91-
elemental function byte_size_I2P(i) result(bytes)
92-
!< Compute the number of bytes of an integer variable.
93-
integer(I2P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
94-
integer(I1P) :: bytes !< Number of bytes of i.
95-
96-
bytes = bit_size(i)/8_I1P
97-
endfunction byte_size_I2P
98-
99-
elemental function byte_size_I1P(i) result(bytes)
100-
!< Compute the number of bytes of an integer variable.
101-
integer(I1P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
102-
integer(I1P) :: bytes !< Number of bytes of i.
103-
104-
bytes = bit_size(i)/8_I1P
105-
endfunction byte_size_I1P
106-
107-
elemental function byte_size_R16P(i) result(bytes)
108-
!< Compute the number of bytes of a real variable.
109-
real(R16P), intent(in) :: i !< Real variable whose number of bytes must be computed.
110-
integer(I1P) :: bytes !< Number of bytes of r.
111-
112-
bytes = bit_size(i)/8_I1P
113-
endfunction byte_size_R16P
114-
115-
elemental function byte_size_R8P(i) result(bytes)
116-
!< Compute the number of bytes of a real variable.
117-
real(R8P), intent(in) :: i !< Real variable whose number of bytes must be computed.
118-
integer(I1P) :: bytes !< Number of bytes of r.
119-
120-
bytes = bit_size(i)/8_I1P
121-
endfunction byte_size_R8P
122-
123-
elemental function byte_size_R4P(i) result(bytes)
124-
!< Compute the number of bytes of a real variable.
125-
real(R4P), intent(in) :: i !< Real variable whose number of bytes must be computed.
126-
integer(I1P) :: bytes !< Number of bytes of r.
127-
128-
bytes = bit_size(i)/8_I1P
129-
endfunction byte_size_R4P
130-
131-
elemental function byte_size_chr(i) result(bytes)
132-
!< Compute the number of bytes of a character variable.
133-
character(*), intent(in) :: i !< Character variable whose number of bytes must be computed.
134-
integer(I4P) :: bytes !< Number of bytes of c.
135-
136-
bytes = bit_size(i)/8_I4P
137-
endfunction byte_size_chr
39+
elemental function bit_size_R16P(i) result(bits)
40+
!< Compute the number of bits of a real variable.
41+
!<
42+
!<```fortran
43+
!< use penf
44+
!< print FI2P, bit_size(1._R16P)
45+
!<```
46+
!=> 128 <<<
47+
real(R16P), intent(in) :: i !< Real variable whose number of bits must be computed.
48+
integer(I2P) :: bits !< Number of bits of r.
49+
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
50+
51+
bits = size(transfer(i, mold), dim=1, kind=I2P) * 8_I2P
52+
endfunction bit_size_R16P
53+
54+
elemental function bit_size_R8P(i) result(bits)
55+
!< Compute the number of bits of a real variable.
56+
!<
57+
!<```fortran
58+
!< use penf
59+
!< print FI1P, bit_size(1._R8P)
60+
!<```
61+
!=> 64 <<<
62+
real(R8P), intent(in) :: i !< Real variable whose number of bits must be computed.
63+
integer(I1P) :: bits !< Number of bits of r.
64+
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
65+
66+
bits = size(transfer(i, mold), dim=1, kind=I1P) * 8_I1P
67+
endfunction bit_size_R8P
68+
69+
elemental function bit_size_R4P(i) result(bits)
70+
!< Compute the number of bits of a real variable.
71+
!<
72+
!<```fortran
73+
!< use penf
74+
!< print FI1P, bit_size(1._R4P)
75+
!<```
76+
!=> 32 <<<
77+
real(R4P), intent(in) :: i !< Real variable whose number of bits must be computed.
78+
integer(I1P) :: bits !< Number of bits of r.
79+
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
80+
81+
bits = size(transfer(i, mold), dim=1, kind=I1P) * 8_I1P
82+
endfunction bit_size_R4P
83+
84+
elemental function bit_size_chr(i) result(bits)
85+
!< Compute the number of bits of a character variable.
86+
!<
87+
!<```fortran
88+
!< use penf
89+
!< print FI4P, bit_size('ab')
90+
!<```
91+
!=> 16 <<<
92+
character(*), intent(IN) :: i !< Character variable whose number of bits must be computed.
93+
integer(I4P) :: bits !< Number of bits of c.
94+
integer(I1P) :: mold(1) !< "Molding" dummy variable for bits counting.
95+
96+
bits = size(transfer(i, mold), dim=1, kind=I4P) * 8_I4P
97+
endfunction bit_size_chr
98+
99+
elemental function byte_size_R16P(i) result(bytes)
100+
!< Compute the number of bytes of a real variable.
101+
!<
102+
!<```fortran
103+
!< use penf
104+
!< print FI1P, byte_size(1._R16P)
105+
!<```
106+
!=> 16 <<<
107+
real(R16P), intent(in) :: i !< Real variable whose number of bytes must be computed.
108+
integer(I1P) :: bytes !< Number of bytes of r.
109+
110+
bytes = bit_size(i) / 8_I1P
111+
endfunction byte_size_R16P
112+
113+
elemental function byte_size_R8P(i) result(bytes)
114+
!< Compute the number of bytes of a real variable.
115+
!<
116+
!<```fortran
117+
!< use penf
118+
!< print FI1P, byte_size(1._R8P)
119+
!<```
120+
!=> 8 <<<
121+
real(R8P), intent(in) :: i !< Real variable whose number of bytes must be computed.
122+
integer(I1P) :: bytes !< Number of bytes of r.
123+
124+
bytes = bit_size(i) / 8_I1P
125+
endfunction byte_size_R8P
126+
127+
elemental function byte_size_R4P(i) result(bytes)
128+
!< Compute the number of bytes of a real variable.
129+
!<
130+
!<```fortran
131+
!< use penf
132+
!< print FI1P, byte_size(1._R4P)
133+
!<```
134+
!=> 4 <<<
135+
real(R4P), intent(in) :: i !< Real variable whose number of bytes must be computed.
136+
integer(I1P) :: bytes !< Number of bytes of r.
137+
138+
bytes = bit_size(i) / 8_I1P
139+
endfunction byte_size_R4P
140+
141+
elemental function byte_size_chr(i) result(bytes)
142+
!< Compute the number of bytes of a character variable.
143+
!<
144+
!<```fortran
145+
!< use penf
146+
!< print FI1P, byte_size('ab')
147+
!<```
148+
!=> 2 <<<
149+
character(*), intent(in) :: i !< Character variable whose number of bytes must be computed.
150+
integer(I4P) :: bytes !< Number of bytes of c.
151+
152+
bytes = bit_size(i) / 8_I4P
153+
endfunction byte_size_chr
154+
155+
elemental function byte_size_I8P(i) result(bytes)
156+
!< Compute the number of bytes of an integer variable.
157+
!<
158+
!<```fortran
159+
!< use penf
160+
!< print FI1P, byte_size(1_I8P)
161+
!<```
162+
!=> 8 <<<
163+
integer(I8P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
164+
integer(I1P) :: bytes !< Number of bytes of i.
165+
166+
bytes = bit_size(i) / 8_I1P
167+
endfunction byte_size_I8P
168+
169+
elemental function byte_size_I4P(i) result(bytes)
170+
!< Compute the number of bytes of an integer variable.
171+
!<
172+
!<```fortran
173+
!< use penf
174+
!< print FI1P, byte_size(1_I4P)
175+
!<```
176+
!=> 4 <<<
177+
integer(I4P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
178+
integer(I1P) :: bytes !< Number of bytes of i.
179+
180+
bytes = bit_size(i) / 8_I1P
181+
endfunction byte_size_I4P
182+
183+
elemental function byte_size_I2P(i) result(bytes)
184+
!< Compute the number of bytes of an integer variable.
185+
!<
186+
!<```fortran
187+
!< use penf
188+
!< print FI1P, byte_size(1_I2P)
189+
!<```
190+
!=> 2 <<<
191+
integer(I2P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
192+
integer(I1P) :: bytes !< Number of bytes of i.
193+
194+
bytes = bit_size(i) / 8_I1P
195+
endfunction byte_size_I2P
196+
197+
elemental function byte_size_I1P(i) result(bytes)
198+
!< Compute the number of bytes of an integer variable.
199+
!<
200+
!<```fortran
201+
!< use penf
202+
!< print FI1P, byte_size(1_I1P)
203+
!<```
204+
!=> 1 <<<
205+
integer(I1P), intent(in) :: i !< Integer variable whose number of bytes must be computed.
206+
integer(I1P) :: bytes !< Number of bytes of i.
207+
208+
bytes = bit_size(i) / 8_I1P
209+
endfunction byte_size_I1P
138210
endmodule penf_b_size

0 commit comments

Comments
 (0)