#pragma once #ifdef __cplusplus extern "C" { #endif struct meteoDataType { float h; float U; float dT; float Tsemi; float dQ; float z0_m; }; struct meteoDataVecTypeC { float *h; float *U; float *dT; float *Tsemi; float *dQ; float *z0_m; }; struct sfxDataType { 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; }; struct sfxDataVecTypeC { 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; }; struct sfx_surface_param { int surface_ocean; int surface_land; int surface_lake; float gamma_c; float Re_visc_min; float h_charnock; float c1_charnock; float c2_charnock; float Re_rough_min; float B1_rough; float B2_rough; float B3_rough; float B4_rough; float B_max_lake; float B_max_ocean; float B_max_land; }; struct sfx_phys_constants { float Pr_m; float g; float nu_air; }; // use sfx_esm_param struct sfx_esm_param { float kappa; float Pr_t_0_inv; float Pr_t_inf_inv; float alpha_m; float alpha_h; float alpha_h_fix; float beta_m; float beta_h; float Rib_max; }; struct sfx_esm_numericsTypeC { int maxiters_convection; int maxiters_charnock; }; // use sfx_sheba_param struct sfx_sheba_param { float kappa; float Pr_t_0_inv; float alpha_m; float alpha_h; float a_m; float b_m; float a_h; float b_h; float c_h; }; struct sfx_sheba_numericsTypeC { int maxiters_charnock; }; #ifdef __cplusplus } #endif