/* File:      mie_dlm_single.h
 * Purpose:   Header for mie_dlm_single.c
 * Author:    Gareth Thomas
 * Version:   1.0
 * Date:      March 2005 */

#ifndef IDL_C_miesingle
#define IDL_C_miesingle

/* Message Numbers */
#define mie_single_ERROR         0
#define mie_single_NOSTRINGARRAY    -1

/* Useful macro */
#define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0]))

extern IDL_MSG_BLOCK msg_block;

/* Define the startup function that adds C functions to IDL
 * along with the exit handler */

/* IDL-Postres interface */
extern void mie_single_exit_handler(void);
extern int  mie_single_Startup(void);

/* Define the wrapper function which calls the fortran function */
extern void IDL_CDECL mie_dlm_single(int argc, IDL_VPTR argv[], char *argk);
extern void mieint_(const double *Dx, const IDL_DCOMPLEX *Cm, const IDL_LONG *inp, 
                    const double *Dqv, double *Qext, double *Qsca, double *g, double *Qbsc, 
		    IDL_DCOMPLEX *S1, IDL_DCOMPLEX *S2, double *Phase,  IDL_LONG *mie_ok);