diff --git a/.gitmodules b/.gitmodules index 75876f6fa..533a68353 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,8 +8,10 @@ branch = production/RRFS.v1 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/ufs-community/ccpp-physics - branch = production/RRFS.v1 +# url = https://github.com/ufs-community/ccpp-physics +# branch = production/RRFS.v1 + url = https://github.com/JiliDong-NOAA/ccpp-physics + branch = sigmab_fix [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index a20fb88a3..3124ce257 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1231,6 +1231,7 @@ module GFS_typedefs real(kind=kind_phys) :: betascu !< Tuning parameter for prog. closure shallow clouds real(kind=kind_phys) :: betamcu !< Tuning parameter for prog. closure midlevel clouds real(kind=kind_phys) :: betadcu !< Tuning parameter for prog. closure deep clouds + logical :: sigmab_coldstart !< flag to cold start sigmab !--- MYNN parameters/switches logical :: do_mynnedmf @@ -4036,6 +4037,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & real(kind=kind_phys) :: betascu = 8.0 !< Tuning parameter for prog. closure shallow clouds real(kind=kind_phys) :: betamcu = 1.0 !< Tuning parameter for prog. closure midlevel clouds real(kind=kind_phys) :: betadcu = 2.0 !< Tuning parameter for prog. closure deep clouds + logical :: sigmab_coldstart = .false. !< flag to cold start sigmab ! *DH logical :: do_myjsfc = .false. !< flag for MYJ surface layer scheme logical :: do_myjpbl = .false. !< flag for MYJ PBL scheme @@ -4367,6 +4369,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & do_myjsfc, do_myjpbl, & hwrf_samfdeep, hwrf_samfshal,progsigma,betascu,betamcu, & betadcu,h2o_phys, pdfcld, shcnvcw, redrag, hybedmf, satmedmf,& + sigmab_coldstart, & shinhong, do_ysu, dspheat, lheatstrg, lseaspray, cnvcld, & random_clds, shal_cnv, imfshalcnv, imfdeepcnv, isatmedmf, & conv_cf_opt, do_deep, jcap, & @@ -5176,6 +5179,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%betascu = betascu Model%betamcu = betamcu Model%betadcu = betadcu + Model%sigmab_coldstart = sigmab_coldstart if (oz_phys .and. oz_phys_2015) then write(*,*) 'Logic error: can only use one ozone physics option (oz_phys or oz_phys_2015), not both. Exiting.' @@ -7202,6 +7206,7 @@ subroutine control_print(Model) print *, 'betascu : ', Model%betascu print *, 'betamcu : ', Model%betamcu print *, 'betadcu : ', Model%betadcu + print *, 'sigmab_coldstart : ', Model%sigmab_coldstart print *, ' ' print *, 'cellular automata' print *, ' nca : ', Model%nca diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index ab5a79291..270d8e660 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -5566,6 +5566,12 @@ dimensions = () type = real kind = kind_phys +[sigmab_coldstart] + standard_name = flag_to_cold_start_for_sigmab_init + long_name = flag to cold start for sigmab initialization + units = flag + dimensions = () + type = logical [isatmedmf] standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL long_name = choice of scale-aware TKE moist EDMF PBL scheme diff --git a/ccpp/physics b/ccpp/physics index cfe8a0ce6..b2d503256 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cfe8a0ce6b6b44396d5f578f8c10e8428c9ce3a5 +Subproject commit b2d503256ababff56b0ba1b03bb7ee4e8c5ccf83 diff --git a/io/fv3atm_history_io.F90 b/io/fv3atm_history_io.F90 index 7c73fe296..faeac2a8f 100644 --- a/io/fv3atm_history_io.F90 +++ b/io/fv3atm_history_io.F90 @@ -186,7 +186,7 @@ subroutine history_type_register(hist, Diag, Time, Atm_block, Model, xlon, xlat, hist%fhzero = nint(Model%fhzero) ! hist%ncld = Model%ncld hist%ncld = Model%imp_physics - hist%nsoil = Model%lsoil + hist%nsoil = Model%lsoil_lsm hist%dtp = Model%dtp hist%imp_physics = Model%imp_physics hist%landsfcmdl = Model%lsm diff --git a/io/module_write_internal_state.F90 b/io/module_write_internal_state.F90 index 51c422227..6d0602a5f 100644 --- a/io/module_write_internal_state.F90 +++ b/io/module_write_internal_state.F90 @@ -98,6 +98,7 @@ module write_internal_state integer :: ncld !< Number of hydrometeors. integer :: nsoil !< Number of soil layers. integer :: imp_physics !< Choice of microphysics scheme. + integer :: landsfcmdl !< Choice of land surface model integer :: dtp !< Physics timestep. real,dimension(:),allocatable :: ak !< a parameter for sigma pressure level calculations. real,dimension(:),allocatable :: bk !< b parameter for sigma pressure level calculations. diff --git a/io/post_fv3.F90 b/io/post_fv3.F90 index 97962bdd9..8296b7517 100644 --- a/io/post_fv3.F90 +++ b/io/post_fv3.F90 @@ -430,6 +430,7 @@ subroutine post_getattr_fv3(wrt_int_state,grid_id) if (trim(attName) == 'nsoil') wrt_int_state%nsoil=varival if (trim(attName) == 'fhzero') wrt_int_state%fhzero=varival if (trim(attName) == 'imp_physics') wrt_int_state%imp_physics=varival + if (trim(attName) == 'landsfcmdl') wrt_int_state%landsfcmdl=varival endif else if (typekind==ESMF_TYPEKIND_R4) then if(n==1) then @@ -624,7 +625,7 @@ subroutine set_postvars_fv3(wrt_int_state,grid_id,mype,mpicomp) ! imp_physics = wrt_int_state%imp_physics !set GFS mp physics to 99 for Zhao scheme dtp = wrt_int_state%dtp - iSF_SURFACE_PHYSICS = 2 + iSF_SURFACE_PHYSICS = wrt_int_state%landsfcmdl spval = 9.99e20 ! ! nems gfs has zhour defined