7.3
general documentation
cs_atmo.h
Go to the documentation of this file.
1 #ifndef __CS_ATMO_H__
2 #define __CS_ATMO_H__
3 
4 /*============================================================================
5  * Main for atmospheric related functions
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2022 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_base.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*============================================================================
41  * Local Macro definitions
42  *============================================================================*/
43 
44 /*============================================================================
45  * Type definitions
46  *============================================================================*/
47 
48 /*----------------------------------------------------------------------------
49  * Atmospheric models
50  *----------------------------------------------------------------------------*/
51 
52 typedef enum {
53 
58 
60 
61 /*----------------------------------------------------------------------------
62  * Atmospheric nucleation models
63  *----------------------------------------------------------------------------*/
64 
65 typedef enum {
66 
71 
73 
74 /*----------------------------------------------------------------------------
75  * Atmospheric aerosol external library
76  *----------------------------------------------------------------------------*/
77 
78 typedef enum {
79 
82 
84 
85 /*----------------------------------------------------------------------------
86  * Atmospheric universal functions
87  *----------------------------------------------------------------------------*/
88 
89 typedef enum {
90 
96 
98 
99 /*----------------------------------------------------------------------------
100  * Atmospheric soil model
101  *----------------------------------------------------------------------------*/
102 
103 typedef enum {
104 
113 
115 
116 /*============================================================================
117  * Type definitions
118  *============================================================================*/
119 
124 /*----------------------------------------------------------------------------
125  * Atmospheric model options descriptor
126  *----------------------------------------------------------------------------*/
127 
128 typedef struct {
129  /* Space and time reference of the run */
131  int syear;
133  int squant;
135  int shour;
137  int smin;
149  int nbmetd;
151  int nbmett;
154  int nbmetm;
155 
158  int nbmaxt;
162 
165 
167 
168  /* Model options */
202 
205 
244 
253 
262 
282 
284 
285 /*----------------------------------------------------------------------------
286  * Atmospheric model constants descriptor
287  *----------------------------------------------------------------------------*/
288 
289 typedef struct {
290  /* Space and time reference of the run */
293 
295 
296 /*----------------------------------------------------------------------------
297  * Atmospheric chemistry options descriptor
298  *----------------------------------------------------------------------------*/
299 
300 typedef struct {
301 
309  int model;
312 
313  /* Flag to deactivate photolysis */
315 
320 
328  int n_layer;
330  int n_size;
332  int *species_to_scalar_id; // used only in Fortran
336  int *chempoint;
337 
347 
348 /*============================================================================
349  * Static global variables
350  *============================================================================*/
351 
352 /* Pointer to atmo options structure */
354 
355 /* Pointer to atmo constants structure */
357 
358 /* Pointer to atmo chemistry structure */
360 
361 /*============================================================================
362  * Public function definitions
363  *============================================================================*/
364 
365 /*----------------------------------------------------------------------------*/
367 /*----------------------------------------------------------------------------*/
368 
369 void
371 
372 /*----------------------------------------------------------------------------*/
376 /*----------------------------------------------------------------------------*/
377 
378 void
380 
381 /*----------------------------------------------------------------------------*/
385 /*----------------------------------------------------------------------------*/
386 
387 void
389 
390 /*----------------------------------------------------------------------------*/
412 /*----------------------------------------------------------------------------*/
413 
414 void
416 
417 /*----------------------------------------------------------------------------*/
435 /*----------------------------------------------------------------------------*/
436 
437 void
439 
440 /*----------------------------------------------------------------------------*/
448 /*----------------------------------------------------------------------------*/
449 
450 cs_real_t
452  cs_real_t dlmo);
453 
454 /*----------------------------------------------------------------------------*/
462 /*----------------------------------------------------------------------------*/
463 
464 cs_real_t
466  cs_real_t dlmo);
467 
468 /*----------------------------------------------------------------------------*/
477 /*----------------------------------------------------------------------------*/
478 
479 cs_real_t
481  cs_real_t z0,
482  cs_real_t dlmo);
483 
484 /*----------------------------------------------------------------------------*/
493 /*----------------------------------------------------------------------------*/
494 
495 cs_real_t
497  cs_real_t z0,
498  cs_real_t dlmo);
499 
500 
501 /*----------------------------------------------------------------------------*/
507 /*----------------------------------------------------------------------------*/
508 
509 void
510 cs_atmo_set_meteo_file_name(const char *file_name);
511 
512 /*----------------------------------------------------------------------------*/
518 /*----------------------------------------------------------------------------*/
519 
520 void
521 cs_atmo_set_chem_conc_file_name(const char *file_name);
522 
523 /*----------------------------------------------------------------------------*/
529 /*----------------------------------------------------------------------------*/
530 
531 void
532 cs_atmo_set_aero_conc_file_name(const char *file_name);
533 
534 /*----------------------------------------------------------------------------*/
540 /*----------------------------------------------------------------------------*/
541 
542 void
543 cs_atmo_chemistry_set_spack_file_name(const char *file_name);
544 
545 /*----------------------------------------------------------------------------*/
551 /*----------------------------------------------------------------------------*/
552 
553 void
554 cs_atmo_chemistry_set_aerosol_file_name(const char *file_name);
555 
556 /*----------------------------------------------------------------------------*/
562 /*----------------------------------------------------------------------------*/
563 
564 void
566 
567 /*----------------------------------------------------------------------------*/
587 /*----------------------------------------------------------------------------*/
588 
589 void
591  cs_real_t xlong,
592  cs_real_t jour,
593  cs_real_t heurtu,
594  int imer,
595  cs_real_t *albe,
596  cs_real_t *muzero,
597  cs_real_t *omega,
598  cs_real_t *fo);
599 
600 /*----------------------------------------------------------------------------*/
604 /*----------------------------------------------------------------------------*/
605 
606 void
607 cs_atmo_log_setup(void);
608 
609 /*----------------------------------------------------------------------------*/
613 /*----------------------------------------------------------------------------*/
614 
615 void
617 
618 /*----------------------------------------------------------------------------*/
622 /*----------------------------------------------------------------------------*/
623 
624 void
626 
627 /*----------------------------------------------------------------------------*/
631 /*----------------------------------------------------------------------------*/
632 
633 void
634 cs_atmo_finalize(void);
635 
636 /*----------------------------------------------------------------------------*/
637 
639 
640 #endif /* __CS_ATMO_H__ */
int nbmaxt
Definition: cs_atmo.h:158
Definition: cs_atmo.h:95
cs_real_t * ek_met
Definition: cs_atmo.h:259
cs_real_t meteo_zi
Definition: cs_atmo.h:213
cs_atmo_chemistry_t * cs_glob_atmo_chemistry
int * species_to_field_id
Definition: cs_atmo.h:333
cs_atmo_soil_cat_t
Definition: cs_atmo.h:103
cs_real_t meteo_zref
Definition: cs_atmo.h:211
void cs_atmo_hydrostatic_profiles_compute(void)
Compute hydrostatic profiles of density and pressure.
Definition: cs_atmo.c:2396
Definition: cs_atmo.h:54
char * chem_conc_file_name
Definition: cs_atmo.h:342
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 *muzero, cs_real_t *omega, cs_real_t *fo)
1D Radiative scheme - Solar data + zenithal angle)
Definition: cs_atmo.c:2878
cs_real_t meteo_ustar0
Definition: cs_atmo.h:229
int meteo_phim_u
Definition: cs_atmo.h:250
cs_atmo_option_t * cs_glob_atmo_option
cs_real_t * z_temp_met
Definition: cs_atmo.h:266
void cs_atmo_set_meteo_file_name(const char *file_name)
This function set the file name of the meteo file.
Definition: cs_atmo.c:2627
int radiative_model_1d
Definition: cs_atmo.h:157
cs_atmo_aerosol_type_t aerosol_model
Definition: cs_atmo.h:319
cs_real_t * ep_met
Definition: cs_atmo.h:261
cs_real_t meteo_u2
Definition: cs_atmo.h:227
cs_real_t meteo_z0
Definition: cs_atmo.h:209
Definition: cs_atmo.h:55
cs_real_t meteo_psea
Definition: cs_atmo.h:243
int subgrid_model
Definition: cs_atmo.h:189
cs_atmo_soil_cat_t soil_cat
Definition: cs_atmo.h:279
int smin
Definition: cs_atmo.h:137
double precision, dimension(ncharm), save omega
Definition: cpincl.f90:99
void cs_atmo_set_aero_conc_file_name(const char *file_name)
This function set the file name of the aerosol concentration file.
Definition: cs_atmo.c:2685
#define BEGIN_C_DECLS
Definition: cs_defs.h:512
int deposition_model
Definition: cs_atmo.h:172
int n_layer
Definition: cs_atmo.h:328
Definition: cs_atmo.h:109
Definition: cs_atmo.h:56
bool compute_z_ground
Definition: cs_atmo.h:164
Definition: cs_atmo.h:91
cs_real_t meteo_u1
Definition: cs_atmo.h:225
cs_real_t * time_met
Definition: cs_atmo.h:268
int sedimentation_model
Definition: cs_atmo.h:170
void cs_atmo_chemistry_set_aerosol_file_name(const char *file_name)
This function sets the file name to initialize the aerosol library.
Definition: cs_atmo.c:2742
cs_real_t cs_mo_phim(cs_real_t z, cs_real_t dlmo)
Universal function phim for neutral, stable and unstable.
Definition: cs_atmo.h:67
Definition: cs_atmo.h:68
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
bool chemistry_with_photolysis
Definition: cs_atmo.h:314
cs_real_t meteo_zu2
Definition: cs_atmo.h:217
int n_size
Definition: cs_atmo.h:330
cs_real_t ps
Definition: cs_atmo.h:292
Definition: cs_atmo.h:81
Definition: cs_atmo.h:93
Definition: cs_atmo.h:112
char * aero_file_name
Definition: cs_atmo.h:339
cs_real_t meteo_zt2
Definition: cs_atmo.h:221
cs_real_t y_l93
Definition: cs_atmo.h:147
int meteo_profile
Definition: cs_atmo.h:201
cs_real_t x_l93
Definition: cs_atmo.h:145
void cs_atmo_log_setup(void)
Print the atmospheric module options to setup.log.
Definition: cs_atmo.c:2969
void cs_atmo_chemistry_log_setup(void)
Print the atmospheric chemistry options to setup.log.
Definition: cs_atmo.c:3091
cs_real_t meteo_t0
Definition: cs_atmo.h:235
Definition: cs_atmo.h:94
cs_atmo_constants_t * cs_glob_atmo_constants
Definition: cs_atmo.h:289
int meteo_phih_s
Definition: cs_atmo.h:248
cs_atmo_universal_functions_t
Definition: cs_atmo.h:89
int n_reactions
Definition: cs_atmo.h:311
Definition: cs_atmo.h:300
char * spack_file_name
Definition: cs_atmo.h:331
cs_atmo_aerosol_type_t
Definition: cs_atmo.h:78
Definition: cs_atmo.h:106
cs_real_t meteo_uref
Definition: cs_atmo.h:223
void cs_atmo_chemistry_set_spack_file_name(const char *file_name)
This function set the file name of the SPACK file.
Definition: cs_atmo.c:2717
int nucleation_model
Definition: cs_atmo.h:181
bool frozen_gas_chem
Definition: cs_atmo.h:322
Definition: cs_atmo.h:128
void cs_atmo_add_property_fields(void)
Definition: cs_atmo.c:1615
void cs_atmo_init_meteo_profiles(void)
Initialize meteo profiles if no meteo file is given.
Definition: cs_atmo.c:1807
int soil_model
Definition: cs_atmo.h:274
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.
int squant
Definition: cs_atmo.h:133
cs_real_t meteo_t2
Definition: cs_atmo.h:239
real(c_double), pointer, save xlat
latitude of the domain origin
Definition: atincl.f90:205
int meteo_phim_s
Definition: cs_atmo.h:246
int open_bcs_treatment
Definition: cs_atmo.h:166
int shour
Definition: cs_atmo.h:135
int n_species
Definition: cs_atmo.h:310
int nbmetd
Definition: cs_atmo.h:149
cs_real_t latitude
Definition: cs_atmo.h:143
#define END_C_DECLS
Definition: cs_defs.h:513
int model
Definition: cs_atmo.h:309
char * meteo_file_name
Definition: cs_atmo.h:204
Definition: cs_atmo.h:69
Definition: cs_atmo.h:57
cs_real_t domain_orientation
Definition: cs_atmo.h:161
void cs_atmo_declare_chem_from_spack(void)
This function declare additional transported variables for atmospheric module for the chemistry defin...
Definition: cs_atmo.c:2766
Definition: cs_atmo.h:92
cs_atmo_nucleation_type_t
Definition: cs_atmo.h:65
bool init_aero_with_lib
Definition: cs_atmo.h:326
cs_real_t meteo_t1
Definition: cs_atmo.h:237
cs_real_t meteo_dlmo
Definition: cs_atmo.h:207
Definition: cs_atmo.h:80
int meteo_phih_u
Definition: cs_atmo.h:252
int nbmetm
Definition: cs_atmo.h:154
cs_real_t cs_mo_psih(cs_real_t z, cs_real_t z0, cs_real_t dlmo)
Universal function psih for neutral, stable and unstable.
int distribution_model
Definition: cs_atmo.h:194
cs_real_t * hyd_p_met
Definition: cs_atmo.h:270
cs_real_t * molar_mass
Definition: cs_atmo.h:335
cs_real_t * v_met
Definition: cs_atmo.h:257
cs_real_t meteo_zu1
Definition: cs_atmo.h:215
cs_real_t meteo_zt1
Definition: cs_atmo.h:219
int nbmett
Definition: cs_atmo.h:151
int syear
Definition: cs_atmo.h:131
cs_real_t * pot_t_met
Definition: cs_atmo.h:272
cs_real_t ssec
Definition: cs_atmo.h:139
void cs_atmo_z_ground_compute(void)
This function computes the ground elevation.
Definition: cs_atmo.c:2186
char * aero_conc_file_name
Definition: cs_atmo.h:345
Definition: cs_atmo.h:70
void cs_atmo_set_chem_conc_file_name(const char *file_name)
This function set the file name of the chemistry concentration file.
Definition: cs_atmo.c:2656
void cs_atmo_finalize(void)
Deallocate arrays for atmo module.
Definition: cs_atmo.c:3202
cs_real_t meteo_angle
Definition: cs_atmo.h:233
cs_real_t * u_met
Definition: cs_atmo.h:255
cs_atmo_model_t
Definition: cs_atmo.h:52
cs_real_t meteo_tstar
Definition: cs_atmo.h:241
cs_real_t meteo_wstar0
Definition: cs_atmo.h:231
cs_real_t cs_mo_phih(cs_real_t z, cs_real_t dlmo)
Universal function phih for neutral, stable and unstable.
cs_real_t * z_dyn_met
Definition: cs_atmo.h:264
cs_real_t longitude
Definition: cs_atmo.h:141
void cs_atmo_aerosol_log_setup(void)
Print the atmospheric aerosols options to setup.log.
Definition: cs_atmo.c:3156
bool init_gas_with_lib
Definition: cs_atmo.h:324
int soil_zone_id
Definition: cs_atmo.h:281
int * chempoint
Definition: cs_atmo.h:336
void cs_atmo_compute_meteo_profiles(void)
Compute meteo profiles if no meteo file is given.
Definition: cs_atmo.c:1975
int * species_to_scalar_id
Definition: cs_atmo.h:332