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
18 changes: 18 additions & 0 deletions doc/source/namelists/jules_irrig.nml.rst
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,24 @@ This namelist specifies the different options available for setting up the irrig
:nml:mem:`nstep_irrig` = NINT(frequency of irrigation update (in sec)) / :nml:mem:`JULES_TIME::timestep_len`


.. nml:member:: l_soil_evap_irrig_expl

:type: logical
:default: F

Switch controlling whether the bare soil evaporation from the irrigated and non-irrigated part of the grid-box (or soil tile) is controlled by the mean soil moisture or the separate irrigated and non-irrigated soil moisture columns.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

irrigated and non-irrigated part_s_


TRUE
Bare soil evaporation is explicitly calculated from the irrigated and non-irrigated soil moisture columns.

FALSE
No effect.

This must be set to FALSE if :nml:mem:`JULES_IRRIG::irrig_option` = 0.
This must be set to FALSE if :nml:mem:`JULES_IRRIG::irrig_option` = 2.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm probably going to seem foolish here, but I'm having trouble working out what is going on. My interpretation is that irrig_opt=0 means no irrigation, irrig_opt=1 will mean the current scheme that is currently represented by l_irrig_dmd=.T., and that irrig_opt=2 will be the new scheme. So this says that the option only works with the current scheme, but then I am confused by L2649 in rose-meta/jules-standalone/HEAD/rose-meta.conf where the option is triggered if l_irrig_dmd is .F.
As a cautionary query here, if it's meant to work with l_irrig_dmd=.T., can I check that no modification of src/science/soil/hydrol_jls_mod.F90 is needed because the extraction is already treated properly?




.. _References_irrig:

``JULES_IRRIG`` references
Expand Down
8 changes: 8 additions & 0 deletions rose-meta/jules-standalone/HEAD/rose-meta.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2646,6 +2646,7 @@ trigger=namelist:jules_irrig=irr_crop: .true.;
=namelist:jules_irrig=nstep_irrig: .true.;
=namelist:jules_irrig_props: .true.;
=namelist:jules_irrig=irrig_option: .false.;
=namelist:jules_irrig=l_soil_evap_irrig_expl: .false.;
type=logical
url=https://metoffice.github.io/jules/latest/namelists/jules_irrig.nml.html#JULES_IRRIG::l_irrig_dmd

Expand Down Expand Up @@ -2687,6 +2688,13 @@ sort-key=g
type=logical
url=https://metoffice.github.io/jules/latest/namelists/jules_irrig.nml.html#JULES_IRRIG::set_irrfrac_on_irrtiles

[namelist:jules_irrig=l_soil_evap_irrig_expl]
compulsory=true
description=logical to decide whether bare soil evaporation is calculated over the grid-box mean (false) or explicitly irrigated and non-irrigated fractions (true)
sort-key=h
type=logical
url=https://metoffice.github.io/jules/latest/namelists/jules_irrig.nml.html#JULES_IRRIG::l_soil_evap_irrig_expl

[namelist:jules_irrig_props]
compulsory=true
description=Configuration of irrigation properties
Expand Down
8 changes: 5 additions & 3 deletions rose-meta/jules-standalone/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,13 @@ class vnYY_txxxx(MacroUpgrade):

"""Upgrade macro from JULES by Author"""

BEFORE_TAG = "vnY.Y"
AFTER_TAG = "vnY.Y_txxxx"
BEFORE_TAG = "vn8.2"
AFTER_TAG = "vn8.2_t139"

def upgrade(self, config, meta_config=None):
"""Upgrade a JULES runtime app configuration."""

# Add settings
# Add l_soil_evap_irrig_expl to namelist jules_irrig
self.add_setting(config, ["namelist:jules_irrig","l_soil_evap_irrig_expl"], ".false.")

return config, self.reports
9 changes: 7 additions & 2 deletions src/control/shared/jules_irrig_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,12 @@ MODULE jules_irrig_mod
LOGICAL :: &
l_irrig_dmd = .FALSE., &
! Switch for using irrigation demand code
l_irrig_limit = .FALSE.
l_irrig_limit = .FALSE., &
! Switch for limiting irrigation supply
l_soil_evap_irrig_expl = .FALSE.
! Switch for explcitly calculating bare soil evaporation over the
! separate irrigated and non-irrigated fractions of the grid box.
! (Default used the grid box mean soil moisture).

INTEGER :: nirrtile = imdi
! Number of tiles that can have irrigated fraction
Expand Down Expand Up @@ -81,7 +85,8 @@ MODULE jules_irrig_mod
!-----------------------------------------------------------------------------
NAMELIST / jules_irrig/ l_irrig_dmd, l_irrig_limit, irr_crop, &
frac_irrig_all_tiles, nirrtile, irrigtiles, &
set_irrfrac_on_irrtiles, nstep_irrig, irrig_option
set_irrfrac_on_irrtiles, nstep_irrig, irrig_option, &
l_soil_evap_irrig_expl

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would have expected the new variable to be added to my_nml in read_nml_jules_irrig starting on L339. It is worth adding any checks to check_jules_irrig on L289?

CHARACTER(LEN=*), PARAMETER, PRIVATE :: ModuleName='JULES_IRRIG_MOD'

Expand Down
10 changes: 9 additions & 1 deletion src/science/surface/fcdch.F90
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ SUBROUTINE fcdch ( &
wind_profile_factor,ddmfx,i_surfalg,charnock, &
charnock_w,l_vegdrag,canht,lai, &
nsnow,n,l_mo_buoyancy_calc,cansnowtile,l_soil_point, &
canopy,catch,flake,gc,snowdep,snow,canhc, &
canopy,catch,flake,gc,gc_irr_surft,frac_irr_surft,snowdep,snow,canhc, &
dzsurf,qstar,q_elev,radnet,snowdepth,timestep, &
t_elev,tsurf,tstar,vfrac,emis,emis_soil, &
anthrop_heat,scaling_urban,alpha1,hcons,ashtf, &
Expand Down Expand Up @@ -155,6 +155,12 @@ SUBROUTINE fcdch ( &
,gc(points) &
! IN Interactive canopy conductance
! ! to evaporation (m/s)
,gc_irr_surft(points) &
! IN Interactive canopy conductance
! ! to evaporation over irrigated
! ! part of tile (m/s)
,frac_irr_surft(points) &
! ! IN Irrigation fraction in tile
,snowdep(points) &
! IN Snow depth (m)
,snow(points) &
Expand Down Expand Up @@ -588,6 +594,7 @@ SUBROUTINE fcdch ( &
CALL sf_resist ( &
points,surft_pts,pts_index,surft_index,cansnowtile, &
canopy,catch,chv_dim,dq,epdt,flake,gc,gc_stom_surft, &
gc_irr_surft,frac_irr_surft, &
snowdep,snow,vshr,tstar,fracaero_t,fracaero_s, &
resfs,resft,resfs_stom,.FALSE.,.FALSE.)

Expand Down Expand Up @@ -1009,6 +1016,7 @@ SUBROUTINE fcdch ( &
CALL sf_resist ( &
points,surft_pts,pts_index,surft_index,cansnowtile, &
canopy,catch,chv_dim,dq,epdt,flake,gc,gc_stom_surft, &
gc_irr_surft,frac_irr_surft, &
snowdep,snow,vshr,tstar,fracaero_t,fracaero_s, &
resfs,resft,resfs_stom,.FALSE.,.FALSE.)

Expand Down
15 changes: 13 additions & 2 deletions src/science/surface/jules_land_sf_explicit_jls.F90
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,11 @@ SUBROUTINE jules_land_sf_explicit ( &
! respired fraction of RESP_S
,gc_stom_surft(land_pts,nsurft) &
! canopy conductance
,gc_nir_surft(land_pts,nsurft) &
! canopy conductance over irrigated part
! of tile
,gs_nir_surft(land_pts,nsurft) &
! Conductance for non-irrigated part of tile
,sice_surft_tmp(land_pts,nsmax) &
! Ice content of snow layers (kg/m2)
,sliq_surft_tmp(land_pts,nsmax) &
Expand Down Expand Up @@ -1247,6 +1252,7 @@ SUBROUTINE jules_land_sf_explicit ( &
rootc_cpft, sthu_irr_soilt, frac_irr_soilt, frac_irr_surft, dvi_cpft, &
!crop_vars_mod (OUT)
gs_irr_surft, smc_irr_soilt, wt_ext_irr_surft, gc_irr_surft, &
gs_nir_surft, gc_nir_surft, &
!p_s_parms (IN)
bexp_soilt, sathh_soilt, v_close_pft, v_open_pft, &
!ancil_info
Expand Down Expand Up @@ -2247,7 +2253,8 @@ SUBROUTINE jules_land_sf_explicit ( &
CALL sf_resist ( &
land_pts,surft_pts(n),land_index,surft_index(:,n),cansnowtile(n), &
canopy(:,n),catch(:,n),chn(:,n),dq(:,n),epdt,flake(:,n),gc_surft(:,n), &
gc_stom_surft(:,n),snowdep_surft(:,n),snow_surft(:,n),vshr_land, &
gc_stom_surft(:,n),gc_irr_surft(:,n),frac_irr_surft(:,n), &
snowdep_surft(:,n),snow_surft(:,n),vshr_land, &
tstar_surft(:,n),fracaero_t(:,n),fracaero_s(:,n),resfs(:,n),resft(:,n), &
sf_diag%resfs_stom(:,n_diag),sf_diag%l_et_stom,sf_diag%l_et_stom_surft)

Expand Down Expand Up @@ -2306,6 +2313,7 @@ SUBROUTINE jules_land_sf_explicit ( &
l_vegdrag_surft(n),canht_pft(:,n_veg),lai_pft(:,n_veg), &
nsnow_surft(:,n),n,l_mo_buoyancy_calc,cansnowtile(n),l_soil_point, &
canopy(:,n),catch(:,n),flake(:,n),gc_surft(:,n), &
gc_irr_surft(:,n),frac_irr_surft(:,n), &
snowdep_surft(:,n),snow_surft(:,n),canhc_surf(:,n), &
dzsurf(:,n),qstar_surft(:,n),q_elev(:,n),radnet_surft(:,n), &
snowdepth_surft(:,n),timestep,t_elev(:,n),tsurf(:,n),tstar_surft(:,n), &
Expand Down Expand Up @@ -2409,6 +2417,7 @@ SUBROUTINE jules_land_sf_explicit ( &
l_vegdrag_active_here,array_zero,array_zero, &
nsnow_surft(:,n),n,.FALSE.,cansnowtile(n),l_soil_point, &
canopy(:,n),catch(:,n),flake(:,n),gc_surft(:,n), &
gc_irr_surft(:,n),frac_irr_surft(:,n), &
snowdep_surft(:,n),snow_surft(:,n),canhc_surf(:,n), &
dzsurf(:,n),qstar_surft(:,n),q_elev(:,n),radnet_surft(:,n), &
snowdepth_surft(:,n),timestep,t_elev(:,n),tsurf(:,n),tstar_surft(:,n), &
Expand Down Expand Up @@ -2475,6 +2484,7 @@ SUBROUTINE jules_land_sf_explicit ( &
l_vegdrag_active_here,array_zero,array_zero, &
nsnow_surft(:,n),n,.FALSE.,cansnowtile(n),l_soil_point, &
canopy(:,n),catch(:,n),flake(:,n),gc_surft(:,n), &
gc_irr_surft(:,n),frac_irr_surft(:,n), &
snowdep_surft(:,n),snow_surft(:,n),canhc_surf(:,n), &
dzsurf(:,n),qstar_surft(:,n),q_elev(:,n),radnet_surft(:,n), &
snowdepth_surft(:,n),timestep,t_elev(:,n),tsurf(:,n),tstar_surft(:,n), &
Expand Down Expand Up @@ -2601,7 +2611,8 @@ SUBROUTINE jules_land_sf_explicit ( &
CALL sf_resist ( &
land_pts,surft_pts(n),land_index,surft_index(:,n),cansnowtile(n), &
canopy(:,n),catch(:,n),ch_surft(:,n),dq(:,n),epdt,flake(:,n),gc_surft(:,n), &
gc_stom_surft(:,n),snowdep_surft(:,n),snow_surft(:,n),vshr_land, &
gc_stom_surft(:,n),gc_irr_surft(:,n),frac_irr_surft(:,n), &
snowdep_surft(:,n),snow_surft(:,n),vshr_land, &
tstar_surft(:,n),fracaero_t(:,n),fracaero_s(:,n),resfs(:,n),resft(:,n), &
sf_diag%resfs_stom(:,n_diag),sf_diag%l_et_stom,sf_diag%l_et_stom_surft)

Expand Down
8 changes: 4 additions & 4 deletions src/science/surface/jules_ssi_sf_explicit_jls.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1436,7 +1436,7 @@ SUBROUTINE jules_ssi_sf_explicit ( &
l_vegdrag_ssi,array_zero,array_zero, &
array_zero_int,0,.FALSE.,.FALSE.,array_false, &
array_zero,array_zero,array_zero,array_zero, &
array_zero,array_zero,canhc_sea, &
array_zero,array_zero,array_zero,array_zero,canhc_sea, &
dzssi,qstar_sea,qw_1,radnet_sea, &
array_zero,timestep,tl_1,tstar_sea,tstar_sea, &
array_zero,array_emis,array_one,array_zero, &
Expand All @@ -1461,7 +1461,7 @@ SUBROUTINE jules_ssi_sf_explicit ( &
l_vegdrag_ssi,array_zero,array_zero, &
array_zero_int,0,.FALSE.,.FALSE.,array_false, &
array_zero,array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero,array_zero,array_zero, &
dzdummy,qstar_ice_cat(:,:,n),qw_1,radnet_sice(:,:,n), &
array_zero,timestep,tl_1,ti_cat(:,:,n),tstar_sice_cat(:,:,n), &
array_zero,array_emis,array_one,array_zero, &
Expand All @@ -1484,7 +1484,7 @@ SUBROUTINE jules_ssi_sf_explicit ( &
l_vegdrag_ssi,array_zero,array_zero, &
array_zero_int,0,.FALSE.,.FALSE.,array_false, &
array_zero,array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero,array_zero,array_zero, &
dzdummy,qstar_ice_cat(:,:,1),qw_1,radnet_sice(:,:,1), &
array_zero,timestep,tl_1,ti_cat(:,:,1),tstar_sice_cat(:,:,1), &
array_zero,array_emis,array_one,array_zero, &
Expand Down Expand Up @@ -1527,7 +1527,7 @@ SUBROUTINE jules_ssi_sf_explicit ( &
l_vegdrag_ssi,array_zero,array_zero, &
array_zero_int,0,.FALSE.,.FALSE.,array_false, &
array_zero,array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero, &
array_zero,array_zero,array_zero,array_zero,array_zero, &
dzdummy,qstar_ice_cat(:,:,1),qw_1,radnet_sice(:,:,1), &
array_zero,timestep,tl_1,ti_cat(:,:,1),tstar_sice_cat(:,:,1), &
array_zero,array_emis,array_one,array_zero, &
Expand Down
Loading
Loading