Rows and columns between C and Fortran are switched.
Fortran calls C
C calls Fortran
REAL Q(10,20) ... Q(3,5) = 1.0 CALL FIXQ(Q) ... ------------------------------ void fixq_( float a[20][10] ) { ... a[5][3] = a[5][3] + 1.; ... }
extern void qref_( int[][10], int *); ... int m[20][10] = ... ; int sum; ... qref_( m, &sum ); ... ------------------------------ SUBROUTINE QREF(A,TOTAL) INTEGER A(10,20), TOTAL DO I = 1,10 DO J = 1,20 TOTAL = TOTAL + A(I,J) END DO END DO ...