#ifndef GRIBFORTRAN_H
#define GRIBFORTRAN_H

#ifndef PBIO_H
#include "pbio.h"
#endif

#ifndef CGRIBEX_H
#include "cgribex.h"
#endif

void gribEx(int *isec0, int *isec1, int *isec2, void *fsec2, int *isec3, void *fsec3, int *isec4, void *fsec4, int klenp,
            int *kgrib, int kleng, int *kword, const char *hoper, int *kret);

// clang-format off
void gribprs0  (int *isec0);
void gribprs1  (int *isec0, int *isec1);
void gribprs2  (int *isec0, int *isec2, void   *fsec2);
void gribprs2dp(int *isec0, int *isec2, double *fsec2);
void gribprs2sp(int *isec0, int *isec2, float  *fsec2);
void gribprs3  (int *isec0, int *isec3, void   *fsec3);
void gribprs3dp(int *isec0, int *isec3, double *fsec3);
void gribprs3sp(int *isec0, int *isec3, float  *fsec3);
void gribprs4  (int *isec0, int *isec4, void   *fsec4);
void gribprs4dp(int *isec0, int *isec4, double *fsec4);
void gribprs4sp(int *isec0, int *isec4, float  *fsec4);
void gribprs4w (int *isec4);
// clang-format on

void gribsdbg(int debug);
void gribsrnd(int round);
void gribsref(void *fref);
void gribsrefdp(double fref);
void gribsrefsp(float fref);
void gribsvck(int vcheck);

void flt2ibmXX(void *rval, int *ival);
void flt2ibmSP(float *rval, int *ival);
void flt2ibmDP(double *rval, int *ival);
void ibm2fltXX(int *ival, void *rval);
void ibm2fltSP(int *ival, float *rval);
void ibm2fltDP(int *ival, double *rval);

#endif /* GRIBFORTRAN_H */
