From 51df093c455e672947abd80ef177999cacdb2620 Mon Sep 17 00:00:00 2001 From: "Bin.Li" Date: Thu, 18 Jan 2024 10:55:45 +0000 Subject: [PATCH 1/2] There are changes made in ccpp-physics. Related ccpp-physics changes are made in CMEPS. --- ufs/ccpp/data/MED_typedefs.F90 | 8 ++++++++ ufs/ccpp/data/MED_typedefs.meta | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ufs/ccpp/data/MED_typedefs.F90 b/ufs/ccpp/data/MED_typedefs.F90 index e7c84506e..786ce4711 100644 --- a/ufs/ccpp/data/MED_typedefs.F90 +++ b/ufs/ccpp/data/MED_typedefs.F90 @@ -173,6 +173,7 @@ module MED_typedefs integer :: lsm_noahmp !< flag for NOAH MP land surface model logical :: redrag !< flag for reduced drag coeff. over sea integer :: sfc_z0_type !< surface roughness options over water + integer :: icplocn2atm !< flag controlling whether to consider ocean current in air-sea flux calculation logical :: thsfc_loc !< flag for reference pressure in theta calculation integer :: nstf_name(5) !< NSSTM flag: off/uncoupled/coupled=0/1/2 integer :: lkm !< 0 = no lake model, 1 = lake model, 2 = lake & nsst on lake points @@ -249,6 +250,8 @@ module MED_typedefs real(kind=kind_phys), pointer :: fice(:) => null() !< ice fraction over open water real(kind=kind_phys), pointer :: hice(:) => null() !< sea ice thickness (m) real(kind=kind_phys), pointer :: tsfco(:) => null() !< sea surface temperature + real(kind=kind_phys), pointer :: usfco(:) => null() !< sea surface ocean current (zonal) + real(kind=kind_phys), pointer :: vsfco(:) => null() !< sea surface ocean current (merdional) real(kind=kind_phys), pointer :: uustar(:) => null() !< boundary layer parameter real(kind=kind_phys), pointer :: tsfc(:) => null() !< surface skin temperature real(kind=kind_phys), pointer :: snodi(:) => null() !< water equivalent snow depth over ice (mm) @@ -640,6 +643,7 @@ subroutine control_initialize(model) model%ivegsrc = 2 model%redrag = .false. model%sfc_z0_type = 0 + model%icplocn2atm = 0 model%thsfc_loc = .true. model%lsm = 1 model%lsm_noahmp = 2 @@ -739,6 +743,10 @@ subroutine sfcprop_create(sfcprop, im, model) sfcprop%hice = clear_val allocate(sfcprop%tsfco(im)) sfcprop%tsfco = clear_val + allocate(sfcprop%usfco(im)) + sfcprop%usfco = clear_val + allocate(sfcprop%vsfco(im)) + sfcprop%vsfco = clear_val allocate(sfcprop%uustar(im)) sfcprop%uustar = clear_val allocate(sfcprop%tsfc(im)) diff --git a/ufs/ccpp/data/MED_typedefs.meta b/ufs/ccpp/data/MED_typedefs.meta index 439a617a3..2c53accd2 100644 --- a/ufs/ccpp/data/MED_typedefs.meta +++ b/ufs/ccpp/data/MED_typedefs.meta @@ -911,6 +911,12 @@ units = flag dimensions = () type = logical +[icplocn2atm] + standard_name = flag_for_air_sea_flux_computation_over_water + long_name = air-sea flux option + units = flag + dimensions = () + type = integer [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -1156,6 +1162,20 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[usfco] + standard_name = ocn_current_zonal + long_name = ocn_current_zonal + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[vsfco] + standard_name = ocn_current_merid + long_name = ocn_current_merid + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys [uustar] standard_name = surface_friction_velocity long_name = boundary layer parameter From 3f7b69cf3a068b3828001e79ea3e4db1daf73729 Mon Sep 17 00:00:00 2001 From: "Bin.Li" Date: Fri, 26 Jan 2024 11:38:33 +0000 Subject: [PATCH 2/2] Update ufs/ccpp/data/MED_typedefs.meta. --- ufs/ccpp/data/MED_typedefs.meta | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ufs/ccpp/data/MED_typedefs.meta b/ufs/ccpp/data/MED_typedefs.meta index 2c53accd2..772358535 100644 --- a/ufs/ccpp/data/MED_typedefs.meta +++ b/ufs/ccpp/data/MED_typedefs.meta @@ -912,9 +912,9 @@ dimensions = () type = logical [icplocn2atm] - standard_name = flag_for_air_sea_flux_computation_over_water + standard_name = control_for_air_sea_flux_computation_over_water long_name = air-sea flux option - units = flag + units = 1 dimensions = () type = integer [kdt] @@ -1163,15 +1163,15 @@ type = real kind = kind_phys [usfco] - standard_name = ocn_current_zonal - long_name = ocn_current_zonal + 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 = ocn_current_merid - long_name = ocn_current_merid + standard_name = y_ocean_current + long_name = meridional current at ocean surface units = m s-1 dimensions = (horizontal_loop_extent) type = real