Changeset 4745
- Timestamp:
- Nov 7, 2023, 8:27:07 AM (13 months ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_atke_exchange_coeff.F90
r4714 r4745 26 26 27 27 USE lmdz_atke_turbulence_ini, ONLY : iflag_atke, kappa, l0, ric, cinf, rpi, rcpd, atke_ok_virtual 28 USE lmdz_atke_turbulence_ini, ONLY : cepsilon, pr_slope, pr_asym, pr_neut, ctkes, rg, rd, rv, atke_ok_vdiff28 USE lmdz_atke_turbulence_ini, ONLY : cepsilon, pr_slope, pr_asym, pr_neut, ctkes, rg, rd, rv, atke_ok_vdiff 29 29 USE lmdz_atke_turbulence_ini, ONLY : viscom, viscoh, clmix, clmixshear, iflag_atke_lmix, lmin, smmin 30 30 -
LMDZ6/trunk/libf/phylmd/lmdz_atke_turbulence_ini.F90
r4687 r4745 3 3 implicit none 4 4 5 ! declaration of constants and parameters 5 6 save 6 7 … … 15 16 real :: rg, rd, rpi, rcpd, rv 16 17 !$OMP THREADPRIVATE(rg, rd, rpi, rcpd, rv) 17 18 18 real :: viscom, viscoh 19 19 !$OMP THREADPRIVATE(viscom,viscoh) 20 21 20 real :: lmin=0.01 ! minimum mixing length 22 21 !$OMP THREADPRIVATE(lmin) 23 24 22 logical :: atke_ok_vdiff, atke_ok_virtual 25 23 !$OMP THREADPRIVATE(atke_ok_vdiff,atke_ok_virtual) … … 27 25 CONTAINS 28 26 29 SUBROUTINE atke_ini( prt_level_in, lunout_in, rg_in, rd_in, rpi_in, rcpd_in, rv_in)27 SUBROUTINE atke_ini(rg_in, rd_in, rpi_in, rcpd_in, rv_in, viscom_in, viscoh_in) 30 28 31 29 USE ioipsl_getin_p_mod, ONLY : getin_p 32 30 33 integer, intent(in) :: lunout_in,prt_level_in 34 real, intent(in) :: rg_in, rd_in, rpi_in, rcpd_in, rv_in 31 real, intent(in) :: rg_in, rd_in, rpi_in, rcpd_in, rv_in, viscom_in, viscoh_in 35 32 36 33 37 lunout=lunout_in 38 prt_level=prt_level_in 34 ! input arguments (universal constants for planet) 35 !------------------------------------------------- 36 37 ! gravity acceleration 38 rg=rg_in 39 ! dry gas constant (R/M, R=perfect gas constant and M is the molar mass of the fluid) 39 40 rd=rd_in 40 rg=rg_in41 ! Pi number 41 42 rpi=rpi_in 43 ! cp per unit mass of the gas 42 44 rcpd=rcpd_in 45 ! water vapor constant (for simulations in Earth's atmosphere) 43 46 rv=rv_in 47 ! kinematic molecular viscosity for momentum 48 viscom=viscom_in 49 ! kinematic molecular viscosity for heat 50 viscoh=viscoh_in 44 51 45 viscom=1.46E-5 46 viscoh=2.06E-5 52 53 !viscom=1.46E-5 54 !viscoh=2.06E-5 55 56 57 ! Read flag values in .def files 58 !------------------------------- 59 47 60 48 61 ! flag that controls options in atke_compute_km_kh … … 124 137 125 138 ! minimum anisotropy coefficient (defined here as minsqrt(Ez/Ek)) at large Ri. 126 ! From Zilitinkevich et al. 2013, it equals sqrt(0.03)~0.17 127 139 ! From Zilitinkevich et al. 2013, it equals sqrt(0.03)~0.17 128 140 smmin=0.17 129 141 CALL getin_p('atke_smmin',smmin) -
LMDZ6/trunk/libf/phylmd/lmdz_call_atke.F90
r4687 r4745 52 52 REAL, DIMENSION(ngrid) :: wind1 53 53 INTEGER i 54 55 54 56 55 … … 154 153 enddo 155 154 156 !K_big(:,1)=0.157 !do k=1,nlay158 ! do i=1,ngrid159 ! print*, 'youhou', k, x_in(i,k), x_predict(i,k), K_big(i,k)160 ! end do161 !enddo162 163 164 155 165 156 end subroutine atke_explicit_prediction -
LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
r4737 r4745 1699 1699 1700 1700 IF (iflag_pbl>=50) THEN 1701 1702 CALL call_atke(dtime,knon,klev,ycdragm, ycdragh,yus0,yvs0,yts,yu,yv,yt,yq,&1703 ypplay,ypaprs,ytke,ycoefm, ycoefh)1701 CALL call_atke(dtime,knon,klev,ycdragm(1:knon), ycdragh(1:knon),yus0(1:knon),yvs0(1:knon),yts(1:knon), & 1702 yu(1:knon,:),yv(1:knon,:),yt(1:knon,:),yq(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 1703 ytke(1:knon,:),ycoefm(1:knon,:), ycoefh(1:knon,:)) 1704 1704 1705 1705 ELSE … … 1744 1744 IF (iflag_pbl>=50) THEN 1745 1745 1746 CALL call_atke(dtime,knon,klev,ycdragm_x,ycdragh_x,yus0,yvs0,yts_x,yu_x,yv_x,yt_x,yq_x, & 1747 ypplay,ypaprs,ytke_x,ycoefm_x, ycoefh_x) 1746 CALL call_atke(dtime,knon,klev,ycdragm_x(1:knon),ycdragh_x(1:knon),yus0(1:knon),yvs0(1:knon),yts_x(1:knon), & 1747 yu_x(1:knon,:),yv_x(1:knon,:),yt_x(1:knon,:),yq_x(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 1748 ytke_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:)) 1748 1749 1749 1750 ELSE … … 1783 1784 IF (iflag_pbl>=50) THEN 1784 1785 1785 CALL call_atke(dtime,knon,klev,ycdragm_w,ycdragh_w,yus0,yvs0,yts_w,yu_w,yv_w,yt_w,yq_w, & 1786 ypplay,ypaprs,ytke_w,ycoefm_w, ycoefh_w) 1786 CALL call_atke(dtime,knon,klev,ycdragm_w(1:knon),ycdragh_w(1:knon),yus0(1:knon),yvs0(1:knon),yts_w(1:knon), & 1787 yu_w(1:knon,:),yv_w(1:knon,:),yt_w(1:knon,:),yq_w(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 1788 ytke_w(1:knon,:),ycoefm_w(1:knon,:), ycoefh_w(1:knon,:)) 1787 1789 1788 1790 ELSE -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4744 r4745 1266 1266 1267 1267 REAL pi 1268 REAL viscom, viscoh 1268 1269 INTEGER ieru 1269 1270 … … 1842 1843 CALL wake_ini(rg,rd,rv,prt_level) 1843 1844 CALL yamada_ini(klon,lunout,prt_level) 1844 CALL atke_ini(prt_level, lunout, RG, RD, RPI, RCPD, RV) 1845 viscom=1.46E-5 1846 viscoh=2.06E-5 1847 CALL atke_ini(RG, RD, RPI, RCPD, RV, viscom, viscoh) 1845 1848 CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, & 1846 1849 & RG,RD,RCPD,RKAPPA,RLVTT,RETV) -
LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90
r4737 r4745 1977 1977 1978 1978 IF (iflag_pbl>=50) THEN 1979 1980 CALL call_atke(dtime,knon,klev,ycdragm, ycdragh,yus0,yvs0,yts,yu,yv,yt,yq,&1981 ypplay,ypaprs,ytke,ycoefm, ycoefh)1979 CALL call_atke(dtime,knon,klev,ycdragm(1:knon), ycdragh(1:knon),yus0(1:knon),yvs0(1:knon),yts(1:knon), & 1980 yu(1:knon,:),yv(1:knon,:),yt(1:knon,:),yq(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 1981 ytke(1:knon,:),ycoefm(1:knon,:), ycoefh(1:knon,:)) 1982 1982 1983 1983 ELSE … … 2020 2020 2021 2021 IF (iflag_pbl>=50) THEN 2022 2023 CALL call_atke(dtime,knon,klev,ycdragm_x,ycdragh_x,yus0,yvs0,yts_x,yu_x,yv_x,yt_x,yq_x, & 2024 ypplay,ypaprs,ytke_x,ycoefm_x, ycoefh_x) 2022 2023 CALL call_atke(dtime,knon,klev,ycdragm_x(1:knon),ycdragh_x(1:knon),yus0(1:knon),yvs0(1:knon),yts_x(1:knon), & 2024 yu_x(1:knon,:),yv_x(1:knon,:),yt_x(1:knon,:),yq_x(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 2025 ytke_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:)) 2025 2026 2026 2027 ELSE 2027 2028 2028 2029 2029 CALL coef_diff_turb(dtime, nsrf, knon, ni, & … … 2060 2060 2061 2061 IF (iflag_pbl>=50) THEN 2062 2063 CALL call_atke(dtime,knon,klev,ycdragm_w,ycdragh_w,yus0,yvs0,yts_w,yu_w,yv_w,yt_w,yq_w, & 2064 ypplay,ypaprs,ytke_w,ycoefm_w, ycoefh_w) 2062 2063 CALL call_atke(dtime,knon,klev,ycdragm_w(1:knon),ycdragh_w(1:knon),yus0(1:knon),yvs0(1:knon),yts_w(1:knon), & 2064 yu_w(1:knon,:),yv_w(1:knon,:),yt_w(1:knon,:),yq_w(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 2065 ytke_w(1:knon,:),ycoefm_w(1:knon,:), ycoefh_w(1:knon,:)) 2065 2066 2066 2067 ELSE -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4742 r4745 1342 1342 1343 1343 REAL pi 1344 REAL viscom, viscoh 1344 1345 INTEGER ieru 1345 1346 … … 1932 1933 CALL wake_ini(rg,rd,rv,prt_level) 1933 1934 CALL yamada_ini(klon,lunout,prt_level) 1934 CALL atke_ini(prt_level, lunout, RG, RD, RPI, RCPD, RV) 1935 viscom=1.46E-5 1936 viscoh=2.06E-5 1937 CALL atke_ini(RG, RD, RPI, RCPD, RV, viscom, viscoh) 1935 1938 CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, & 1936 1939 & RG,RD,RCPD,RKAPPA,RLVTT,RETV)
Note: See TracChangeset
for help on using the changeset viewer.