DLM keyword processing [message #41242] |
Thu, 14 October 2004 04:53 |
Haje Korth
Messages: 651 Registered: May 1997
|
Senior Member |
|
|
Good morning everyone,
I am working on a DLM project and have some trouble with the keyword
processing. Below is the relevant code that results in my problem, which is:
I want to call the routine from IDL as "geopack_recalc,tilt=xxx", so that
xxx=999.0d on exit. This works fine if I define xxx before the call (e.g.,
xxx=0). Is there a way to avoid having to define xxx before the call? This
is an output keyword only, so there should not be a need to set the variable
before the call. Does anyone know how to do this?
Thanks for your help,
Haje
void IDL_CDECL geopack_recalc(int argc, IDL_VPTR argv[], char *argk)
{
extern init;
typedef struct {
IDL_KW_RESULT_FIRST_FIELD;
IDL_VPTR tilt;
} KW_RESULT;
static IDL_KW_PAR kw_pars[] = { IDL_KW_FAST_SCAN,
{"TILT" ,IDL_TYP_UNDEF,1,IDL_KW_OUT|IDL_KW_ZERO,0,IDL_KW_OFFSETOF(ti lt)},
{NULL}
};
KW_RESULT kw;
double tilt;
IDL_ALLTYPES itilt;
IDL_KWProcessByOffset(argc,argv,argk,kw_pars,0,1,&kw);
tilt=999.0;
if (kw.tilt) {
itilt.d=tilt;
IDL_StoreScalar(kw.tilt, IDL_TYP_DOUBLE, &itilt);
}
init=1;
IDL_KW_FREE;
}
|
|
|