/*
 * (C) Copyright 2013 ECMWF.
 *
 * This software is licensed under the terms of the Apache Licence Version 2.0
 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
 * In applying this licence, ECMWF does not waive the privileges and immunities
 * granted to it by virtue of its status as an intergovernmental organisation
 * nor does it submit to any jurisdiction.
 */

#include <map>

#include "eckit/filesystem/PathName.h"

#include "atlas/option/TransOptions.h"

// ----------------------------------------------------------------------------

namespace atlas {
namespace option {

vorticity_divergence_fields::vorticity_divergence_fields(bool v) {
    set("vorticity_divergence_fields", v);
}

wind_EW_derivatives::wind_EW_derivatives(bool v) {
    set("wind_EW_derivatives", v);
}

scalar_derivatives::scalar_derivatives(bool v) {
    set("scalar_derivatives", v);
}

flt::flt(bool flt) {
    set("flt", flt);
}

fft::fft(FFT fft) {
    static const std::map<FFT, std::string> FFT_to_string = {
        {FFT::OFF, "OFF"}, {FFT::FFT992, "FFT992"}, {FFT::FFTW, "FFTW"}};
    set("fft", FFT_to_string.at(fft));
}

fft::fft(const std::string& fft) {
    set("fft", fft);
}

split_latitudes::split_latitudes(bool split_latitudes) {
    set("split_latitudes", split_latitudes);
}

write_legendre::write_legendre(const eckit::PathName& filepath) {
    set("write_legendre", filepath);
}

read_legendre::read_legendre(const eckit::PathName& filepath) {
    set("read_legendre", filepath);
}

write_fft::write_fft(const eckit::PathName& filepath) {
    set("write_fft", filepath);
}

read_fft::read_fft(const eckit::PathName& filepath) {
    set("read_fft", filepath);
}

nproma::nproma(int nproma) {
    set("nproma", nproma);
}

warning::warning(int warning) {
    set("warning", warning);
}

// ----------------------------------------------------------------------------

}  // namespace option
}  // namespace atlas
