1 /* ft.c == ft.C */             /* anonymous ftp@zebra.desy.de */
2 /* An example from cfortran.h package. Requires ft_f.f        */
3 /* Burkhard Burow  burow@desy.de                 1990 - 1997. */
4 
5 #include <stdio.h>
6 #include <stdlib.h>    /* EXIT_SUCCESS */
7 #ifndef EXIT_SUCCESS
8 #define EXIT_SUCCESS 0
9 #endif
10 #include "cfortran.h"
11 
12 /* FORTRAN_REAL, instead of float, is only required for CRAY T3E.             */
13 
PROTOCCALLSFFUN3(STRING,FT,ft,PSTRINGV,STRINGV,FLOAT)14 PROTOCCALLSFFUN3(STRING,FT,ft, PSTRINGV, STRINGV, FLOAT)
15 #define FT(A,B,C) CCALLSFFUN3(FT,ft, PSTRINGV, STRINGV, FLOAT, A, B, C)
16 
17 main() {
18 static char v[][5] = {"000 ", "1", "22", " "};
19 static char w[][9]  = {" ", "bb","ccc ","dddd"};
20 FORTRAN_REAL a = 10.0;
21 printf("FT(v, w, a); returns:%s.\n",FT(v, w, a));
22 printf("main:v=%s,%s,%s,%s. PSTRINGV => Has had trailing blanks stripped.\n",
23        v[0],v[1],v[2],v[3]);
24 printf("main:w=%s,%s,%s,%s. STRINGV => malloc'd copy for FORTRAN=> C intact.\n"
25        ,w[0],w[1],w[2],w[3]);
26 return EXIT_SUCCESS;
27 }
28