From 8ba1c3c74ef8e19e8652480a626cd05ba2b03515 Mon Sep 17 00:00:00 2001 From: "andrew.hazelton" Date: Wed, 4 Mar 2020 21:45:58 +0000 Subject: [PATCH] Changes to EDMF-HAFS and EDMF-TKE to OutputEddy Diffusivity --- physics/moninedmf_hafs.f | 11 +++++++++-- physics/moninedmf_hafs.meta | 9 +++++++++ physics/satmedmfvdifq.F | 11 +++++++++-- physics/satmedmfvdifq.meta | 9 +++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/physics/moninedmf_hafs.f b/physics/moninedmf_hafs.f index 5c6ff85a8..2bc682909 100644 --- a/physics/moninedmf_hafs.f +++ b/physics/moninedmf_hafs.f @@ -64,7 +64,7 @@ subroutine hedmf_hafs_run(ix,im,km,ntrac,ntcw,dv,du,tau,rtg, & & prsi,del,prsl,prslk,phii,phil,delt,dspheat, & & dusfc,dvsfc,dtsfc,dqsfc,hpbl,hgamt,hgamq,dkt, & & kinver,xkzm_m,xkzm_h,xkzm_s,lprnt,ipr, & - & xkzminv,moninq_fac,islimsk,errmsg,errflg) + & xkzminv,moninq_fac,islimsk,dkudiagnostic,errmsg,errflg) ! use machine , only : kind_phys use funcphys , only : fpvs @@ -144,7 +144,7 @@ subroutine hedmf_hafs_run(ix,im,km,ntrac,ntcw,dv,du,tau,rtg, & & 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) + & a2(im,km*ntrac), dkudiagnostic(im,km-1) ! real(kind=kind_phys) tcko(im,km), qcko(im,km,ntrac), & & ucko(im,km), vcko(im,km), xmf(im,km) @@ -1395,6 +1395,13 @@ subroutine hedmf_hafs_run(ix,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_hafs.meta b/physics/moninedmf_hafs.meta index bc1461ada..f22ccbb25 100644 --- a/physics/moninedmf_hafs.meta +++ b/physics/moninedmf_hafs.meta @@ -507,6 +507,15 @@ type = integer 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 [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/satmedmfvdifq.F b/physics/satmedmfvdifq.F index 546cefca6..0fd44ac0b 100644 --- a/physics/satmedmfvdifq.F +++ b/physics/satmedmfvdifq.F @@ -65,7 +65,7 @@ subroutine satmedmfvdifq_run(ix,im,km,ntrac,ntcw,ntiw,ntke, & & prsi,del,prsl,prslk,phii,phil,delt, & & dspheat,dusfc,dvsfc,dtsfc,dqsfc,hpbl, & & kinver,xkzm_m,xkzm_h,xkzm_s,dspfac,bl_upfr,bl_dnfr, & - & errmsg,errflg) + & dkudiagnostic,errmsg,errflg) ! use machine , only : kind_phys use funcphys , only : fpvs @@ -123,7 +123,8 @@ subroutine satmedmfvdifq_run(ix,im,km,ntrac,ntcw,ntiw,ntke, & & 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) + & cku(im,km-1),ckt(im,km-1), + & dkudiagnostic(im,km-1) ! real(kind=kind_phys) plyr(im,km), rhly(im,km), cfly(im,km), & qstl(im,km) @@ -1383,6 +1384,12 @@ subroutine satmedmfvdifq_run(ix,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 c solve tridiagonal problem for momentum c diff --git a/physics/satmedmfvdifq.meta b/physics/satmedmfvdifq.meta index ec679faec..b63e3ae40 100644 --- a/physics/satmedmfvdifq.meta +++ b/physics/satmedmfvdifq.meta @@ -578,6 +578,15 @@ 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 [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP