From 6a9b83457ea524f1a99de5f5f87bff9b4892ae55 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Mon, 3 Aug 2020 10:37:17 -0600 Subject: [PATCH 1/2] omit UGWP in HAFS SDF file following HAFS practice --- ccpp/suites/suite_FV3_HAFS_ferhires.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires.xml b/ccpp/suites/suite_FV3_HAFS_ferhires.xml index a6efd0108..e8ca6ebf2 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires.xml @@ -55,10 +55,6 @@ GFS_PBL_generic_pre hedmf GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys From 72daaf1cea4c68118043fe23245682850db75486 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 13 Aug 2020 11:35:11 -0600 Subject: [PATCH 2/2] FA mp specific changes of defining variables in remapping step --- gfsphysics/CCPP_layer/CCPP_typedefs.F90 | 9 +++++++-- gfsphysics/CCPP_layer/CCPP_typedefs.meta | 7 +++++++ io/FV3GFS_io.F90 | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gfsphysics/CCPP_layer/CCPP_typedefs.F90 b/gfsphysics/CCPP_layer/CCPP_typedefs.F90 index 4685d856d..577b54493 100644 --- a/gfsphysics/CCPP_layer/CCPP_typedefs.F90 +++ b/gfsphysics/CCPP_layer/CCPP_typedefs.F90 @@ -60,6 +60,7 @@ module CCPP_typedefs real(kind_dyn), pointer :: qr(:,:,:) real(kind_dyn), pointer :: qs(:,:,:) real(kind_dyn), pointer :: qg(:,:,:) + real(kind_dyn), pointer :: qf(:,:,:) ! HWRF real(kind_dyn), pointer :: qc(:,:,:) real(kind_dyn), pointer :: q_con(:,:,:) integer :: nthreads @@ -86,10 +87,10 @@ module CCPP_typedefs !----------------------------- subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed, npz, ng, & dt_atmos, p_split, k_split, zvir, p_ref, ak, bk, & - do_ql, do_qi, do_qr, do_qs, do_qg, do_qa, & + do_ql, do_qi, do_qr, do_qs, do_qg, do_qf, do_qa, & kappa, hydrostatic, do_sat_adj, & delp, delz, area, peln, phis, pkz, pt, & - qvi, qv, ql, qi, qr, qs, qg, qc, q_con, & + qvi, qv, ql, qi, qr, qs, qg, qf, qc, q_con, & nthreads, nwat, ngas, rilist, cpilist, mpirank, mpiroot) ! implicit none @@ -117,6 +118,7 @@ subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed logical, intent(in) :: do_qr logical, intent(in) :: do_qs logical, intent(in) :: do_qg + logical, intent(in) :: do_qf ! HWRF logical, intent(in) :: do_qa real(kind_dyn), intent(in) :: kappa logical, intent(in) :: hydrostatic @@ -135,6 +137,7 @@ subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed real(kind_dyn), target, intent(in) :: qr(:,:,:) real(kind_dyn), target, intent(in) :: qs(:,:,:) real(kind_dyn), target, intent(in) :: qg(:,:,:) + real(kind_dyn), target, intent(in) :: qf(:,:,:) ! HWRF real(kind_dyn), target, intent(in) :: qc(:,:,:) real(kind_dyn), target, intent(in) :: q_con(:,:,:) integer, intent(in) :: nthreads @@ -205,6 +208,7 @@ subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed if (do_qr) Interstitial%qr => qr if (do_qs) Interstitial%qs => qs if (do_qg) Interstitial%qg => qg + if (do_qf) Interstitial%qf => qf if (do_qa) Interstitial%qc => qc #ifdef USE_COND Interstitial%npzq_con = npz @@ -347,6 +351,7 @@ subroutine interstitial_print(Interstitial) if (associated(Interstitial%qr)) write (0,*) 'sum(Interstitial%qr) = ', Interstitial%qr if (associated(Interstitial%qs)) write (0,*) 'sum(Interstitial%qs) = ', Interstitial%qs if (associated(Interstitial%qg)) write (0,*) 'sum(Interstitial%qg) = ', Interstitial%qg + if (associated(Interstitial%qf)) write (0,*) 'sum(Interstitial%qf) = ', Interstitial%qf if (associated(Interstitial%qc)) write (0,*) 'sum(Interstitial%qc) = ', Interstitial%qc write (0,*) 'sum(Interstitial%q_con) = ', Interstitial%q_con write (0,*) 'Interstitial%hydrostatic = ', Interstitial%hydrostatic diff --git a/gfsphysics/CCPP_layer/CCPP_typedefs.meta b/gfsphysics/CCPP_layer/CCPP_typedefs.meta index d38fb8631..1760c5236 100644 --- a/gfsphysics/CCPP_layer/CCPP_typedefs.meta +++ b/gfsphysics/CCPP_layer/CCPP_typedefs.meta @@ -268,6 +268,13 @@ dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn +[qf] + standard_name = mass_weighted_rime_factor_at_Lagrangian_surface + long_name = mass weighted rime factor updated by fast physics at Lagrangian surface + units = kg kg-1 + dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_fast_physics) + type = real + kind = kind_dyn [qc] standard_name = cloud_fraction_at_Lagrangian_surface long_name = cloud fraction at Lagrangian surface diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 28d96214a..18d34cc03 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -2414,8 +2414,8 @@ subroutine fv3gfs_diag_output(time, diag, atm_block, nx, ny, levs, ntcw, ntoz, & integer :: i, j, k, idx, nblks, nb, ix, ii, jj integer :: is_in, js_in, isc, jsc character(len=2) :: xtra - real(kind=kind_phys), dimension(nx*ny) :: var2p - real(kind=kind_phys), dimension(nx*ny,levs) :: var3p + !real(kind=kind_phys), dimension(nx*ny) :: var2p + !real(kind=kind_phys), dimension(nx*ny,levs) :: var3p real(kind=kind_phys), dimension(nx,ny) :: var2 real(kind=kind_phys), dimension(nx,ny,levs) :: var3 real(kind=kind_phys) :: rdt, rtime_int, rtime_intfull, lcnvfac