Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
| mo-marqh | mark Hedley | Met Office | 2025-12-11 |
| yaswant | Yaswant Pradhan | Met Office | 2025-12-16 |
| oakleybrunt | Oakley Brunt | Met Office | 2025-12-19 |
| harry-shepherd | Harry Shepherd | Met Office | 2026-01-08 |
| harry-shepherd | Harry Shepherd | Met Office | 2026-01-08 |
| Adrian-Lock | Adrian Lock | Met Office | 2026-01-09 |
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ def trans(psyir):
"sea_ice_pensolar",
"rhostar_2d",
"recip_l_mo_sea_2d",
"h_blend_orog_2d",
"t1_sd_2d",
"q1_sd_2d",
"surf_interp",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ contains
water_extraction, lake_evap, &
theta_star_surf, qv_star_surf, &
recip_l_mo_sea, rhostar, &
h_blend_orog, t1_sd_2d, q1_sd_2d
t1_sd_2d, q1_sd_2d
type( field_array_type ), pointer :: mr

type(field_collection_type), pointer :: prognostic_fields, &
Expand Down Expand Up @@ -121,7 +121,7 @@ contains
turbulence_fields, convection_fields, cloud_fields, &
surface_fields, soil_fields, snow_fields, &
aerosol_fields, recip_l_mo_sea, rhostar, &
h_blend_orog, t1_sd_2d, q1_sd_2d )
t1_sd_2d, q1_sd_2d )

! Call the algorithm
call log_event( "Running BOUNDARY LAYER EXP", LOG_LEVEL_INFO )
Expand All @@ -136,7 +136,7 @@ contains
cloud_fields, &
surface_fields, &
recip_l_mo_sea, rhostar, &
h_blend_orog, t1_sd_2d, q1_sd_2d, &
t1_sd_2d, q1_sd_2d, &
modeldb%clock )

call log_event( "Running BOUNDARY LAYER IMP", LOG_LEVEL_INFO )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ contains
!>@param[in] aerosol_fields Fields for aerosol scheme
!>@param[in,out] recip_l_mo_sea Inverse Obukhov length over sea only
!>@param[in,out] rhostar Surface density
!>@param[in,out] h_blend_orog Orographic blending height
!>@param[in,out] t1_sd_2d StDev of level 1 temperature
!>@param[in,out] q1_sd_2d StDev of level 1 humidity
subroutine jules_exp_alg(modeldb, theta, mr_n, &
Expand All @@ -73,7 +72,7 @@ contains
turbulence_fields, convection_fields, &
cloud_fields, surface_fields, soil_fields, &
snow_fields, aerosol_fields, recip_l_mo_sea, &
rhostar, h_blend_orog, t1_sd_2d, q1_sd_2d)
rhostar, t1_sd_2d, q1_sd_2d)

use psykal_lite_phys_mod, only: invoke_jules_exp_kernel_type
use xios, only: xios_date, xios_get_current_date, &
Expand All @@ -98,7 +97,6 @@ contains

type( field_type ), intent( inout ) :: recip_l_mo_sea
type( field_type ), intent( inout ) :: rhostar
type( field_type ), intent( inout ) :: h_blend_orog
type( field_type ), intent( inout ) :: t1_sd_2d
type( field_type ), intent( inout ) :: q1_sd_2d

Expand Down Expand Up @@ -376,7 +374,6 @@ contains

call zh%copy_field_properties(recip_l_mo_sea)
call zh%copy_field_properties(rhostar)
call zh%copy_field_properties(h_blend_orog)
call zh%copy_field_properties(t1_sd_2d)
call zh%copy_field_properties(q1_sd_2d)

Expand Down Expand Up @@ -448,7 +445,7 @@ contains
flux_e, flux_h, urbwrr, &
urbhwr, urbhgt, urbztm, urbdisp, &
rhostar, recip_l_mo_sea, &
h_blend_orog, t1_sd_2d, q1_sd_2d, &
t1_sd_2d, q1_sd_2d, &
gross_prim_prod, z0h_eff, ocn_cpl_point, &
stencil_depth)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ contains

! For jules_exp_alg
! not required for standalone, but required for boundary layer
type( field_type ) :: recip_l_mo_sea, rhostar, h_blend_orog
type( field_type ) :: recip_l_mo_sea, rhostar
type( field_type ) :: t1_sd_2d, q1_sd_2d

! For jules_imp_alg
Expand Down Expand Up @@ -288,7 +288,7 @@ contains
turbulence_fields, convection_fields, cloud_fields, &
surface_fields, soil_fields, snow_fields, &
aerosol_fields, recip_l_mo_sea, rhostar, &
h_blend_orog, t1_sd_2d, q1_sd_2d)
t1_sd_2d, q1_sd_2d)

! Fields set up for jules_imp
! ncells is set to 1 after jules_exp so needs to be reset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ module jules_exp_kernel_mod
!>
type, public, extends(kernel_type) :: jules_exp_kernel_type
private
type(arg_type) :: meta_args(109) = (/ &
type(arg_type) :: meta_args(108) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_READ, WTHETA), &! theta_in_wth
arg_type(GH_FIELD, GH_REAL, GH_READ, WTHETA), &! exner_in_wth
arg_type(GH_FIELD, GH_REAL, GH_READ, W3, STENCIL(REGION)), &! u_in_w3
Expand Down Expand Up @@ -150,7 +150,6 @@ module jules_exp_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1), &! urbdisp
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! rhostar
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! recip_l_mo_sea
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! h_blend_orog
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! t1_sd
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! q1_sd
arg_type(GH_FIELD, GH_REAL, GH_WRITE, ANY_DISCONTINUOUS_SPACE_1),&! diag__gross_prim_prod
Expand Down Expand Up @@ -273,7 +272,6 @@ module jules_exp_kernel_mod
!> @param[in] urbdisp Urban displacement height
!> @param[in,out] rhostar_2d Surface density
!> @param[in,out] recip_l_mo_sea_2d Inverse Obukhov length over sea only
!> @param[in,out] h_blend_orog_2d Orographic blending height
!> @param[in,out] t1_sd_2d StDev of level 1 temperature
!> @param[in,out] q1_sd_2d StDev of level 1 humidity
!> @param[in,out] gross_prim_prod Diagnostic: Gross Primary Productivity
Expand Down Expand Up @@ -424,7 +422,6 @@ subroutine jules_exp_code(nlayers, seg_len, seg_len_halo, &
urbdisp, &
rhostar_2d, &
recip_l_mo_sea_2d, &
h_blend_orog_2d, &
t1_sd_2d, &
q1_sd_2d, &
gross_prim_prod, &
Expand Down Expand Up @@ -603,7 +600,6 @@ subroutine jules_exp_code(nlayers, seg_len, seg_len_halo, &
z0m_eff, &
ustar, &
soil_moist_avail, &
h_blend_orog_2d, &
recip_l_mo_sea_2d, &
rhostar_2d, &
t1_sd_2d, q1_sd_2d
Expand Down Expand Up @@ -1678,7 +1674,6 @@ subroutine jules_exp_code(nlayers, seg_len, seg_len_halo, &
! variables passed to explicit BL
rhostar_2d(map_2d(1,i)) = rhostar(i,1)
recip_l_mo_sea_2d(map_2d(1,i)) = recip_l_mo_sea(i,1)
h_blend_orog_2d(map_2d(1,i)) = jules_vars%h_blend_orog_ij(i,1)
t1_sd_2d(map_2d(1,i)) = t1_sd(i,1)
q1_sd_2d(map_2d(1,i)) = q1_sd(i,1)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ contains
!>@param[in,out] surface_fields Fields for surface scheme
!>@param[in] recip_l_mo_sea Inverse Obukhov length over sea only
!>@param[in] rhostar Surface density
!>@param[in h_blend_orog Orographic blending height
!>@param[in] t1_sd_2d StDev of level 1 temperature
!>@param[in] q1_sd_2d StDev of level 1 humidity
!>@param[in] model_clock Time in the model
Expand All @@ -76,8 +75,7 @@ contains
microphysics_fields, dmr_mphys, orography_fields, &
turbulence_fields, convection_fields, &
cloud_fields, surface_fields, &
recip_l_mo_sea, &
rhostar, h_blend_orog, t1_sd_2d, q1_sd_2d, &
recip_l_mo_sea, rhostar, t1_sd_2d, q1_sd_2d, &
model_clock)

use bl_exp_kernel_mod, only: bl_exp_kernel_type
Expand All @@ -101,7 +99,6 @@ contains

type( field_type ), intent( in ) :: recip_l_mo_sea
type( field_type ), intent( in ) :: rhostar
type( field_type ), intent( in ) :: h_blend_orog
type( field_type ), intent( in ) :: t1_sd_2d
type( field_type ), intent( in ) :: q1_sd_2d

Expand Down Expand Up @@ -380,7 +377,7 @@ contains
cumulus, tile_fraction, sd_orog, &
peak_to_trough_orog, silhouette_area_orog, &
tile_temperature, rhostar, recip_l_mo_sea, &
h_blend_orog, t1_sd_2d, q1_sd_2d, &
t1_sd_2d, q1_sd_2d, &
dtl_mphys, dmt_mphys, sw_heating_rate, &
lw_heating_rate, cf_bulk, cf_liquid, &
rh_crit, tnuc, tnuc_nlcl, &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ module bl_exp_kernel_mod
!>
type, public, extends(kernel_type) :: bl_exp_kernel_type
private
type(arg_type) :: meta_args(94) = (/ &
type(arg_type) :: meta_args(93) = (/ &
arg_type(GH_FIELD, GH_REAL, GH_READ, WTHETA), &! theta_in_wth
arg_type(GH_FIELD, GH_REAL, GH_READ, W3), &! rho_in_w3
arg_type(GH_FIELD, GH_REAL, GH_READ, WTHETA), &! rho_in_wth
Expand Down Expand Up @@ -72,7 +72,6 @@ module bl_exp_kernel_mod
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_2),&! tile_temperature
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1),&! rhostar
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1),&! recip_l_mo_sea
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1),&! h_blend_orog
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1),&! t1_sd
arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_1),&! q1_sd
arg_type(GH_FIELD, GH_REAL, GH_READ, WTHETA), &! dtl_mphys
Expand Down Expand Up @@ -181,7 +180,6 @@ module bl_exp_kernel_mod
!> @param[in] tile_temperature Surface tile temperatures
!> @param[in] rhostar_2d Surface density
!> @param[in] recip_l_mo_sea_2d Inverse Obukhov length over sea only
!> @param[in] h_blend_orog_2d Orographic blending height
!> @param[in] t1_sd_2d StDev of level 1 temperature
!> @param[in] q1_sd_2d StDev of level 1 humidity
!> @param[in] dtl_mphys Microphysics liq temperature increment
Expand Down Expand Up @@ -297,7 +295,6 @@ subroutine bl_exp_code(nlayers, seg_len, &
tile_temperature, &
rhostar_2d, &
recip_l_mo_sea_2d, &
h_blend_orog_2d, &
t1_sd_2d, &
q1_sd_2d, &
dtl_mphys, &
Expand Down Expand Up @@ -479,8 +476,7 @@ subroutine bl_exp_code(nlayers, seg_len, &
cumulus_2d, &
shallow_flag, &
level_parcel_top
real(kind=r_def), dimension(undf_2d), intent(in) :: h_blend_orog_2d, &
recip_l_mo_sea_2d, &
real(kind=r_def), dimension(undf_2d), intent(in) :: recip_l_mo_sea_2d, &
rhostar_2d, &
t1_sd_2d, q1_sd_2d, &
sea_u_current, &
Expand Down Expand Up @@ -549,7 +545,7 @@ subroutine bl_exp_code(nlayers, seg_len, &
zh, dzh, wstar, wthvs, u_0_p, v_0_p, zlcl_uv, qsat_lcl, delthvu, &
bl_type_1, bl_type_2, bl_type_3, bl_type_4, bl_type_5, bl_type_6, &
bl_type_7, uw0, vw0, zhnl, rhostar, &
h_blend_orog, recip_l_mo_sea, flandg, t1_sd, q1_sd, qcl_inv_top, &
recip_l_mo_sea, flandg, t1_sd, q1_sd, qcl_inv_top, &
fb_surf, rib_gb, z0m_eff_gb, zhsc, ustargbm, cos_theta_latitude, &
max_diff, delta_smag, tnuc_nlcl_um
real(r_um), dimension(seg_len,1) :: surf_dep_flux, zeroes
Expand Down Expand Up @@ -652,7 +648,6 @@ subroutine bl_exp_code(nlayers, seg_len, &
ustargbm(i,1) = ustar(map_2d(1,i))
rhostar(i,1) = rhostar_2d(map_2d(1,i))
recip_l_mo_sea(i,1) = recip_l_mo_sea_2d(map_2d(1,i))
h_blend_orog(i,1) = h_blend_orog_2d(map_2d(1,i))
rib_gb(i,1) = gradrinr(map_wth(1,i))
z0m_eff_gb(i,1) = z0m_eff(map_2d(1,i))
ftl(i,1,1) = heat_flux_bl(map_w3(1,i))
Expand Down Expand Up @@ -895,8 +890,8 @@ subroutine bl_exp_code(nlayers, seg_len, &
! IN cloud/moisture data :
bulk_cloud_fraction,q,qcf,qcl,temperature,qw,tl, &
! IN everything not covered so far :
rad_hr,micro_tends,fb_surf,ustargbm,p_star,tstar,h_blend_orog, &
zh_prev, zhpar,zlcl,ho2r2_orog_gb,sd_orog,wtrac_as, &
rad_hr,micro_tends,fb_surf,ustargbm,p_star,tstar, &
zh_prev, zhpar,zlcl,ho2r2_orog_gb,sd_orog,wtrac_as, &
! 2 IN 3 INOUT for Smagorinsky
delta_smag, max_diff, rneutml_sq, visc_m, visc_h, &
! SCM Diagnostics (dummy values in full UM) & stash diag
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
&soil_moist_avail, snow_unload_rate, albedo_obs_scaling, soil_clay, soil_sand, dust_mrel, dust_flux, day_of_year, second_of_day, &
flux_e, flux_h, urbwrr, urbhwr, urbhgt, urbztm, urbdisp, &
&rhostar, recip_l_mo_sea, &
&h_blend_orog, t1_sd_2d, q1_sd_2d, gross_prim_prod, z0h_eff, ocn_cpl_point, stencil_depth)
&t1_sd_2d, q1_sd_2d, gross_prim_prod, z0h_eff, ocn_cpl_point, stencil_depth)
USE jules_exp_kernel_mod, ONLY: jules_exp_code
USE mesh_mod, ONLY: mesh_type
USE stencil_dofmap_mod, ONLY: STENCIL_REGION
Expand All @@ -358,7 +358,7 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
&chr1p5m_tile, resfs_tile, gc_tile, canhc_tile, tile_water_extract, z0m_eff, ustar, soil_moist_avail, snow_unload_rate, &
&albedo_obs_scaling, soil_clay, soil_sand, dust_mrel, dust_flux, &
urbwrr, urbhwr, urbhgt, urbztm, urbdisp, &
rhostar, recip_l_mo_sea, h_blend_orog, t1_sd_2d, q1_sd_2d, &
rhostar, recip_l_mo_sea, t1_sd_2d, q1_sd_2d, &
&gross_prim_prod, z0h_eff
TYPE(integer_field_type), intent(in) :: n_snow_layers, blend_height_tq, ocn_cpl_point
INTEGER(KIND=i_def), intent(in) :: stencil_depth, ncells, ncells_halo, day_of_year, second_of_day
Expand All @@ -385,7 +385,7 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
&tile_water_extract_proxy, z0m_eff_proxy, ustar_proxy, soil_moist_avail_proxy, snow_unload_rate_proxy, albedo_obs_scaling_proxy, &
&soil_clay_proxy, soil_sand_proxy, dust_mrel_proxy, dust_flux_proxy, &
urbwrr_proxy, urbhwr_proxy, urbhgt_proxy, urbztm_proxy, urbdisp_proxy, &
rhostar_proxy, recip_l_mo_sea_proxy, h_blend_orog_proxy, &
rhostar_proxy, recip_l_mo_sea_proxy, &
&t1_sd_2d_proxy, q1_sd_2d_proxy, gross_prim_prod_proxy, z0h_eff_proxy
INTEGER(KIND=i_def), pointer :: map_adspc10_dust_mrel(:,:) => null(), map_adspc1_zh(:,:) => null(), &
&map_adspc2_tile_fraction(:,:) => null(), map_adspc3_leaf_area_index(:,:) => null(), &
Expand Down Expand Up @@ -515,7 +515,6 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
urbdisp_proxy = urbdisp%get_proxy()
rhostar_proxy = rhostar%get_proxy()
recip_l_mo_sea_proxy = recip_l_mo_sea%get_proxy()
h_blend_orog_proxy = h_blend_orog%get_proxy()
t1_sd_2d_proxy = t1_sd_2d%get_proxy()
q1_sd_2d_proxy = q1_sd_2d%get_proxy()
gross_prim_prod_proxy = gross_prim_prod%get_proxy()
Expand Down Expand Up @@ -673,7 +672,7 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
urbwrr_proxy%data, urbhwr_proxy%data, urbhgt_proxy%data, urbztm_proxy%data, &
urbdisp_proxy%data, &
rhostar_proxy%data, recip_l_mo_sea_proxy%data, &
&h_blend_orog_proxy%data, t1_sd_2d_proxy%data, q1_sd_2d_proxy%data, gross_prim_prod_proxy%data, &
&t1_sd_2d_proxy%data, q1_sd_2d_proxy%data, gross_prim_prod_proxy%data, &
z0h_eff_proxy%data, ocn_cpl_point_proxy%data, ndf_wtheta, &
&undf_wtheta, map_wtheta, ndf_w3, undf_w3, map_w3, ndf_adspc1_zh, undf_adspc1_zh, map_adspc1_zh, &
&ndf_adspc2_tile_fraction, undf_adspc2_tile_fraction, map_adspc2_tile_fraction, ndf_adspc3_leaf_area_index, &
Expand Down Expand Up @@ -723,7 +722,6 @@ SUBROUTINE invoke_jules_exp_kernel_type(ncells, ncells_halo, theta, exner_in_wth
CALL dust_flux_proxy%set_dirty()
CALL rhostar_proxy%set_dirty()
CALL recip_l_mo_sea_proxy%set_dirty()
CALL h_blend_orog_proxy%set_dirty()
CALL t1_sd_2d_proxy%set_dirty()
CALL q1_sd_2d_proxy%set_dirty()
CALL gross_prim_prod_proxy%set_dirty()
Expand Down
Loading