Date: Thu, 11 Jul 2013 18:39:18 +0100 (BST) From: Anton Shterenlikht <mexas@bris.ac.uk> To: mexas@bristol.ac.uk, sgk@troutmask.apl.washington.edu Cc: fortran@freebsd.org Subject: Re: gfortran46: Error: Type of argument 'z' in call to 'dimag' at (1) should be COMPLEX(16), not COMPLEX(8) Message-ID: <201307111739.r6BHdI4E089382@mech-cluster241.men.bris.ac.uk> In-Reply-To: <20130711172542.GA67029@troutmask.apl.washington.edu>
index | next in thread | previous in thread | raw e-mail
>From sgk@troutmask.apl.washington.edu Thu Jul 11 18:32:18 2013 >On Thu, Jul 11, 2013 at 09:09:22AM +0100, Anton Shterenlikht wrote: >> From sgk@troutmask.apl.washington.edu Thu Jul 11 02:17:08 2013 >> >>On Thu, Jul 11, 2013 at 12:15:28AM +0100, Anton Shterenlikht wrote: >>> These errors are from french/aster on amd64. >>> I think I need to rebuld lang/gcc after the >>> recent updates to binutils, but anyway, >>> which command line options to gfortran46 >>> would lead to this error? >>> >>> These routines are GNU extensions specifically for complex(8), >>> e.g.: http://gcc.gnu.org/onlinedocs/gcc-4.6.4/gfortran/AIMAG.html#AIMAG >>> >>> Messages de compilation >>> ======================= >>> /usr/ports/french/aster/work/aster-full-src-10.8.0/instdir/\ >>> STA10.8/bibfor/algeline/dcargu.f:34.18: >>> >>> IF (DIMAG(C).GT.0.D0) THEN >>> 1 >>> Error: Type of argument 'z' in call to 'dimag' at (1) should >>> be COMPLEX(16), not COMPLEX(8) >> >>Need to see the declaration for C. My guess is that it is declared >>as 'complex c' or 'complex*8 c'. In either case, this is the single >>precision complex type. The program is using the specific intrinsic >>function dimag, which expects a double precision complex argument. >> >>The correct fixes are to properly declare the variables via Fortran's >>kind type parameter and to use generic intrinsic functions. > >Please fix the quoting mechanism of your email client to >NOT use tab characters. It leads to alot of wasted screen >real estate. as you wish... I use mail(1). I wonder why its developers thought that tab is a good default. > >>$ cat dcargu.f >> FUNCTION DCARGU(C) >> IMPLICIT REAL*8 (A-H,O-Z) >> REAL*8 DCARGU >> COMPLEX*16 C > >> IF (DIMAG(C).GT.0.D0) THEN > >I suspect you are being hit by -fdefault-real-8 or >similar option. If this is the case, you may want >to ask the ASTER developers if they know what that >option actually does. That's what I thought. I'll find exactly what options they use. Thanks Antonhelp
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307111739.r6BHdI4E089382>
