1 ! Like char_result_1.f90, but the string arguments are pointers.
3 pure
function double (string
)
4 character (len
= *), intent (in
) :: string
5 character (len
= len (string
) * 2) :: double
6 double = string
// string
10 character (len
= *), pointer :: string
11 character (len
= len (string
)) :: f1
15 function f2 (string1
, string2
)
16 character (len
= *), pointer :: string1
17 character (len
= len (string1
) - 20), pointer :: string2
18 character (len
= len (string1
) + len (string2
) / 2) :: f2
26 pure
function double (string
)
27 character (len
= *), intent (in
) :: string
28 character (len
= len (string
) * 2) :: double
31 character (len
= *), pointer :: string
32 character (len
= len (string
)) :: f1
34 function f2 (string1
, string2
)
35 character (len
= *), pointer :: string1
36 character (len
= len (string1
) - 20), pointer :: string2
37 character (len
= len (string1
) + len (string2
) / 2) :: f2
42 character (len
= 80) :: text
43 character (len
= 70), target
:: textt
44 character (len
= 70), pointer :: textp
49 call test (f1 (textp
), 70)
50 call test (f2 (textp
, textp
), 95)
51 call test (f3 (textp
), 105)
52 call test (f4 (textp
), 192)
53 call test (f5 (textp
), 140)
54 call test (f6 (textp
), 29)
59 integer, parameter :: l1
= 30
60 character (len
= *), pointer :: string
61 character (len
= len (string
) + l1
+ 5) :: f3
66 character (len
= len (text
) - 10), pointer :: string
67 character (len
= len (string
) + len (text
) + a
) :: f4
72 character (len
= *), pointer :: string
73 character (len
= len (double (string
))) :: f5
78 character (len
= *), pointer :: string
79 character (len
= len (string (a
:))) :: f6
83 subroutine indirect (textp2
)
84 character (len
= 50), pointer :: textp2
86 call test (f1 (textp
), 70)
87 call test (f2 (textp
, textp
), 95)
88 call test (f3 (textp
), 105)
89 call test (f4 (textp
), 192)
90 call test (f5 (textp
), 140)
91 call test (f6 (textp
), 29)
93 call test (f1 (textp2
), 50)
94 call test (f2 (textp2
, textp
), 65)
95 call test (f3 (textp2
), 85)
96 call test (f4 (textp2
), 192)
97 call test (f5 (textp2
), 100)
98 call test (f6 (textp2
), 9)
99 end subroutine indirect
101 subroutine test (string
, length
)
102 character (len
= *) :: string
103 integer, intent (in
) :: length
104 if (len (string
) .ne
. length
) call abort