/* f2c.h  --  Standard Fortran to C header file */

/**  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."

	- From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */

#ifndef F2C_INCLUDE
#define F2C_INCLUDE

#define BYTE_SWAP_IO

#define NO_ANSI_FLOAT

#ifdef __IN_OMNI_COMPILE__

#include "exc_platform.h"
#ifdef ENABLE_QREAL
#include "omniQReal.h"
#endif /* ENABLE_QREAL */
#ifndef NO_IEEEFP_H
#include <ieeefp.h>
#endif /* !NO_IEEEFP_H */

#else

#if ((defined(__STDC__) || defined(SABER)) && !defined(NO_PROTOTYPE)) || defined(__cplusplus) || defined(USE_PROTOTYPE) || defined(__USE_FIXED_PROTOTYPES__)
#define _USING_PROTOTYPES_ 1
#define _ANSI_ARGS_(x) x
#else
#define _ANSI_ARGS_(x) ()
#endif /* __STDC__ ||.... */

#if defined(__STDC__) || defined(HAVE_STDARG_H)
#   include <stdarg.h>
#   define EXC_VARARGS(type, name) (type name, ...)
#   define EXC_VARARGS_DEF(type, name) (type name, ...)
#   define EXC_VARARGS_START(type, name, list) (va_start(list, name), name)
#else
#   include <varargs.h>
#   ifdef __cplusplus
#       define EXC_VARARGS(type, name) (type name, ...)
#       define EXC_VARARGS_DEF(type, name) (type va_alist, ...)
#   else
#       define EXC_VARARGS(type, name) ()
#       define EXC_VARARGS_DEF(type, name) (va_alist)
#   endif
#   define EXC_VARARGS_START(type, name, list) \
        type name = (va_start(list), va_arg(list, type))
#endif

#endif /* __IN_OMNI_COMPILE__ */

#include <math.h>

#ifdef NO_ANSI_FLOAT
#define _ANSI_ARGS_FLOAT_(x)	()
#else
#define _ANSI_ARGS_FLOAT_(x)	_ANSI_ARGS_(x)
#endif /* NO_ANSI_FLOAT */

#ifndef _USING_PROTOTYPES_
#define KR_headers
#endif /* !_USING_PROTOTYPES_ */

#ifndef STDC_HEADERS
#define NON_ANSI_STDIO
#endif /* !STDC_HEADERS */

#ifdef OMNI_OS_LINUX
#define NON_UNIX_STDIO
#endif /* OMNI_OS_LINUX */

#if (SIZEOF_UNSIGNED_INT == SIZEOF_UNSIGNED_LONG)
#define LONG_AS_INT
#endif /* SIZEOF_UNSIGNED_INT == SIZEOF_UNSIGNED_LONG */

#ifdef LONG_AS_INT
typedef long int integer;
typedef unsigned long uinteger;
typedef long int logical;
#else
typedef int integer;
typedef unsigned int uinteger;
typedef int logical;
#endif /* LONG_AS_INT */

typedef char *address;
typedef short int shortint;
typedef float real;
typedef double doublereal;
typedef struct { real r, i; } complex;
typedef struct { doublereal r, i; } doublecomplex;
typedef short int shortlogical;
typedef char logical1;
typedef char integer1;

typedef @TYPE_INT64@ longint;		/* system-dependent */
typedef unsigned @TYPE_INT64@ ulongint;	/* system-dependent */
#define qbit_clear(a,b)	((a) & ~((ulongint)1 << (b)))
#define qbit_set(a,b)	((a) |  ((ulongint)1 << (b)))

#define TRUE_ (1)
#define FALSE_ (0)

/* Extern is for use with -E */
#ifndef Extern
#define Extern extern
#endif

/* I/O stuff */
#ifdef LONG_AS_INT
typedef long int flag;
typedef long int ftnlen;
typedef long int ftnint;
#else
typedef int flag;
typedef int ftnlen;
typedef int ftnint;
#endif /* LONG_AS_INT */

/*external read, write*/
typedef struct
{	flag cierr;
	ftnint ciunit;
	flag ciend;
	char *cifmt;
	ftnint cirec;
} cilist;

/*internal read, write*/
typedef struct
{	flag icierr;
	char *iciunit;
	flag iciend;
	char *icifmt;
	ftnint icirlen;
	ftnint icirnum;
} icilist;

/*open*/
typedef struct
{	flag oerr;
	ftnint ounit;
	char *ofnm;
	ftnlen ofnmlen;
	char *osta;
	char *oacc;
	char *ofm;
	ftnint orl;
	char *oblnk;
} olist;

/*close*/
typedef struct
{	flag cerr;
	ftnint cunit;
	char *csta;
} cllist;

/*rewind, backspace, endfile*/
typedef struct
{	flag aerr;
	ftnint aunit;
} alist;

/* inquire */
typedef struct
{	flag inerr;
	ftnint inunit;
	char *infile;
	ftnlen infilen;
	ftnint	*inex;	/*parameters in standard's order*/
	ftnint	*inopen;
	ftnint	*innum;
	ftnint	*innamed;
	char	*inname;
	ftnlen	innamlen;
	char	*inacc;
	ftnlen	inacclen;
	char	*inseq;
	ftnlen	inseqlen;
	char 	*indir;
	ftnlen	indirlen;
	char	*infmt;
	ftnlen	infmtlen;
	char	*inform;
	ftnint	informlen;
	char	*inunf;
	ftnlen	inunflen;
	ftnint	*inrecl;
	ftnint	*innrec;
	char	*inblank;
	ftnlen	inblanklen;
} inlist;

#define VOID void

union Multitype {	/* for multiple entry points */
	integer1 g;
	shortint h;
	integer i;
	/* longint j; */
	real r;
	doublereal d;
	complex c;
	doublecomplex z;
	};

typedef union Multitype Multitype;

/*typedef long int Long;*/	/* No longer used; formerly in Namelist */

struct Vardesc {	/* for Namelist */
	char *name;
	char *addr;
	ftnlen *dims;
	int  type;
	};
typedef struct Vardesc Vardesc;

struct Namelist {
	char *name;
	Vardesc **vars;
	int nvars;
	};
typedef struct Namelist Namelist;

#ifdef abs
#undef abs
#endif /* abs */
#define abs(x) ((x) >= 0 ? (x) : -(x))
#define dabs(x) (doublereal)abs(x)
#define min(a,b) ((a) <= (b) ? (a) : (b))
#define max(a,b) ((a) >= (b) ? (a) : (b))
#define dmin(a,b) (doublereal)min(a,b)
#define dmax(a,b) (doublereal)max(a,b)
#define bit_test(a,b)	((a) >> (b) & 1)
#define bit_clear(a,b)	((a) & ~((uinteger)1 << (b)))
#define bit_set(a,b)	((a) |  ((uinteger)1 << (b)))

/* procedure parameter types for -A and -C++ */

#define F2C_proc_par_types 1
#ifdef __cplusplus
typedef int /* Unknown procedure type */ (*U_fp)(...);
typedef shortint (*J_fp)(...);
typedef integer (*I_fp)(...);
typedef real (*R_fp)(...);
typedef doublereal (*D_fp)(...), (*E_fp)(...);
typedef /* Complex */ VOID (*C_fp)(...);
typedef /* Double Complex */ VOID (*Z_fp)(...);
typedef logical (*L_fp)(...);
typedef shortlogical (*K_fp)(...);
typedef /* Character */ VOID (*H_fp)(...);
typedef /* Subroutine */ int (*S_fp)(...);
#else
typedef int /* Unknown procedure type */ (*U_fp)();
typedef shortint (*J_fp)();
typedef integer (*I_fp)();
typedef real (*R_fp)();
typedef doublereal (*D_fp)(), (*E_fp)();
typedef /* Complex */ VOID (*C_fp)();
typedef /* Double Complex */ VOID (*Z_fp)();
typedef logical (*L_fp)();
typedef shortlogical (*K_fp)();
typedef /* Character */ VOID (*H_fp)();
typedef /* Subroutine */ int (*S_fp)();
#endif
/* E_fp is for real functions when -R is not specified */
typedef VOID C_f;	/* complex function */
typedef VOID H_f;	/* character function */
typedef VOID Z_f;	/* double complex function */
typedef doublereal E_f;	/* real function with -R not specified */


/* undef any lower-case symbols that your C compiler predefines, e.g.: */

#ifndef Skip_f2c_Undefs
#undef cray
#undef gcos
#undef mc68010
#undef mc68020
#undef mips
#undef pdp11
#undef sgi
#undef sparc
#undef sun
#undef sun2
#undef sun3
#undef sun4
#undef u370
#undef u3b
#undef u3b2
#undef u3b5
#undef unix
#undef vax
#endif
#endif
/* If you are using a C++ compiler, append the following to f2c.h
   for compiling libF77 and libI77. */

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern int abort_ _ANSI_ARGS_((void));
extern double c_abs _ANSI_ARGS_((complex *));
extern void c_cos _ANSI_ARGS_((complex *, complex *));
extern void c_div _ANSI_ARGS_((complex *, complex *, complex *));
extern void c_exp _ANSI_ARGS_((complex *, complex *));
extern void c_log _ANSI_ARGS_((complex *, complex *));
extern void c_sin _ANSI_ARGS_((complex *, complex *));
extern void c_sqrt _ANSI_ARGS_((complex *, complex *));
extern double d_abs _ANSI_ARGS_((double *));
extern double d_acos _ANSI_ARGS_((double *));
extern double d_asin _ANSI_ARGS_((double *));
extern double d_atan _ANSI_ARGS_((double *));
extern double d_atn2 _ANSI_ARGS_((double *, double *));
extern void d_cnjg _ANSI_ARGS_((doublecomplex *, doublecomplex *));
extern double d_cos _ANSI_ARGS_((double *));
extern double d_cosh _ANSI_ARGS_((double *));
extern double d_dim _ANSI_ARGS_((double *, double *));
extern double d_exp _ANSI_ARGS_((double *));
extern double d_imag _ANSI_ARGS_((doublecomplex *));
extern double d_int _ANSI_ARGS_((double *));
extern double d_lg10 _ANSI_ARGS_((double *));
extern double d_log _ANSI_ARGS_((double *));
extern double d_mod _ANSI_ARGS_((double *, double *));
extern double d_nint _ANSI_ARGS_((double *));
extern double d_prod _ANSI_ARGS_((float *, float *));
extern double d_sign _ANSI_ARGS_((double *, double *));
extern double d_sin _ANSI_ARGS_((double *));
extern double d_sinh _ANSI_ARGS_((double *));
extern double d_sqrt _ANSI_ARGS_((double *));
extern double d_tan _ANSI_ARGS_((double *));
extern double d_tanh _ANSI_ARGS_((double *));
extern double derf_ _ANSI_ARGS_((double *));
extern double derfc_ _ANSI_ARGS_((double *));
extern integer do_fio _ANSI_ARGS_((ftnint *, char *, ftnlen));
extern integer do_lio _ANSI_ARGS_((ftnint *, ftnint *, char *, ftnlen));
extern integer do_uio _ANSI_ARGS_((ftnint *, char *, ftnlen));
extern integer e_rdfe _ANSI_ARGS_((void));
extern integer e_rdue _ANSI_ARGS_((void));
extern integer e_rsfe _ANSI_ARGS_((void));
extern integer e_rsfi _ANSI_ARGS_((void));
extern integer e_rsle _ANSI_ARGS_((void));
extern integer e_rsli _ANSI_ARGS_((void));
extern integer e_rsue _ANSI_ARGS_((void));
extern integer e_wdfe _ANSI_ARGS_((void));
extern integer e_wdue _ANSI_ARGS_((void));
extern integer e_wsfe _ANSI_ARGS_((void));
extern integer e_wsfi _ANSI_ARGS_((void));
extern integer e_wsle _ANSI_ARGS_((void));
extern integer e_wsli _ANSI_ARGS_((void));
extern integer e_wsue _ANSI_ARGS_((void));
extern int ef1asc_ _ANSI_ARGS_((ftnint *, ftnlen *, ftnint *, ftnlen *));
extern integer ef1cmc_ _ANSI_ARGS_((ftnint *, ftnlen *, ftnint *, ftnlen *));
extern double erf _ANSI_ARGS_((double));
extern double erf_ _ANSI_ARGS_((float *));
extern double erfc _ANSI_ARGS_((double));
extern double erfc_ _ANSI_ARGS_((float *));
extern integer f_back _ANSI_ARGS_((alist *));
extern integer f_clos _ANSI_ARGS_((cllist *));
extern integer f_end _ANSI_ARGS_((alist *));
extern void f_exit _ANSI_ARGS_((void));
extern integer f_inqu _ANSI_ARGS_((inlist *));
extern integer f_open _ANSI_ARGS_((olist *));
extern integer f_rew _ANSI_ARGS_((alist *));
extern int flush_ _ANSI_ARGS_((void));
extern void getarg_ _ANSI_ARGS_((integer *, char *, ftnlen));
extern void getenv_ _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern short h_abs _ANSI_ARGS_((short *));
extern short h_dim _ANSI_ARGS_((short *, short *));
extern short h_dnnt _ANSI_ARGS_((double *));
extern short h_indx _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern short h_len _ANSI_ARGS_((char *, ftnlen));
extern short h_mod _ANSI_ARGS_((short *, short *));
extern short h_nint _ANSI_ARGS_((float *));
extern short h_sign _ANSI_ARGS_((short *, short *));
extern short hl_ge _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern short hl_gt _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern short hl_le _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern short hl_lt _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern integer i_abs _ANSI_ARGS_((integer *));
extern integer i_dim _ANSI_ARGS_((integer *, integer *));
extern longint li_dim _ANSI_ARGS_((longint *, longint *));
extern integer i_dnnt _ANSI_ARGS_((double *));
extern integer i_indx _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern integer i_len _ANSI_ARGS_((char *, ftnlen));
extern integer i_mod _ANSI_ARGS_((integer *, integer *));
extern longint li_mod _ANSI_ARGS_((longint *, longint *));
extern integer i_nint _ANSI_ARGS_((float *));
extern integer i_sign _ANSI_ARGS_((integer *, integer *));
extern longint li_sign _ANSI_ARGS_((longint *, longint *));
extern integer iargc_ _ANSI_ARGS_((void));
extern ftnlen l_ge _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern ftnlen l_gt _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern ftnlen l_le _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern ftnlen l_lt _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern void pow_ci _ANSI_ARGS_((complex *, complex *, integer *));
extern double pow_dd _ANSI_ARGS_((double *, double *));
extern double pow_di _ANSI_ARGS_((double *, integer *));
extern short pow_hh _ANSI_ARGS_((short *, shortint *));
extern integer pow_ii _ANSI_ARGS_((integer *, integer *));
extern double pow_ri _ANSI_ARGS_((float *, integer *));
extern void pow_zi _ANSI_ARGS_((doublecomplex *, doublecomplex *, integer *));
extern void pow_zz _ANSI_ARGS_((doublecomplex *, doublecomplex *, doublecomplex *));
extern double r_abs _ANSI_ARGS_((float *));
extern double r_acos _ANSI_ARGS_((float *));
extern double r_asin _ANSI_ARGS_((float *));
extern double r_atan _ANSI_ARGS_((float *));
extern double r_atn2 _ANSI_ARGS_((float *, float *));
extern void r_cnjg _ANSI_ARGS_((complex *, complex *));
extern double r_cos _ANSI_ARGS_((float *));
extern double r_cosh _ANSI_ARGS_((float *));
extern double r_dim _ANSI_ARGS_((float *, float *));
extern double r_exp _ANSI_ARGS_((float *));
extern double r_imag _ANSI_ARGS_((complex *));
extern double r_int _ANSI_ARGS_((float *));
extern double r_lg10 _ANSI_ARGS_((float *));
extern double r_log _ANSI_ARGS_((float *));
extern double r_mod _ANSI_ARGS_((float *, float *));
extern double r_nint _ANSI_ARGS_((float *));
extern double r_sign _ANSI_ARGS_((float *, float *));
extern double r_sin _ANSI_ARGS_((float *));
extern double r_sinh _ANSI_ARGS_((float *));
extern double r_sqrt _ANSI_ARGS_((float *));
extern double r_tan _ANSI_ARGS_((float *));
extern double r_tanh _ANSI_ARGS_((float *));
extern void s_cat _ANSI_ARGS_((char *, char **, integer *, integer *, ftnlen));
extern integer s_cmp _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern void s_copy _ANSI_ARGS_((char *, char *, ftnlen, ftnlen));
extern int s_paus _ANSI_ARGS_((char *, ftnlen));
extern integer s_rdfe _ANSI_ARGS_((cilist *));
extern integer s_rdue _ANSI_ARGS_((cilist *));
extern integer s_rnge _ANSI_ARGS_((char *, integer, char *, integer));
extern integer s_rsfe _ANSI_ARGS_((cilist *));
extern integer s_rsfi _ANSI_ARGS_((icilist *));
extern integer s_rsle _ANSI_ARGS_((cilist *));
extern integer s_rsli _ANSI_ARGS_((icilist *));
extern integer s_rsne _ANSI_ARGS_((cilist *));
extern integer s_rsni _ANSI_ARGS_((icilist *));
extern integer s_rsue _ANSI_ARGS_((cilist *));
extern int s_stop _ANSI_ARGS_((char *, ftnlen));
extern integer s_wdfe _ANSI_ARGS_((cilist *));
extern integer s_wdue _ANSI_ARGS_((cilist *));
extern integer s_wsfe _ANSI_ARGS_((cilist *));
extern integer s_wsfi _ANSI_ARGS_((icilist *));
extern integer s_wsle _ANSI_ARGS_((cilist *));
extern integer s_wsli _ANSI_ARGS_((icilist *));
extern integer s_wsne _ANSI_ARGS_((cilist *));
extern integer s_wsni _ANSI_ARGS_((icilist *));
extern integer s_wsue _ANSI_ARGS_((cilist *));
extern void sig_die _ANSI_ARGS_((char *, int));
extern _omAddrInt_t signal_ _ANSI_ARGS_((integer *, void  (*)(int)));
extern integer system_ _ANSI_ARGS_((char *, ftnlen));
extern double z_abs _ANSI_ARGS_((doublecomplex *));
extern void z_cos _ANSI_ARGS_((doublecomplex *, doublecomplex *));
extern void z_div _ANSI_ARGS_((doublecomplex *, doublecomplex *, doublecomplex *));
extern void z_exp _ANSI_ARGS_((doublecomplex *, doublecomplex *));
extern void z_log _ANSI_ARGS_((doublecomplex *, doublecomplex *));
extern void z_sin _ANSI_ARGS_((doublecomplex *, doublecomplex *));
extern void z_sqrt _ANSI_ARGS_((doublecomplex *, doublecomplex *));

#if 0
extern complex C_const _ANSI_ARGS_FLOAT_((float re, float im));
extern doublecomplex Z_const _ANSI_ARGS_((double re, double im));

extern complex C_add _ANSI_ARGS_((complex a, complex b));
extern complex C_sub _ANSI_ARGS_((complex a, complex b));
extern complex C_neg _ANSI_ARGS_((complex a));
extern complex C_mul _ANSI_ARGS_((complex a, complex b));
extern complex C_div _ANSI_ARGS_((complex a, complex b));

extern doublecomplex Z_add _ANSI_ARGS_((doublecomplex a, doublecomplex b));
extern doublecomplex Z_sub _ANSI_ARGS_((doublecomplex a, doublecomplex b));
extern doublecomplex Z_neg _ANSI_ARGS_((doublecomplex a));
extern doublecomplex Z_mul _ANSI_ARGS_((doublecomplex a, doublecomplex b));
extern doublecomplex Z_div _ANSI_ARGS_((doublecomplex a, doublecomplex b));
#endif

extern complex C_pow_ci _ANSI_ARGS_((complex c, integer i));
extern complex C_pow_cd _ANSI_ARGS_((complex c, doublereal d));
extern complex C_pow_ic _ANSI_ARGS_((integer i, complex c));
extern complex C_pow_dc _ANSI_ARGS_((doublereal d, complex c));
extern complex C_pow_cc _ANSI_ARGS_((complex c0, complex c1));

extern doublecomplex Z_pow_zi _ANSI_ARGS_((doublecomplex z, integer i));
extern doublecomplex Z_pow_zd _ANSI_ARGS_((doublecomplex z, doublereal d));
extern doublecomplex Z_pow_iz _ANSI_ARGS_((integer i, doublecomplex z));
extern doublecomplex Z_pow_dz _ANSI_ARGS_((doublereal d, doublecomplex z));

extern doublecomplex Z_pow_cz _ANSI_ARGS_((complex c, doublecomplex z));
extern doublecomplex Z_pow_zc _ANSI_ARGS_((doublecomplex z, complex c));
extern doublecomplex Z_pow_zz _ANSI_ARGS_((doublecomplex z0, doublecomplex z1));

extern void _to_str _ANSI_ARGS_((char *dst, char *src, int len));
extern void _str_copy _ANSI_ARGS_((char *dst, char *src, int dstLen, int srcLen));
extern void _str_subcopy _ANSI_ARGS_((char *dst, int dst_base, int dst_len, int dst_off,char *src, int src_base, int src_len));

extern int _IO_Init_R _ANSI_ARGS_((int ioType, int *unitPtr, char *fmt, int *recPtr,
				   int errFlag, int endFlag));
extern int _IO_Init_W _ANSI_ARGS_((int ioType, int *unitPtr, char *fmt, int *recPtr,
				   int errFlag, int endFlag));
extern int _IO_Init_R_Mem _ANSI_ARGS_((char *memPtr, int memLen, char *fmt,
				       int errFlag, int endFlag));
extern int _IO_Init_W_Mem _ANSI_ARGS_((char *memPtr, int memLen, char *fmt,
				       int errFlag, int endFlag));

extern int _IO_Clean_R _ANSI_ARGS_((void));
extern int _IO_Clean_W _ANSI_ARGS_((void));
extern int _IO_Clean_R_Mem _ANSI_ARGS_((void));
extern int _IO_Clean_W_Mem _ANSI_ARGS_((void));

extern int _IO_Do_R EXC_VARARGS(int, nParam);
extern int _IO_Do_W EXC_VARARGS(int, nParam);
extern int _IO_Do_R_Mem EXC_VARARGS(int, nParam);
extern int _IO_Do_W_Mem EXC_VARARGS(int, nParam);

extern void _IO_Init_Namelist_Prolog _ANSI_ARGS_((int rw));
extern void _IO_Init_Namelist_AddVar EXC_VARARGS(char *, varName);
extern void _IO_Init_Namelist_Epilog _ANSI_ARGS_((int *unitPtr, char *nlName,
						  int nVars, int *recPtr,
						  int errFlag, int endFlag));
extern int _IO_Do_R_Namelist _ANSI_ARGS_((void));
extern int _IO_Do_W_Namelist _ANSI_ARGS_((void));
extern void _IO_Clean_Namelist _ANSI_ARGS_((int rw));

extern int _IO_Open _ANSI_ARGS_((int *unitPtr, char *fname, int fnameLen,
				 char *status, int statusLen,
				 char *access, int accessLen,
				 char *form, int formLen, int *reclPtr,
				 char *blank, int blankLen, int errFlag));

extern int _IO_Close _ANSI_ARGS_((int *unitPtr, char *access, int accessLen,
				  int errFlag));

extern int _IO_Backspace _ANSI_ARGS_((int *unitPtr, int errFlag));
extern int _IO_Rewind _ANSI_ARGS_((int *unitPtr, int errFlag));
extern int _IO_Endfile _ANSI_ARGS_((int *unitPtr, int errFlag));
extern int _IO_Inquire _ANSI_ARGS_((int *unitPtr, char *filePtr, int fileLen,
				    int *existPtr,
				    int *openedPtr,
				    int *numberPtr,
				    int *namedPtr,
				    char *namePtr, int nameLen,
				    char *accessPtr, int accessLen,
				    char *sequentialPtr, int sequentialLen,
				    char *directPtr, int directLen,
				    char *formPtr, int formLen,
				    char *formattedPtr, int formattedLen,
				    char *unformattedPtr, int unformattedLen,
				    int *reclPtr,
				    int *nextrecPtr,
				    char *blankPtr, int blankLen,
				    int errFlag));
extern char *i2c _ANSI_ARGS_((char *retval, int i));
extern int c2i _ANSI_ARGS_((char *c, int len));

extern void __checkNaN_real _ANSI_ARGS_((real val, char *fileName, int lineNo, int genCore));
extern void __checkNaN_dreal _ANSI_ARGS_((doublereal val, char *fileName, int lineNo, int genCore));

#ifdef ENABLE_QREAL
extern int	gmpLimbSize;
extern int	gmpPrecisionInBits;
extern int	precOutputInBits;
extern int	sizeOfQRealT;
extern int	precDecimalDigits;
extern void	_ompf77_QReal_init _ANSI_ARGS_((int qPrecInBits, int qLimbSize, int sizeOfQReal_t));
extern void     mpf2QR _ANSI_ARGS_((mpf_t *src, _omQReal_t *dst));
extern void     QR2mpf _ANSI_ARGS_((_omQReal_t *src, mpf_t *dst));
extern int	mpfNaN _ANSI_ARGS_((mpf_t *mPtr));
extern int	QRNaN _ANSI_ARGS_((_omQReal_t *qPtr));

#ifdef QS_FUNCS
extern void	QRinit _ANSI_ARGS_((_omQReal_t *qPtr));
extern void	QRsane _ANSI_ARGS_((_omQReal_t *qPtr));
#endif /* QS_FUNCS */

extern void	_long2QR _ANSI_ARGS_((signed long int *src, _omQReal_t *dst));
extern void	_double2QR _ANSI_ARGS_((double *src, _omQReal_t *dst));
extern void	_str2QR _ANSI_ARGS_((char *str, _omQReal_t *dst));
extern void	_QR2double _ANSI_ARGS_((_omQReal_t *src, double *dst));

extern void	_QRaint _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0));
extern void	_QRanint _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0));
extern int	_QRnint _ANSI_ARGS_((_omQReal_t *q0));
extern void	_QRabs _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0));
extern void	_QRsqrt _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0));
extern void	_QRmod _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0, _omQReal_t *q1));
extern void	_QRsign _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0, _omQReal_t *q1));
extern void	_QRdim _ANSI_ARGS_((_omQReal_t *a, _omQReal_t *q0, _omQReal_t *q1));

extern void	_QRneg _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *a));
extern void	_QRadd _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *q1, _omQReal_t *a));
extern void	_QRsub _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *q1, _omQReal_t *a));
extern void	_QRmul _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *q1, _omQReal_t *a));
extern void	_QRdiv _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *q1, _omQReal_t *a));

extern void	_QRpow_qi _ANSI_ARGS_((_omQReal_t *q0, signed long int *l0, _omQReal_t *a));

extern int	_QRcmp _ANSI_ARGS_((_omQReal_t *q0, _omQReal_t *q1));
#endif /* ENABLE_QREAL */
#ifdef __cplusplus
	}
#endif

