#pragma once template<typename T> void compute_flux_esm_gpu(T *zeta_, T *Rib_, T *Re_, T *B_, T *z0_m_, T *z0_t_, T *Rib_conv_lim_, T *Cm_, T *Ct_, T *Km_, T *Pr_t_inv_, const T *U_, const T *dT_, const T *Tsemi_, const T *dQ_, const T *h_, const T *in_z0_m_, const T kappa, const T Pr_t_0_inv, const T Pr_t_inf_inv, const T alpha_m, const T alpha_h, const T alpha_h_fix, const T beta_m, const T beta_h, const T Rib_max, const T Re_rough_min, const T B1_rough, const T B2_rough, const T B_max_land, const T B_max_ocean, const T B_max_lake, const T gamma_c, const T Re_visc_min, const T Pr_m, const T nu_air, const T g, const int maxiters_charnock, const int maxiters_convection, const int grid_size);