Deutsch English Français Italiano |
<lphq4tFfkg7U1@mid.individual.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!3.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: baf <baf@nowhere.com> Newsgroups: comp.lang.fortran Subject: Re: I am getting a strange error when compiling abcpar.f in gfortran Date: Tue, 12 Nov 2024 11:55:10 -0800 Lines: 81 Message-ID: <lphq4tFfkg7U1@mid.individual.net> References: <vgu0rm$16rop$1@dont-email.me> <vgujmr$1dl89$1@dont-email.me> <lpg9ioF8j1eU1@mid.individual.net> <vgut91$1fga5$1@dont-email.me> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net y7k9PsKnPqCQ7pC0TBAKbgaHocDlXM9HgwCQVeaDr2bCKRP8vn Cancel-Lock: sha1:0mck6iMwfZWhtrGACcAfvm001+M= sha256:BnTk5khuZI5TVDhP+6dO7PfIZsml02bPevuBWo6V+70= User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: <vgut91$1fga5$1@dont-email.me> Bytes: 3765 On 11/11/2024 10:40 PM, Lynn McGuire wrote: > On 11/12/2024 12:06 AM, baf wrote: >> On 11/11/2024 7:57 PM, Lynn McGuire wrote: >>> 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 >>> >>> >> If all of your general purpose subroutines and functions are in >> modules, you don't need interfaces for them (one of the advantages of >> modules). > > I have 6,000 subroutines in 5,000 files. All I did was put interfaces > for about 2,600 of the subroutines into a single module. > > Lynn > A better alternative would be to put the subroutines in the module and USE the module. Then you don't need the interfaces (the compiler gets all of the interface information "automagically").