From 467fa613fc8b46efa9e3f524269a1bbd9c45b924 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 9 Feb 2024 20:45:52 -0500 Subject: [PATCH 1/3] changes to work with ufs/dev PR#155 --- .gitmodules | 2 +- ccpp/physics | 2 +- scm/src/GFS_typedefs.F90 | 17 ++++++++++++++++- scm/src/GFS_typedefs.meta | 20 ++++++++++++++++++++ 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index a8006a363..4ded4eb57 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,7 +7,7 @@ #url = https://github.com/NCAR/ccpp-physics #branch = main url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR94 + branch = ufs-dev-PR155 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 57763127c..5356ef23a 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 57763127c01907361fccc5a212082db04cc30f7c +Subproject commit 5356ef23a826ad5235d5616ba616312e56e5303b diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 3922c31ef..2e822487a 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -227,6 +227,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: soiltype_frac(:,:) => null() !< fractions [0:1] of soil categories !< [tsea in gbphys.f] real (kind=kind_phys), pointer :: tsfco (:) => null() !< sst in K + real (kind=kind_phys), pointer :: usfco (:) => null() !< surface zonal current in m s-1 + real (kind=kind_phys), pointer :: vsfco (:) => null() !< surface meridional current in m s-1 real (kind=kind_phys), pointer :: tsfcl (:) => null() !< surface land temperature in K real (kind=kind_phys), pointer :: tisfc (:) => null() !< surface temperature over ice fraction real (kind=kind_phys), pointer :: tiice(:,:) => null() !< internal ice temperature @@ -1309,6 +1311,10 @@ module GFS_typedefs !< 0=no change !< 6=areodynamical roughness over water with input 10-m wind !< 7=slightly decrease Cd for higher wind speed compare to 6 +!--- air_sea_flux scheme + integer :: icplocn2atm !< air_sea flux options over ocean: + !< 0=no change + !< l=including ocean current in the computation of air_sea fluxes !--- potential temperature definition in surface layer physics logical :: thsfc_loc !< flag for local vs. standard potential temperature @@ -2310,6 +2316,8 @@ subroutine sfcprop_create (Sfcprop, IM, Model) endif allocate (Sfcprop%tsfc (IM)) + allocate (Sfcprop%usfco (IM)) + allocate (Sfcprop%vsfco (IM)) allocate (Sfcprop%tsfco (IM)) allocate (Sfcprop%tsfcl (IM)) allocate (Sfcprop%tisfc (IM)) @@ -2367,6 +2375,8 @@ subroutine sfcprop_create (Sfcprop, IM, Model) endif Sfcprop%tsfc = clear_val + Sfcprop%usfco = clear_val + Sfcprop%vsfco = clear_val Sfcprop%tsfco = clear_val Sfcprop%tsfcl = clear_val Sfcprop%tisfc = clear_val @@ -3807,6 +3817,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !< 6=areodynamical roughness over water with input 10-m wind !< 7=slightly decrease Cd for higher wind speed compare to 6 !< negative when cplwav2atm=.true. - i.e. two way wave coupling + integer :: icplocn2atm = 0 !< air_sea_flux options over ocean + !< 0=ocean current is not used in the computation of air_sea fluxes + !< 1=including ocean current in the computation of air_sea fluxes !--- potential temperature definition in surface layer physics logical :: thsfc_loc = .true. !< flag for local vs. standard potential temperature @@ -4079,7 +4092,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & frac_grid, min_lakeice, min_seaice, min_lake_height, & ignore_lake, frac_ice, & !--- surface layer - sfc_z0_type, & + sfc_z0_type, icplocn2atm, & !--- switch beteeen local and standard potential temperature thsfc_loc, & !--- switches in 2-m diagnostics @@ -5055,6 +5068,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- surface layer Model%sfc_z0_type = sfc_z0_type if (Model%cplwav2atm) Model%sfc_z0_type = -1 + Model%icplocn2atm = icplocn2atm !--- potential temperature reference in sfc layer Model%thsfc_loc = thsfc_loc @@ -6880,6 +6894,7 @@ subroutine control_print(Model) print *, ' ' print *, 'surface layer options' print *, ' sfc_z0_type : ', Model%sfc_z0_type + print *, ' icplocn2atm : ', Model%icplocn2atm print *, ' ' print *, 'vertical diffusion coefficients' print *, ' xkzm_m : ', Model%xkzm_m diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index caf348a5e..02f58b37a 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -805,6 +805,20 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[usfco] + standard_name = x_ocean_current + long_name = zonal current at ocean surface + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[vsfco] + standard_name = y_ocean_current + long_name = meridional current at ocean surface + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -5869,6 +5883,12 @@ units = flag dimensions = () type = integer +[icplocn2atm] + standard_name = control_for_air_sea_flux_computation_over_water + long_name = air-sea flux option + units = 1 + dimensions = () + type = integer [xkzminv] standard_name = max_atmosphere_heat_diffusivity_due_to_background long_name = maximum background value of heat diffusivity From db1ce6f107d9b55424f1e339bd611f96fbb7d4c5 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 18 Mar 2024 16:40:15 -0400 Subject: [PATCH 2/3] update ccpp/physics submodule --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 5356ef23a..72ab0a6a6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5356ef23a826ad5235d5616ba616312e56e5303b +Subproject commit 72ab0a6a64d0d4cd56ed8a8f2d94b9bbcec809cc From e1619203bc9eb3f8dc07563f19e38fa9d06e3d7f Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 27 Mar 2024 20:15:57 -0400 Subject: [PATCH 3/3] update ccpp/physics and .gitmodules --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 4ded4eb57..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,10 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - #url = https://github.com/NCAR/ccpp-physics - #branch = main - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR155 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 72ab0a6a6..6b0599ef6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 72ab0a6a64d0d4cd56ed8a8f2d94b9bbcec809cc +Subproject commit 6b0599ef6c7ea076336b1f073899c5b97e37d584