From 672a84508db95b38caf1443f7908954623c6dfab Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Fri, 26 Aug 2022 10:14:12 -0600 Subject: [PATCH 01/19] Changes to typedefs for ccpp-physics changes. --- ccpp/data/GFS_typedefs.F90 | 166 +++++++++++++++++++++++++++++++---- ccpp/data/GFS_typedefs.meta | 169 +++++++++++++++++++++++++++++++++++- ccpp/physics | 2 +- 3 files changed, 316 insertions(+), 21 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 9f939fef3..fc50e0a96 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -7,7 +7,9 @@ module GFS_typedefs con_epsm1, con_ttp, rlapse, con_jcal, con_rhw0, & con_sbc, con_tice, cimin, con_p0, rhowater, & con_csol, con_epsqs, con_rocp, con_rog, & - con_omega, con_rerth, con_psat, karman, rainmin + con_omega, con_rerth, con_psat, karman, rainmin,& + con_c, con_plnk, con_boltz, con_solr_2008, & + con_solr_2002, con_thgni use module_radsw_parameters, only: topfsw_type, sfcfsw_type use module_radlw_parameters, only: topflw_type, sfcflw_type @@ -717,6 +719,12 @@ module GFS_typedefs integer :: nrcm !< second dimension of random number stream for RAS integer :: iflip !< iflip - is not the same as flipv integer :: isol !< use prescribed solar constant + !< 0 => fixed value=1366.0\f$W/m^2\f$(old standard) + !< 10 => fixed value=1360.8\f$W/m^2\f$(new standard) + !< 1 => NOAA ABS-scale TSI table (yearly) w 11-yr cycle approx + !< 2 => NOAA TIM-scale TSI table (yearly) w 11-yr cycle approx + !< 3 => CMIP5 TIM-scale TSI table (yearly) w 11-yr cycle approx + !< 4 => CMIP5 TIM-scale TSI table (monthly) w 11-yr cycle approx integer :: ico2 !< prescribed global mean value (old opernl) integer :: ialb !< use climatology alb, based on sfc type !< 1 => use modis based alb @@ -724,11 +732,21 @@ module GFS_typedefs integer :: iems !< 1 => use fixed value of 1.0 !< 2 => use LSM emiss integer :: iaer !< default aerosol effect in sw only + integer :: iaermdl !< tropospheric aerosol model scheme flag + integer :: iaerflg !< aerosol effect control flag + character(len=26) :: aeros_file !< external file: aerosol data file + character(len=26) :: solar_file !< external file: solar constant data table + character(len=26) :: semis_file !< external file: surface emissivity data for radiation + character(len=26) :: co2dat_file !< external file: co2 monthly observation data table + character(len=26) :: co2gbl_file !< external file: co2 global annual mean data table + character(len=26) :: co2usr_file !< external file: co2 user defined data table + character(len=26) :: co2cyc_file !< external file: co2 climotological monthly cycle data + logical :: lalw1bd !< selects 1 band or multi bands for LW aerosol properties integer :: icliq_sw !< sw optical property for liquid clouds integer :: icice_sw !< sw optical property for ice clouds integer :: icliq_lw !< lw optical property for liquid clouds integer :: icice_lw !< lw optical property for ice clouds - integer :: iovr !< max-random overlap clouds for sw & lw (maximum of both) + integer :: iovr !< cloud-overlap used in cloud-sampling by radiation scheme(s) integer :: ictm !< ictm=0 => use data at initial cond time, if not !< available; use latest; no extrapolation. !< ictm=1 => use data at the forecast time, if not @@ -746,16 +764,35 @@ module GFS_typedefs !< =1 => sub-grid cloud with prescribed seeds !< =2 => sub-grid cloud with randomly generated !< seeds + integer :: iswmode !< SW control flag for scattering process approximation + !< =1 => two-stream delta-eddington (Joseph et al. 1976) + !< =2 => two-stream PIFM (Zdunkowski et al. 1980) + !< =3 => discrete ordinates (Liou, 1973) integer :: idcor !< Decorrelation length type for overlap assumption !< =0 => Use constant decorrelation length, decorr_con !< =1 => Use spatially varying decorrelation length (Hogan et al. 2010) !< =2 => Use spatially and temporally varyint decorrelation length (Oreopoulos et al. 2012) real(kind_phys) :: dcorr_con !< Decorrelation length constant (km) (if idcor = 0) - logical :: crick_proof !< CRICK-Proof cloud water - logical :: ccnorm !< Cloud condensate normalized by cloud cover - logical :: norad_precip !< radiation precip flag for Ferrier/Moorthi + logical :: lcrick !< CRICK-Proof cloud water + logical :: lcnorm !< Cloud condensate normalized by cloud cover + logical :: lnoprec !< radiation precip flag for Ferrier/Moorthi logical :: lwhtr !< flag to output lw heating rate (Radtend%lwhc) logical :: swhtr !< flag to output sw heating rate (Radtend%swhc) + integer :: rad_hr_units !< flag to control units of lw/sw heating rate + !< 1: K day-1 - 2: K s-1 + logical :: inc_minor_gas !< Include minor trace gases in RRTMG radiation calculation? + integer :: ilwcliq !< Longwave optics scheme for liquid clouds + integer :: iswcliq !< Shortwave optics scheme for liquid clouds + integer :: ilwcice !< Longwave optics scheme for ice clouds + !< =1 => optical property scheme based on Ebert and Curry (1992) + !< =2 => optical property scheme based on Streamer v3 + !< =3 => optical property scheme use Fu's method (1998) + integer :: iswcice !< Shortwave optics scheme for ice clouds + !< =1 => optical property scheme based on Ebert and Curry (1992) + !< =2 => optical property scheme based on Streamer v3 + !< =3 => optical property scheme use Fu's method (1998) + integer :: ipsd0 !< initial permutaion seed for mcica radiation + integer :: ipsdlim !< limit initial permutaion seed for mcica radiation ! RRTMGP logical :: do_RRTMGP !< Use RRTMGP @@ -2944,6 +2981,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: iccn = 0 !< logical to use IN CCN forcing for MG2/3 integer :: iflip = 1 !< iflip - is not the same as flipv integer :: isol = 0 !< use prescribed solar constant + !< 0 => fixed value=1366.0\f$W/m^2\f$(old standard) + !< 10 => fixed value=1360.8\f$W/m^2\f$(new standard) + !< 1 => NOAA ABS-scale TSI table (yearly) w 11-yr cycle approx + !< 2 => NOAA TIM-scale TSI table (yearly) w 11-yr cycle approx + !< 3 => CMIP5 TIM-scale TSI table (yearly) w 11-yr cycle approx + !< 4 => CMIP5 TIM-scale TSI table (monthly) w 11-yr cycle approx integer :: ico2 = 0 !< prescribed global mean value (old opernl) integer :: ialb = 0 !< use climatology alb, based on sfc type !< 1 => use modis based alb (RUC lsm) @@ -2951,11 +2994,32 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: iems = 0 !< 1.0 => Noah lsm !< 2.0 => Noah MP and RUC lsms integer :: iaer = 1 !< default aerosol effect in sw only + integer :: iaermdl = 0 !< default tropospheric aerosol model scheme flag + !< 0: seasonal global distributed OPAC aerosol climatology + !< 1: monthly global distributed GOCART aerosol climatology + !< 2: GOCART prognostic aerosol model + !< 5: OPAC climatoloy with new band mapping + integer :: iaerflg = 0 !< aerosol effect control flag + !< 3-digit flag 'abc': + !< a-stratospheric volcanic aerols + !< b-tropospheric aerosols for LW + !< c-tropospheric aerosols for SW + !< =0:aerosol effect is not included; =1:aerosol effect is included + logical :: lalw1bd = .false. !< selects 1 band or multi bands for LW aerosol properties + !< true.: aerosol properties calculated in 1 broad LW band + !< false.: aerosol properties calculated for each LW bands + character(len=26) :: aeros_file = 'aerosol.dat ' + character(len=26) :: solar_file = 'solarconstant_noaa_a0.txt ' + character(len=26) :: semis_file = 'sfc_emissivity_idx.txt ' + character(len=26) :: co2dat_file = 'co2historicaldata_2004.txt' + character(len=26) :: co2gbl_file = 'co2historicaldata_glob.txt' + character(len=26) :: co2usr_file = 'co2userdata.txt ' + character(len=26) :: co2cyc_file = 'co2monthlycyc.txt ' integer :: icliq_sw = 1 !< sw optical property for liquid clouds integer :: icice_sw = 3 !< sw optical property for ice clouds integer :: icliq_lw = 1 !< lw optical property for liquid clouds integer :: icice_lw = 3 !< lw optical property for ice clouds - integer :: iovr = 1 !< cloud-overlap: max-random overlap clouds + integer :: iovr = 1 !< cloud-overlap used in cloud-sampling by radiation scheme(s) integer :: ictm = 1 !< ictm=0 => use data at initial cond time, if not !< available; use latest; no extrapolation. !< ictm=1 => use data at the forecast time, if not @@ -2973,16 +3037,28 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !< =1 => sub-grid cloud with prescribed seeds !< =2 => sub-grid cloud with randomly generated !< seeds + integer :: iswmode = 2 !< SW control flag for scattering process approximation + !< =1 => two-stream delta-eddington (Joseph et al. 1976) + !< =2 => two-stream PIFM (Zdunkowski et al. 1980) + !< =3 => discrete ordinates (Liou, 1973) integer :: idcor = 1 !< Decorrelation length type for overlap assumption !< =0 => Use constant decorrelation length, decorr_con !< =1 => Use spatially varying decorrelation length (Hogan et al. 2010) !< =2 => Use spatially and temporally varyint decorrelation length (Oreopoulos et al. 2012) real(kind_phys) :: dcorr_con = 2.5 !< Decorrelation length constant (km) (if idcor = 0) - logical :: crick_proof = .false. !< CRICK-Proof cloud water - logical :: ccnorm = .false. !< Cloud condensate normalized by cloud cover - logical :: norad_precip = .false. !< radiation precip flag for Ferrier/Moorthi + logical :: lcrick = .false. !< CRICK-Proof cloud water + logical :: lcnorm = .false. !< Cloud condensate normalized by cloud cover + logical :: lnoprec = .false. !< radiation precip flag for Ferrier/Moorthi logical :: lwhtr = .true. !< flag to output lw heating rate (Radtend%lwhc) logical :: swhtr = .true. !< flag to output sw heating rate (Radtend%swhc) + integer :: rad_hr_units = 2 !< heating rate units are K s-1 + logical :: inc_minor_gas = .true. !< Include minor trace gases in RRTMG radiation calculation + integer :: ilwcliq = 1 !< Longwave optics scheme for liquid clouds + integer :: iswcliq = 1 !< Shortwave optics scheme for liquid clouds + integer :: ilwcice = 3 !< Longwave optics scheme for ice clouds + integer :: iswcice = 3 !< Shortwave optics scheme for ice clouds + integer :: ipsd0 = 0 !< initial permutaion seed for mcica radiation + integer :: ipsdlim = 1e8 !< limit initial permutaion seed for mcica radiation ! RRTMGP logical :: do_RRTMGP = .false. !< Use RRTMGP? character(len=128) :: active_gases = '' !< Character list of active gases used in RRTMGP @@ -3458,7 +3534,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- radiation parameters fhswr, fhlwr, levr, nfxr, iaerclm, iflip, isol, ico2, ialb, & isot, iems, iaer, icliq_sw, iovr, ictm, isubc_sw, & - isubc_lw, crick_proof, ccnorm, lwhtr, swhtr, & + isubc_lw, lcrick, lcnorm, lwhtr, swhtr, & nhfrad, idcor, dcorr_con, & ! --- RRTMGP do_RRTMGP, active_gases, nGases, rrtmgp_root, & @@ -3840,6 +3916,28 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & endif Model%levrp1 = Model%levr + 1 + if (isubc_sw < 0 .or. isubc_sw > 2) then + write(0,'(a,i0)') 'ERROR: shortwave cloud-sampling (isubc_sw) scheme selected not valid: ',isubc_sw + stop + endif + if (isubc_lw < 0 .or. isubc_lw > 2) then + write(0,'(a,i0)') 'ERROR: longwave cloud-sampling (isubc_lw) scheme selected not valid: ',isubc_lw + stop + endif + + if ( iovr < 0 .or. iovr > 5 ) then + write(0,'(a,i0)') 'ERROR: cloud-overlap (iovr) scheme selected not valid: ',iovr + stop + endif + + if ((isubc_sw == 0 .or. isubc_lw == 0) .and. iovr > 2 ) then + if (me == 0) then + print *,' *** IOVR=',iovr,' is not available for ISUBC_SW(LW)=0 setting!!' + print *,' The program will use maximum/random overlap instead.' + endif + iovr = 1 + endif + Model%nfxr = nfxr Model%iccn = iccn ! further down: set Model%iccn to .false. @@ -3860,6 +3958,16 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else ntrcaer = 1 endif + Model%lalw1bd = lalw1bd + Model%iaerflg = iaerflg + Model%iaermdl = iaermdl + Model%aeros_file = aeros_file + Model%solar_file = solar_file + Model%semis_file = semis_file + Model%co2dat_file = co2dat_file + Model%co2gbl_file = co2gbl_file + Model%co2usr_file = co2usr_file + Model%co2cyc_file = co2cyc_file Model%ntrcaer = ntrcaer Model%idcor = idcor Model%dcorr_con = dcorr_con @@ -3871,10 +3979,19 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ictm = ictm Model%isubc_sw = isubc_sw Model%isubc_lw = isubc_lw - Model%crick_proof = crick_proof - Model%ccnorm = ccnorm + Model%iswmode = iswmode + Model%lcrick = lcrick + Model%lcnorm = lcnorm Model%lwhtr = lwhtr Model%swhtr = swhtr + Model%rad_hr_units = rad_hr_units + Model%inc_minor_gas = inc_minor_gas + Model%ilwcliq = ilwcliq + Model%iswcliq = iswcliq + Model%ilwcice = ilwcice + Model%iswcice = iswcice + Model%ipsd0 = ipsd0 + Model%ipsdlim = ipsdlim ! RRTMGP Model%do_RRTMGP = do_RRTMGP @@ -5146,8 +5263,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & if (Model%do_cnvgwd) then print *,' Convective GWD parameterization used, do_cnvgwd=',Model%do_cnvgwd endif - if (Model%crick_proof) print *,' CRICK-Proof cloud water used in radiation ' - if (Model%ccnorm) print *,' Cloud condensate normalized by cloud cover for radiation' + if (Model%lcrick) print *,' CRICK-Proof cloud water used in radiation ' + if (Model%lcnorm) print *,' Cloud condensate normalized by cloud cover for radiation' if (Model%iovr == Model%iovr_rand) then print *,' random cloud overlap for Radiation IOVR=', Model%iovr elseif (Model%iovr == Model%iovr_dcorr) then @@ -5738,6 +5855,12 @@ subroutine control_print(Model) print *, ' ialb : ', Model%ialb print *, ' iems : ', Model%iems print *, ' iaer : ', Model%iaer + print *, ' iaermdl : ', Model%iaermdl + print *, ' iaerflg : ', Model%iaerflg + print *, ' lalw1bd : ', Model%lalw1bd + print *, ' aeros_file : ', Model%aeros_file + print *, ' solar_file : ', Model%solar_file + print *, ' semis_file : ', Model%semis_file print *, ' icliq_sw : ', Model%icliq_sw print *, ' icice_sw : ', Model%icice_sw print *, ' icliq_lw : ', Model%icliq_lw @@ -5748,11 +5871,20 @@ subroutine control_print(Model) print *, ' ictm : ', Model%ictm print *, ' isubc_sw : ', Model%isubc_sw print *, ' isubc_lw : ', Model%isubc_lw - print *, ' crick_proof : ', Model%crick_proof - print *, ' ccnorm : ', Model%ccnorm - print *, ' norad_precip : ', Model%norad_precip + print *, ' iswmode : ', Model%iswmode + print *, ' lcrick : ', Model%lcrick + print *, ' lcnorm : ', Model%lcnorm + print *, ' lnoprec : ', Model%lnoprec print *, ' lwhtr : ', Model%lwhtr print *, ' swhtr : ', Model%swhtr + print *, ' rad_hr_units : ', Model%rad_hr_units + print *, ' inc_minor_gas : ', Model%inc_minor_gas + print *, ' iswcliq : ', Model%iswcliq + print *, ' ilwcliq : ', Model%ilwcliq + print *, ' ilwcice : ', Model%ilwcice + print *, ' iswcice : ', Model%iswcice + print *, ' ipsd0 : ', Model%ipsd0 + print *, ' ipsdlim : ', Model%ipsdlim if (Model%do_RRTMGP) then print *, ' rrtmgp_nrghice : ', Model%rrtmgp_nrghice print *, ' do_GPsw_Glw : ', Model%do_GPsw_Glw diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 6d17f675a..d1253fe98 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -3195,6 +3195,73 @@ units = flag dimensions = () type = integer +[iaermdl] + standard_name = flag_for_aerosol_radiation_scheme + long_name = flag for aerosol scheme to use in radiation + units = flag + dimensions = () + type = integer +[iaerflg] + standard_name = flag_for_aerosol_effects_in_radiation + long_name = flag for aerosol effects to include in radiation + units = flag + dimensions = () + type = integer +[lalw1bd] + standard_name = flag_for_longwave_aerosol_band_properties + long_name = flag for band or multiband longwave aerosol properties + units = flag + dimensions = () + type = logical +[aeros_file] + standard_name = aerosol_data_file + long_name = aerosol data file + units = none + dimensions = () + type = character + kind = len=26 +[solar_file] + standard_name = solar_constant_file + long_name = external solar constant data table file + units = none + dimensions = () + type = character + kind = len=26 +[semis_file] + standard_name = surface_emissivity_data_file + long_name = surface emissivity data file for radiation + units = none + dimensions = () + type = character + kind = len=26 +[co2dat_file] + standard_name = co2_monthly_obs_data_table_file + long_name = co2 monthly observation data table + units = none + dimensions = () + type = character + kind = len=26 +[co2gbl_file] + standard_name = co2_global_annual_mean_data_table_file + long_name = co2 global annual mean data file + units = none + dimensions = () + type = character + kind = len=26 +[co2usr_file] + standard_name = co2_user_data_table_file + long_name = co2 user defined data table file + units = none + dimensions = () + type = character + kind = len=26 +[co2cyc_file] + standard_name = co2_clim_monthly_cycle_data_table_file + long_name = co2 climotological monthly cycle data table file + units = none + dimensions = () + type = character + kind = len=26 [icliq_sw] standard_name = control_for_shortwave_radiation_liquid_clouds long_name = sw optical property for liquid clouds @@ -3249,24 +3316,78 @@ units = flag dimensions = () type = integer -[crick_proof] +[iswmode] + standard_name = flag_for_sw_scattering_choice + long_name = flag for rrtmg shortwave scattering choice + units = flag + dimensions = () + type = integer +[lcrick] standard_name = flag_for_CRICK_proof_cloud_water long_name = flag for CRICK-Proof cloud water units = flag dimensions = () type = logical -[ccnorm] +[lcnorm] standard_name = flag_for_in_cloud_condensate long_name = flag for cloud condensate normalized by cloud cover units = flag dimensions = () type = logical -[norad_precip] +[lnoprec] standard_name = flag_for_turning_off_precipitation_radiative_effect long_name = radiation precip flag for Ferrier/Moorthi units = flag dimensions = () type = logical +[rad_hr_units] + standard_name = flag_for_radiation_heating_rate_units + long_name = flag to control heating rate units + units = count + dimensions = () + type = integer +[inc_minor_gas] + standard_name = flag_to_include_minor_gases_in_rrtmg + long_name = flag to include minor trace gases in rrtmg + units = flag + dimensions = () + type = logical +[ilwcliq] + standard_name = flag_for_rrtmg_lw_cloud_optics + long_name = flag for rrtmg longwave cloud optics + units = flag + dimensions = () + type = integer +[iswcliq] + standard_name = flag_for_rrtmg_sw_cloud_optics + long_name = flag for rrtmg shortwave cloud optics + units = flag + dimensions = () + type = integer +[ilwcice] + standard_name = flag_for_rrtmg_lw_ice_cloud_optics + long_name = flag for rrtmg longwave ice cloud optics + units = flag + dimensions = () + type = integer +[iswcice] + standard_name = flag_for_rrtmg_sw_ice_cloud_optics + long_name = flag for rrtmg shortwave ice cloud optics + units = flag + dimensions = () + type = integer +[ipsd0] + standard_name = initial_seed_for_mcica + long_name = initial permutaion seed for mcica radiation + units = none + dimensions = () + type = integer +[ipsdlim] + standard_name = limit_for_initial_seed_for_mcica + long_name = limit for initial permutaion seed for mcica radiation + units = none + dimensions = () + type = integer [lwhtr] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output lw heating rate (Radtend%lwhc) @@ -8858,3 +8979,45 @@ dimensions = () type = real kind = kind_phys +[con_c] + standard_name = speed_of_light_in_vacuum + long_name = speed of light in vacuum + units = m s-1 + dimensions = () + type = real + kind = kind_phys +[con_plnk] + standard_name = planck_constant + long_name = Planck constant + units = J s-1 + dimensions = () + type = real + kind = kind_phys +[con_boltz] + standard_name = boltzmann_constant + long_name = Boltzmann constant + units = J K-1 + dimensions = () + type = real + kind = kind_phys +[con_solr_2008] + standard_name = solar_constant_2008 + long_name = solar constant Tim 2008 + units = W m-2 + dimensions = () + type = real + kind = kind_phys +[con_solr_2002] + standard_name = solar_constant_2002 + long_name= solar constant Liu 2002 + units = W m-2 + dimensions = () + type = real + kind = kind_phys +[con_thgni] + standard_name = temperature_ice_nucleation_starts + long_name = temperature the H.G.Nuc. ice starts + units = K + dimensions = () + type = real + kind = kind_phys diff --git a/ccpp/physics b/ccpp/physics index cf353f655..98cf6d2e6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cf353f655829c0105fac9efbae7ed49f5065402c +Subproject commit 98cf6d2e6b68e4717f6e56889c6e7b0fd41ad7dd From 434ec1f05e67754ccc92f9fb4a9d4e618fa8d636 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Mon, 29 Aug 2022 15:44:11 -0600 Subject: [PATCH 02/19] Updated submodule --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 6bb663df1..caadee33c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,8 +8,8 @@ branch = main [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = main + url = https://github.com/dustinswales/ccpp-physics + branch = accumulated_cleanup [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP From e3f43812c89574c550f1b8ef937d15b2c28ba23f Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Wed, 31 Aug 2022 16:21:19 +0000 Subject: [PATCH 03/19] Small bug fix in physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 98cf6d2e6..1d8998d80 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 98cf6d2e6b68e4717f6e56889c6e7b0fd41ad7dd +Subproject commit 1d8998d80035d36e3250810c546e6a01fb696939 From 52a92394872e98d8d4ab780a673f49fa9007e214 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 6 Sep 2022 20:26:08 +0000 Subject: [PATCH 04/19] Omission from previous commit --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 1d8998d80..82bcd677c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 1d8998d80035d36e3250810c546e6a01fb696939 +Subproject commit 82bcd677c7c54efab29bbbb32099519ee687a6b3 From 9331679f2a4343dd6a16c26eed1bcdc410ac2b09 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Wed, 7 Sep 2022 14:17:26 -0600 Subject: [PATCH 05/19] Adress reviewers comments --- ccpp/data/GFS_typedefs.F90 | 39 ++++++++++++++++++++----------------- ccpp/data/GFS_typedefs.meta | 4 ++-- ccpp/physics | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index fc50e0a96..0bef52067 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -839,24 +839,24 @@ module GFS_typedefs !< and if yes, perform them; hardcoded to .true. for now !--- new microphysical switch integer :: imp_physics !< choice of microphysics scheme - integer :: imp_physics_gfdl = 11 !< choice of GFDL microphysics scheme - integer :: imp_physics_thompson = 8 !< choice of Thompson microphysics scheme - integer :: imp_physics_wsm6 = 6 !< choice of WSMG microphysics scheme - integer :: imp_physics_zhao_carr = 99 !< choice of Zhao-Carr microphysics scheme + integer :: imp_physics_gfdl = 11 !< choice of GFDL microphysics scheme + integer :: imp_physics_thompson = 8 !< choice of Thompson microphysics scheme + integer :: imp_physics_wsm6 = 6 !< choice of WSMG microphysics scheme + integer :: imp_physics_zhao_carr = 99 !< choice of Zhao-Carr microphysics scheme integer :: imp_physics_zhao_carr_pdf = 98 !< choice of Zhao-Carr microphysics scheme with PDF clouds - integer :: imp_physics_mg = 10 !< choice of Morrison-Gettelman microphysics scheme - integer :: imp_physics_fer_hires = 15 !< choice of Ferrier-Aligo microphysics scheme - integer :: iovr_rand = 0 !< choice of cloud-overlap: random - integer :: iovr_maxrand = 1 !< choice of cloud-overlap: maximum random - integer :: iovr_max = 2 !< choice of cloud-overlap: maximum - integer :: iovr_dcorr = 3 !< choice of cloud-overlap: decorrelation length - integer :: iovr_exp = 4 !< choice of cloud-overlap: exponential - integer :: iovr_exprand = 5 !< choice of cloud-overlap: exponential random - integer :: idcor_con = 0 !< choice for decorrelation-length: Use constant value - integer :: idcor_hogan = 1 !< choice for decorrelation-length: (https://rmets.onlinelibrary.wiley.com/doi/full/10.1002/qj.647) - integer :: idcor_oreopoulos = 2 !< choice for decorrelation-length: (10.5194/acp-12-9097-2012) - integer :: imp_physics_nssl = 17 !< choice of NSSL microphysics scheme with background CCN - integer :: imp_physics_nssl2mccn = 18 !< choice of NSSL microphysics scheme with predicted CCN (compatibility) + integer :: imp_physics_mg = 10 !< choice of Morrison-Gettelman microphysics scheme + integer :: imp_physics_fer_hires = 15 !< choice of Ferrier-Aligo microphysics scheme + integer :: imp_physics_nssl = 17 !< choice of NSSL microphysics scheme with background CCN + integer :: imp_physics_nssl2mccn = 18 !< choice of NSSL microphysics scheme with predicted CCN (compatibility) + integer :: iovr_rand = 0 !< choice of cloud-overlap: random + integer :: iovr_maxrand = 1 !< choice of cloud-overlap: maximum random + integer :: iovr_max = 2 !< choice of cloud-overlap: maximum + integer :: iovr_dcorr = 3 !< choice of cloud-overlap: decorrelation length + integer :: iovr_exp = 4 !< choice of cloud-overlap: exponential + integer :: iovr_exprand = 5 !< choice of cloud-overlap: exponential random + integer :: idcor_con = 0 !< choice for decorrelation-length: Use constant value + integer :: idcor_hogan = 1 !< choice for decorrelation-length: (https://rmets.onlinelibrary.wiley.com/doi/full/10.1002/qj.647) + integer :: idcor_oreopoulos = 2 !< choice for decorrelation-length: (10.5194/acp-12-9097-2012) !--- Z-C microphysical parameters real(kind=kind_phys) :: psautco(2) !< [in] auto conversion coeff from ice to snow real(kind=kind_phys) :: prautco(2) !< [in] auto conversion coeff from cloud to rain @@ -3925,7 +3925,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & stop endif - if ( iovr < 0 .or. iovr > 5 ) then + + if ((iovr .ne. Model%iovr_rand) .and. (iovr .ne. Model%iovr_maxrand) .and. & + (iovr .ne. Model%iovr_max) .and. (iovr .ne. Model%iovr_dcorr) .and. & + (iovr .ne. Model%iovr_exp) .and. (iovr .ne. Model%iovr_exprand)) then write(0,'(a,i0)') 'ERROR: cloud-overlap (iovr) scheme selected not valid: ',iovr stop endif diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index d1253fe98..49a346af0 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -3601,8 +3601,8 @@ type = real kind = kind_phys [top_at_1] - standard_name = flag_for_vertical_ordering_in_RRTMGP - long_name = flag for vertical ordering in RRTMGP + standard_name = flag_for_vertical_ordering_in_radiation + long_name = flag for vertical ordering in radiation units = flag dimensions = () type = logical diff --git a/ccpp/physics b/ccpp/physics index 1d8998d80..2f9e60417 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 1d8998d80035d36e3250810c546e6a01fb696939 +Subproject commit 2f9e6041743ae32e8a3c446c1dfd5a5b6cc76d50 From 37b0e135a693c1cfb93407fe9bc641033646575e Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 12 Sep 2022 15:48:51 -0600 Subject: [PATCH 06/19] Fix bug in metadata. --- ccpp/data/GFS_typedefs.F90 | 22 ---------------------- ccpp/data/GFS_typedefs.meta | 24 ------------------------ ccpp/physics | 2 +- 3 files changed, 1 insertion(+), 47 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 0bef52067..f9e82a522 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -781,16 +781,6 @@ module GFS_typedefs integer :: rad_hr_units !< flag to control units of lw/sw heating rate !< 1: K day-1 - 2: K s-1 logical :: inc_minor_gas !< Include minor trace gases in RRTMG radiation calculation? - integer :: ilwcliq !< Longwave optics scheme for liquid clouds - integer :: iswcliq !< Shortwave optics scheme for liquid clouds - integer :: ilwcice !< Longwave optics scheme for ice clouds - !< =1 => optical property scheme based on Ebert and Curry (1992) - !< =2 => optical property scheme based on Streamer v3 - !< =3 => optical property scheme use Fu's method (1998) - integer :: iswcice !< Shortwave optics scheme for ice clouds - !< =1 => optical property scheme based on Ebert and Curry (1992) - !< =2 => optical property scheme based on Streamer v3 - !< =3 => optical property scheme use Fu's method (1998) integer :: ipsd0 !< initial permutaion seed for mcica radiation integer :: ipsdlim !< limit initial permutaion seed for mcica radiation @@ -3053,10 +3043,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: swhtr = .true. !< flag to output sw heating rate (Radtend%swhc) integer :: rad_hr_units = 2 !< heating rate units are K s-1 logical :: inc_minor_gas = .true. !< Include minor trace gases in RRTMG radiation calculation - integer :: ilwcliq = 1 !< Longwave optics scheme for liquid clouds - integer :: iswcliq = 1 !< Shortwave optics scheme for liquid clouds - integer :: ilwcice = 3 !< Longwave optics scheme for ice clouds - integer :: iswcice = 3 !< Shortwave optics scheme for ice clouds integer :: ipsd0 = 0 !< initial permutaion seed for mcica radiation integer :: ipsdlim = 1e8 !< limit initial permutaion seed for mcica radiation ! RRTMGP @@ -3989,10 +3975,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%swhtr = swhtr Model%rad_hr_units = rad_hr_units Model%inc_minor_gas = inc_minor_gas - Model%ilwcliq = ilwcliq - Model%iswcliq = iswcliq - Model%ilwcice = ilwcice - Model%iswcice = iswcice Model%ipsd0 = ipsd0 Model%ipsdlim = ipsdlim @@ -5882,10 +5864,6 @@ subroutine control_print(Model) print *, ' swhtr : ', Model%swhtr print *, ' rad_hr_units : ', Model%rad_hr_units print *, ' inc_minor_gas : ', Model%inc_minor_gas - print *, ' iswcliq : ', Model%iswcliq - print *, ' ilwcliq : ', Model%ilwcliq - print *, ' ilwcice : ', Model%ilwcice - print *, ' iswcice : ', Model%iswcice print *, ' ipsd0 : ', Model%ipsd0 print *, ' ipsdlim : ', Model%ipsdlim if (Model%do_RRTMGP) then diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 49a346af0..46734fa05 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -3352,30 +3352,6 @@ units = flag dimensions = () type = logical -[ilwcliq] - standard_name = flag_for_rrtmg_lw_cloud_optics - long_name = flag for rrtmg longwave cloud optics - units = flag - dimensions = () - type = integer -[iswcliq] - standard_name = flag_for_rrtmg_sw_cloud_optics - long_name = flag for rrtmg shortwave cloud optics - units = flag - dimensions = () - type = integer -[ilwcice] - standard_name = flag_for_rrtmg_lw_ice_cloud_optics - long_name = flag for rrtmg longwave ice cloud optics - units = flag - dimensions = () - type = integer -[iswcice] - standard_name = flag_for_rrtmg_sw_ice_cloud_optics - long_name = flag for rrtmg shortwave ice cloud optics - units = flag - dimensions = () - type = integer [ipsd0] standard_name = initial_seed_for_mcica long_name = initial permutaion seed for mcica radiation diff --git a/ccpp/physics b/ccpp/physics index 2f9e60417..0650bae3e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2f9e6041743ae32e8a3c446c1dfd5a5b6cc76d50 +Subproject commit 0650bae3ed02503c904a0e94d05b98c21eb3d725 From 17b9a1af376e01d939ad46ee231b6ce9707ae7b4 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 21 Sep 2022 11:11:12 -0600 Subject: [PATCH 07/19] Address reviewrs comments. --- ccpp/data/GFS_typedefs.F90 | 11 +++++++++++ ccpp/physics | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index f9e82a522..1928c0d19 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -5014,6 +5014,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%sec = 0 Model%yearlen = 365 Model%julian = -9999. + !--- Set vertical flag used by radiation schemes + Model%top_at_1 = .false. + if (Model%do_RRTMGP) then + if (Model%top_at_1) then + Model%iSFC = Model%levs + Model%iTOA = 1 + else + Model%iSFC = 1 + Model%iTOA = Model%levs + endif + endif !--- BEGIN CODE FROM GFS_PHYSICS_INITIALIZE !--- define physcons module variables diff --git a/ccpp/physics b/ccpp/physics index 0650bae3e..2fe654edd 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 0650bae3ed02503c904a0e94d05b98c21eb3d725 +Subproject commit 2fe654eddc9e559b91c555f14b1645385cb9128d From eff067a27c10f801cf3abd77fe709ae7109e1cc9 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 26 Sep 2022 09:59:28 -0600 Subject: [PATCH 08/19] Updated CODEOWNERS --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 3b3ecf2bd..d0e5b3016 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3b3ecf2bd039dfb55fe1f7ba72e744f5be62cbda +Subproject commit d0e5b3016cb6c2c7145e81f7250b2349d62df469 From 48af56a1bb49e2519670c1bee1a91af82d763986 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 27 Oct 2022 13:11:02 -0600 Subject: [PATCH 09/19] Updated ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 62079c140..469ef08b0 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 62079c140e58b2a33501756389de1b8de276ba11 +Subproject commit 469ef08b05e7dd74fd4d1adc557d9d18241a63ad From 4562cf7413603fb0b4c168e81c597a289cf15ad2 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Thu, 27 Oct 2022 14:37:04 -0600 Subject: [PATCH 10/19] Changes to metadata to accommodate standard_name rules. --- ccpp/data/GFS_typedefs.meta | 34 +++++++++++++++++----------------- ccpp/physics | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index e1e63dbe7..096247b0a 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -3196,21 +3196,21 @@ dimensions = () type = integer [iaermdl] - standard_name = flag_for_aerosol_radiation_scheme - long_name = flag for aerosol scheme to use in radiation - units = flag + standard_name = control_for_aerosol_radiation_scheme + long_name = control of aerosol scheme in radiation + units = 1 dimensions = () type = integer [iaerflg] - standard_name = flag_for_aerosol_effects_in_radiation - long_name = flag for aerosol effects to include in radiation - units = flag + standard_name = control_for_aerosol_effects_in_radiation + long_name = control of aerosol effects in radiation + units = 1 dimensions = () type = integer [lalw1bd] - standard_name = flag_for_longwave_aerosol_band_properties - long_name = flag for band or multiband longwave aerosol properties - units = flag + standard_name = do_longwave_aerosol_band_properties + long_name = control of band or multiband longwave aerosol properties + units = 1 dimensions = () type = logical [aeros_file] @@ -3317,9 +3317,9 @@ dimensions = () type = integer [iswmode] - standard_name = flag_for_sw_scattering_choice - long_name = flag for rrtmg shortwave scattering choice - units = flag + standard_name = control_for_sw_scattering_choice + long_name = control of rrtmg shortwave scattering choice + units = 1 dimensions = () type = integer [lcrick] @@ -3341,9 +3341,9 @@ dimensions = () type = logical [rad_hr_units] - standard_name = flag_for_radiation_heating_rate_units - long_name = flag to control heating rate units - units = count + standard_name = control_for_radiation_heating_rate_units + long_name = control of heating rate units + units = 1 dimensions = () type = integer [inc_minor_gas] @@ -3355,13 +3355,13 @@ [ipsd0] standard_name = initial_seed_for_mcica long_name = initial permutaion seed for mcica radiation - units = none + units = 1 dimensions = () type = integer [ipsdlim] standard_name = limit_for_initial_seed_for_mcica long_name = limit for initial permutaion seed for mcica radiation - units = none + units = 1 dimensions = () type = integer [lwhtr] diff --git a/ccpp/physics b/ccpp/physics index 469ef08b0..6d74eafff 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 469ef08b05e7dd74fd4d1adc557d9d18241a63ad +Subproject commit 6d74eafffee0b1a5e3763a1dd1fb01b17d896078 From 5189f5d15babc801d85bc2fe5cb07b8812696b35 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 2 Nov 2022 10:03:59 -0600 Subject: [PATCH 11/19] Updated ccpp-physics. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index e7fdd76d1..4900b309c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e7fdd76d18e37e9db0dbe79caf074eb99027925f +Subproject commit 4900b309c9a15c9544c64ae42b343458f203031e From 4ea57f5e89c7e9129c2ebb4231e8d30fa9fed6c2 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 22 Nov 2022 10:10:25 -0700 Subject: [PATCH 12/19] Updated physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 4900b309c..f21b760e8 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4900b309c9a15c9544c64ae42b343458f203031e +Subproject commit f21b760e878016c0e96dd6159e173d1e57d80189 From 57722fb11bc633fec95139b4fa7da56981dfc3bb Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 22 Nov 2022 11:11:41 -0700 Subject: [PATCH 13/19] Omission from previous commit --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index f21b760e8..786cd2083 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f21b760e878016c0e96dd6159e173d1e57d80189 +Subproject commit 786cd2083f7e77fa3c5597ad1fabd63cd833ba56 From 24c07e6875dffa7ab5cfb5214111b9c6c80eae87 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 22 Nov 2022 15:44:34 -0700 Subject: [PATCH 14/19] Move declaration to init in ccpp-physics. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 786cd2083..fb6fdb991 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 786cd2083f7e77fa3c5597ad1fabd63cd833ba56 +Subproject commit fb6fdb9914cb3e9c2cbed4b91c32d7de3e868ba8 From f2916b31d5549b3e200550bd452f731b58c14591 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 19 Dec 2022 10:14:09 -0700 Subject: [PATCH 15/19] Sync physics. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index fb6fdb991..b855d2b5c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fb6fdb9914cb3e9c2cbed4b91c32d7de3e868ba8 +Subproject commit b855d2b5c4a194d76e75f13c7b1d2237da6b2917 From ffe6c3da177288482152357dbdfbb6a2ebcb8f45 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 19 Dec 2022 17:14:12 -0700 Subject: [PATCH 16/19] Update physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index b855d2b5c..d083f87f4 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b855d2b5c4a194d76e75f13c7b1d2237da6b2917 +Subproject commit d083f87f42f0adafbd37add81b79440e3e166ed7 From 35b6c2f0a7fdc81db2996626eb52e0315c1d00af Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Wed, 18 Jan 2023 20:53:58 +0000 Subject: [PATCH 17/19] Updated physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index d083f87f4..ae82e1ac8 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d083f87f42f0adafbd37add81b79440e3e166ed7 +Subproject commit ae82e1ac8cc1e79be7beafdc2289b490c609cd9f From 81d1bfbd54aa31dadd573c9feb2f7cdd9279a010 Mon Sep 17 00:00:00 2001 From: dustinswales Date: Tue, 31 Jan 2023 10:23:31 -0700 Subject: [PATCH 18/19] Updated physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index ae82e1ac8..0f687f85e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ae82e1ac8cc1e79be7beafdc2289b490c609cd9f +Subproject commit 0f687f85e2635546073b663d9b18970b224327b5 From faf0a6865836d259a66e7cecbc7b1141a6492b8f Mon Sep 17 00:00:00 2001 From: dustinswales Date: Wed, 8 Feb 2023 10:47:01 -0700 Subject: [PATCH 19/19] Revert submodules --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index caadee33c..6bb663df1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,8 +8,8 @@ branch = main [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/dustinswales/ccpp-physics - branch = accumulated_cleanup + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP diff --git a/ccpp/physics b/ccpp/physics index 0f687f85e..818298ca3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 0f687f85e2635546073b663d9b18970b224327b5 +Subproject commit 818298ca3a72601226208a1fd3b1262867171c87