Skip to content

Commit

Permalink
Merge pull request #1 from climbfuji/optimize_aux3d_thompson_dom
Browse files Browse the repository at this point in the history
Optimize aux3d use in Thompson MP
  • Loading branch information
ericaligo-NOAA authored May 25, 2021
2 parents 36b6487 + c55797d commit 6a370fb
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 20 deletions.
7 changes: 2 additions & 5 deletions physics/module_mp_thompson.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1267,11 +1267,8 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, &
nr1d(k) = nr(i,k,j)
rho(k) = 0.622*p1d(k)/(R*t1d(k)*(qv1d(k)+0.622))
vtsk1(k) = 0.
vts1(i,k,j) = 0.
prw_vcdc1(k) = 0.
prw_vcdc(i,k,j) = 0.
prw_vcde1(k) = 0.
prw_vcde(i,k,j) = 0.
enddo
if (is_aerosol_aware) then
do k = kts, kte
Expand Down Expand Up @@ -1350,8 +1347,8 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, &
ni(i,k,j) = ni1d(k)
nr(i,k,j) = nr1d(k)
vts1(i,k,j) = vtsk1(k)
prw_vcdc(i,k,j) = prw_vcdc1(k)
prw_vcde(i,k,j) = prw_vcde1(k)
prw_vcdc(i,k,j) = prw_vcdc(i,k,j) + prw_vcdc1(k)
prw_vcde(i,k,j) = prw_vcde(i,k,j) + prw_vcde1(k)

if (present(tt)) then;
tt(i,k,j) = t1d(k)
Expand Down
24 changes: 9 additions & 15 deletions physics/mp_thompson.F90
Original file line number Diff line number Diff line change
Expand Up @@ -431,9 +431,6 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte

!Auxillary fields
real(kind_phys) :: vts1(1:ncol,1:nlev),prw_vcdc(1:ncol,1:nlev),prw_vcde(1:ncol,1:nlev)

! Initialize the CCPP error handling variables
errmsg = ''
errflg = 0
Expand Down Expand Up @@ -572,8 +569,8 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ids=ids, ide=ide, jds=jds, jde=jde, kds=kds, kde=kde, &
ims=ims, ime=ime, jms=jms, jme=jme, kms=kms, kme=kme, &
its=its, ite=ite, jts=jts, jte=jte, kts=kts, kte=kte, &
errmsg=errmsg, errflg=errflg, reset=reset, vts1=vts1, &
prw_vcdc=prw_vcdc, prw_vcde=prw_vcde)
errmsg=errmsg, errflg=errflg, reset=reset, vts1=aux3d(:,:,1), &
prw_vcdc=aux3d(:,:,2), prw_vcde=aux3d(:,:,3))
else
call mp_gt_driver(qv=qv, qc=qc, qr=qr, qi=qi, qs=qs, qg=qg, ni=ni, nr=nr, &
nc=nc, nwfa=nwfa, nifa=nifa, nwfa2d=nwfa2d, nifa2d=nifa2d, &
Expand All @@ -592,8 +589,8 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ids=ids, ide=ide, jds=jds, jde=jde, kds=kds, kde=kde, &
ims=ims, ime=ime, jms=jms, jme=jme, kms=kms, kme=kme, &
its=its, ite=ite, jts=jts, jte=jte, kts=kts, kte=kte, &
errmsg=errmsg, errflg=errflg, reset=reset, vts1=vts1, &
prw_vcdc=prw_vcdc, prw_vcde=prw_vcde)
errmsg=errmsg, errflg=errflg, reset=reset, vts1=aux3d(:,:,1), &
prw_vcdc=aux3d(:,:,2), prw_vcde=aux3d(:,:,3))
end if
else
if (do_effective_radii) then
Expand All @@ -614,8 +611,8 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ids=ids, ide=ide, jds=jds, jde=jde, kds=kds, kde=kde, &
ims=ims, ime=ime, jms=jms, jme=jme, kms=kms, kme=kme, &
its=its, ite=ite, jts=jts, jte=jte, kts=kts, kte=kte, &
errmsg=errmsg, errflg=errflg, reset=reset, vts1=vts1, &
prw_vcdc=prw_vcdc, prw_vcde=prw_vcde)
errmsg=errmsg, errflg=errflg, reset=reset, vts1=aux3d(:,:,1), &
prw_vcdc=aux3d(:,:,2), prw_vcde=aux3d(:,:,3))
else
call mp_gt_driver(qv=qv, qc=qc, qr=qr, qi=qi, qs=qs, qg=qg, ni=ni, nr=nr, &
tt=tgrs, p=prsl, w=w, dz=dz, dt_in=dtp, &
Expand All @@ -633,8 +630,8 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ids=ids, ide=ide, jds=jds, jde=jde, kds=kds, kde=kde, &
ims=ims, ime=ime, jms=jms, jme=jme, kms=kms, kme=kme, &
its=its, ite=ite, jts=jts, jte=jte, kts=kts, kte=kte, &
errmsg=errmsg, errflg=errflg, reset=reset, vts1=vts1, &
prw_vcdc=prw_vcdc, prw_vcde=prw_vcde)
errmsg=errmsg, errflg=errflg, reset=reset, vts1=aux3d(:,:,1), &
prw_vcdc=aux3d(:,:,2), prw_vcde=aux3d(:,:,3))
end if
end if
if (errflg/=0) return
Expand Down Expand Up @@ -665,10 +662,7 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, &
ice = ice + max(0.0, delta_ice_mp/1000.0_kind_phys)
snow = snow + max(0.0, delta_snow_mp/1000.0_kind_phys)
rain = rain + max(0.0, (delta_rain_mp - (delta_graupel_mp + delta_ice_mp + delta_snow_mp))/1000.0_kind_phys)
!Diagnostics
aux3d(:,:,1) = vts1
aux3d(:,:,2) = aux3d(:,:,2) + prw_vcdc
aux3d(:,:,3) = aux3d(:,:,3) + prw_vcde

end subroutine mp_thompson_run
!>@}

Expand Down

0 comments on commit 6a370fb

Please sign in to comment.