Skip to content

Commit 8cd4a32

Browse files
authored
Update ccpp-physics in CMEPS to consider sea surface ocean current in air-sea flux computation (#107)
* Update ufs/ccpp/data/MED_typedefs.meta.
1 parent 13ed059 commit 8cd4a32

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

ufs/ccpp/data/MED_typedefs.F90

+8
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ module MED_typedefs
173173
integer :: lsm_noahmp !< flag for NOAH MP land surface model
174174
logical :: redrag !< flag for reduced drag coeff. over sea
175175
integer :: sfc_z0_type !< surface roughness options over water
176+
integer :: icplocn2atm !< flag controlling whether to consider ocean current in air-sea flux calculation
176177
logical :: thsfc_loc !< flag for reference pressure in theta calculation
177178
integer :: nstf_name(5) !< NSSTM flag: off/uncoupled/coupled=0/1/2
178179
integer :: lkm !< 0 = no lake model, 1 = lake model, 2 = lake & nsst on lake points
@@ -249,6 +250,8 @@ module MED_typedefs
249250
real(kind=kind_phys), pointer :: fice(:) => null() !< ice fraction over open water
250251
real(kind=kind_phys), pointer :: hice(:) => null() !< sea ice thickness (m)
251252
real(kind=kind_phys), pointer :: tsfco(:) => null() !< sea surface temperature
253+
real(kind=kind_phys), pointer :: usfco(:) => null() !< sea surface ocean current (zonal)
254+
real(kind=kind_phys), pointer :: vsfco(:) => null() !< sea surface ocean current (merdional)
252255
real(kind=kind_phys), pointer :: uustar(:) => null() !< boundary layer parameter
253256
real(kind=kind_phys), pointer :: tsfc(:) => null() !< surface skin temperature
254257
real(kind=kind_phys), pointer :: snodi(:) => null() !< water equivalent snow depth over ice (mm)
@@ -640,6 +643,7 @@ subroutine control_initialize(model)
640643
model%ivegsrc = 2
641644
model%redrag = .false.
642645
model%sfc_z0_type = 0
646+
model%icplocn2atm = 0
643647
model%thsfc_loc = .true.
644648
model%lsm = 1
645649
model%lsm_noahmp = 2
@@ -739,6 +743,10 @@ subroutine sfcprop_create(sfcprop, im, model)
739743
sfcprop%hice = clear_val
740744
allocate(sfcprop%tsfco(im))
741745
sfcprop%tsfco = clear_val
746+
allocate(sfcprop%usfco(im))
747+
sfcprop%usfco = clear_val
748+
allocate(sfcprop%vsfco(im))
749+
sfcprop%vsfco = clear_val
742750
allocate(sfcprop%uustar(im))
743751
sfcprop%uustar = clear_val
744752
allocate(sfcprop%tsfc(im))

ufs/ccpp/data/MED_typedefs.meta

+20
Original file line numberDiff line numberDiff line change
@@ -911,6 +911,12 @@
911911
units = flag
912912
dimensions = ()
913913
type = logical
914+
[icplocn2atm]
915+
standard_name = control_for_air_sea_flux_computation_over_water
916+
long_name = air-sea flux option
917+
units = 1
918+
dimensions = ()
919+
type = integer
914920
[kdt]
915921
standard_name = index_of_timestep
916922
long_name = current forecast iteration
@@ -1156,6 +1162,20 @@
11561162
dimensions = (horizontal_loop_extent)
11571163
type = real
11581164
kind = kind_phys
1165+
[usfco]
1166+
standard_name = x_ocean_current
1167+
long_name = zonal current at ocean surface
1168+
units = m s-1
1169+
dimensions = (horizontal_loop_extent)
1170+
type = real
1171+
kind = kind_phys
1172+
[vsfco]
1173+
standard_name = y_ocean_current
1174+
long_name = meridional current at ocean surface
1175+
units = m s-1
1176+
dimensions = (horizontal_loop_extent)
1177+
type = real
1178+
kind = kind_phys
11591179
[uustar]
11601180
standard_name = surface_friction_velocity
11611181
long_name = boundary layer parameter

0 commit comments

Comments
 (0)