1 /* fun.c == fun.C */ /* anonymous ftp@zebra.desy.de */
2 /* An example from cfortran.h package. Requires fun_f.f */
3 /* Burkhard Burow burow@desy.de 1990 - 1997. */
4
5 #include <stdio.h>
6 #include <stdlib.h> /* EXIT_SUCCESS */
7 #include "cfortran.h"
8
PROTOCCALLSFFUN3(INT,FUNADD,funadd,ROUTINE,INT,INT)9 PROTOCCALLSFFUN3(INT,FUNADD,funadd,ROUTINE,INT,INT)
10 #define FUNADD(F,A,B) CCALLSFFUN3(FUNADD,funadd, ROUTINE, INT, INT, F, A, B)
11
12 int Cadd(int a, int b) {return a+b;}
FCALLSCFUN2(INT,Cadd,CADD,cadd,INT,INT)13 FCALLSCFUN2(INT,Cadd,CADD,cadd, INT, INT)
14
15 /* Want fadd to be prototyped, though don't need the wrapper that is created. */
16 PROTOCCALLSFFUN2(INT,FADD,fadd,INT,INT)
17
18 main() {
19
20 printf("\nFUNADD(CADD,1,2) returns %d\n",
21 FUNADD( C_FUNCTION(CADD,cadd),1,2) );
22 printf("\nFUNADD(FADD,3,4) returns %d\n",
23 FUNADD(FORTRAN_FUNCTION(FADD,fadd),3,4) );
24 return EXIT_SUCCESS;
25 }
26