home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.fortran      Putting John Backus on a giant pedestal      5,127 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 4,838 of 5,127   
   baf to Lynn McGuire   
   Re: I am getting a strange error when co   
   12 Nov 24 11:55:10   
   
   From: baf@nowhere.com   
      
   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").   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca