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