1#include <stdio.h> 2 3void sub0(void); 4void c_sub0(void (*sub)(void)); 5void c_sub1(int (*func)(int)); 6 7extern void abort(void); 8 9int main(int argc, char **argv) 10{ 11 printf("hello from C main\n"); 12 13 sub0(); 14 return 0; 15} 16 17void c_sub0(void (*sub)(void)) 18{ 19 printf("hello from c_sub0\n"); 20 sub(); 21 22 return; 23} 24 25void c_sub1(int (*func)(int)) 26{ 27 int retval; 28 29 printf("hello from c_sub1\n"); 30 31 retval = func(10); 32 if(retval != 10) 33 { 34 fprintf(stderr, "Fortran function did not return expected value!\n"); 35 abort(); 36 } 37 38 return; 39} 40