From 37f9a8ebaf5e6076fcd5770089e42e5b73f7bb01 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 29 May 2026 11:54:28 -0500 Subject: [PATCH 01/10] Add dtheta_dt_mp_isobaric --- .../diagnostics/Registry_isobaric.xml | 3 +++ .../diagnostics/mpas_isobaric_diagnostics.F | 25 ++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index 926e326ef4..e4f85cce31 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -233,6 +233,9 @@ + + diff --git a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F index d8832140bf..05f585b7ce 100644 --- a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F +++ b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F @@ -36,7 +36,7 @@ module mpas_isobaric_diagnostics need_vorticity_50, need_vorticity_100, need_vorticity_200, need_vorticity_250, need_vorticity_500, need_vorticity_700, need_vorticity_850, need_vorticity_925, & need_t_isobaric, need_z_isobaric, need_meanT_500_300 - logical :: need_dtheta_dt_mp_isobaric, & + logical :: need_dtheta_dt_mp_isobaric, need_dtheta_dt_mix_isobaric, & need_rh_isobaric, & need_rhod_isobaric, & need_rthblten_isobaric, need_rthratenlw_isobaric, need_rthratensw_isobaric, & @@ -316,6 +316,8 @@ subroutine isobaric_diagnostics_compute() need_any_diags = need_any_diags .or. need_meanT_500_300 need_dtheta_dt_mp_isobaric = MPAS_field_will_be_written('dtheta_dt_mp_isobaric') need_any_diags = need_any_diags .or. need_dtheta_dt_mp_isobaric + need_dtheta_dt_mix_isobaric = MPAS_field_will_be_written('dtheta_dt_mix_isobaric') + need_any_diags = need_any_diags .or. need_dtheta_dt_mix_isobaric need_rh_isobaric = MPAS_field_will_be_written('rh_isobaric') need_any_diags = need_any_diags .or. need_rh_isobaric need_rhod_isobaric = MPAS_field_will_be_written('rhod_isobaric') @@ -389,6 +391,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) real (kind=RKIND), dimension(:,:), pointer :: z_isobaric real (kind=RKIND), dimension(:), pointer :: meanT_500_300 real (kind=RKIND), dimension(:,:), pointer :: dtheta_dt_mp_isobaric + real (kind=RKIND), dimension(:,:), pointer :: dtheta_dt_mix_isobaric real (kind=RKIND), dimension(:,:), pointer :: rh_isobaric real (kind=RKIND), dimension(:,:), pointer :: rhod_isobaric real (kind=RKIND), dimension(:,:), pointer :: rthblten_isobaric @@ -569,6 +572,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) call mpas_pool_get_array(diag, 'rho', rho) call mpas_pool_get_array(diag, 'dtheta_dt_mp', dtheta_dt_mp) + call mpas_pool_get_array(diag, 'dtheta_dt_mix', dtheta_dt_mix) call mpas_pool_get_array(tend_physics, 'rthblten', rthblten) call mpas_pool_get_array(tend_physics, 'rthratenlw', rthratenlw) call mpas_pool_get_array(tend_physics, 'rthratensw', rthratensw) @@ -580,6 +584,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) call mpas_pool_get_array(diag, 'z_isobaric', z_isobaric) call mpas_pool_get_array(diag, 'meanT_500_300', meanT_500_300) call mpas_pool_get_array(diag, 'dtheta_dt_mp_isobaric', dtheta_dt_mp_isobaric) + call mpas_pool_get_array(diag, 'dtheta_dt_mix_isobaric', dtheta_dt_mix_isobaric) call mpas_pool_get_array(diag, 'rh_isobaric', rh_isobaric) call mpas_pool_get_array(diag, 'rhod_isobaric', rhod_isobaric) call mpas_pool_get_array(diag, 'rthblten_isobaric', rthblten_isobaric) @@ -675,7 +680,8 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) if(.not.allocated(dewpoint) ) allocate(dewpoint(nVertLevels,nCells) ) if (need_t_isobaric & - .or. need_dtheta_dt_mp_isobaric .or. need_rh_isobaric .or. need_rhod_isobaric & + .or. need_dtheta_dt_mp_isobaric .or. need_dtheta_dt_mix_isobaric & + .or. need_rh_isobaric .or. need_rhod_isobaric & .or. need_rthblten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & .or. need_qv_isobaric) then t_iso_levels(:) = era5_pressure_levels @@ -1112,7 +1118,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) !!!!!!!!!!! Additional temperature levels for vortex tracking !!!!!!!!!!! if (need_t_isobaric .or. need_meanT_500_300 & - .or. need_dtheta_dt_mp_isobaric & + .or. need_dtheta_dt_mp_isobaric .or. need_dtheta_dt_mix_isobaric & .or. need_rh_isobaric & .or. need_rhod_isobaric & .or. need_rthblten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & @@ -1173,6 +1179,19 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) end do end if + if (need_dtheta_dt_mix_isobaric) then + do iCell = 1, nCells + do k = 1, nVertLevels + kk = nVertLevels + 1 - k + field_in(iCell,kk) = dtheta_dt_mix(k,iCell) + end do + end do + call interp_tofixed_pressure(nCells, nVertLevels, nIsoLevelsT, press_in, field_in, press_interp, field_interp) + do k = 1, nIsoLevelsT + dtheta_dt_mix_isobaric(k,1:nCells) = field_interp(1:nCells,k) + end do + end if + if (need_rh_isobaric) then do iCell = 1, nCells do k = 1, nVertLevels From e39303dd8f9ca029c5149de4ea13b922ab82c838 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 29 May 2026 12:11:20 -0500 Subject: [PATCH 02/10] Add more rth's --- .../diagnostics/Registry_isobaric.xml | 9 +++ .../diagnostics/mpas_isobaric_diagnostics.F | 67 +++++++++++++++++-- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index e4f85cce31..1badd04fd7 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -245,6 +245,15 @@ + + + + + + diff --git a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F index 05f585b7ce..73d5d864d1 100644 --- a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F +++ b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F @@ -39,7 +39,8 @@ module mpas_isobaric_diagnostics logical :: need_dtheta_dt_mp_isobaric, need_dtheta_dt_mix_isobaric, & need_rh_isobaric, & need_rhod_isobaric, & - need_rthblten_isobaric, need_rthratenlw_isobaric, need_rthratensw_isobaric, & + need_rthblten_isobaric, need_rthcuten_isobaric, need_rthdynten_isobaric, & + need_rthmpten_isobaric, need_rthratenlw_isobaric, need_rthratensw_isobaric, & need_qv_isobaric logical :: need_uzonal_isobaric, need_umeridional_isobaric, need_w_isobaric, & @@ -324,6 +325,12 @@ subroutine isobaric_diagnostics_compute() need_any_diags = need_any_diags .or. need_rhod_isobaric need_rthblten_isobaric = MPAS_field_will_be_written('rthblten_isobaric') need_any_diags = need_any_diags .or. need_rthblten_isobaric + need_rthcuten_isobaric = MPAS_field_will_be_written('rthcuten_isobaric') + need_any_diags = need_any_diags .or. need_rthcuten_isobaric + need_rthdynten_isobaric = MPAS_field_will_be_written('rthdynten_isobaric') + need_any_diags = need_any_diags .or. need_rthdynten_isobaric + need_rthmpten_isobaric = MPAS_field_will_be_written('rthmpten_isobaric') + need_any_diags = need_any_diags .or. need_rthmpten_isobaric need_rthratenlw_isobaric = MPAS_field_will_be_written('rthratenlw_isobaric') need_any_diags = need_any_diags .or. need_rthratenlw_isobaric need_rthratensw_isobaric = MPAS_field_will_be_written('rthratensw_isobaric') @@ -381,8 +388,8 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) real (kind=RKIND), dimension(:,:), pointer :: umeridional, uzonal, vvel real (kind=RKIND), dimension(:,:,:), pointer :: scalars real (kind=RKIND), dimension(:,:), pointer :: rho - real (kind=RKIND), dimension(:,:), pointer :: dtheta_dt_mp - real (kind=RKIND), dimension(:,:), pointer :: rthblten, rthratenlw, rthratensw + real (kind=RKIND), dimension(:,:), pointer :: dtheta_dt_mp, dtheta_dt_mix + real (kind=RKIND), dimension(:,:), pointer :: rthblten, rthcuten, rthdynten, rthmpten, rthratenlw, rthratensw real (kind=RKIND), dimension(:), pointer :: t_iso_levels real (kind=RKIND), dimension(:), pointer :: z_iso_levels @@ -395,6 +402,9 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) real (kind=RKIND), dimension(:,:), pointer :: rh_isobaric real (kind=RKIND), dimension(:,:), pointer :: rhod_isobaric real (kind=RKIND), dimension(:,:), pointer :: rthblten_isobaric + real (kind=RKIND), dimension(:,:), pointer :: rthcuten_isobaric + real (kind=RKIND), dimension(:,:), pointer :: rthdynten_isobaric + real (kind=RKIND), dimension(:,:), pointer :: rthmpten_isobaric real (kind=RKIND), dimension(:,:), pointer :: rthratenlw_isobaric real (kind=RKIND), dimension(:,:), pointer :: rthratensw_isobaric real (kind=RKIND), dimension(:,:), pointer :: qv_isobaric @@ -574,6 +584,9 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) call mpas_pool_get_array(diag, 'dtheta_dt_mp', dtheta_dt_mp) call mpas_pool_get_array(diag, 'dtheta_dt_mix', dtheta_dt_mix) call mpas_pool_get_array(tend_physics, 'rthblten', rthblten) + call mpas_pool_get_array(tend_physics, 'rthcuten', rthcuten) + call mpas_pool_get_array(tend_physics, 'rthdynten', rthdynten) + call mpas_pool_get_array(tend_physics, 'rthmpten', rthmpten) call mpas_pool_get_array(tend_physics, 'rthratenlw', rthratenlw) call mpas_pool_get_array(tend_physics, 'rthratensw', rthratensw) @@ -588,6 +601,9 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) call mpas_pool_get_array(diag, 'rh_isobaric', rh_isobaric) call mpas_pool_get_array(diag, 'rhod_isobaric', rhod_isobaric) call mpas_pool_get_array(diag, 'rthblten_isobaric', rthblten_isobaric) + call mpas_pool_get_array(diag, 'rthcuten_isobaric', rthcuten_isobaric) + call mpas_pool_get_array(diag, 'rthdynten_isobaric', rthdynten_isobaric) + call mpas_pool_get_array(diag, 'rthmpten_isobaric', rthmpten_isobaric) call mpas_pool_get_array(diag, 'rthratenlw_isobaric', rthratenlw_isobaric) call mpas_pool_get_array(diag, 'rthratensw_isobaric', rthratensw_isobaric) call mpas_pool_get_array(diag, 'qv_isobaric', qv_isobaric) @@ -682,7 +698,8 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) if (need_t_isobaric & .or. need_dtheta_dt_mp_isobaric .or. need_dtheta_dt_mix_isobaric & .or. need_rh_isobaric .or. need_rhod_isobaric & - .or. need_rthblten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & + .or. need_rthblten_isobaric .or. need_rthcuten_isobaric .or. need_rthdynten_isobaric & + .or. need_rthmpten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & .or. need_qv_isobaric) then t_iso_levels(:) = era5_pressure_levels end if @@ -1121,7 +1138,8 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) .or. need_dtheta_dt_mp_isobaric .or. need_dtheta_dt_mix_isobaric & .or. need_rh_isobaric & .or. need_rhod_isobaric & - .or. need_rthblten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & + .or. need_rthblten_isobaric .or. need_rthcuten_isobaric .or. need_rthdynten_isobaric & + .or. need_rthmpten_isobaric .or. need_rthratenlw_isobaric .or. need_rthratensw_isobaric & .or. need_qv_isobaric) then allocate(field_in(nCells, nVertLevels)) @@ -1231,6 +1249,45 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) end do end if + if (need_rthcuten_isobaric) then + do iCell = 1, nCells + do k = 1, nVertLevels + kk = nVertLevels + 1 - k + field_in(iCell,kk) = rthcuten(k,iCell) + end do + end do + call interp_tofixed_pressure(nCells, nVertLevels, nIsoLevelsT, press_in, field_in, press_interp, field_interp) + do k = 1, nIsoLevelsT + rthcuten_isobaric(k,1:nCells) = field_interp(1:nCells,k) + end do + end if + + if (need_rthdynten_isobaric) then + do iCell = 1, nCells + do k = 1, nVertLevels + kk = nVertLevels + 1 - k + field_in(iCell,kk) = rthdynten(k,iCell) + end do + end do + call interp_tofixed_pressure(nCells, nVertLevels, nIsoLevelsT, press_in, field_in, press_interp, field_interp) + do k = 1, nIsoLevelsT + rthdynten_isobaric(k,1:nCells) = field_interp(1:nCells,k) + end do + end if + + if (need_rthmpten_isobaric) then + do iCell = 1, nCells + do k = 1, nVertLevels + kk = nVertLevels + 1 - k + field_in(iCell,kk) = rthmpten(k,iCell) + end do + end do + call interp_tofixed_pressure(nCells, nVertLevels, nIsoLevelsT, press_in, field_in, press_interp, field_interp) + do k = 1, nIsoLevelsT + rthmpten_isobaric(k,1:nCells) = field_interp(1:nCells,k) + end do + end if + if (need_rthratenlw_isobaric) then do iCell = 1, nCells do k = 1, nVertLevels From ea8154f2eef1498fbf11458fb2c36b8114ca3d31 Mon Sep 17 00:00:00 2001 From: zmoon Date: Fri, 29 May 2026 12:17:54 -0500 Subject: [PATCH 03/10] Add EPV --- .../diagnostics/Registry_isobaric.xml | 3 +++ .../diagnostics/mpas_isobaric_diagnostics.F | 26 ++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index 1badd04fd7..c06e463299 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -263,6 +263,9 @@ + + Date: Fri, 29 May 2026 12:24:57 -0500 Subject: [PATCH 04/10] Clarify z_isobaric is geometric height not geopotential it comes from the zgrid model variable (layer interface heights), like the height_hPa variables --- src/core_atmosphere/diagnostics/Registry_isobaric.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index c06e463299..9ecee4bb7a 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -214,7 +214,7 @@ description="Temperature interpolated to isobaric surfaces defined in t_iso_levels"/> + description="Geometric height interpolated to isobaric surfaces defined in z_iso_levels"/> From 50d29242026e2f3438bf33bb01c5af0f6fa51344 Mon Sep 17 00:00:00 2001 From: zmoon Date: Sat, 30 May 2026 19:32:06 -0500 Subject: [PATCH 05/10] Fix EPV units --- src/core_atmosphere/diagnostics/Registry_isobaric.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index 9ecee4bb7a..0525004e65 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -263,7 +263,7 @@ - From af7d6978761282e6a2f80d89f7959882e581cd73 Mon Sep 17 00:00:00 2001 From: zmoon Date: Sat, 30 May 2026 22:01:01 -0500 Subject: [PATCH 06/10] For ertel_pv_isobaric we need ertel_pv --- src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F b/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F index d21061b0fb..f11012c234 100644 --- a/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F +++ b/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F @@ -91,7 +91,8 @@ subroutine pv_diagnostics_compute() need_any_budget = .false. - need_ertel_pv = MPAS_field_will_be_written('ertel_pv') + need_ertel_pv = MPAS_field_will_be_written('ertel_pv') & + .or. MPAS_field_will_be_written('ertel_pv_isobaric') need_any_diags = need_any_diags .or. need_ertel_pv need_u_pv = MPAS_field_will_be_written('u_pv') need_any_diags = need_any_diags .or. need_u_pv From e091a934fdf78ea8404e7cd734800e938e5de9bf Mon Sep 17 00:00:00 2001 From: zmoon Date: Sun, 31 May 2026 18:54:20 -0500 Subject: [PATCH 07/10] Move isobaric diag computation below (E)PV so ertel_pv is up-to-date when we compute ertel_pv_isobaric --- .../diagnostics/mpas_atm_diagnostics_manager.F | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core_atmosphere/diagnostics/mpas_atm_diagnostics_manager.F b/src/core_atmosphere/diagnostics/mpas_atm_diagnostics_manager.F index fb57411d1d..3ba4abd90b 100644 --- a/src/core_atmosphere/diagnostics/mpas_atm_diagnostics_manager.F +++ b/src/core_atmosphere/diagnostics/mpas_atm_diagnostics_manager.F @@ -54,10 +54,10 @@ subroutine mpas_atm_diag_setup(stream_mgr, configs, structs, clock, dminfo) call mpas_atm_diag_utils_init(stream_mgr) call diagnostic_template_setup(configs, structs, clock) - call isobaric_diagnostics_setup(structs, clock) call cloud_diagnostics_setup(structs, clock) call convective_diagnostics_setup(structs, clock) call pv_diagnostics_setup(structs, clock) + call isobaric_diagnostics_setup(structs, clock) call soundings_setup(configs, structs, clock, dminfo) end subroutine mpas_atm_diag_setup @@ -110,10 +110,10 @@ subroutine mpas_atm_diag_compute() call diagnostic_template_compute() - call isobaric_diagnostics_compute() call cloud_diagnostics_compute() call convective_diagnostics_compute() call pv_diagnostics_compute() + call isobaric_diagnostics_compute() call soundings_compute() end subroutine mpas_atm_diag_compute From 761ce2bcf01698ae8150c78c2d7e21dfb9c64a75 Mon Sep 17 00:00:00 2001 From: zmoon Date: Sun, 31 May 2026 22:29:48 -0500 Subject: [PATCH 08/10] Check if dtheta_dt_mix(_isobaric) requested instead of dtheta_dt_mp, for the PV budget diagnostics computation decision dtheta_dt_mp is computed in src/core_atmosphere/physics/mpas_atmphys_interface.F so maybe this was a typo --- src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F b/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F index f11012c234..bcccfd13cf 100644 --- a/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F +++ b/src/core_atmosphere/diagnostics/mpas_pv_diagnostics.F @@ -27,7 +27,7 @@ module mpas_pv_diagnostics logical :: need_ertel_pv, need_u_pv, need_v_pv, need_theta_pv, need_vort_pv, need_iLev_DT, & need_tend_lw, need_tend_sw, need_tend_bl, need_tend_cu, need_tend_mix, need_tend_mp, & - need_tend_diab, need_tend_fric, need_tend_diab_pv, need_tend_fric_pv, need_dtheta_mp + need_tend_diab, need_tend_fric, need_tend_diab_pv, need_tend_fric_pv, need_dtheta_mix contains @@ -121,9 +121,10 @@ subroutine pv_diagnostics_compute() need_tend_mix = MPAS_field_will_be_written('depv_dt_mix') need_any_diags = need_any_diags .or. need_tend_mix need_any_budget = need_any_budget .or. need_tend_mix - need_dtheta_mp = MPAS_field_will_be_written('dtheta_dt_mp') - need_any_diags = need_any_diags .or. need_dtheta_mp - need_any_budget = need_any_budget .or. need_dtheta_mp + need_dtheta_mix = MPAS_field_will_be_written('dtheta_dt_mix') & + .or. MPAS_field_will_be_written('dtheta_dt_mix_isobaric') + need_any_diags = need_any_diags .or. need_dtheta_mix + need_any_budget = need_any_budget .or. need_dtheta_mix need_tend_mp = MPAS_field_will_be_written('depv_dt_mp') need_any_diags = need_any_diags .or. need_tend_mp need_any_budget = need_any_budget .or. need_tend_mp From debd51df2423cb38c84952b9f028ac025e87f0a1 Mon Sep 17 00:00:00 2001 From: zmoon Date: Mon, 1 Jun 2026 10:53:18 -0500 Subject: [PATCH 09/10] tidy --- src/core_atmosphere/diagnostics/Registry_isobaric.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_atmosphere/diagnostics/Registry_isobaric.xml b/src/core_atmosphere/diagnostics/Registry_isobaric.xml index 0525004e65..293f84bd5c 100644 --- a/src/core_atmosphere/diagnostics/Registry_isobaric.xml +++ b/src/core_atmosphere/diagnostics/Registry_isobaric.xml @@ -257,7 +257,7 @@ - Date: Mon, 1 Jun 2026 11:28:54 -0500 Subject: [PATCH 10/10] Fix input pressure for w and vorticity isobaric interp was hPa, needs to be Pa --- src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F index 29d38b74d6..d8b3e92526 100644 --- a/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F +++ b/src/core_atmosphere/diagnostics/mpas_isobaric_diagnostics.F @@ -994,7 +994,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) do iCell = 1, nCells do k = 1, nVertLevelsP1 kk = nVertLevelsP1 + 1 - k - press_in(iCell,kk) = pressure2(k,iCell) + press_in(iCell,kk) = pressure2(k,iCell) * 100._RKIND enddo enddo @@ -1084,7 +1084,7 @@ subroutine interp_diagnostics(mesh, state, time_lev, diag, tend_physics) do iVert = 1, nVertices do k = 1, nVertLevels kk = nVertLevels + 1 - k - press_in(iVert,kk) = pressure_v(k,iVert) + press_in(iVert,kk) = pressure_v(k,iVert) * 100._RKIND end do end do