1 |
|
|
MODULE atke_turbulence_ini_mod |
2 |
|
|
|
3 |
|
|
implicit none |
4 |
|
|
|
5 |
|
|
save |
6 |
|
|
|
7 |
|
|
integer :: iflag_atke, iflag_num_atke |
8 |
|
|
!$OMP THREADPRIVATE(iflag_atke, iflag_num_atke) |
9 |
|
|
real :: kappa = 0.4 ! Von Karman constant |
10 |
|
|
!$OMP THREADPRIVATE(kappa) |
11 |
|
|
real :: l0, ric, ri0, cinf, cepsilon, pr_slope, pr_asym, pr_neut |
12 |
|
|
!$OMP THREADPRIVATE(l0, ric, cinf, cepsilon, pr_slope, pr_asym, pr_neut) |
13 |
|
|
integer :: lunout,prt_level |
14 |
|
|
!$OMP THREADPRIVATE(lunout,prt_level) |
15 |
|
|
real :: rg, rd, rpi, rcpd |
16 |
|
|
!$OMP THREADPRIVATE(rg, rd, rpi, rcpd) |
17 |
|
|
|
18 |
|
|
real :: viscom, viscoh |
19 |
|
|
!$OMP THREADPRIVATE(viscom,viscoh) |
20 |
|
|
|
21 |
|
|
|
22 |
|
|
|
23 |
|
|
CONTAINS |
24 |
|
|
|
25 |
|
1 |
SUBROUTINE atke_ini(prt_level_in, lunout_in, rg_in, rd_in, rpi_in, rcpd_in) |
26 |
|
|
|
27 |
|
|
USE ioipsl_getin_p_mod, ONLY : getin_p |
28 |
|
|
|
29 |
|
|
integer, intent(in) :: lunout_in,prt_level_in |
30 |
|
|
real, intent(in) :: rg_in, rd_in, rpi_in, rcpd_in |
31 |
|
|
|
32 |
|
|
|
33 |
|
1 |
lunout=lunout_in |
34 |
|
1 |
prt_level=prt_level_in |
35 |
|
1 |
rd=rd_in |
36 |
|
1 |
rg=rg_in |
37 |
|
1 |
rpi=rpi_in |
38 |
|
1 |
rcpd=rcpd_in |
39 |
|
|
|
40 |
|
1 |
viscom=1.46E-5 |
41 |
|
1 |
viscoh=2.06E-5 |
42 |
|
|
|
43 |
|
|
! flag that controls options in atke_compute_km_kh |
44 |
|
1 |
iflag_atke=0 |
45 |
|
1 |
CALL getin_p('iflag_atke',iflag_atke) |
46 |
|
|
|
47 |
|
|
! flag that controls the numerical treatment of diffusion coeffiient calculation |
48 |
|
1 |
iflag_num_atke=0 |
49 |
|
1 |
CALL getin_p('iflag_num_atke',iflag_num_atke) |
50 |
|
|
|
51 |
|
|
! asymptotic mixing length [m] |
52 |
|
1 |
l0=150.0 |
53 |
|
1 |
CALL getin_p('atke_l0',l0) |
54 |
|
|
|
55 |
|
|
! critical Richardson number |
56 |
|
1 |
ric=0.25 |
57 |
|
1 |
CALL getin_p('atke_ric',ric) |
58 |
|
|
|
59 |
|
|
! asymptotic value of Sm for Ri=-Inf |
60 |
|
1 |
cinf=1.5 |
61 |
|
1 |
CALL getin_p('atke_cinf',cinf) |
62 |
|
|
|
63 |
|
|
! constant for tke dissipation calculation |
64 |
|
1 |
cepsilon=16.6 ! default value as in yamada4 |
65 |
|
1 |
CALL getin_p('atke_cepsilon',cepsilon) |
66 |
|
|
|
67 |
|
|
! slope of Pr=f(Ri) for stable conditions |
68 |
|
1 |
pr_slope=5.0 ! default value from Zilitinkevich et al. 2005 |
69 |
|
1 |
CALL getin_p('atke_pr_slope',pr_slope) |
70 |
|
|
|
71 |
|
|
! asymptotic turbulent prandt number value for Ri=-Inf |
72 |
|
1 |
pr_asym=0.4 |
73 |
|
1 |
CALL getin_p('atke_pr_asym',pr_asym) |
74 |
|
|
|
75 |
|
|
! value of turbulent prandtl number in neutral conditions (Ri=0) |
76 |
|
1 |
pr_neut=0.8 |
77 |
|
1 |
CALL getin_p('atke_pr_neut',pr_neut) |
78 |
|
|
|
79 |
|
|
|
80 |
|
1 |
RETURN |
81 |
|
|
|
82 |
|
|
END SUBROUTINE atke_ini |
83 |
|
|
|
84 |
|
|
END MODULE atke_turbulence_ini_mod |