#ifndef _COMIS_H
#define _COMIS_H
#include <cfortran/cfortran.h>

#ifdef __cplusplus
extern "C" {
#endif

PROTOCCALLSFFUN1(INT,CSADDR,csaddr,STRING)
#define	CSADDR(CHFILE) CCALLSFFUN1(CSADDR,csaddr,STRING,CHFILE)

PROTOCCALLSFFUN12(DOUBLE,CSDJCL,csdjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
#define CSDJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSDJCL,csdjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)

PROTOCCALLSFSUB2(CSEXEC,csexec,STRING,PINT)
#define	CSEXEC(CHFILE,IRET) CCALLSFSUB2(CSEXEC,csexec,STRING,PINT,CHFILE,IRET)

PROTOCCALLSFSUB3(CSGTIDP,csgtidp,INT,PSTRING,PINT)
#define CSGTIDP(CADR,NAME,LEN) CCALLSFSUB3(CSGTIDP,csgtidp,INT,PSTRING,PINT,CADR,NAME,LEN)

PROTOCCALLSFFUN12(INT,CSIJCL,csijcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
#define CSIJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSIJCL,csijcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)

PROTOCCALLSFFUN2(INT,CSLISTC,cslistc,INT,PINT)
#define CSLISTC(PROADDR,NEXT) CCALLSFFUN2(CSLISTC,cslistc,INT,PINT,PROADDR,NEXT)

PROTOCCALLSFSUB4(CSLISTX,cslistx,STRING,INT,PINT,PINT)
#define CSLISTX(CNAME,PROADDR,IOFFS,NEL) CCALLSFSUB4(CSLISTX,cslistx,STRING,INT,PINT,PINT,CNAME,PROADDR,IOFFS,NEL)

PROTOCCALLSFFUN12(LOGICAL,CSLJCL,csljcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
#define CSLJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSLJCL,csljcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)

PROTOCCALLSFFUN12(FLOAT,CSRJCL,csrjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
#define CSRJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSRJCL,csrjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)

PROTOCCALLSFSUB7(CSTYPAR,cstypar,INT,INT,PSTRING,PINT,PINT,INTV,PINT)
#define CSTYPAR(IADDR,IPAR,CTYP,ISIZE,NVDIM,DIM,IERR) CCALLSFSUB7(CSTYPAR,cstypar,INT,INT,PSTRING,PINT,PINT,INTV,PINT,IADDR,IPAR,CTYP,ISIZE,NVDIM,DIM,IERR)

PROTOCCALLSFSUB2(CSTYPE,cstype,INT,PSTRING)
#define CSTYPE(CADR,CHTYPE) CCALLSFSUB2(CSTYPE,cstype,INT,PSTRING,CADR,CHTYPE)

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /* #ifndef _COMIS_H */
