- Timestamp:
- Jul 24, 2024, 4:23:34 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_atke_turbulence_ini.F90
r5116 r5117 5 5 ! declaration of constants and parameters 6 6 7 real, save, protected :: rg, rd, rpi, rcpd, rv, viscom, viscoh7 REAL, SAVE, protected :: rg, rd, rpi, rcpd, rv, viscom, viscoh 8 8 !$OMP THREADPRIVATE(rg, rd, rpi, rcpd, rv, viscom, viscoh) 9 9 10 integer, save, protected :: iflag_atke ! flag that controls options in atke_compute_km_kh11 integer, save, protected :: iflag_atke_lmix ! flag that controls the calculation of mixing length in atke12 integer, save, protected :: iflag_num_atke ! flag that controls the numerical treatment of diffusion coeffiient calculation10 INTEGER, SAVE, protected :: iflag_atke ! flag that controls options in atke_compute_km_kh 11 INTEGER, SAVE, protected :: iflag_atke_lmix ! flag that controls the calculation of mixing length in atke 12 INTEGER, SAVE, protected :: iflag_num_atke ! flag that controls the numerical treatment of diffusion coeffiient calculation 13 13 !$OMP THREADPRIVATE(iflag_atke, iflag_atke_lmix, iflag_num_atke) 14 14 15 logical, save, protected :: atke_ok_vdiff ! activate vertical diffusion of TKE or not16 logical, save, protected :: atke_ok_virtual ! account for vapor for flottability15 logical, SAVE, protected :: atke_ok_vdiff ! activate vertical diffusion of TKE or not 16 logical, SAVE, protected :: atke_ok_virtual ! account for vapor for flottability 17 17 !$OMP THREADPRIVATE(atke_ok_vdiff, atke_ok_virtual) 18 18 19 real, save, protected :: kappa = 0.4 ! Von Karman constant20 real, save, protected :: cn ! Sm value at Ri=021 real, save, protected :: cinf ! Sm value at Ri=-Inf22 real, save, protected :: ri0 ! Richardson number near zero to guarantee continuity in slope of Sm (stability function) at Ri=023 real, save, protected :: ri1 ! Richardson number near zero to guarantee continuity in slope of Pr (Prandlt's number) at Ri=024 real, save, protected :: lmin = 0.01 ! minimum mixing length corresponding to the Kolmogov dissipation scale in planetary atmospheres (Chen et al 2016, JGR Atmos)25 real, save, protected :: ctkes ! coefficient for surface TKE26 real, save, protected :: clmixshear ! coefficient for mixing length depending on local wind shear19 REAL, SAVE, protected :: kappa = 0.4 ! Von Karman constant 20 REAL, SAVE, protected :: cn ! Sm value at Ri=0 21 REAL, SAVE, protected :: cinf ! Sm value at Ri=-Inf 22 REAL, SAVE, protected :: ri0 ! Richardson number near zero to guarantee continuity in slope of Sm (stability function) at Ri=0 23 REAL, SAVE, protected :: ri1 ! Richardson number near zero to guarantee continuity in slope of Pr (Prandlt's number) at Ri=0 24 REAL, SAVE, protected :: lmin = 0.01 ! minimum mixing length corresponding to the Kolmogov dissipation scale in planetary atmospheres (Chen et al 2016, JGR Atmos) 25 REAL, SAVE, protected :: ctkes ! coefficient for surface TKE 26 REAL, SAVE, protected :: clmixshear ! coefficient for mixing length depending on local wind shear 27 27 !$OMP THREADPRIVATE(kappa, cn, cinf, ri0, ri1, lmin, ctkes, clmixshear) 28 28 … … 30 30 ! Tunable parameters for the ATKE scheme and their range of values 31 31 !!------------------------------------------------------------------------------------------------------------- 32 real, save, protected :: cepsilon ! controls the value of the dissipation length scale, range [1.2 - 10]33 real, save, protected :: cke ! controls the value of the diffusion coefficient of TKE, range [1 - 5]34 real, save, protected :: l0 ! asymptotic mixing length far from the ground [m] (Sun et al 2011, JAMC), range [15 - 75]35 real, save, protected :: clmix ! controls the value of the mixing length in stratified conditions, range [0.1 - 2]36 real, save, protected :: ric ! critical Richardson number controlling the slope of Sm in stable conditions, range [0.19 - 0.25]37 real, save, protected :: smmin ! minimum value of Sm in very stable conditions (defined here as minsqrt(Ez/Ek)) at large Ri, range [0.025 - 0.1]38 real, save, protected :: pr_neut ! neutral value of the Prandtl number (Ri=0), range [0.7 - 1]39 real, save, protected :: pr_slope ! linear slope of Pr with Ri in the very stable regime, range [3 - 5]40 real, save, protected :: cinffac ! ratio between cinf and cn controlling the convective limit of Sm, range [1.2 - 5.0]41 real, save, protected :: pr_asym ! value of Prandlt in the convective limit(Ri=-Inf), range [0.3 - 0.5]32 REAL, SAVE, protected :: cepsilon ! controls the value of the dissipation length scale, range [1.2 - 10] 33 REAL, SAVE, protected :: cke ! controls the value of the diffusion coefficient of TKE, range [1 - 5] 34 REAL, SAVE, protected :: l0 ! asymptotic mixing length far from the ground [m] (Sun et al 2011, JAMC), range [15 - 75] 35 REAL, SAVE, protected :: clmix ! controls the value of the mixing length in stratified conditions, range [0.1 - 2] 36 REAL, SAVE, protected :: ric ! critical Richardson number controlling the slope of Sm in stable conditions, range [0.19 - 0.25] 37 REAL, SAVE, protected :: smmin ! minimum value of Sm in very stable conditions (defined here as minsqrt(Ez/Ek)) at large Ri, range [0.025 - 0.1] 38 REAL, SAVE, protected :: pr_neut ! neutral value of the Prandtl number (Ri=0), range [0.7 - 1] 39 REAL, SAVE, protected :: pr_slope ! linear slope of Pr with Ri in the very stable regime, range [3 - 5] 40 REAL, SAVE, protected :: cinffac ! ratio between cinf and cn controlling the convective limit of Sm, range [1.2 - 5.0] 41 REAL, SAVE, protected :: pr_asym ! value of Prandlt in the convective limit(Ri=-Inf), range [0.3 - 0.5] 42 42 !$OMP THREADPRIVATE(cepsilon, cke, l0, clmix, ric, smmin, pr_neut, pr_slope, cinffac, pr_asym) 43 43 !!------------------------------------------------------------------------------------------------------------- … … 58 58 ! input arguments (universal constants for planet) 59 59 !------------------------------------------------- 60 real, intent(in) :: rg_in, rd_in, rpi_in, rcpd_in, rv_in, viscom_in, viscoh_in60 REAL, INTENT(IN) :: rg_in, rd_in, rpi_in, rcpd_in, rv_in, viscom_in, viscoh_in 61 61 !!---------------------------------------------------------------------- 62 62 … … 81 81 CALL getin_p('iflag_atke_lmix', iflag_atke_lmix) 82 82 83 if (iflag_atke == 0 .and. iflag_atke_lmix>0) THEN83 IF (iflag_atke == 0 .AND. iflag_atke_lmix>0) THEN 84 84 CALL abort_physic("atke_turbulence_ini", & 85 85 'stationary scheme must use mixing length formulation not depending on tke', 1) … … 121 121 CALL getin_p('atke_cinffac', cinffac) 122 122 cinf = cinffac * cn 123 if(cinf <= cn) THEN123 IF (cinf <= cn) THEN 124 124 CALL abort_physic("atke_turbulence_ini", & 125 125 'cinf cannot be lower than cn', 1) … … 134 134 pr_slope = 5.0 ! default value from Zilitinkevich et al. 2005 135 135 CALL getin_p('atke_pr_slope', pr_slope) 136 if(pr_slope <= 1) THEN136 IF (pr_slope <= 1) THEN 137 137 CALL abort_physic("atke_turbulence_ini", & 138 138 'pr_slope has to be greater than 1 for consistency of the tke scheme', 1) … … 146 146 pr_asym = 0.4 147 147 CALL getin_p('atke_pr_asym', pr_asym) 148 if(pr_asym >= pr_neut) THEN148 IF (pr_asym >= pr_neut) THEN 149 149 CALL abort_physic("atke_turbulence_ini", & 150 150 'pr_asym must be be lower than pr_neut', 1)
Note: See TracChangeset
for help on using the changeset viewer.