program rufe_C integer :: a, b a = 2 b = 3 write(*,'(A,I2," ",I2/)',ADVANCE='NO') " Vor dem Tausch: ", a, b call tausche(a, b) write(*,'(A,I2," ",I2)',ADVANCE='NO') "Nach dem Tausch: ", a, b end program rufe_C |
void tausche(int * a, int * b) { int temp; temp = *a; *a = *b; *b = temp; } |
/* Interface f90 <-> c */ /* tausche_f90_c.c */ void tausche_( int *a, int *b) { tausche(a,b); } |
F95 = f95 CC = gcc rufe_C: rufe_C.o tausche.o tausche_f90_c.o $(F95) rufe_C.o tausche.o tausche_f90_c.o -o rufe_C tausche.o: tausche.c $(CC) -c tausche.c tausche_f90_c.o: tausche_f90_c.c $(CC) -c tausche_f90_c.c rufe_C.o: rufe_C.f90 $(F95) -c rufe_C.f90 exec: rufe_C ./rufe_C # ------------------------------------------------------------ clean : /bin/rm -rf rufe_C *.o |