// Generated automatically by cvmix.awk from // /home/basilisk-src/local/src/CVMix-src/src/shared/cvmix_kpp.F90 typedef struct { cvmix_r8 opaque0; // ri_crit cvmix_r8 opaque1; // minobldepth cvmix_r8 opaque2; // maxobldepth cvmix_r8 opaque3; // minvtsqr cvmix_r8 opaque4; // vonkarman cvmix_r8 opaque5; // cstar cvmix_r8 opaque6; // nonlocal_coeff cvmix_r8 opaque7; // zeta_m cvmix_r8 opaque8; // zeta_s cvmix_r8 opaque9; // a_m cvmix_r8 opaque10; // c_m cvmix_r8 opaque11; // a_s cvmix_r8 opaque12; // c_s cvmix_r8 opaque13; // surf_layer_ext integer opaque14; // interp_type integer opaque15; // interp_type2 cvmix_r8 opaque16; // cv integer opaque17; // matchtechnique integer opaque18; // handle_old_vals logical opaque19; // lscalar_cv logical opaque20; // lekman logical opaque21; // lmonob logical opaque22; // lnodgat1 logical opaque23; // lenhanced_diff integer opaque24; // langmuir_mixing_opt integer opaque25; // langmuir_entrainment_opt logical opaque26; // l_lmd_ws cvmix_r8 opaque27; // c_lt cvmix_r8 opaque28; // c_st cvmix_r8 opaque29; // c_ct cvmix_r8 opaque30; // p_lt cvmix_r8 opaque31; // rwhgk_entr_coef cvmix_r8 opaque32; // rwhgk_entr_exp } cvmix_kpp_params_type; extern void __cvmix_kpp_MOD_cvmix_init_kpp ( cvmix_r8 * ri_crit, cvmix_r8 * minobldepth, cvmix_r8 * maxobldepth, cvmix_r8 * minvtsqr, cvmix_r8 * vonkarman, cvmix_r8 * cstar, cvmix_r8 * zeta_m, cvmix_r8 * zeta_s, cvmix_r8 * surf_layer_ext, cvmix_r8 * cv, char * interp_type, char * interp_type2, char * matchtechnique, char * old_vals, logical * lekman, logical * lmonob, logical * lnodgat1, logical * lenhanced_diff, logical * lnonzero_surf_nonlocal, char * langmuir_mixing_str, char * langmuir_entrainment_str, logical * l_lmd_ws, cvmix_kpp_params_type * cvmix_kpp_params_user, long int _slinterp_type, long int _slinterp_type2, long int _slmatchtechnique, long int _slold_vals, long int _sllangmuir_mixing_str, long int _sllangmuir_entrainment_str ); struct _cvmix_init_kpp { cvmix_r8 * ri_crit; cvmix_r8 * minobldepth; cvmix_r8 * maxobldepth; cvmix_r8 * minvtsqr; cvmix_r8 * vonkarman; cvmix_r8 * cstar; cvmix_r8 * zeta_m; cvmix_r8 * zeta_s; cvmix_r8 * surf_layer_ext; cvmix_r8 * cv; char * interp_type; char * interp_type2; char * matchtechnique; char * old_vals; logical * lekman; logical * lmonob; logical * lnodgat1; logical * lenhanced_diff; logical * lnonzero_surf_nonlocal; char * langmuir_mixing_str; char * langmuir_entrainment_str; logical * l_lmd_ws; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_init_kpp (struct _cvmix_init_kpp p) { __cvmix_kpp_MOD_cvmix_init_kpp (p.ri_crit, p.minobldepth, p.maxobldepth, p.minvtsqr, p.vonkarman, p.cstar, p.zeta_m, p.zeta_s, p.surf_layer_ext, p.cv, p.interp_type, p.interp_type2, p.matchtechnique, p.old_vals, p.lekman, p.lmonob, p.lnodgat1, p.lenhanced_diff, p.lnonzero_surf_nonlocal, p.langmuir_mixing_str, p.langmuir_entrainment_str, p.l_lmd_ws, p.cvmix_kpp_params_user, strlencheck(p.interp_type), strlencheck(p.interp_type2), strlencheck(p.matchtechnique), strlencheck(p.old_vals), strlencheck(p.langmuir_mixing_str), strlencheck(p.langmuir_entrainment_str)); } extern void __cvmix_kpp_MOD_cvmix_coeffs_kpp_wrap ( cvmix_data_type * cvmix_vars, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_coeffs_kpp_wrap { cvmix_data_type * cvmix_vars; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_coeffs_kpp_wrap (struct _cvmix_coeffs_kpp_wrap p) { __cvmix_kpp_MOD_cvmix_coeffs_kpp_wrap (p.cvmix_vars, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_coeffs_kpp_low ( cvmix_r8 * mdiff_out, cvmix_r8 * tdiff_out, cvmix_r8 * sdiff_out, cvmix_r8 * zw, cvmix_r8 * zt, cvmix_r8 * old_mdiff, cvmix_r8 * old_tdiff, cvmix_r8 * old_sdiff, cvmix_r8 * obl_depth, cvmix_r8 * kobl_depth, cvmix_r8 * tnonlocal, cvmix_r8 * snonlocal, cvmix_r8 * surf_fric, cvmix_r8 * surf_buoy, integer * nlev, integer * max_nlev, cvmix_r8 * langmuir_efactor, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_coeffs_kpp_low { cvmix_r8 * mdiff_out; cvmix_r8 * tdiff_out; cvmix_r8 * sdiff_out; cvmix_r8 * zw; cvmix_r8 * zt; cvmix_r8 * old_mdiff; cvmix_r8 * old_tdiff; cvmix_r8 * old_sdiff; cvmix_r8 * obl_depth; cvmix_r8 * kobl_depth; cvmix_r8 * tnonlocal; cvmix_r8 * snonlocal; cvmix_r8 * surf_fric; cvmix_r8 * surf_buoy; integer * nlev; integer * max_nlev; cvmix_r8 * langmuir_efactor; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_coeffs_kpp_low (struct _cvmix_coeffs_kpp_low p) { __cvmix_kpp_MOD_cvmix_coeffs_kpp_low (p.mdiff_out, p.tdiff_out, p.sdiff_out, p.zw, p.zt, p.old_mdiff, p.old_tdiff, p.old_sdiff, p.obl_depth, p.kobl_depth, p.tnonlocal, p.snonlocal, p.surf_fric, p.surf_buoy, p.nlev, p.max_nlev, p.langmuir_efactor, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_put_kpp_real ( char * varname, cvmix_r8 * val, cvmix_kpp_params_type * cvmix_kpp_params_user, long int _slvarname ); struct _cvmix_put_kpp_real { char * varname; cvmix_r8 * val; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_put_kpp_real (struct _cvmix_put_kpp_real p) { __cvmix_kpp_MOD_cvmix_put_kpp_real (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname)); } extern void __cvmix_kpp_MOD_cvmix_put_kpp_int ( char * varname, integer * val, cvmix_kpp_params_type * cvmix_kpp_params_user, long int _slvarname ); struct _cvmix_put_kpp_int { char * varname; integer * val; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_put_kpp_int (struct _cvmix_put_kpp_int p) { __cvmix_kpp_MOD_cvmix_put_kpp_int (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname)); } extern void __cvmix_kpp_MOD_cvmix_put_kpp_logical ( char * varname, logical * val, cvmix_kpp_params_type * cvmix_kpp_params_user, long int _slvarname ); struct _cvmix_put_kpp_logical { char * varname; logical * val; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_put_kpp_logical (struct _cvmix_put_kpp_logical p) { __cvmix_kpp_MOD_cvmix_put_kpp_logical (p.varname, p.val, p.cvmix_kpp_params_user, strlencheck(p.varname)); } extern cvmix_r8 __cvmix_kpp_MOD_cvmix_get_kpp_real ( char * varname, cvmix_kpp_params_type * cvmix_kpp_params_user, long int _slvarname ); struct _cvmix_get_kpp_real { char * varname; cvmix_kpp_params_type * cvmix_kpp_params_user; }; cvmix_r8 cvmix_get_kpp_real (struct _cvmix_get_kpp_real p) { return __cvmix_kpp_MOD_cvmix_get_kpp_real (p.varname, p.cvmix_kpp_params_user, strlencheck(p.varname)); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_low ( cvmix_1d * ri_bulk, cvmix_1d * zw_iface, cvmix_r8 * obl_depth, cvmix_r8 * kobl_depth, cvmix_1d * zt_cntr, cvmix_r8 * surf_fric, cvmix_r8 * surf_buoy, cvmix_r8 * coriolis, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_obl_depth_low { cvmix_1d * ri_bulk; cvmix_1d * zw_iface; cvmix_r8 * obl_depth; cvmix_r8 * kobl_depth; cvmix_1d * zt_cntr; cvmix_r8 * surf_fric; cvmix_r8 * surf_buoy; cvmix_r8 * coriolis; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_obl_depth_low (struct _cvmix_kpp_compute_obl_depth_low p) { __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_low (p.ri_bulk, p.zw_iface, p.obl_depth, p.kobl_depth, p.zt_cntr, p.surf_fric, p.surf_buoy, p.coriolis, p.cvmix_kpp_params_user); } extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_compute_kobl_depth ( cvmix_1d * zw_iface, cvmix_1d * zt_cntr, cvmix_r8 * obl_depth ); struct _cvmix_kpp_compute_kobl_depth { cvmix_1d * zw_iface; cvmix_1d * zt_cntr; cvmix_r8 * obl_depth; }; cvmix_r8 cvmix_kpp_compute_kobl_depth (struct _cvmix_kpp_compute_kobl_depth p) { return __cvmix_kpp_MOD_cvmix_kpp_compute_kobl_depth (p.zw_iface, p.zt_cntr, p.obl_depth); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_enhanced_diff ( cvmix_r8 * mdiff_ktup, cvmix_r8 * tdiff_ktup, cvmix_r8 * sdiff_ktup, cvmix_r8 * mdiff, cvmix_r8 * tdiff, cvmix_r8 * sdiff, cvmix_r8 * obl_mdiff, cvmix_r8 * obl_tdiff, cvmix_r8 * obl_sdiff, cvmix_r8 * tnonlocal, cvmix_r8 * snonlocal, cvmix_r8 * delta, logical * lkteqkw ); struct _cvmix_kpp_compute_enhanced_diff { cvmix_r8 * mdiff_ktup; cvmix_r8 * tdiff_ktup; cvmix_r8 * sdiff_ktup; cvmix_r8 * mdiff; cvmix_r8 * tdiff; cvmix_r8 * sdiff; cvmix_r8 * obl_mdiff; cvmix_r8 * obl_tdiff; cvmix_r8 * obl_sdiff; cvmix_r8 * tnonlocal; cvmix_r8 * snonlocal; cvmix_r8 * delta; logical * lkteqkw; }; void cvmix_kpp_compute_enhanced_diff (struct _cvmix_kpp_compute_enhanced_diff p) { __cvmix_kpp_MOD_cvmix_kpp_compute_enhanced_diff (p.mdiff_ktup, p.tdiff_ktup, p.sdiff_ktup, p.mdiff, p.tdiff, p.sdiff, p.obl_mdiff, p.obl_tdiff, p.obl_sdiff, p.tnonlocal, p.snonlocal, p.delta, p.lkteqkw); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_wrap ( cvmix_data_type * cvmix_vars, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_obl_depth_wrap { cvmix_data_type * cvmix_vars; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_obl_depth_wrap (struct _cvmix_kpp_compute_obl_depth_wrap p) { __cvmix_kpp_MOD_cvmix_kpp_compute_obl_depth_wrap (p.cvmix_vars, p.cvmix_kpp_params_user); } extern void cvmix_kpp_mod_cvmix_kpp_compute_bulk_richardson_func_ ( cvmix_r8 * cvmix_kpp_compute_bulk_richardson, cvmix_1d * zt_cntr, cvmix_1d * delta_buoy_cntr, cvmix_1d * delta_vsqr_cntr, cvmix_r8 * vt_sqr_cntr, cvmix_r8 * ws_cntr, cvmix_r8 * n_iface, cvmix_r8 * nsqr_iface, cvmix_r8 * efactor, cvmix_r8 * lasl, cvmix_r8 * bfsfc, cvmix_r8 * ustar, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_bulk_richardson { cvmix_r8 * cvmix_kpp_compute_bulk_richardson; cvmix_1d * zt_cntr; cvmix_1d * delta_buoy_cntr; cvmix_1d * delta_vsqr_cntr; cvmix_r8 * vt_sqr_cntr; cvmix_r8 * ws_cntr; cvmix_r8 * n_iface; cvmix_r8 * nsqr_iface; cvmix_r8 * efactor; cvmix_r8 * lasl; cvmix_r8 * bfsfc; cvmix_r8 * ustar; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_bulk_richardson (struct _cvmix_kpp_compute_bulk_richardson p) { cvmix_kpp_mod_cvmix_kpp_compute_bulk_richardson_func_ (p.cvmix_kpp_compute_bulk_richardson, p.zt_cntr, p.delta_buoy_cntr, p.delta_vsqr_cntr, p.vt_sqr_cntr, p.ws_cntr, p.n_iface, p.nsqr_iface, p.efactor, p.lasl, p.bfsfc, p.ustar, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_0d ( cvmix_r8 * sigma_coord, cvmix_r8 * obl_depth, cvmix_r8 * surf_buoy_force, cvmix_r8 * surf_fric_vel, cvmix_r8 * w_m, cvmix_r8 * w_s, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_turbulent_scales_0d { cvmix_r8 * sigma_coord; cvmix_r8 * obl_depth; cvmix_r8 * surf_buoy_force; cvmix_r8 * surf_fric_vel; cvmix_r8 * w_m; cvmix_r8 * w_s; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_turbulent_scales_0d (struct _cvmix_kpp_compute_turbulent_scales_0d p) { __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_0d (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_sigma ( cvmix_1d * sigma_coord, cvmix_r8 * obl_depth, cvmix_r8 * surf_buoy_force, cvmix_r8 * surf_fric_vel, cvmix_r8 * w_m, cvmix_r8 * w_s, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_turbulent_scales_1d_sigma { cvmix_1d * sigma_coord; cvmix_r8 * obl_depth; cvmix_r8 * surf_buoy_force; cvmix_r8 * surf_fric_vel; cvmix_r8 * w_m; cvmix_r8 * w_s; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_turbulent_scales_1d_sigma (struct _cvmix_kpp_compute_turbulent_scales_1d_sigma p) { __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_sigma (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_obl ( cvmix_r8 * sigma_coord, cvmix_1d * obl_depth, cvmix_1d * surf_buoy_force, cvmix_r8 * surf_fric_vel, cvmix_r8 * w_m, cvmix_r8 * w_s, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_turbulent_scales_1d_obl { cvmix_r8 * sigma_coord; cvmix_1d * obl_depth; cvmix_1d * surf_buoy_force; cvmix_r8 * surf_fric_vel; cvmix_r8 * w_m; cvmix_r8 * w_s; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_turbulent_scales_1d_obl (struct _cvmix_kpp_compute_turbulent_scales_1d_obl p) { __cvmix_kpp_MOD_cvmix_kpp_compute_turbulent_scales_1d_obl (p.sigma_coord, p.obl_depth, p.surf_buoy_force, p.surf_fric_vel, p.w_m, p.w_s, p.cvmix_kpp_params_user); } extern void cvmix_kpp_mod_cvmix_kpp_compute_unresolved_shear_func_ ( cvmix_r8 * cvmix_kpp_compute_unresolved_shear, cvmix_1d * zt_cntr, cvmix_1d * ws_cntr, cvmix_r8 * n_iface, cvmix_r8 * nsqr_iface, cvmix_r8 * efactor, cvmix_r8 * lasl, cvmix_r8 * bfsfc, cvmix_r8 * ustar, cvmix_kpp_params_type * cvmix_kpp_params_user ); struct _cvmix_kpp_compute_unresolved_shear { cvmix_r8 * cvmix_kpp_compute_unresolved_shear; cvmix_1d * zt_cntr; cvmix_1d * ws_cntr; cvmix_r8 * n_iface; cvmix_r8 * nsqr_iface; cvmix_r8 * efactor; cvmix_r8 * lasl; cvmix_r8 * bfsfc; cvmix_r8 * ustar; cvmix_kpp_params_type * cvmix_kpp_params_user; }; void cvmix_kpp_compute_unresolved_shear (struct _cvmix_kpp_compute_unresolved_shear p) { cvmix_kpp_mod_cvmix_kpp_compute_unresolved_shear_func_ (p.cvmix_kpp_compute_unresolved_shear, p.zt_cntr, p.ws_cntr, p.n_iface, p.nsqr_iface, p.efactor, p.lasl, p.bfsfc, p.ustar, p.cvmix_kpp_params_user); } extern void __cvmix_kpp_MOD_cvmix_kpp_compute_shape_function_coeffs ( cvmix_r8 * gat1, cvmix_r8 * dgat1, cvmix_r8 * coeffs ); struct _cvmix_kpp_compute_shape_function_coeffs { cvmix_r8 * gat1; cvmix_r8 * dgat1; cvmix_r8 * coeffs; }; void cvmix_kpp_compute_shape_function_coeffs (struct _cvmix_kpp_compute_shape_function_coeffs p) { __cvmix_kpp_MOD_cvmix_kpp_compute_shape_function_coeffs (p.gat1, p.dgat1, p.coeffs); } extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_compute_nu_at_obl_depth_lmd94 ( cvmix_r8 * depths_cntr, cvmix_r8 * layer_widths, cvmix_r8 * diffs_iface, cvmix_r8 * obl_depth, cvmix_r8 * diff_2above, cvmix_r8 * dnu_dz ); struct _cvmix_kpp_compute_nu_at_obl_depth_lmd94 { cvmix_r8 * depths_cntr; cvmix_r8 * layer_widths; cvmix_r8 * diffs_iface; cvmix_r8 * obl_depth; cvmix_r8 * diff_2above; cvmix_r8 * dnu_dz; }; cvmix_r8 cvmix_kpp_compute_nu_at_obl_depth_lmd94 (struct _cvmix_kpp_compute_nu_at_obl_depth_lmd94 p) { return __cvmix_kpp_MOD_cvmix_kpp_compute_nu_at_obl_depth_lmd94 (p.depths_cntr, p.layer_widths, p.diffs_iface, p.obl_depth, p.diff_2above, p.dnu_dz); } extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_efactor_model ( cvmix_r8 * u10, cvmix_r8 * ustar, cvmix_r8 * hbl, cvmix_global_params_type * cvmix_params_in ); struct _cvmix_kpp_efactor_model { cvmix_r8 * u10; cvmix_r8 * ustar; cvmix_r8 * hbl; cvmix_global_params_type * cvmix_params_in; }; cvmix_r8 cvmix_kpp_efactor_model (struct _cvmix_kpp_efactor_model p) { return __cvmix_kpp_MOD_cvmix_kpp_efactor_model (p.u10, p.ustar, p.hbl, p.cvmix_params_in); } extern cvmix_r8 __cvmix_kpp_MOD_cvmix_kpp_ustokes_sl_model ( cvmix_r8 * u10, cvmix_r8 * hbl, cvmix_global_params_type * cvmix_params_in ); struct _cvmix_kpp_ustokes_sl_model { cvmix_r8 * u10; cvmix_r8 * hbl; cvmix_global_params_type * cvmix_params_in; }; cvmix_r8 cvmix_kpp_ustokes_sl_model (struct _cvmix_kpp_ustokes_sl_model p) { return __cvmix_kpp_MOD_cvmix_kpp_ustokes_sl_model (p.u10, p.hbl, p.cvmix_params_in); }