Skip to content
Snippets Groups Projects
Commit 3a14ee56 authored by Oliver Heidmann's avatar Oliver Heidmann Committed by Uwe Schulzweida
Browse files

removed unused files

parent ca34f34e
No related branches found
No related tags found
2 merge requests!299Develop,!296M300433/python interface merge cleanup1
#ifndef CDO_BENCHMARK_H
#define CDO_BENCHMARK_H
#define DBE2
#ifdef DBE2
#include <iostream>
#include <chrono>
template <typename func>
void
cdo_benchmark(func lambda)
{
auto start = std::chrono::steady_clock::now();
lambda();
auto end = std::chrono::steady_clock::now();
auto elapsedm = std::chrono::duration_cast<std::chrono::nanoseconds>(end - start).count();
// time end
std::cout << "time: " << elapsedm << " ns" << std::endl;
}
#define CDO_BENCH(x) cdo_benchmark(x)
#else
#define CDO_BENCH(x) \
std::cout << "benchmark found, please remove. " << __FILE__ << ": " << __LINE__ << std::endl; \
x()
#endif
#endif
/*
This file is part of CDO. CDO is a collection of Operators to manipulate and analyse Climate model Data.
Author: Uwe Schulzweida
*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cerrno>
#include <sys/stat.h>
#include "namelist.h"
int
main(int argc, char *argv[])
{
if (argc != 2)
{
fprintf(stderr, "Usage: %s namelist\n", argv[0]);
return -1;
}
const char *filename = argv[1];
printf("Parse namelist %s:\n", filename);
struct stat sbuf;
size_t filesize = (stat(filename, &sbuf) == 0) ? sbuf.st_size : 0;
if (filesize == 0)
{
fprintf(stderr, "Empty table file: %s\n", filename);
return -1;
}
FILE *fp = std::fopen(filename, "r");
if (fp == nullptr)
{
fprintf(stderr, "Open failed on %s: %s\n", filename, strerror(errno));
return -1;
}
char *buffer = (char *) std::malloc(filesize);
size_t nitems = fread(buffer, 1, filesize, fp);
std::fclose(fp);
if (nitems != filesize)
{
fprintf(stderr, "Read failed on %s!\n", filename);
std::free(buffer);
return -1;
}
NamelistParser p;
NamelistError status = p.parse(buffer, filesize);
printf("Processed number of lines: %lu\n", p.lineno - 1);
if (status != NamelistError::UNDEFINED)
{
switch (status)
{
case NamelistError::INVAL:
fprintf(stderr, "Namelist error: Invalid character in %s (line=%lu character='%c')!\n", filename, p.lineno,
buffer[p.pos]);
break;
case NamelistError::PART:
fprintf(stderr, "Namelist error: End of string not found in %s (line=%lu)!\n", filename, p.lineno);
break;
case NamelistError::INKEY:
fprintf(stderr, "Namelist error: Invalid keyword in %s (line=%lu)!\n", filename, p.lineno);
break;
case NamelistError::INTYP:
fprintf(stderr, "Namelist error: Invalid keyword type in %s (line=%lu)!\n", filename, p.lineno);
break;
case NamelistError::INOBJ: fprintf(stderr, "Namelist error: Invalid object in %s (line=%lu)!\n", filename, p.lineno); break;
case NamelistError::EMKEY: fprintf(stderr, "Namelsit error: Emtry key name in %s (line=%lu)!\n", filename, p.lineno); break;
default: fprintf(stderr, "Namelsit error in %s (line=%lu)!\n", filename, p.lineno); break;
}
}
p.dump(buffer);
std::free(buffer);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment