Skip to content
Snippets Groups Projects
sfx_data.h 2.18 KiB
Newer Older
数学の武士's avatar
数学の武士 committed
#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;

数学の武士's avatar
数学の武士 committed
        float kappa;
数学の武士's avatar
数学の武士 committed
        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;
    };
数学の武士's avatar
数学の武士 committed

    // 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;
    };
数学の武士's avatar
数学の武士 committed
    
#ifdef __cplusplus
}
#endif