[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Getting BIG structures into IDL via CALL_EXTERNAL



Hello all,

I am trying to pass an array of structures (which are very large) into
IDL.  The structure does contains strings; how should I pass them?
(i.e. do I have to use IDL_STRING and if so, how?)  The dimensions and
format of each structure is:

struct atheader
{
    /* 8 strings, for a total of 160 bytes */
    char runlabl[16], acomment[72], afilter[4], source[12];
    char obsloc[12], detector[8], cspare1[32], forrev[4];

    /* 30 integers, Bytes 160-279 */
    int jspare1[6], dataqual, dataymd, datatape, goddsect;
    int aalias, mxpptloc, numint, lastmod, afring, indzpd;
    int afftsiz, comgain, afirst, numprim, hdrrno, losamp1;
    int losamp2, sclfct, ippver, avgver, ratver, thid, thver, thymd;

    /* 50 floats, Bytes 280-479 */
    float step, inrelhum, intemp, inpres, spmaxval, rspare1, zpdgmt;
    float intsym, phassym, noise, obsalt, solzen, tanht, latitude;
    float longtude, tanpres, preserr, gainrat, intfmax, intsumsq;
    float spesumsq, specarea, intnoise, spmaxfrq, arzero, spsumval;
    float exttemp, extpres, exthum, fovmag, extfov, angmslgn, pointoff;
    float scdopp, tplat, tplon, rspare3[14];

    /* 4 doubles, Bytes 480-512 */
    double lasemfrq, wifact, dspare1[2];
};

Has anyone tried to do such a thing?  I have it all working very nicely in
C but I am having some troubles getting the data into IDL.  Is it possible
even to get an array of structures into IDL in one operation?  The IDL
manual does give an example of passing an array into IDL...  

Any and all help is greatly appreciated!
Randall