9.1
general documentation
cs_atmo.h File Reference
#include "base/cs_base.h"
+ Include dependency graph for cs_atmo.h:

Go to the source code of this file.

Classes

struct  cs_atmo_option_t
 
struct  cs_atmo_constants_t
 

Enumerations

enum  cs_atmo_model_t { CS_ATMO_OFF = -1 , CS_ATMO_CONSTANT_DENSITY = 0 , CS_ATMO_DRY = 1 , CS_ATMO_HUMID = 2 }
 
enum  cs_atmo_nucleation_type_t { CS_ATMO_NUC_OFF = 0 , CS_ATMO_NUC_PRUPPACHER_KLETT = 1 , CS_ATMO_NUC_COHARD = 2 , CS_ATMO_NUC_ABDUL_RAZZAK = 3 }
 
enum  cs_atmo_universal_functions_t {
  CS_ATMO_UNIV_FN_CHENG = 0 , CS_ATMO_UNIV_FN_HOGSTROM = 1 , CS_ATMO_UNIV_FN_BUSINGER = 2 , CS_ATMO_UNIV_FN_HARTOGENSIS = 3 ,
  CS_ATMO_UNIV_FN_CARL = 4
}
 
enum  cs_atmo_ground_cat_t { CS_ATMO_GROUND_5_CAT = 0 , CS_ATMO_GROUND_7_CAT = 1 , CS_ATMO_GROUND_23_CAT = 2 }
 
enum  cs_atmo_ground_meb_model_t { CS_ATMO_GROUND_GENUINE = 0 , CS_ATMO_GROUND_PHOTOVOLTAICS = 1 , CS_ATMO_GROUND_VEGETATION = 2 }
 
enum  cs_atmo_projection_t {
  CS_ATMO_PROJ_UNDEF = -1 , CS_ATMO_PROJ_WGS84 = 0 , CS_ATMO_PROJ_LAMBERT_93 = 1 , CS_ATMO_PROJ_UTM = 2 ,
  CS_ATMO_PROJ_TAN = 3
}
 

Functions

void cs_atmo_phyvar_update (void)
 
void cs_atmo_fields_init0 (void)
 
void cs_atmo_bcond (void)
 
void cs_atmo_init_meteo_profiles (void)
 Initialize meteo profiles if no meteo file is given. More...
 
void cs_atmo_compute_meteo_profiles (void)
 Compute meteo profiles if no meteo file is given. More...
 
void cs_atmo_z_ground_compute (void)
 This function computes the ground elevation. More...
 
void cs_atmo_hydrostatic_profiles_compute (void)
 Compute hydrostatic profiles of density and pressure. More...
 
void cs_atmo_read_meteo_profile (int mode)
 Reads the meteo profile data for the atmospheric. More...
 
cs_real_t cs_mo_phim (cs_real_t z, cs_real_t dlmo)
 Universal function phim for neutral, stable and unstable. More...
 
cs_real_t cs_mo_phih (cs_real_t z, cs_real_t dlmo, cs_real_t prt)
 Universal function phih for neutral, stable and unstable. More...
 
cs_real_t cs_mo_psim (cs_real_t z, cs_real_t z0, cs_real_t dlmo)
 Universal function psim for neutral, stable and unstable. More...
 
cs_real_t cs_mo_psih (cs_real_t z, cs_real_t z0, cs_real_t dlmo, cs_real_t prt)
 Universal function psih for neutral, stable and unstable. More...
 
void cs_mo_compute_from_thermal_diff (cs_real_t z, cs_real_t z0, cs_real_t du, cs_real_t buoyant_param, cs_real_t dt, cs_real_t *dlmo, cs_real_t *ustar)
 Compute LMO, friction velocity ustar, friction temperature tstar from a thermal difference using Monin Obukhov. More...
 
void cs_mo_compute_from_thermal_flux (cs_real_t z, cs_real_t z0, cs_real_t du, cs_real_t buoyant_param, cs_real_t flux, cs_real_t *dlmo, cs_real_t *ustar)
 Compute LMO, friction velocity ustar, friction temperature tstar from a thermal flux using Monin Obukhov. More...
 
void cs_atmo_set_meteo_file_name (const char *file_name)
 This function set the file name of the meteo file. More...
 
void cs_atmo_compute_solar_angles (cs_real_t xlat, cs_real_t xlong, cs_real_t jour, cs_real_t heurtu, int imer, cs_real_t *albe, cs_real_t *za, cs_real_t *muzero, cs_real_t *omega, cs_real_t *fo)
 1D Radiative scheme - Solar data + zenithal angle) More...
 
void cs_atmo_log_setup (void)
 Print the atmospheric module options to setup.log. More...
 
void cs_atmo_finalize (void)
 Deallocate arrays for atmo module. More...
 
void cs_user_ground_model (void)
 Allow call of cs_user fonctions during ground model computation. More...
 
void cs_atmo_get_ground_zone (cs_lnum_t *n_elts, int *n_ground_cat, const cs_lnum_t **elt_ids)
 
void cs_atmo_ground_init_arrays (int *n_ground_cat, cs_real_t **csol, cs_real_t **rugdyn, cs_real_t **rugthe, cs_real_t **albedo, cs_real_t **emissi, cs_real_t **vegeta, cs_real_t **c1w, cs_real_t **c2w, cs_real_t **r1, cs_real_t **r2)
 
void cs_atmo_projection (cs_atmo_projection_t origin_projection, cs_atmo_projection_t target_projection, cs_real_t x_origin, cs_real_t y_origin, cs_real_t *x_target, cs_real_t *y_target, int utm_fixed_zone)
 Reproject coordinates between supported atmosphere projections. More...
 

Variables

cs_atmo_option_tcs_glob_atmo_option
 
cs_atmo_constants_tcs_glob_atmo_constants
 

Enumeration Type Documentation

◆ cs_atmo_ground_cat_t

Enumerator
CS_ATMO_GROUND_5_CAT 

5 categories: water, forest, diverse, mineral, building

CS_ATMO_GROUND_7_CAT 

7 categories: water, forest, diverse, mineral, diffuse buildings, mixtie buildings, dense buildings

CS_ATMO_GROUND_23_CAT 

Roughness length classification of Corine land cover classes Julieta Silva et al. doi=10.1.1.608.2707

◆ cs_atmo_ground_meb_model_t

Enumerator
CS_ATMO_GROUND_GENUINE 

Genuine Force-restore model (bare-ground or equivalent only)

CS_ATMO_GROUND_PHOTOVOLTAICS 

Force-restore model including photovoltaic layer

CS_ATMO_GROUND_VEGETATION 

Force-restore model including vegetation layer

◆ cs_atmo_model_t

Enumerator
CS_ATMO_OFF 
CS_ATMO_CONSTANT_DENSITY 
CS_ATMO_DRY 
CS_ATMO_HUMID 

◆ cs_atmo_nucleation_type_t

Enumerator
CS_ATMO_NUC_OFF 
CS_ATMO_NUC_PRUPPACHER_KLETT 
CS_ATMO_NUC_COHARD 
CS_ATMO_NUC_ABDUL_RAZZAK 

◆ cs_atmo_projection_t

Enumerator
CS_ATMO_PROJ_UNDEF 
CS_ATMO_PROJ_WGS84 
CS_ATMO_PROJ_LAMBERT_93 
CS_ATMO_PROJ_UTM 
CS_ATMO_PROJ_TAN 

◆ cs_atmo_universal_functions_t

Enumerator
CS_ATMO_UNIV_FN_CHENG 
CS_ATMO_UNIV_FN_HOGSTROM 
CS_ATMO_UNIV_FN_BUSINGER 
CS_ATMO_UNIV_FN_HARTOGENSIS 
CS_ATMO_UNIV_FN_CARL 

Function Documentation

◆ cs_atmo_bcond()

void cs_atmo_bcond ( void  )

◆ cs_atmo_compute_meteo_profiles()

void cs_atmo_compute_meteo_profiles ( void  )

Compute meteo profiles if no meteo file is given.

◆ cs_atmo_compute_solar_angles()

void cs_atmo_compute_solar_angles ( cs_real_t  latitude,
cs_real_t  longitude,
cs_real_t  squant,
cs_real_t  utc,
int  sea_id,
cs_real_t albedo,
cs_real_t za,
cs_real_t muzero,
cs_real_t omega,
cs_real_t fo 
)

1D Radiative scheme - Solar data + zenithal angle)

Compute:

  • zenithal angle
  • solar contant (with correction for earth - solar length)
  • albedo if above the sea (Use analytical formulae of Paltrige and Platt dev.in atm. science no 5)
    Parameters
    [in]xlatlatitude
    [in]xlonglongitude
    [in]jourday in the year
    [in]heurtuUniversal time (hour)
    [in]imersea index
    [out]albealbedo
    [out]zazenithal angle
    [out]muzerocosin of zenithal angle (+ correction due to Earth curvature)
    [out]omegasolar azimut angle
    [out]fosolar constant
    Compute:
  • zenithal angle
  • solar contant (with correction for earth - solar length)
  • albedo if above the sea (Use analytical formulae of Paltrige and Platt dev.in atm. science no 5)
    Parameters
    [in]latitudelatitude
    [in]longitudelongitude
    [in]squantstart day in the year
    [in]utcUniversal time (hour)
    [in]sea_idsea index
    [out]albedoalbedo
    [out]zazenithal angle
    [out]muzerocosin of zenithal angle
    [out]omegasolar azimut angle
    [out]fosolar constant

◆ cs_atmo_fields_init0()

void cs_atmo_fields_init0 ( void  )

◆ cs_atmo_finalize()

void cs_atmo_finalize ( void  )

Deallocate arrays for atmo module.

◆ cs_atmo_get_ground_zone()

void cs_atmo_get_ground_zone ( cs_lnum_t n_elts,
int *  n_ground_cat,
const cs_lnum_t **  elt_ids 
)

◆ cs_atmo_ground_init_arrays()

void cs_atmo_ground_init_arrays ( int *  n_ground_cat,
cs_real_t **  csol,
cs_real_t **  rugdyn,
cs_real_t **  rugthe,
cs_real_t **  albedo,
cs_real_t **  emissi,
cs_real_t **  vegeta,
cs_real_t **  c1w,
cs_real_t **  c2w,
cs_real_t **  r1,
cs_real_t **  r2 
)

◆ cs_atmo_hydrostatic_profiles_compute()

void cs_atmo_hydrostatic_profiles_compute ( void  )

Compute hydrostatic profiles of density and pressure.

This function solves the following transport equation on $ \varia $:

\[
 \divs \left( \grad \varia \right)
     = \divs \left( \dfrac{\vect{g}}{c_p \theta} \right)
 \]

where $ \vect{g} $ is the gravity field and $ \theta $ is the potential temperature.

The boundary conditions on $ \varia $ read:

\[
  \varia = \left(\dfrac{P_{sea}}{p_s}\right)^{R/C_p} \textrm{on the ground}
 \]

and Neumann elsewhere.

◆ cs_atmo_init_meteo_profiles()

void cs_atmo_init_meteo_profiles ( void  )

Initialize meteo profiles if no meteo file is given.

◆ cs_atmo_log_setup()

void cs_atmo_log_setup ( void  )

Print the atmospheric module options to setup.log.

◆ cs_atmo_phyvar_update()

void cs_atmo_phyvar_update ( void  )

◆ cs_atmo_projection()

void cs_atmo_projection ( cs_atmo_projection_t  origin_projection,
cs_atmo_projection_t  target_projection,
cs_real_t  x_origin,
cs_real_t  y_origin,
cs_real_t x_target,
cs_real_t y_target,
int  utm_fixed_zone 
)

Reproject coordinates between supported atmosphere projections.

This convenience wrapper converts coordinates from an origin projection to a target projection. Supported projections include WGS84 (geographic lon/lat in degrees), Lambert-93, UTM and a local tangential projection. The function may perform an intermediate conversion to WGS84 when a direct transformation is not available.

Parameters
[in]origin_projectionInput projection enum (cs_atmo_projection_t).
[in]target_projectionDesired output projection enum (cs_atmo_projection_t).
[in]x_originX coordinate in the origin projection (lon for WGS84).
[in]y_originY coordinate in the origin projection (lat for WGS84).
[out]x_targetResulting X coordinate in the target projection.
[out]y_targetResulting Y coordinate in the target projection.
[in]utm_fixed_zoneOptional forced UTM zone number when converting to UTM.

◆ cs_atmo_read_meteo_profile()

void cs_atmo_read_meteo_profile ( int  mode)

Reads the meteo profile data for the atmospheric.

Parameters
[in]mode0: reading for dimensions and starting time only 1: reading actual meteo data

◆ cs_atmo_set_meteo_file_name()

void cs_atmo_set_meteo_file_name ( const char *  file_name)

This function set the file name of the meteo file.

Parameters
[in]file_namename of the file.

◆ cs_atmo_z_ground_compute()

void cs_atmo_z_ground_compute ( void  )

This function computes the ground elevation.

This function solves the following transport equation on $ \varia $:

\[
 \dfrac{\partial \varia}{\partial t} + \divs \left( \varia \vect{g} \right)
     - \divs \left( \vect{V} \right) \varia = 0
 \]

where $ \vect{g} $ is the gravity field

The boundary conditions on $ \varia $ read:

\[
  \varia = z \textrm{ on walls}
 \]

\[
  \dfrac{\partial \varia}{\partial n} = 0 \textrm{ elsewhere}
 \]

Remarks:

  • a steady state is looked for.

This function computes the ground elevation.

This function solves the following transport equation on $ \varia $:

\[
 \dfrac{\partial \varia}{\partial t} + \divs \left( \varia \vect{g} \right)
     - \divs \left( \vect{V} \right) \varia = 0
 \]

where $ \vect{g} $ is the gravity field

The boundary conditions on $ \varia $ read:

\[
  \varia = z \textrm{ on walls}
 \]

\[
  \dfrac{\partial \varia}{\partial n} = 0 \textrm{ elsewhere}
 \]

Remarks:

  • a steady state is looked for.

◆ cs_mo_compute_from_thermal_diff()

void cs_mo_compute_from_thermal_diff ( cs_real_t  z,
cs_real_t  z0,
cs_real_t  du,
cs_real_t  buoyant_param,
cs_real_t  dt,
cs_real_t dlmo,
cs_real_t ustar 
)

Compute LMO, friction velocity ustar, friction temperature tstar from a thermal difference using Monin Obukhov.

Parameters
[in]zaltitude
[in]z0
[in]duvelocity difference
[in]buoyant_parambeta g
[in]dtthermal difference
[out]dlmoInverse Monin Obukhov length
[out]ustarfriction velocity

Compute LMO, friction velocity ustar, friction temperature tstar from a thermal difference using Monin Obukhov.

Parameters
[in]zaltitude
[in]z0
[in]duvelocity difference
[in]buoyant_parambeta g
[in]dtthermal difference
[out]dlmoInverse Monin Obukhov length
[out]ustarfriction velocity

◆ cs_mo_compute_from_thermal_flux()

void cs_mo_compute_from_thermal_flux ( cs_real_t  z,
cs_real_t  z0,
cs_real_t  du,
cs_real_t  buoyant_param,
cs_real_t  flux,
cs_real_t dlmo,
cs_real_t ustar 
)

Compute LMO, friction velocity ustar, friction temperature tstar from a thermal flux using Monin Obukhov.

Parameters
[in]zaltitude
[in]z0
[in]duvelocity difference
[in]buoyant_parambeta g
[in]fluxthermal flux
[out]dlmoInverse Monin Obukhov length
[out]ustarfriction velocity

Compute LMO, friction velocity ustar, friction temperature tstar from a thermal flux using Monin Obukhov.

Parameters
[in]zaltitude
[in]z0
[in]duvelocity difference
[in]buoyant_parambeta g
[in]fluxthermal flux
[out]dlmoInverse Monin Obukhov length
[out]ustarfriction velocity

◆ cs_mo_phih()

cs_real_t cs_mo_phih ( cs_real_t  z,
cs_real_t  dlmo,
cs_real_t  prt 
)

Universal function phih for neutral, stable and unstable.

Parameters
[in]zaltitude
[in]dlmoInverse Monin Obukhov length
[in]prtTurbulent Prandtl number
Returns
factor

◆ cs_mo_phim()

cs_real_t cs_mo_phim ( cs_real_t  z,
cs_real_t  dlmo 
)

Universal function phim for neutral, stable and unstable.

Parameters
[in]zaltitude
[in]dlmoInverse Monin Obukhov length
Returns
factor

◆ cs_mo_psih()

cs_real_t cs_mo_psih ( cs_real_t  z,
cs_real_t  z0,
cs_real_t  dlmo,
cs_real_t  prt 
)

Universal function psih for neutral, stable and unstable.

Parameters
[in]zaltitude
[in]z0roughness
[in]dlmoInverse Monin Obukhov length
[in]prtTurbulent Prandtl number
Returns
factor
Parameters
[in]zaltitude
[in]z0altitude of the starting point integration
[in]dlmoInverse Monin Obukhov length
[in]prtTurbulent Prandtl number
Returns
factor

◆ cs_mo_psim()

cs_real_t cs_mo_psim ( cs_real_t  z,
cs_real_t  z0,
cs_real_t  dlmo 
)

Universal function psim for neutral, stable and unstable.

Parameters
[in]zaltitude
[in]z0roughness
[in]dlmoInverse Monin Obukhov length
Returns
factor
Parameters
[in]zaltitude
[in]z0altitude of the starting point integration
[in]dlmoInverse Monin Obukhov length
Returns
factor

◆ cs_user_ground_model()

void cs_user_ground_model ( void  )

Allow call of cs_user fonctions during ground model computation.

Variable Documentation

◆ cs_glob_atmo_constants

cs_atmo_constants_t* cs_glob_atmo_constants
extern

◆ cs_glob_atmo_option

cs_atmo_option_t* cs_glob_atmo_option
extern