RadLib
Loading...
Searching...
No Matches
c_interface.cc
Go to the documentation of this file.
1#include "../c++/rad_planck_mean.h"
2#include "../c++/rad_wsgg.h"
3#include "../c++/rad_rcslw.h"
4#include <vector>
5#include <iostream>
6
7using namespace std;
8
10
11extern "C"{
12
13 //-------------------------------------------------------------------------
14
18 //-------------------------------------------------------------------------
19
21 return new rad_wsgg();
22 }
23 //-------------------------------------------------------------------------
24
26 double *TbTref,
27 double *P,
28 double *fvsoot,
29 double *xH2O,
30 double *xCO2,
31 double *xCO){
32
33 return new rad_rcslw(*nGG, *TbTref, *P, *fvsoot, *xH2O, *xCO2, *xCO);
34 }
35 //-------------------------------------------------------------------------
36
38 delete rad_ptr;
39 }
40 //-------------------------------------------------------------------------
41
42 void get_k_a_C_interface(rad *rad_ptr,
43 double *kabs,
44 double *awts,
45 double *T,
46 double *P,
47 double *fvsoot,
48 double *xH2O,
49 double *xCO2,
50 double *xCO,
51 double *xCH4){
52
53 vector<double> kk(rad_ptr->get_nGGa());
54 vector<double> aa(rad_ptr->get_nGGa());
55
56 rad_ptr->get_k_a(kk, aa, *T, *P, *fvsoot, *xH2O, *xCO2, *xCO, *xCH4);
57
58 for(int i=0; i<kk.size(); ++i){
59 kabs[i] = kk[i];
60 awts[i] = aa[i];
61 }
62
63 }
64 //-------------------------------------------------------------------------
65
67 double *kabs,
68 double *awts,
69 int *iband,
70 double *T,
71 double *P,
72 double *fvsoot,
73 double *xH2O,
74 double *xCO2,
75 double *xCO,
76 double *xCH4){
77
78 rad_ptr->get_k_a_oneband(*kabs, *awts, *iband, *T, *P, *fvsoot, *xH2O, *xCO2, *xCO, *xCH4);
79 }
80}
void get_k_a_oneband_C_interface(rad *rad_ptr, double *kabs, double *awts, int *iband, double *T, double *P, double *fvsoot, double *xH2O, double *xCO2, double *xCO, double *xCH4)
rad * rad_wsgg_C_interface()
rad * rad_planck_mean_C_interface()
rad * rad_rcslw_C_interface(int *nGG, double *TbTref, double *P, double *fvsoot, double *xH2O, double *xCO2, double *xCO)
void rad_delete_C_interface(rad *rad_ptr)
void get_k_a_C_interface(rad *rad_ptr, double *kabs, double *awts, double *T, double *P, double *fvsoot, double *xH2O, double *xCO2, double *xCO, double *xCH4)
Definition rad.h:20
int get_nGGa()
Definition rad.h:63
virtual void get_k_a_oneband(double &kabs, double &awts, const int iband, const double T, const double P, const double fvsoot, const double xH2O, const double xCO2, const double xCO=0, const double xCH4=0)=0
ABSTRACT BASE CLASS.
virtual void get_k_a(std::vector< double > &kabs, std::vector< double > &awts, const double T, const double P, const double fvsoot, const double xH2O, const double xCO2, const double xCO=0, const double xCH4=0)=0
ABSTRACT BASE CLASS.