diff --git a/ccpp/physics b/ccpp/physics index 52a9db3a8..e84beb751 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 52a9db3a893e2d3835b57bb0d6f262cb7c971c30 +Subproject commit e84beb75176dbb697c5bbf8bf7554a40bb4ea85e diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 5f8af233d..c74356b97 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -678,6 +678,13 @@ module GFS_typedefs !-- prognostic updraft area fraction coupling in convection real (kind=kind_phys), pointer :: dqdt_qmicro(:,:) => null() !< instantanious microphysics tendency to be passed from MP to convection + !-- lake surface temperature from cdeps inline + real (kind=kind_phys), pointer :: mask_dat (:) => null() !< land-sea mask from cdeps inline + real (kind=kind_phys), pointer :: tsfco_dat (:) => null() !< sfc temperature from cdeps inline + real (kind=kind_phys), pointer :: tice_dat (:) => null() !< sfc temperature over ice from cdeps inline + real (kind=kind_phys), pointer :: hice_dat (:) => null() !< sfc ice thickness from cdeps inline + real (kind=kind_phys), pointer :: fice_dat (:) => null() !< sfc ice fraction from cdeps inline + contains procedure :: create => coupling_create !< allocate array data end type GFS_coupling_type @@ -795,6 +802,9 @@ module GFS_typedefs logical :: cpl_imp_dbg !< default no write import data to file post merge logical :: use_med_flux !< default .false. - i.e. don't use atmosphere-ocean fluxes imported from mediator +!--- cdeps inline parameters + logical :: use_cdeps_inline !< default .false. - i.e. don't use data provided by CDEPS inline + !--- integrated dynamics through earth's atmosphere logical :: lsidea @@ -3395,6 +3405,19 @@ subroutine coupling_create (Coupling, Model) Coupling%qci_conv = clear_val endif + if (Model%use_cdeps_inline) then + allocate (Coupling%tsfco_dat(IM)) + Coupling%tsfco_dat = clear_val + allocate (Coupling%mask_dat(IM)) + Coupling%mask_dat = clear_val + allocate (Coupling%tice_dat(IM)) + Coupling%tice_dat = clear_val + allocate (Coupling%hice_dat(IM)) + Coupling%hice_dat = clear_val + allocate (Coupling%fice_dat(IM)) + Coupling%fice_dat = clear_val + end if + end subroutine coupling_create @@ -3498,6 +3521,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & logical :: cpl_imp_dbg = .false. !< default no write import data to file post merge logical :: use_med_flux = .false. !< default no atmosphere-ocean fluxes from mediator + !--- cdeps inline parameters + logical :: use_cdeps_inline = .false. !< default no data from cdeps inline + !--- integrated dynamics through earth's atmosphere logical :: lsidea = .false. @@ -4195,6 +4221,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & #else lsidea, use_med_flux, & #endif + !--- cdeps inline parameters + use_cdeps_inline, & !--- radiation parameters fhswr, fhlwr, levr, nfxr, iaerclm, iflip, isol, ico2, ialb, & isot, iems, iaer, icliq_sw, iovr, ictm, isubc_sw, & @@ -4679,6 +4707,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & Model%cpl_imp_dbg = cpl_imp_dbg Model%use_med_flux = use_med_flux +!--- cdeps inline parameters + Model%use_cdeps_inline = use_cdeps_inline + !--- RRFS-SD Model%rrfs_sd = rrfs_sd Model%cpl_fire = cpl_fire @@ -6917,6 +6948,7 @@ subroutine control_print(Model) print *, ' cpl_imp_mrg : ', Model%cpl_imp_mrg print *, ' cpl_imp_dbg : ', Model%cpl_imp_dbg print *, ' use_med_flux : ', Model%use_med_flux + print *, ' use_cdeps_inline : ', Model%use_cdeps_inline if(Model%imfdeepcnv == Model%imfdeepcnv_gf .or.Model%imfdeepcnv == Model%imfdeepcnv_c3) then print*,'ichoice_s : ', Model%ichoice_s print*,'ichoicem : ', Model%ichoicem diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index a451fafc2..8d29ced48 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -3434,6 +3434,46 @@ type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) +[tsfco_dat] + standard_name = sea_surface_temperature_from_data + long_name = sfc temperature + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + active = (do_cdeps_inline) +[mask_dat] + standard_name = land_sea_mask_from_data + long_name = landmask + units = flag + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + active = (do_cdeps_inline) +[tice_dat] + standard_name = surface_skin_temperature_over_ice_from_data + long_name = surface skin temperature over ice + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + active = (do_cdeps_inline) +[hice_dat] + standard_name = sea_ice_thickness_from_data + long_name = sea-ice thickness + units = m + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + active = (do_cdeps_inline) +[fice_dat] + standard_name = sea_ice_area_fraction_of_sea_area_fraction_from_data + long_name = sea-ice concentration [0,1] + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + active = (do_cdeps_inline) ######################################################################## [ccpp-table-properties] @@ -3837,6 +3877,12 @@ units = flag dimensions = () type = logical +[use_cdeps_inline] + standard_name = do_cdeps_inline + long_name = flag for using data provided by CDEPS inline (default false) + units = flag + dimensions = () + type = logical [fhcyc] standard_name = frequency_for_surface_cycling_calls long_name = frequency for surface cycling calls