#include <stdlib.h> #include <stdio.h> #include "cxx-sfx-model-compute-flux.h" #include "sfx-esm.h" #include "sfx-sheba.h" #include <vector> // -------------------------------------------------------------------------- // void esm_compute_flux (sfxDataVecTypeC* sfx, meteoDataVecTypeC* meteo, const sfx_esm_param_C* model_param, const sfx_surface_param* surface_param, const sfx_esm_numericsType_C* numerics, const sfx_phys_constants* constants, const int grid_size) { #ifdef INCLUDE_CUDA static FluxEsm<float, MemType::CPU, MemType::CPU, MemType::GPU> F(sfx, meteo, grid_size); F.compute_flux(*model_param, *surface_param, *numerics, *constants); #else static FluxEsm<float, MemType::CPU, MemType::CPU, MemType::CPU> F(sfx, meteo, grid_size); F.compute_flux(*model_param, *surface_param, *numerics, *constants); #endif } void sheba_compute_flux (sfxDataVecTypeC* sfx, meteoDataVecTypeC* meteo, const sfx_sheba_param_C* model_param, const sfx_surface_param* surface_param, const sfx_sheba_numericsType_C* numerics, const sfx_phys_constants* constants, const int grid_size) { #ifdef INCLUDE_CUDA static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::GPU> F(sfx, meteo, grid_size); F.compute_flux(*model_param, *surface_param, *numerics, *constants); #else static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::CPU> F(sfx, meteo, grid_size); F.compute_flux(*model_param, *surface_param, *numerics, *constants); #endif } void sheba_noit_compute_flux (sfxDataVecTypeC* sfx, meteoDataVecTypeC* meteo, const sfx_sheba_noit_param_C* model_param, const sfx_surface_param* surface_param, const sfx_sheba_noit_numericsType_C* numerics, const sfx_phys_constants* constants, const int grid_size) { #ifdef INCLUDE_CUDA static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::GPU> F(sfx, meteo, grid_size); F.noit_compute_flux(*model_param, *surface_param, *numerics, *constants); #else static FluxSheba<float, MemType::CPU, MemType::CPU, MemType::CPU> F(sfx, meteo, grid_size); F.noit_compute_flux(*model_param, *surface_param, *numerics, *constants); #endif }