Hello. C: function implementation
------------------------------------------------------------
# Include <stdio. h>
# Ifdef PGI // use the-dpgi option to define the macro PGI during compilation
Void Hello _ (int * num, char * Name) // called in FORTRAN. Note that pointer should be used for parameters. Here, the function name must be written as Hello _, with an underscore at the end.
# Else
Void Hello (int * num, char * Name) // calls in C
# Endif
{
Printf ("Hello: % d, % s \ n", * num, name );
}
------------------------------------------------------------
Fhello. F: provides the Fortran Interface
------------------------------------------------------------
Subroutine fhello (Num, name)
Call Hello (Num, name )! Call the hello _ FUNCTION encapsulated in C. Pay attention to the underline function.
End
------------------------------------------------------------
Makefile: Compile
------------------------------------------------------------
Test:
F77 test. F-L./lib-lftest
F:
Gcc-C-FPIC-dpgi hello. C # define the macro PGI for normal Compilation
F77-C-FPIC fhello. f
Ar-r lib/libftest. A hello. O fhello. o
Clean:
Rm-f *. o
------------------------------------------------------------
Test. F: test the function.
------------------------------------------------------------
Call fhello (2, 'zkl ')
End
------------------------------------------------------------