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

#ifdef __cplusplus
extern "C" {
#endif

PROTOCCALLSFFUN2(FLOAT,DCROSS,dcross,FLOAT,FLOAT)
#define DCROSS(A2,A3)  CCALLSFFUN2(DCROSS,dcross,FLOAT,FLOAT,A2,A3)

PROTOCCALLSFFUN2(DOUBLE,DFUN,dfun,INT,DOUBLEV)
#define DFUN(A2,A3)  CCALLSFFUN2(DFUN,dfun,INT,DOUBLEV,A2,A3)

PROTOCCALLSFFUN1(FLOAT,DLOWER,dlower,FLOAT)
#define DLOWER(A2)  CCALLSFFUN1(DLOWER,dlower,FLOAT,A2)

PROTOCCALLSFFUN6(FLOAT,DQCD,dqcd,INT,INT,INT,FLOAT,FLOAT,FLOAT)
#define DQCD(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DQCD,dqcd,INT,INT,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7)

PROTOCCALLSFFUN5(FLOAT,DQCDI,dqcdi,INT,INT,FLOAT,FLOAT,FLOAT)
#define DQCDI(A2,A3,A4,A5,A6)  CCALLSFFUN5(DQCDI,dqcdi,INT,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6)

PROTOCCALLSFFUN1(FLOAT,DSIGMA,dsigma,FLOAT)
#define DSIGMA(A2)  CCALLSFFUN1(DSIGMA,dsigma,FLOAT,A2)

PROTOCCALLSFFUN1(FLOAT,DUPPER,dupper,FLOAT)
#define DUPPER(A2)  CCALLSFFUN1(DUPPER,dupper,FLOAT,A2)

PROTOCCALLSFFUN1(FLOAT,FLGINT,flgint,FLOAT)
#define FLGINT(A2)  CCALLSFFUN1(FLGINT,flgint,FLOAT,A2)

PROTOCCALLSFFUN1(FLOAT,FLQINT,flqint,FLOAT)
#define FLQINT(A2)  CCALLSFFUN1(FLQINT,flqint,FLOAT,A2)

PROTOCCALLSFFUN1(FLOAT,FLTINT,fltint,FLOAT)
#define FLTINT(A2)  CCALLSFFUN1(FLTINT,fltint,FLOAT,A2)

PROTOCCALLSFFUN5(FLOAT,GADAPF,gadapf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT)
#define GADAPF(A2,A3,A4,A5,A6)  CCALLSFFUN5(GADAPF,gadapf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A2,A3,A4,A5,A6)

PROTOCCALLSFFUN1(INT,LKINEM,lkinem,INT)
#define LKINEM(A2)  CCALLSFFUN1(LKINEM,lkinem,INT,A2)

PROTOCCALLSFFUN2(FLOAT,LMPINT,lmpint,PFLOAT,INT)
#define LMPINT(A2,A3)  CCALLSFFUN2(LMPINT,lmpint,PFLOAT,INT,A2,A3)

PROTOCCALLSFFUN5(INT,LQMCUT,lqmcut,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
#define LQMCUT(A2,A3,A4,A5,A6)  CCALLSFFUN5(LQMCUT,lqmcut,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6)

PROTOCCALLSFFUN1(DOUBLE,RIWFUN,riwfun,DOUBLEV)
#define RIWFUN(A2)  CCALLSFFUN1(RIWFUN,riwfun,DOUBLEV,A2)

PROTOCCALLSFSUB0(DVNOPT,dvnopt)
#define DVNOPT() CCALLSFSUB0(DVNOPT,dvnopt)

PROTOCCALLSFSUB3(FLINTG,flintg,FLOAT,FLOAT,FLOAT)
#define FLINTG(A1,A2,A3)  CCALLSFSUB3(FLINTG,flintg,FLOAT,FLOAT,FLOAT,A1,A2,A3)

PROTOCCALLSFSUB3(FLIPOL,flipol,PFLOAT,PFLOAT,PFLOAT)
#define FLIPOL(A1,A2,A3)  CCALLSFSUB3(FLIPOL,flipol,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3)

PROTOCCALLSFSUB0(FLTABL,fltabl)
#define FLTABL() CCALLSFSUB0(FLTABL,fltabl)

PROTOCCALLSFSUB5(GADAP,gadap,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT)
#define GADAP(A1,A2,A3,A4,A5)  CCALLSFSUB5(GADAP,gadap,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)

PROTOCCALLSFSUB7(GADAP2,gadap2,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT)
#define GADAP2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GADAP2,gadap2,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)

PROTOCCALLSFSUB2(LAZIMU,lazimu,FLOAT,FLOAT)
#define LAZIMU(A1,A2)  CCALLSFSUB2(LAZIMU,lazimu,FLOAT,FLOAT,A1,A2)

PROTOCCALLSFSUB0(LEPTO,lepto)
#define LEPTO() CCALLSFSUB0(LEPTO,lepto)

PROTOCCALLSFSUB0(LEPTOX,leptox)
#define LEPTOX() CCALLSFSUB0(LEPTOX,leptox)

PROTOCCALLSFSUB2(LFLAV,lflav,PINT,PINT)
#define LFLAV(A1,A2)  CCALLSFSUB2(LFLAV,lflav,PINT,PINT,A1,A2)

PROTOCCALLSFSUB2(LFRAME,lframe,INT,INT)
#define LFRAME(A1,A2)  CCALLSFSUB2(LFRAME,lframe,INT,INT,A1,A2)

PROTOCCALLSFSUB5(LINIT,linit,INT,INT,FLOAT,FLOAT,INT)
#define LINIT(A1,A2,A3,A4,A5)  CCALLSFSUB5(LINIT,linit,INT,INT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5)

PROTOCCALLSFSUB0(LMCMND,lmcmnd)
#define LMCMND() CCALLSFSUB0(LMCMND,lmcmnd)

PROTOCCALLSFSUB0(LMEPS,lmeps)
#define LMEPS() CCALLSFSUB0(LMEPS,lmeps)

PROTOCCALLSFSUB0(LMIDA2,lmida2)
#define LMIDA2() CCALLSFSUB0(LMIDA2,lmida2)

PROTOCCALLSFSUB0(LMIDAT,lmidat)
#define LMIDAT() CCALLSFSUB0(LMIDAT,lmidat)

PROTOCCALLSFSUB0(LMINEW,lminew)
#define LMINEW() CCALLSFSUB0(LMINEW,lminew)

PROTOCCALLSFSUB1(LMINTO,lminto,FLOATV)
#define LMINTO(A1)  CCALLSFSUB1(LMINTO,lminto,FLOATV,A1)

PROTOCCALLSFSUB2(LMPRIN,lmprin,INT,FLOAT)
#define LMPRIN(A1,A2)  CCALLSFSUB2(LMPRIN,lmprin,INT,FLOAT,A1,A2)

PROTOCCALLSFSUB2(LMRAZZ,lmrazz,FLOAT,FLOATV)
#define LMRAZZ(A1,A2)  CCALLSFSUB2(LMRAZZ,lmrazz,FLOAT,FLOATV,A1,A2)

PROTOCCALLSFSUB0(LMSIMP,lmsimp)
#define LMSIMP() CCALLSFSUB0(LMSIMP,lmsimp)

PROTOCCALLSFSUB3(LNSTRF,lnstrf,FLOAT,FLOAT,PFLOAT)
#define LNSTRF(A1,A2,A3)  CCALLSFSUB3(LNSTRF,lnstrf,FLOAT,FLOAT,PFLOAT,A1,A2,A3)

PROTOCCALLSFSUB3(LPRIKT,lprikt,FLOAT,PFLOAT,PFLOAT)
#define LPRIKT(A1,A2,A3)  CCALLSFSUB3(LPRIKT,lprikt,FLOAT,PFLOAT,PFLOAT,A1,A2,A3)

PROTOCCALLSFSUB1(LPRWTS,lprwts,INT)
#define LPRWTS(A1)  CCALLSFSUB1(LPRWTS,lprwts,INT,A1)

PROTOCCALLSFSUB2(LQCDPR,lqcdpr,PFLOAT,PFLOAT)
#define LQCDPR(A1,A2)  CCALLSFSUB2(LQCDPR,lqcdpr,PFLOAT,PFLOAT,A1,A2)

PROTOCCALLSFSUB2(LQEVAR,lqevar,INT,INT)
#define LQEVAR(A1,A2)  CCALLSFSUB2(LQEVAR,lqevar,INT,INT,A1,A2)

PROTOCCALLSFSUB0(LQEV,lqev)
#define LQEV() CCALLSFSUB0(LQEV,lqev)

PROTOCCALLSFSUB0(LQGEV,lqgev)
#define LQGEV() CCALLSFSUB0(LQGEV,lqgev)

PROTOCCALLSFSUB0(LQQBEV,lqqbev)
#define LQQBEV() CCALLSFSUB0(LQQBEV,lqqbev)

PROTOCCALLSFSUB5(LREMH,lremh,INT,FLOAT,PINT,INT,PFLOAT)
#define LREMH(A1,A2,A3,A4,A5)  CCALLSFSUB5(LREMH,lremh,INT,FLOAT,PINT,INT,PFLOAT,A1,A2,A3,A4,A5)

PROTOCCALLSFSUB2(LSCALE,lscale,INT,PFLOAT)
#define LSCALE(A1,A2)  CCALLSFSUB2(LSCALE,lscale,INT,PFLOAT,A1,A2)

PROTOCCALLSFSUB1(LSHOWR,lshowr,INT)
#define LSHOWR(A1)  CCALLSFSUB1(LSHOWR,lshowr,INT,A1)

PROTOCCALLSFSUB5(LSIGMX,lsigmx,INT,FLOATV,PFLOAT,FLOATV,INT)
#define LSIGMX(A1,A2,A3,A4,A5)  CCALLSFSUB5(LSIGMX,lsigmx,INT,FLOATV,PFLOAT,FLOATV,INT,A1,A2,A3,A4,A5)

PROTOCCALLSFSUB1(LTIMEX,ltimex,PFLOAT)
#define LTIMEX(A1)  CCALLSFSUB1(LTIMEX,ltimex,PFLOAT,A1)

PROTOCCALLSFSUB1(LWBB,lwbb,PFLOAT)
#define LWBB(A1)  CCALLSFSUB1(LWBB,lwbb,PFLOAT,A1)

PROTOCCALLSFSUB1(LWEITS,lweits,INT)
#define LWEITS(A1)  CCALLSFSUB1(LWEITS,lweits,INT,A1)

PROTOCCALLSFSUB2(LXP,lxp,PFLOAT,PINT)
#define LXP(A1,A2)  CCALLSFSUB2(LXP,lxp,PFLOAT,PINT,A1,A2)

PROTOCCALLSFSUB0(LXSECT,lxsect)
#define LXSECT() CCALLSFSUB0(LXSECT,lxsect)

PROTOCCALLSFSUB2(LYREMN,lyremn,INT,INT)
#define LYREMN(A1,A2)  CCALLSFSUB2(LYREMN,lyremn,INT,INT,A1,A2)

PROTOCCALLSFSUB4(LYSPLI,lyspli,INT,INT,PINT,PINT)
#define LYSPLI(A1,A2,A3,A4)  CCALLSFSUB4(LYSPLI,lyspli,INT,INT,PINT,PINT,A1,A2,A3,A4)

PROTOCCALLSFSUB2(LYSSPA,lysspa,INT,INT)
#define LYSSPA(A1,A2)  CCALLSFSUB2(LYSSPA,lysspa,INT,INT,A1,A2)

PROTOCCALLSFSUB4(LYSTFU,lystfu,INT,FLOAT,FLOAT,PFLOAT)
#define LYSTFU(A1,A2,A3,A4)  CCALLSFSUB4(LYSTFU,lystfu,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)

PROTOCCALLSFSUB3(LZP,lzp,FLOAT,PFLOAT,PINT)
#define LZP(A1,A2,A3)  CCALLSFSUB3(LZP,lzp,FLOAT,PFLOAT,PINT,A1,A2,A3)

PROTOCCALLSFSUB0(RIWIBD,riwibd)
#define RIWIBD() CCALLSFSUB0(RIWIBD,riwibd)

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

#endif /* #ifndef _LEPTO62_H */
