forked from fortran-lang/stdlib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstdlib_strings_format_string.fypp
38 lines (29 loc) · 1.13 KB
/
stdlib_strings_format_string.fypp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#:include "common.fypp"
#:set RIL_KINDS_TYPES = REAL_KINDS_TYPES + INT_KINDS_TYPES + LOG_KINDS_TYPES
submodule (stdlib_strings) stdlib_strings_format_string
implicit none
integer, parameter :: buffer_len = 512
contains
#:for kind, type in RIL_KINDS_TYPES
module procedure format_string_${type[0]}$${kind}$
!! Format ${type}$ variable as character sequence
character(len=buffer_len) :: buffer
integer :: stat
write(buffer, optval(fmt, "(g0)"), iostat=stat) val
if (stat == 0) then
string = trim(buffer)
else
string = '*'
!!\TODO: *?
end if
end procedure format_string_${type[0]}$${kind}$
#:endfor
#:for kind, type in CMPLX_KINDS_TYPES
module procedure format_string_${type[0]}$${kind}$
!! Format ${type}$ variable as character sequence
character(len=buffer_len) :: buffer
string = '('//format_string_r${kind}$(val%re, fmt)//','// &
format_string_r${kind}$(val%im, fmt)//')'
end procedure format_string_${type[0]}$${kind}$
#:endfor
end submodule stdlib_strings_format_string