From c86c32c6e112a106f551cbe498eccec199ee4c11 Mon Sep 17 00:00:00 2001 From: "fanglin.yang" Date: Thu, 5 Sep 2019 19:24:09 +0000 Subject: [PATCH 1/3] VLab Issue #68141 modified: docs/FV3_citations.bib modified: model/fv_cmp.F90 1) Add an option (namelist parameter: intqs) to use temperature instead of the liquid frozen temperature to calculate saturation mixing ratio in deriving GFDLMP PDF cloud cover. 2) Add a literature reference. --- docs/FV3_citations.bib | 10 ++++++++++ model/fv_cmp.F90 | 17 +++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/FV3_citations.bib b/docs/FV3_citations.bib index 825323bae..074367fb9 100644 --- a/docs/FV3_citations.bib +++ b/docs/FV3_citations.bib @@ -33,6 +33,16 @@ @article{chen2013seasonal doi={10.1175/JCLI-D-12-00061.1} } +@article{zhou2019toward, + title={Toward Convective-Scale Prediction within the Next Generation Global Prediction System}, + author={Zhou, Linjiong and Lin, Shian-Jiann and Chen, Jan-Huey and Harris, Lucas M. and Chen, Xi and Rees, Shannon L.}, + journal={Bulletin of the American Meteorological Society}, + volume={100}, + issue={7}, + year={2019}, + doi={10.1175/bams-d-17-0246.1} +} + @article {deng2008cirrus, author = {Deng, Min and Mace, Gerald G.}, title = {Cirrus cloud microphysical properties and air motion statistics using cloud radar Doppler moments: Water content, particle size, and sedimentation relationships}, diff --git a/model/fv_cmp.F90 b/model/fv_cmp.F90 index aacf69dbe..79e7c513b 100644 --- a/model/fv_cmp.F90 +++ b/model/fv_cmp.F90 @@ -50,7 +50,7 @@ module fv_cmp_mod ! gfdl_cloud_microphys_mod ! ql_gen, qi_gen, qi0_max, ql_mlt, ql0_max, qi_lim, qs_mlt, ! tau_r2g, tau_smlt, tau_i2s, tau_v2l, tau_l2v, tau_imlt, tau_l2r, -! rad_rain, rad_snow, rad_graupel, dw_ocean, dw_land +! rad_rain, rad_snow, rad_graupel, dw_ocean, dw_land, tintqs ! ! @@ -60,7 +60,7 @@ module fv_cmp_mod use gfdl_cloud_microphys_mod, only: ql_gen, qi_gen, qi0_max, ql_mlt, ql0_max, qi_lim, qs_mlt use gfdl_cloud_microphys_mod, only: icloud_f, sat_adj0, t_sub, cld_min use gfdl_cloud_microphys_mod, only: tau_r2g, tau_smlt, tau_i2s, tau_v2l, tau_l2v, tau_imlt, tau_l2r - use gfdl_cloud_microphys_mod, only: rad_rain, rad_snow, rad_graupel, dw_ocean, dw_land + use gfdl_cloud_microphys_mod, only: rad_rain, rad_snow, rad_graupel, dw_ocean, dw_land, tintqs #ifdef MULTI_GASES use multi_gases_mod, only: virq_qpz, vicpqd_qpz, vicvqd_qpz, num_gas #endif @@ -774,9 +774,14 @@ subroutine fv_sat_adj (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0 do i = is, ie - tin = pt1 (i) - (lcp2 (i) * q_cond (i) + icp2 (i) * q_sol (i)) ! minimum temperature + if(tintqs) then + tin = pt1(i) + else +! tin = pt1 (i) - (lcp2 (i) * q_cond (i) + icp2 (i) * q_sol (i)) ! minimum temperature + tin = pt1 (i) - (lcp2 (i) * q_liq (i) + icp2 (i) * q_sol (i)) ! minimum temperature ! tin = pt1 (i) - ((lv00 + d0_vap * pt1 (i)) * q_cond (i) + & ! (li00 + dc_ice * pt1 (i)) * q_sol (i)) / (mc_air (i) + qpz (i) * c_vap) + endif ! ----------------------------------------------------------------------- ! determine saturated specific humidity @@ -820,14 +825,14 @@ subroutine fv_sat_adj (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0 ! icloud_f = 2: binary cloud scheme (0 / 1) ! ----------------------------------------------------------------------- - if (rh > 0.75 .and. qpz (i) > 1.e-6) then + if (rh > 0.75 .and. qpz (i) > 1.e-8) then dq = hvar (i) * qpz (i) q_plus = qpz (i) + dq q_minus = qpz (i) - dq if (icloud_f == 2) then if (qpz (i) > qstar (i)) then qa (i, j) = 1. - elseif (qstar (i) < q_plus .and. q_cond (i) > 1.e-6) then + elseif (qstar (i) < q_plus .and. q_cond (i) > 1.e-8) then qa (i, j) = ((q_plus - qstar (i)) / dq) ** 2 qa (i, j) = min (1., qa (i, j)) else @@ -847,7 +852,7 @@ subroutine fv_sat_adj (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0 qa (i, j) = 0. endif ! impose minimum cloudiness if substantial q_cond (i) exist - if (q_cond (i) > 1.e-6) then + if (q_cond (i) > 1.e-8) then qa (i, j) = max (cld_min, qa (i, j)) endif qa (i, j) = min (1., qa (i, j)) From bdaaa8db1bd28b5372737a8122a744826a2a7fa1 Mon Sep 17 00:00:00 2001 From: "fanglin.yang" Date: Fri, 6 Sep 2019 19:15:51 +0000 Subject: [PATCH 2/3] Update fv_cmp.F90 to remove a bug introduced in last update. --- model/fv_cmp.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/model/fv_cmp.F90 b/model/fv_cmp.F90 index 79e7c513b..16b679b9f 100644 --- a/model/fv_cmp.F90 +++ b/model/fv_cmp.F90 @@ -777,8 +777,7 @@ subroutine fv_sat_adj (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0 if(tintqs) then tin = pt1(i) else -! tin = pt1 (i) - (lcp2 (i) * q_cond (i) + icp2 (i) * q_sol (i)) ! minimum temperature - tin = pt1 (i) - (lcp2 (i) * q_liq (i) + icp2 (i) * q_sol (i)) ! minimum temperature + tin = pt1 (i) - (lcp2 (i) * q_cond (i) + icp2 (i) * q_sol (i)) ! minimum temperature ! tin = pt1 (i) - ((lv00 + d0_vap * pt1 (i)) * q_cond (i) + & ! (li00 + dc_ice * pt1 (i)) * q_sol (i)) / (mc_air (i) + qpz (i) * c_vap) endif From 700a4f767b64b0a472f47bcde7641f817c869a2e Mon Sep 17 00:00:00 2001 From: Dusan Jovic Date: Tue, 24 Sep 2019 01:57:11 +0000 Subject: [PATCH 3/3] change delz from positive value to the original value in the model --- driver/fvGFS/fv_nggps_diag.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver/fvGFS/fv_nggps_diag.F90 b/driver/fvGFS/fv_nggps_diag.F90 index 01066f18e..07a471c32 100644 --- a/driver/fvGFS/fv_nggps_diag.F90 +++ b/driver/fvGFS/fv_nggps_diag.F90 @@ -514,7 +514,7 @@ subroutine fv_nggps_diag(Atm, zvir, Time) do k=1,npzo do j=jsco,jeco do i=isco,ieco - wk(i,j,k) = -Atm(n)%delz(i,j,k) + wk(i,j,k) = Atm(n)%delz(i,j,k) enddo enddo enddo