Deutsch   English   Français   Italiano  
<vh0el9$1p78j$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Lynn McGuire <lynnmcguire5@gmail.com>
Newsgroups: comp.lang.fortran
Subject: Re: I am getting a strange error when compiling abcpar.f in gfortran
Date: Tue, 12 Nov 2024 14:43:20 -0600
Organization: A noiseless patient Spider
Lines: 86
Message-ID: <vh0el9$1p78j$1@dont-email.me>
References: <vgu0rm$16rop$1@dont-email.me> <vgujmr$1dl89$1@dont-email.me>
 <lpg9ioF8j1eU1@mid.individual.net> <vgut91$1fga5$1@dont-email.me>
 <lphq4tFfkg7U1@mid.individual.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 12 Nov 2024 21:43:22 +0100 (CET)
Injection-Info: dont-email.me; posting-host="e65e33b4f0c03cfa18bf3263781018f9";
	logging-data="1875219"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19tMBfEgxvIvO6z/9QQdMgrnavpMpSaUes="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:MaXidqi2WXe1dvb8N4NxXqwbms8=
In-Reply-To: <lphq4tFfkg7U1@mid.individual.net>
Content-Language: en-US
Bytes: 4257

On 11/12/2024 1:55 PM, baf wrote:
> 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").

850,000 lines of code in a single file ?  That would be a mess.

Lynn