I know this is an old thread, but I just wanted to thank the original authors. I too am building a labView interface to some old FORTRAN legacy code and was having a lot of problems with passing arrays. Thanks to this thread, it now seems to work.
The keys are;
Preallocate the arrays with the initialize array block (this is what I was missing)
Calling Conventions: C
Parameter type: Array
Array Format: Array Data Pointer
Don't forget the CDEC$ directive in the source code (see below)
I am using COMPAQ Digital FORTRAN Version 6.6.
Thanks again,
Mark
SUBROUTINE transArray(MYARRAY)
CDEC$ ATTRIBUTES DLLEXPORT:: transArray
REAL MYARRAY(1000)
INTEGER I
DO I=1,999,2
MYARRAY(I)=1.0
MYARRAY(I+1)=2.0
END DO
RETURN
END