Skip to content

Commit 1d58eaf

Browse files
committed
update ZM bridge to output temperature tendency
1 parent 99eb06a commit 1d58eaf

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ extern "C" {
3030
Real *output_snow, // 20
3131
Real *output_cape, // 21
3232
Int *output_activity, // 22
33-
Real *output_tend_s, // 23
33+
Real *output_tend_t, // 23
3434
Real *output_tend_q, // 24
3535
Real *output_tend_u, // 25
3636
Real *output_tend_v, // 26
@@ -80,7 +80,7 @@ void zm_eamxx_bridge_run( Int ncol, Int pver,
8080
zm_output.h_snow .data(), // 20
8181
zm_output.h_cape .data(), // 21
8282
zm_output.h_activity .data(), // 22
83-
zm_output.h_tend_s .data(), // 23
83+
zm_output.h_tend_t .data(), // 23
8484
zm_output.h_tend_qv .data(), // 24
8585
zm_output.h_tend_u .data(), // 25
8686
zm_output.h_tend_v .data(), // 26

components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_main.F90

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ subroutine zm_eamxx_bridge_run_c( ncol, dtime, is_first_step, &
7575
state_t, state_qv, state_u, state_v, &
7676
state_omega, state_cldfrac, state_pblh, tpert, landfrac, &
7777
output_prec, output_snow, output_cape, output_activity, &
78-
output_tend_s, output_tend_q, output_tend_u, output_tend_v, &
78+
output_tend_t, output_tend_q, output_tend_u, output_tend_v, &
7979
output_rain_prod, output_snow_prod, &
8080
output_prec_flux, output_snow_flux, output_mass_flux ) bind(C)
8181
use zm_conv, only: zm_const, zm_param
@@ -111,7 +111,7 @@ subroutine zm_eamxx_bridge_run_c( ncol, dtime, is_first_step, &
111111
real(kind=c_real), dimension(ncol), intent( out) :: output_snow ! 20 output frozen precipitation (snow)
112112
real(kind=c_real), dimension(ncol), intent( out) :: output_cape ! 21 output convective avail. pot. energy (cape)
113113
integer(kind=c_int),dimension(ncol), intent( out) :: output_activity ! 22 integer deep convection activity flag (ideep)
114-
real(kind=c_real), dimension(ncol,pver), intent( out) :: output_tend_s ! 23 output tendency of dry static energy (ptend_loc_s)
114+
real(kind=c_real), dimension(ncol,pver), intent( out) :: output_tend_t ! 23 output tendency of temperature (ptend_loc_s)
115115
real(kind=c_real), dimension(ncol,pver), intent( out) :: output_tend_q ! 24 output tendency of water vapor (ptend_loc_q)
116116
real(kind=c_real), dimension(ncol,pver), intent( out) :: output_tend_u ! 25 output tendency of zonal wind (ptend_loc_u)
117117
real(kind=c_real), dimension(ncol,pver), intent( out) :: output_tend_v ! 26 output tendency of meridional wind (ptend_loc_v)
@@ -161,11 +161,13 @@ subroutine zm_eamxx_bridge_run_c( ncol, dtime, is_first_step, &
161161
real(r8), dimension(ncol,pver) :: local_state_zm
162162
real(r8), dimension(ncol,pverp):: local_state_zi
163163

164+
real(r8), dimension(ncol,pver) :: output_tend_s ! dry static energy tendency used to set output_tend_t
165+
164166
! temporary local tendencies for calling zm_conv_evap()
165-
real(r8), dimension(ncol,pver) :: local_tend_s ! output tendency of dry static energy (ptend_loc_s)
166-
real(r8), dimension(ncol,pver) :: local_tend_q ! output tendency of water vapor (ptend_loc_q)
167-
real(r8), dimension(ncol,pver) :: local_tend_u ! output tendency of zonal wind
168-
real(r8), dimension(ncol,pver) :: local_tend_v ! output tendency of meridional wind
167+
real(r8), dimension(ncol,pver) :: local_tend_s ! temporary tendency of dry static energy (ptend_loc_s)
168+
real(r8), dimension(ncol,pver) :: local_tend_q ! temporary tendency of water vapor (ptend_loc_q)
169+
real(r8), dimension(ncol,pver) :: local_tend_u ! temporary tendency of zonal wind
170+
real(r8), dimension(ncol,pver) :: local_tend_v ! temporary tendency of meridional wind
169171

170172
real(r8), dimension(ncol,pver) :: tend_s_snwprd ! DSE tend from snow production
171173
real(r8), dimension(ncol,pver) :: tend_s_snwevmlt ! DSE tend from snow evap/melt
@@ -203,7 +205,7 @@ subroutine zm_eamxx_bridge_run_c( ncol, dtime, is_first_step, &
203205
output_cape(i) = 0
204206
output_activity(i) = 0
205207
do k = 1,pver
206-
output_tend_s(i,k) = 0
208+
output_tend_t(i,k) = 0
207209
output_tend_q(i,k) = 0
208210
output_tend_u(i,k) = 0
209211
output_tend_v(i,k) = 0
@@ -363,6 +365,15 @@ subroutine zm_eamxx_bridge_run_c( ncol, dtime, is_first_step, &
363365
end do
364366
end if
365367

368+
!-----------------------------------------------------------------------------
369+
! convert dry static energy tendency to temperature tendency
370+
371+
do i = 1,ncol
372+
do k = 1,pver
373+
output_tend_t(i,k) = output_tend_s(i,k)/zm_const%cpair
374+
end do
375+
end do
376+
366377
!-----------------------------------------------------------------------------
367378
return
368379
end subroutine zm_eamxx_bridge_run_c

0 commit comments

Comments
 (0)