From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25000 invoked by alias); 1 Dec 2014 20:13:49 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 24952 invoked by uid 48); 1 Dec 2014 20:13:45 -0000 From: "wong.david-c at epa dot gov" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/64138] gfortran interface issue Date: Mon, 01 Dec 2014 20:13:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 4.9.3 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: wong.david-c at epa dot gov X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-12/txt/msg00145.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64138 --- Comment #3 from david --- (In reply to david from comment #0) > Hi, > > I have created a complex number module: > > module complex_number_module > implicit none > > integer, parameter :: loc_real_precision = 8 > > type complex_number > real(kind=loc_real_precision) :: real_part, imag_part > end type complex_number > > interface c_sub > module procedure c_sub_cc, & ! z1 - z2 > c_sub_cr, & ! z1 - num, where num is a > real number > c_sub_rc ! num - z1, where num is a > real number > end interface > > ! -------------------------------------------------------------------------- > type (complex_number) function c_sub_cc (z1, z2) > > type (complex_number), intent(in) :: z1, z2 > > c_sub_cc%real_part = z1%real_part - z2%real_part > c_sub_cc%imag_part = z1%imag_part - z2%imag_part > > end function c_sub_ccj > > ! -------------------------------------------------------------------------- > type (complex_number) function c_sub_cr (z1, num) > > type (complex_number), intent(in) :: z1 > real(kind=loc_real_precision), intent(in) :: num > > c_sub_cr%real_part = z1%real_part - num > c_sub_cr%imag_part = z1%imag_part > > end function c_sub_cr > > ! -------------------------------------------------------------------------- > type (complex_number) function c_sub_rc (num, z1) > > type (complex_number), intent(in) :: z1 > real(kind=loc_real_precision), intent(in) :: num > > c_sub_rc%real_part = num - z1%real_part > c_sub_rc%imag_part = - z1%imag_part > > end function c_sub_rc > > end module complex_number_module > > When I compile with gfortran (version 4.6.4), I got the following error: > > module_twoway_rrtmg_aero_optical_util.F:14.85: > > c_sub_rc ! num - z1, where num is a real number > 1 > > Error: Ambiguous interfaces 'c_sub_rc' and 'c_sub_cr' in generic interface > 'c_sub' at (1) > > I don't see any ambiguity and I don't encounter any problem with other > compilers such pgi and ifort. Please advise. > > Cheers, > David Hi, I have attached a smaller version of the code and the way I compiled the code is: gfortran -c -ffree-form d.F Thanks, David