#include <stdlib.h> #include <stdio.h> #include "../includeCXX/sfx_call_class_func.h" #include "../includeCXX/sfx_esm.h" #include "../includeCXX/sfx_sheba.h" #include <vector> // -------------------------------------------------------------------------- // void surf_flux_esm_CXX (struct sfxDataVecTypeC* sfx, struct meteoDataVecTypeC* meteo, const struct sfx_esm_param* model_param, const struct sfx_surface_param* surface_param, const struct sfx_esm_numericsTypeC* numerics, const struct sfx_phys_constants* constants, const int grid_size) { #ifdef INCLUDE_CUDA static FluxEsm<float, MemType::CPU, MemType::CPU, MemType::GPU> F(sfx, meteo, *model_param, *surface_param, *numerics, *constants, grid_size); F.compute_flux(); #else static FluxEsm<float, MemType::CPU, MemType::CPU, MemType::CPU> F(sfx, meteo, *model_param, *surface_param, *numerics, *constants, grid_size); F.compute_flux(); #endif } void surf_flux_sheba_CXX (float *zeta_, float *Rib_, float *Re_, float *B_, float *z0_m_, float *z0_t_, float *Rib_conv_lim_, float *Cm_, float *Ct_, float *Km_, float *Pr_t_inv_, float *U_, float *dT_, float *Tsemi_, float *dQ_, float *h_, float *in_z0_m_, const float kappa, const float Pr_t_0_inv, const float alpha_m, const float alpha_h, const float a_m, const float a_h, const float b_m, const float b_h, const float c_h, const float Re_rough_min, const float B1_rough, const float B2_rough, const float B_max_land, const float B_max_ocean, const float B_max_lake, const float gamma_c, const float Re_visc_min, const float Pr_m, const float nu_air, const float g, const int maxiters_charnock, const int grid_size) { #ifdef INCLUDE_CUDA static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::GPU> F; #else static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::CPU> F; #endif F.set_params(grid_size, kappa, Pr_t_0_inv, alpha_m, alpha_h, a_m, a_h, b_m, b_h, c_h, Re_rough_min, B1_rough, B2_rough, B_max_land, B_max_ocean, B_max_lake, gamma_c, Re_visc_min, Pr_m, nu_air, g); F.compute_flux_sheba(zeta_, Rib_, Re_, B_, z0_m_, z0_t_, Rib_conv_lim_, Cm_, Ct_, Km_, Pr_t_inv_, U_, dT_, Tsemi_, dQ_, h_, in_z0_m_, maxiters_charnock); }