Liste des Groupes | Revenir à cl fortran |
On 11/11/2024 10:40 PM, Lynn McGuire wrote:850,000 lines of code in a single file ? That would be a mess.On 11/12/2024 12:06 AM, baf wrote: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").On 11/11/2024 7:57 PM, Lynn McGuire wrote:>On 11/11/2024 4:35 PM, Lynn McGuire wrote: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 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
>
>
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
>
Les messages affichés proviennent d'usenet.