I was able run the file 'compile.m' successfully. However when I call the following function
c = cdi_varlist(filename,[]);
I get the following
error: cdi_varlist: No such file or directory
Although I'm pretty sure the file name and path is correct. I identified the error coming from the file cdi_mx.c at the following line
streamID = streamOpenRead(szInputFilename);
So basically 'streamOpenRead' cannot open my file although the path and the name are correct. I tried with and without the file extension (.grb). Also, no capabilities to read the contents of the file (e.g. \private\...) are actually required.
In 64-bit systems:
Be sure to compile netcdi, and cdf libraries with -fPIC enabled.
In newer versions of MATLAB: open cdi_mx.c and replace the obsolete function mxErrMsgIdAndTxt with something else (or just comment out). I succesfully used mexprintf instead.
this package didn't compile in Matlab R2009b and R2010a with following error:
>> compile
COMPILING cdi_varlist...
cdi_mx.c: In function ‘getLevel’:
cdi_mx.c:431: warning: incompatible implicit declaration of built-in function ‘modf’
cdi_mx.o: In function `readmeta':
cdi_mx.c:(.text+0x1457): undefined reference to `mxErrMsgIdAndTxt'
cdi_mx.c:(.text+0x14e3): undefined reference to `mxErrMsgIdAndTxt'
collect2: ld returned 1 exit status
mex: link of ' "cdi_varlist.mexa64"' failed.
??? Error using ==> mex at 221
Unable to complete successfully.
Error in ==> compile at 15
mex cdi_varlist.c cdi_mx.c -Iinclude -Llib64 -lcdi -lnetcdf