gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcstringcprintf.f90
Go to the documentation of this file.
1! -*- mode: f90; coding: utf-8 -*-
2!-----------------------------------------------------------------------
3! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
4!-----------------------------------------------------------------------
23
65function dcstringcprintf(fmt, i, r, d, L, n, c1, c2, c3, ca, maxlen) result(result)
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
90end function dcstringcprintf
91
92function dcstringcprintft(fmt, i, r, d, L, n, c1, c2, c3, ca, maxlen) result(result)
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
120end function dcstringcprintft
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)
Handling character types.
Definition dc_string.f90:83
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public sp
Single Precision Real number.
Definition dc_types.f90:82
integer, parameter, public token
Character length for word, token
Definition dc_types.f90:128
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92
integer, parameter, public string
Character length for string
Definition dc_types.f90:137