| ! { dg-do compile } |
| ! |
| ! PR fortran/39427 |
| ! |
| ! Check constructor functionality. |
| ! |
| ! Contributed by Damian Rouson. |
| ! |
| module mycomplex_module |
| private |
| public :: mycomplex |
| type mycomplex |
| ! private |
| real :: argument, modulus |
| end type |
| interface mycomplex |
| module procedure complex_to_mycomplex, two_reals_to_mycomplex |
| end interface |
| ! : |
| contains |
| type(mycomplex) function complex_to_mycomplex(c) |
| complex, intent(in) :: c |
| ! : |
| end function complex_to_mycomplex |
| type(mycomplex) function two_reals_to_mycomplex(x,y) |
| real, intent(in) :: x |
| real, intent(in), optional :: y |
| ! : |
| end function two_reals_to_mycomplex |
| ! : |
| end module mycomplex_module |
| ! : |
| program myuse |
| use mycomplex_module |
| type(mycomplex) :: a, b, c |
| ! : |
| a = mycomplex(argument=5.6, modulus=1.0) ! The structure constructor |
| c = mycomplex(x=0.0, y=1.0) ! A function reference |
| c = mycomplex(0.0, 1.0) ! A function reference |
| end program myuse |