3 ! Test the fix for the testcase in comment 24 of PR96320, which used to
4 ! fail with the message: ‘set_user_defined’ must be a module procedure or
5 ! an external procedure with an explicit interface at (1)
7 ! Contributed by Damian Rouson <damian@sourceryinstitute.org>
11 integer :: user_defined
14 procedure set_user_defined
15 procedure set_diameter
19 module subroutine set_diameter (this
, diameter
)
24 module subroutine set_user_defined(this
, user_defined
)
26 integer :: user_defined
31 module procedure set_user_defined
32 this
%user_defined
= user_defined
35 module procedure set_diameter
36 this
%hole_diameter
= diameter
37 if (this
%user_defined
.lt
. 0) then
38 call this
%set_user_defined (0)
43 use hole_interface
! Error was here
44 type (hole_t
) :: ht
= hole_t (-1, 0.0)
45 call ht
%set_diameter(1.0)
46 if ((ht
%user_defined
.ne
. 0) .and
. (ht
%hole_diameter
.ne
. 1.0)) stop 1
47 call ht
%set_user_defined (5)
48 if ((ht
%user_defined
.ne
. 5) .and
. (ht
%hole_diameter
.ne
. 1.0)) stop 2
49 call ht
%set_diameter(2.0)
50 if ((ht
%user_defined
.ne
. 5) .and
. (ht
%hole_diameter
.ne
. 2.0)) stop 3