From 062f7958ccd9bd97b8737432f75b06ec734777a7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 11 Mar 2024 09:22:59 -0600 Subject: [PATCH] Bug fix for unallocated array sfcprop%wetness in GFS_diagnostics.F90 (#792) * Bug fix in ccpp/driver/GFS_diagnostics.F90: only output sfcprop(nb)%wetness for RUC LSM * Update ccpp-framework for bug fix to provide backward compatibility with blocked data structure --- ccpp/driver/GFS_diagnostics.F90 | 24 +++++++++++++----------- ccpp/framework | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 01d49593e..a96ac1197 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -4094,17 +4094,19 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var2 => sfcprop(nb)%vfrac(:) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 2 - ExtDiag(idx)%name = 'wetness' - ExtDiag(idx)%desc = 'soil moisture availability in top soil layer' - ExtDiag(idx)%unit = 'fraction' - ExtDiag(idx)%mod_name = 'gfs_sfc' - ExtDiag(idx)%cnvfac = cn_100 - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var2 => sfcprop(nb)%wetness(:) - enddo + if (Model%lsm==Model%lsm_ruc) then + idx = idx + 1 + ExtDiag(idx)%axes = 2 + ExtDiag(idx)%name = 'wetness' + ExtDiag(idx)%desc = 'soil moisture availability in top soil layer' + ExtDiag(idx)%unit = 'fraction' + ExtDiag(idx)%mod_name = 'gfs_sfc' + ExtDiag(idx)%cnvfac = cn_100 + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var2 => sfcprop(nb)%wetness(:) + enddo + end if idx = idx + 1 ExtDiag(idx)%axes = 2 diff --git a/ccpp/framework b/ccpp/framework index f0b9a18b0..221788f4e 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit f0b9a18b005d950cb9b0038fbc827b6b37500f43 +Subproject commit 221788f4e2539af797eb02efe42465b153533201