mirror of https://github.com/ecmwf/eccodes.git
79 lines
1.2 KiB
C
79 lines
1.2 KiB
C
#include "test.h"
|
|
|
|
char buffer[1024*1024*80];
|
|
|
|
int main(int argc,char** argv)
|
|
{
|
|
FILE *f;
|
|
FILE* of;
|
|
grib_handle *h = 0;
|
|
grib_context *gc = 0;
|
|
int err;
|
|
int option_flags =0;
|
|
char* ofname;
|
|
char* fname;
|
|
char* mode="serialize";
|
|
char* values_format="10%g";
|
|
option_flags |= GRIB_DUMP_FLAG_VALUES;
|
|
|
|
fname = argc > 1 ? argv[1]: "data" ;
|
|
ofname=(char*)malloc(sizeof(char)*(strlen(fname)+6));
|
|
sprintf(ofname,"%s.dump",fname);
|
|
|
|
f = fopen(fname ,"r");
|
|
if(!f) {
|
|
perror(fname);
|
|
exit(10);
|
|
}
|
|
|
|
if ((h = grib_handle_new_from_file(0,f,&err)) == NULL) {
|
|
fclose( f);
|
|
exit(1);
|
|
}
|
|
|
|
of = fopen(ofname ,"w");
|
|
if(!of) {
|
|
perror(ofname);
|
|
exit(10);
|
|
}
|
|
|
|
grib_dump_content(h,of,mode,option_flags,values_format);
|
|
|
|
grib_handle_delete(h);
|
|
|
|
if(fclose(of)) {
|
|
perror(ofname);
|
|
exit(1);
|
|
}
|
|
|
|
of = fopen(ofname ,"r");
|
|
if(!of) {
|
|
perror(ofname);
|
|
exit(10);
|
|
}
|
|
|
|
gc = grib_context_get_default();
|
|
h=grib_handle_new(gc);
|
|
if (!h) {
|
|
printf("Error: unable to create handle\n");
|
|
exit(1);
|
|
}
|
|
|
|
GRIB_CHECK(grib_load_from_text_file(h,of),ofname);
|
|
|
|
if(fclose(of)) {
|
|
perror(ofname);
|
|
exit(1);
|
|
}
|
|
|
|
/* unlink(ofname);*/
|
|
|
|
if(compare_with_gribex(h))
|
|
exit(1);
|
|
|
|
grib_handle_delete(h);
|
|
|
|
fclose( f);
|
|
exit(0);
|
|
}
|