Skip to content

Commit

Permalink
Update ccpp-physics in CMEPS to consider sea surface ocean current in…
Browse files Browse the repository at this point in the history
… air-sea flux computation (#107)


* Update ufs/ccpp/data/MED_typedefs.meta.
  • Loading branch information
binli2337 authored Feb 1, 2024
1 parent 13ed059 commit 8cd4a32
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
8 changes: 8 additions & 0 deletions ufs/ccpp/data/MED_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand Down
20 changes: 20 additions & 0 deletions ufs/ccpp/data/MED_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -911,6 +911,12 @@
units = flag
dimensions = ()
type = logical
[icplocn2atm]
standard_name = control_for_air_sea_flux_computation_over_water
long_name = air-sea flux option
units = 1
dimensions = ()
type = integer
[kdt]
standard_name = index_of_timestep
long_name = current forecast iteration
Expand Down Expand Up @@ -1156,6 +1162,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
[uustar]
standard_name = surface_friction_velocity
long_name = boundary layer parameter
Expand Down

0 comments on commit 8cd4a32

Please sign in to comment.