Commit b452b4b5 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Added transform.h.

parent 8cefcd04
......@@ -198,17 +198,18 @@ libcdo_la_SOURCES = \
remap_distwgt.cc \
remap_bicubic.cc \
remap_bilinear.cc \
remap_grid_cell_search.cc \
remap_grid_cell_search.h \
remap_grid_cell_search.cc \
remap_grid_cell_search.h \
stdnametable.cc \
stdnametable.h \
specspace.cc \
specspace.h \
statistic.cc \
statistic.h \
transform.h \
table.cc \
mpmo_color.cc \
mpmo_color.h \
mpmo_color.cc \
mpmo_color.h \
timebase.h \
timer.cc \
timer.h \
......
......@@ -29,6 +29,7 @@
#include "error.h"
#include "dmemory.h"
#include "process_int.h"
#include "transform.h"
#include "cdo_task.h"
#define MaxLevel 1024
......@@ -161,23 +162,6 @@ struct Variable
int *samp;
};
/* FFT */
void fft_set(double *trigs, long *ifax, long n);
void fc2gp(double *trig, const long *ifax, double *fc, double *gp, long nlat, long nlon, long nlev, long nfc);
void gp2fc(double *trig, const long *ifax, const double *gp, double *fc, long nlat, long nlon, long nlev, long nfc);
/* Convert Spectral Array to new resolution */
void sp2sp(double *arrayIn, long truncIn, double *arrayOut, long truncOut);
void sp2fc(const double *sa, double *fa, const double *poli, long nlev, long nlat, long nfc, long nt);
void fc2sp(double *fa, double *sa, const double *poli, long klev, long nlat, long nfc, long nt);
/* Physc */
void dv2ps(const double *div, double *pot, long nlev, long ntr);
void dv2uv(const double *d, const double *o, double *u, double *v, double *f, double *g, long nt, long nsp, long nlev);
void scaluv(double *fu, const double *rclat, long nlat, long lot);
void uv2dv(double *fu, double *fv, double *sd, double *sv, double *pol2, double *pol3, long klev, long nlat, long nt);
void geninx(long ntr, double *f, double *g);
/* clang-format off */
#define LOW_CLOUD 34
#define MID_CLOUD 35
......
......@@ -18,12 +18,7 @@
#define SPECSPACE_H
#include <vector>
#include "afterburner.h"
void after_legini_full(long ntr, long nlat, double *restrict poli, double *restrict pold, double *restrict pdev,
double *restrict pol2, double *restrict pol3, double *restrict coslat);
void after_legini(long ntr, long nlat, double *restrict poli, double *restrict pold, double *restrict coslat);
#include "transform.h"
class SPTRANS
{
......
/*
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-2019 Uwe Schulzweida, <uwe.schulzweida AT mpimet.mpg.de>
See COPYING file for copying and redistribution conditions.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
#ifndef TRANSFORM_H
#define TRANSFORM_H
void after_legini_full(long ntr, long nlat, double *poli, double *pold, double *pdev,
double *pol2, double *pol3, double *coslat);
void after_legini(long ntr, long nlat, double *poli, double *pold, double *coslat);
/* FFT */
void fft_set(double *trigs, long *ifax, long n);
void fc2gp(double *trig, const long *ifax, double *fc, double *gp, long nlat, long nlon, long nlev, long nfc);
void gp2fc(double *trig, const long *ifax, const double *gp, double *fc, long nlat, long nlon, long nlev, long nfc);
/* Convert Spectral Array to new resolution */
void sp2sp(double *arrayIn, long truncIn, double *arrayOut, long truncOut);
void sp2fc(const double *sa, double *fa, const double *poli, long nlev, long nlat, long nfc, long nt);
void fc2sp(double *fa, double *sa, const double *poli, long klev, long nlat, long nfc, long nt);
/* Physc */
void dv2ps(const double *div, double *pot, long nlev, long ntr);
void dv2uv(const double *d, const double *o, double *u, double *v, double *f, double *g, long nt, long nsp, long nlev);
void scaluv(double *fu, const double *rclat, long nlat, long lot);
void uv2dv(double *fu, double *fv, double *sd, double *sv, double *pol2, double *pol3, long klev, long nlat, long nt);
void geninx(long ntr, double *f, double *g);
#endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment