anything_to_bytes(3f) - [M_anything] convert standard types to bytes (character(len=1):: array(:))
(LICENSE:MIT)
function anything_to_bytes(anything) result(chars)
class(*),intent(in) :: anything
or
class(*),intent(in) :: anything(:)
character(len=1),allocatable :: chars(:)
This function uses polymorphism to allow input arguments of different
types. It is used to create other procedures that can take many
argument types as input options and convert them to a single type
to simplify storing arbitrary data, to simplify generating data
hashes, ...
VALUEIN input array or scalar to convert to type CHARACTER(LEN=1).
May be of KIND INTEGER(kind=int8), INTEGER(kind=int16),
INTEGER(kind=int32), INTEGER(kind=int64),
REAL(kind=real32, REAL(kind=real64),
REAL(kind=real128), complex, or CHARACTER(len=*)
CHARS The returned value is an array of bytes (character(len=1)).
Sample program
program demo_anything_to_bytes
use M_anything, only : anything_to_bytes
implicit none
integer :: i
write(*,'(/,4(1x,z2.2))')anything_to_bytes([(i*i,i=1,10)])
write(*,'(/,4(1x,z2.2))')anything_to_bytes([11.11,22.22,33.33])
write(*,'(/,4(1x,z2.2))')anything_to_bytes('This is a string')
end program demo_anything_to_bytes
Expected output
01 00 00 00
04 00 00 00
09 00 00 00
10 00 00 00
19 00 00 00
24 00 00 00
31 00 00 00
40 00 00 00
51 00 00 00
64 00 00 00
8F C2 31 41
8F C2 B1 41
EC 51 05 42
54 68 69 73
20 69 73 20
61 20 73 74
72 69 6E 67
John S. Urban
MIT
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | anything(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | anything |