From 1656aac7574026f40bd006d37771bb845b0ed4bb Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Mon, 30 Sep 2019 12:02:24 -0600 Subject: [PATCH] revert MP_generic to original version to obtain B4B for control/csawmg/satmedmf --- physics/GFS_MP_generic.F90 | 25 +++++++------------------ physics/GFS_MP_generic.meta | 8 -------- physics/GFS_rrtmg_pre.F90 | 2 -- physics/module_mp_fer_hires_pre.F90 | 4 ++-- 4 files changed, 9 insertions(+), 30 deletions(-) diff --git a/physics/GFS_MP_generic.F90 b/physics/GFS_MP_generic.F90 index 94a0385a7..b83f592f2 100644 --- a/physics/GFS_MP_generic.F90 +++ b/physics/GFS_MP_generic.F90 @@ -81,7 +81,7 @@ end subroutine GFS_MP_generic_post_init !> \section gfs_mp_gen GFS MP Generic Post General Algorithm !> @{ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, ntrac, imp_physics, imp_physics_gfdl, & - imp_physics_thompson, imp_physics_mg, imp_physics_fer_hires, cal_pre, lssav, ldiag3d, cplflx, cplchm, con_g, dtf, frain, rainc, rain1, & + imp_physics_thompson, imp_physics_mg, cal_pre, lssav, ldiag3d, cplflx, cplchm, con_g, dtf, frain, rainc, rain1, & rann, xlat, xlon, gt0, gq0, prsl, prsi, phii, tsfc, ice, snow, graupel, save_t, save_qv, rain0, ice0, snow0, & graupel0, del, rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, srflag, sr, cnvprcp, totprcp, totice, & totsnw, totgrp, cnvprcpb, totprcpb, toticeb, totsnwb, totgrpb, dt3dt, dq3dt, rain_cpl, rainc_cpl, snow_cpl, pwat, & @@ -93,7 +93,7 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt implicit none integer, intent(in) :: im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, ntrac - integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_mg, imp_physics_fer_hires + integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_mg logical, intent(in) :: cal_pre, lssav, ldiag3d, cplflx, cplchm real(kind=kind_phys), intent(in) :: dtf, frain, con_g @@ -179,10 +179,6 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt graupel = frain*graupel0 ! time-step graupel ice = frain*ice0 ! time-step ice snow = frain*snow0 ! time-step snow - - else if (imp_physics == imp_physics_fer_hires) then - tprcp = max (0.,rain) ! time-step convective and explicit precip - ice = frain*rain1*sr ! time-step ice end if if (lsm==lsm_ruc) then @@ -281,7 +277,7 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt !! and determine explicit rain/snow by snow/ice/graupel coming out directly from MP !! and convective rainfall from the cumulus scheme if the surface temperature is below !! \f$0^oC\f$. - if (imp_physics == imp_physics_gfdl .or. imp_physics == imp_physics_thompson .or. imp_physics_fer_hires) then + if (imp_physics == imp_physics_gfdl .or. imp_physics == imp_physics_thompson) then ! determine convective rain/snow by surface temperature ! determine large-scale rain/snow by rain/snow coming out directly from MP do i = 1, im @@ -299,17 +295,10 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt ! Sfcprop%srflag(i) = 1. ! clu: set srflag to 'snow' (i.e. 1) ! endif ! compute fractional srflag - if(imp_physics == imp_physics_fer_hires) then - total_precip = tprcp(i) - if (total_precip > rainmin) then - srflag(i) = (ice(i)+csnow)/total_precip - endif - else if (imp_physics == imp_physics_gfdl .or. imp_physics == imp_physics_thompson ) then - total_precip = snow0(i)+ice0(i)+graupel0(i)+rain0(i)+rainc(i) - if (total_precip > rainmin) then - srflag(i) = (snow0(i)+ice0(i)+graupel0(i)+csnow)/total_precip - endif - end if + total_precip = snow0(i)+ice0(i)+graupel0(i)+rain0(i)+rainc(i) + if (total_precip > rainmin) then + srflag(i) = (snow0(i)+ice0(i)+graupel0(i)+csnow)/total_precip + endif enddo elseif( .not. cal_pre) then if (imp_physics == imp_physics_mg) then ! MG microphysics diff --git a/physics/GFS_MP_generic.meta b/physics/GFS_MP_generic.meta index 3a11a9983..2e55b6ad5 100644 --- a/physics/GFS_MP_generic.meta +++ b/physics/GFS_MP_generic.meta @@ -234,14 +234,6 @@ type = integer intent = in optional = F -[imp_physics_fer_hires] - standard_name = flag_for_fer_hires_microphysics_scheme - long_name = choice of Ferrier-Aligo microphysics scheme - units = flag - dimensions = () - type = integer - intent = in - optional = F [cal_pre] standard_name = flag_for_precipitation_type_algorithm long_name = flag controls precip type algorithm diff --git a/physics/GFS_rrtmg_pre.F90 b/physics/GFS_rrtmg_pre.F90 index 9999d1543..4ea7ee3cc 100644 --- a/physics/GFS_rrtmg_pre.F90 +++ b/physics/GFS_rrtmg_pre.F90 @@ -522,7 +522,6 @@ subroutine GFS_rrtmg_pre_run (Model, Grid, Sfcprop, Statein, & ! input ! --- ... obtain cloud information for radiation calculations ! if (ntcw > 0) then ! prognostic cloud schemes -!MZ if (Model%imp_physics .ne. 15) then ccnd = 0.0_kind_phys if (Model%ncnd == 1) then ! Zhao_Carr_Sundqvist do k=1,LMK @@ -563,7 +562,6 @@ subroutine GFS_rrtmg_pre_run (Model, Grid, Sfcprop, Statein, & ! input enddo enddo enddo -!MZ endif !not FA if (Model%imp_physics == 11 ) then if (.not. Model%lgfdlmprad) then diff --git a/physics/module_mp_fer_hires_pre.F90 b/physics/module_mp_fer_hires_pre.F90 index 662d7fa67..fdbf87464 100644 --- a/physics/module_mp_fer_hires_pre.F90 +++ b/physics/module_mp_fer_hires_pre.F90 @@ -101,10 +101,10 @@ subroutine mp_fer_hires_pre_run (CWM,F_ICE,F_RAIN,F_RIMEF & IF (.NOT.SPEC_ADV .OR. CLD_INIT) THEN !-- Update WATER arrays when advecting only total condensate (spec_adv=F) -! or at the initial time step +!-- and F_* or at the initial time step DO K=1,LM DO I=1,IME - CWM(I,K)=QC(I,K)+QR(I,K)+QI(I,K) + !!CWM(I,K)=QC(I,K)+QR(I,K)+QI(I,K) IF (CWM(I,K)>EPSQ) THEN LIQW=(1.-F_ice(I,K))*CWM(I,K) QC(I,K)=(1.-F_rain(I,K))*LIQW