diff --git a/physics/moninedmf.f b/physics/moninedmf.f index 8b3b01e31..dfd1e7774 100644 --- a/physics/moninedmf.f +++ b/physics/moninedmf.f @@ -62,9 +62,9 @@ subroutine hedmf_run (im,km,ntrac,ntcw,dv,du,tau,rtg, & & psk,rbsoil,zorl,u10m,v10m,fm,fh, & & tsea,heat,evap,stress,spd1,kpbl, & & prsi,del,prsl,prslk,phii,phil,delt,dspheat, & - & dusfc,dvsfc,dtsfc,dqsfc,hpbl,hgamt,hgamq,dkt, & + & dusfc,dvsfc,dtsfc,dqsfc,hpbl,hgamt,hgamq,dkt,dku, & & kinver,xkzm_m,xkzm_h,xkzm_s,lprnt,ipr, & - & xkzminv,moninq_fac,hurr_pbl,islimsk,dkudiagnostic,var_ric, & + & xkzminv,moninq_fac,hurr_pbl,islimsk,var_ric, & & coef_ric_l,coef_ric_s,lssav,ldiag3d,qdiag3d,ntoz, & & du3dt_PBL,dv3dt_PBL,dt3dt_PBL,dq3dt_PBL,do3dt_PBL, & & flag_for_pbl_generic_tend,errmsg,errflg) @@ -114,7 +114,9 @@ subroutine hedmf_run (im,km,ntrac,ntcw,dv,du,tau,rtg, & real(kind=kind_phys), intent(out) :: & & dusfc(im), dvsfc(im), & & dtsfc(im), dqsfc(im), & - & hpbl(im), dkt(im,km-1) + & hpbl(im) + real(kind=kind_phys), intent(out) :: & + & dkt(im,km-1), dku(im,km-1) real(kind=kind_phys), intent(inout) :: & & hgamt(im), hgamq(im) ! @@ -148,13 +150,13 @@ subroutine hedmf_run (im,km,ntrac,ntcw,dv,du,tau,rtg, & & zd(im), zdd(im), thlvx1(im) ! real(kind=kind_phys) rdzt(im,km-1),dktx(im,km-1), & - & zi(im,km+1), zl(im,km), xkzo(im,km-1), & - & dku(im,km-1), xkzmo(im,km-1), & + & zi(im,km+1), zl(im,km), & + & xkzo(im,km-1), xkzmo(im,km-1), & & cku(im,km-1), ckt(im,km-1), & & ti(im,km-1), shr2(im,km-1), & & al(im,km-1), ad(im,km), & & au(im,km-1), a1(im,km), & - & a2(im,km*ntrac), dkudiagnostic(im,km-1) + & a2(im,km*ntrac) ! real(kind=kind_phys) tcko(im,km), qcko(im,km,ntrac), & & ucko(im,km), vcko(im,km), xmf(im,km) @@ -1403,12 +1405,6 @@ subroutine hedmf_run (im,km,ntrac,ntcw,dv,du,tau,rtg, & enddo enddo - do k = 1,km1 - do i=1,im - dkudiagnostic(i,k) = dku(i,k) - enddo - enddo - ! ! solve tridiagonal problem for momentum ! diff --git a/physics/moninedmf.meta b/physics/moninedmf.meta index 8bdc3c254..b94515931 100644 --- a/physics/moninedmf.meta +++ b/physics/moninedmf.meta @@ -428,6 +428,15 @@ kind = kind_phys intent = out optional = F +[dku] + standard_name = atmosphere_momentum_diffusivity + long_name = diffusivity for momentum + units = m2 s-1 + dimensions = (horizontal_loop_extent,vertical_dimension_minus_one) + type = real + kind = kind_phys + intent = out + optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -513,15 +522,6 @@ type = integer intent = in optional = F -[dkudiagnostic] - standard_name = atmosphere_momentum_diffusivity - long_name = diffusivity for momentum - units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_dimension_minus_one) - type = real - kind = kind_phys - intent = out - optional = F [var_ric] standard_name = flag_variable_bulk_richardson_number long_name = flag for calculating variable bulk richardson number for hurricane PBL diff --git a/physics/satmedmfvdifq.F b/physics/satmedmfvdifq.F index c2a9a41d1..062c36b3e 100644 --- a/physics/satmedmfvdifq.F +++ b/physics/satmedmfvdifq.F @@ -63,9 +63,8 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & & snwdph_lnd,psk,rbsoil,zorl,u10m,v10m,fm,fh, & & tsea,heat,evap,stress,spd1,kpbl, & & prsi,del,prsl,prslk,phii,phil,delt, & - & dspheat,dusfc,dvsfc,dtsfc,dqsfc,hpbl, & + & dspheat,dusfc,dvsfc,dtsfc,dqsfc,hpbl,dkt,dku, & & kinver,xkzm_m,xkzm_h,xkzm_s,dspfac,bl_upfr,bl_dnfr, & - & dkudiagnostic, & & ntoz,du3dt,dv3dt,dt3dt,dq3dt,do3dt,gen_tend,ldiag3d,qdiag3d, & & errmsg,errflg) ! @@ -110,6 +109,8 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & & dusfc(im), dvsfc(im), & & dtsfc(im), dqsfc(im), & & hpbl(im) + real(kind=kind_phys), intent(out) :: & + & dkt(im,km-1), dku(im,km-1) ! logical, intent(in) :: dspheat character(len=*), intent(out) :: errmsg @@ -131,9 +132,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & & qlx(im,km), thetae(im,km),thlx(im,km), & slx(im,km), svx(im,km), qtx(im,km), & tvx(im,km), pix(im,km), radx(im,km-1), - & dku(im,km-1),dkt(im,km-1), dkq(im,km-1), - & cku(im,km-1),ckt(im,km-1), - & dkudiagnostic(im,km-1) + & dkq(im,km-1),cku(im,km-1), ckt(im,km-1) ! real(kind=kind_phys) plyr(im,km), rhly(im,km), cfly(im,km), & qstl(im,km) @@ -1541,11 +1540,6 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo enddo - do k = 1,km1 - do i=1,im - dkudiagnostic(i,k) = dku(i,k) - enddo - enddo c !> - Call tridi2() to solve tridiagonal problem for momentum c diff --git a/physics/satmedmfvdifq.meta b/physics/satmedmfvdifq.meta index 30bae3a8f..862290cb2 100644 --- a/physics/satmedmfvdifq.meta +++ b/physics/satmedmfvdifq.meta @@ -531,6 +531,24 @@ kind = kind_phys intent = out optional = F +[dkt] + standard_name = atmosphere_heat_diffusivity + long_name = diffusivity for heat + units = m2 s-1 + dimensions = (horizontal_loop_extent,vertical_dimension_minus_one) + type = real + kind = kind_phys + intent = out + optional = F +[dku] + standard_name = atmosphere_momentum_diffusivity + long_name = diffusivity for momentum + units = m2 s-1 + dimensions = (horizontal_loop_extent,vertical_dimension_minus_one) + type = real + kind = kind_phys + intent = out + optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -593,15 +611,6 @@ kind = kind_phys intent = in optional = F -[dkudiagnostic] - standard_name = atmosphere_momentum_diffusivity - long_name = diffusivity for momentum - units = m2 s-1 - dimensions = (horizontal_dimension,vertical_dimension_minus_one) - type = real - kind = kind_phys - intent = out - optional = F [ntoz] standard_name = index_for_ozone long_name = tracer index for ozone mixing ratio