Liste des Groupes | Revenir à cl fortran |
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:Apparently, the current subroutine being compiled cannot have an interface in the module being USEd.
>
>
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
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
Les messages affichés proviennent d'usenet.