gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcstringcprintf.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

character(len=string) function dcstringcprintf (fmt, i, r, d, l, n, c1, c2, c3, ca, maxlen)
 Formatted output conversion (function version).
character(len=token) function dcstringcprintft (fmt, i, r, d, l, n, c1, c2, c3, ca, maxlen)

Function/Subroutine Documentation

◆ dcstringcprintf()

character(len = string) function dcstringcprintf ( character(*), intent(in) fmt,
integer, dimension(:), intent(in), optional i,
real(sp), dimension(:), intent(in), optional r,
real(dp), dimension(:), intent(in), optional d,
logical, dimension(:), intent(in), optional l,
integer, dimension(:), intent(in), optional n,
character(*), intent(in), optional c1,
character(*), intent(in), optional c2,
character(*), intent(in), optional c3,
character(*), dimension(:), intent(in), optional ca,
integer, intent(in), optional maxlen )

Formatted output conversion (function version).

Author
Yasuhiro MORIKAWA, Eizi TOYODA

Format a string like C sprintf(3) and return it. Note that the implementation is quite different from C sprintf(3).

Format string and return result

Return a formatted string according to format string fmt. Use specifiers starting with '' in fmt. Use '%' to output a literal ''. See dcstringsprintf.f90 for specifier details and examples.

Parameters
[in]fmtFormat string with specifiers
[in]iInteger array data for d, o, x
[in]rSingle precision real array data for r
[in]dDouble precision real array data for f
[in]LLogical array data for b, y
[in]nRepeat counts for %* specifier
[in]c1First character string for c
[in]c2Second character string for c
[in]c3Third character string for c
[in]caCharacter array for a
Returns
Formatted string

Definition at line 65 of file dcstringcprintf.f90.

66
67 use dc_types, only: string, dp, sp
68 use dc_string, only: printf
69 implicit none
70 character(len = STRING):: result
71 character(*), intent(in):: fmt
72 integer, intent(in), optional:: i(:), n(:)
73 real(SP), intent(in), optional:: r(:)
74 real(DP), intent(in), optional:: d(:)
75 logical, intent(in), optional:: L(:)
76 character(*), intent(in), optional:: c1, c2, c3
77 character(*), intent(in), optional:: ca(:)
78 integer, intent(in), optional:: maxlen
79 integer:: out_len
80 continue
81 call printf(result, fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
82 if (present(maxlen)) then
83 out_len = max(0, min(len(result), maxlen))
84 if (out_len == 0) then
85 result = ''
86 else if (out_len < len(result)) then
87 result = result(1:out_len)
88 end if
89 end if
Handling character types.
Definition dc_string.f90:83
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public string
Character length for string
Definition dc_types.f90:137
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:82

References dc_types::dp, dc_types::sp, and dc_types::string.

◆ dcstringcprintft()

character(len = token) function dcstringcprintft ( character(*), intent(in) fmt,
integer, dimension(:), intent(in), optional i,
real(sp), dimension(:), intent(in), optional r,
real(dp), dimension(:), intent(in), optional d,
logical, dimension(:), intent(in), optional l,
integer, dimension(:), intent(in), optional n,
character(*), intent(in), optional c1,
character(*), intent(in), optional c2,
character(*), intent(in), optional c3,
character(*), dimension(:), intent(in), optional ca,
integer, intent(in), optional maxlen )

Definition at line 92 of file dcstringcprintf.f90.

93
94 use dc_types, only: string, token, dp, sp
95 use dc_string, only: cprintf
96 implicit none
97 character(len = TOKEN):: result
98 character(*), intent(in):: fmt
99 integer, intent(in), optional:: i(:), n(:)
100 real(SP), intent(in), optional:: r(:)
101 real(DP), intent(in), optional:: d(:)
102 logical, intent(in), optional:: L(:)
103 character(*), intent(in), optional:: c1, c2, c3
104 character(*), intent(in), optional:: ca(:)
105 integer, intent(in), optional:: maxlen
106 character(len = STRING):: tmp
107 integer:: out_len
108 continue
109 if (present(maxlen)) then
110 tmp = cprintf(fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca, maxlen=maxlen)
111 out_len = max(0, min(len(result), maxlen))
112 else
113 tmp = cprintf(fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
114 out_len = len(result)
115 end if
116 result = ''
117 if (out_len > 0) then
118 result(1:out_len) = tmp(1:out_len)
119 end if
integer, parameter, public token
Character length for word, token
Definition dc_types.f90:128

References dc_types::dp, dc_types::sp, dc_types::string, and dc_types::token.