Changeset 3767
- Timestamp:
- May 16, 2025, 3:35:51 PM (3 weeks ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/changelog.txt
r3766 r3767 4841 4841 == 14/05/2025 == JBC 4842 4842 Cleaning and improvement of robustness for "run0" and "run_month1" scripts with file checks and clearer errors. 4843 4844 == 16/05/2025 == JLIU 4845 New implementation of non-orographic GWs mixing for tracers: now 4846 D_mix_tracer = D_eddy*tracers_density_gradient 4847 while keep the mixing coefficient unchanged for u and theta -
trunk/LMDZ.MARS/libf/phymars/nonoro_gwd_mix_mod.F90
r3726 r3767 127 127 REAL d_eddy_mix_tot(ngrid, nlayer+1) 128 128 REAL d_eddy_mix(NW,ngrid) ! Comprehensive Diffusion coefficients 129 REAL d_wave(NW,ngrid) ! coefficients consider the tracers' gradients 129 130 REAL u_eddy_mix_p(NW, ngrid) ! Zonal Diffusion coefficients 130 131 REAL v_eddy_mix_p(NW, ngrid) ! Meridional Diffusion coefficients … … 141 142 REAL pq_eddy_mix_tot(ngrid, nlayer+1,nq) 142 143 REAL zq(ngrid,nlayer,nq) ! advected field nq 144 REAL zq_var(ngrid,nlayer,nq) 145 REAL dzq_var(ngrid,nlayer,nq) 146 REAL mdzq_var(nlayer,nq) 147 REAL zq_ave(nlayer,nq) 148 REAL dzq_ave(nlayer,nq) 149 REAL zq_ratio(nlayer,nq) 143 150 REAL, save:: eff 144 151 !$OMP THREADPRIVATE(eff) … … 251 258 zq(:,:,:)=pq(:,:,:)+dtime*pdq(:,:,:) 252 259 hh(:,:)=pht(:,:)+dtime*pdht(:,:) 260 261 ! tracer average and gradients for mixing 262 zq_ave(:,:)=0. 263 zq_ave(:,:) = SUM(zq(:,:,:), dim=1) / real(ngrid) 264 265 zq_var(:,:,:)=0. 266 DO ii=1,ngrid 267 zq_var(ii,:,:)=zq(ii,:,:)-zq_ave(:,:) 268 endDO 269 270 dzq_var(:,:,:)=0. 271 mdzq_var(:,:) =0. 272 dzq_ave(:,:) =0. 273 zq_ratio(:,:) =0. 274 DO LL=1,nlayer-1 275 dzq_var(:, LL, :) = (zq_var(:, LL+1, :) - zq_var(:, LL, :))**2. 276 mdzq_var(LL, :) = SUM(dzq_var(:, LL, :), dim=1)/real(ngrid) 277 dzq_ave(LL, :) = (zq_ave(LL+1, :) - zq_ave(LL, :))**2. 278 zq_ratio(LL,:) = MAX(0., (mdzq_var(LL+1,:) + mdzq_var(LL,:)))& 279 /MAX(1E-15, (dzq_ave(LL+1,:) + dzq_ave(LL,:))) 280 ! do qq=1,nq 281 ! print*, 'ratio=', zq_ratio(LL,QQ) 282 ! enddo 283 endDO 284 dzq_var(:,nlayer,:) = dzq_var(:,nlayer-1, :) 285 mdzq_var(nlayer,:) = mdzq_var(nlayer-1, :) 286 dzq_ave(nlayer,:) = dzq_ave(nlayer-1, :) 253 287 ! Compute the real mass density by rho=p/R(T)T 254 288 DO ll=1,nlayer … … 623 657 pq_eddy_mix_tot(:, :,:)=0. 624 658 d_eddy_mix(:,:)=0. 659 d_wave(:, :) =0. 625 660 d_eddy_mix_p_ll(nlayer,:,:)=d_eddy_mix_p_ll(nlayer-1,:,:) 626 661 d_eddy_mix_tot(:, :) =0. … … 656 691 ! print*, "this line is for tunning" 657 692 !endif 693 ! d_wave(JW,:) = d_eddy_mix(JW, :)*(mdzq_var(LL,QQ)/dzq_ave(LL,QQ))**2. 658 694 DO QQ=1,NQ 659 695 DO JW=1,NW 660 pq_eddy_mix_p(JW, :, QQ) = d_eddy_mix(JW, :)* (zq(:, LL + 1,QQ)- zq(:, LL, QQ)) & 661 /(ZH(:, LL + 1)- ZH(:, LL)) & 696 d_wave(JW, :) = d_eddy_mix(JW, :)*zq_ratio(LL,QQ) 697 pq_eddy_mix_p(JW, :, QQ) = d_wave(JW, :)* (zq(:, LL + 1,QQ)- zq(:, LL, QQ)) & 698 /(ZH(:, LL + 1)- ZH(:, LL)) & 662 699 *SIGN(1.,intr_freq_p(JW, :)) * SIN(ZP(JW, :)) 663 700 ! pq_eddy_mix_tot(:, LL+1,QQ) = pq_eddy_mix_tot(:, LL+1,QQ) &
Note: See TracChangeset
for help on using the changeset viewer.