Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lynn McGuire Newsgroups: comp.lang.fortran Subject: Re: I am getting a strange error when compiling abcpar.f in gfortran Date: Mon, 11 Nov 2024 21:57:15 -0600 Organization: A noiseless patient Spider Lines: 65 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 12 Nov 2024 04:57:15 +0100 (CET) Injection-Info: dont-email.me; posting-host="e65e33b4f0c03cfa18bf3263781018f9"; logging-data="1496329"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/rdfyumfF2CjTxhc6Ji27YuTL65DBd23c=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:yypAwiAciH/QgJ+jXQSB28X3z0Y= In-Reply-To: Content-Language: en-US Bytes: 3018 On 11/11/2024 4:35 PM, Lynn McGuire wrote: > I am getting a strange error when compiling abcpar.f in gfortran: > > > Compiling .\CHM\VALIEQ\abcpar.f > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - > dii.inc:30:10: > Error: 'abcpar' of module 'aaa_modules', imported at (1), is also the > name of the current program unit > Error: Last command making (build\abcpar.o) returned a bad status > Error: Make execution terminated > * Failed * > > > C     aaa_modules.f > C  list of interfaces in a module for CHM / DII code compiling >       MODULE aaa_modules >           implicit none >           INTERFACE >             SUBROUTINE ABCPAR(ISW,IRETST,IR,IC,PAR,IPHASE) >               INTEGER(KIND=8) :: ISW >               INTEGER(KIND=8) :: IRETST >               INTEGER(KIND=8) :: IR >               INTEGER(KIND=8) :: IC >               REAL(KIND=8) :: PAR >               INTEGER(KIND=8) :: IPHASE >             END SUBROUTINE ABCPAR >           END INTERFACE > ... >       END MODULE aaa_modules > > >       SUBROUTINE ABCPAR (ISW, IRETST, IR, IC, PAR, IPHASE) >       INCLUDE 'dii.inc' > ... >       return >       end > > > C  dii.inc >       use aaa_modules > C        force all variables to be declared >       implicit none > > > Thanks, > Lynn McGuire Apparently, the current subroutine being compiled cannot have an interface in the module being USEd. The Metcalf Fortran 95 book says that I can exempt the current subroutine from the USE by: USE module_name, exempt_this_one => name where name is the name of current subroutine or function without the file suffix and without the path. I just need a way to generalize the name and __FILE__ does not work. Lynn