diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 435bb731..32bcda30 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -13,3 +13,4 @@ | eleanorgb | Eleanor Burke | Met Office | 2026-03-06 | | Pierre-siddall | Pierre Siddall| Met Office | 2026-02-06 | | tinyendian | Wolfgang Hayek | Earth Sciences New Zealand | 2026-04-24 | +| DanCopsey | Dan Copsey | Met Office | 2026-03-27 | diff --git a/doc/source/namelists/initial_conditions.nml.rst b/doc/source/namelists/initial_conditions.nml.rst index 3d70b899..1fdffedb 100644 --- a/doc/source/namelists/initial_conditions.nml.rst +++ b/doc/source/namelists/initial_conditions.nml.rst @@ -425,6 +425,11 @@ The required variables for a particular configuration, along with their 'type' a +----------------------------------+-----------------------------------------------------------------------------------------+---------+ | ``rivers_outflow_rp`` | River outflow on river routing points (kg s\ :sup:`-1`) | none | +----------------------------------+-----------------------------------------------------------------------------------------+---------+ +| Required if :nml:mem:`JULES_RIVERS::l_rivers` = TRUE, :nml:mem:`JULES_RIVERS::i_river_vn` = '3', | +| :nml:mem:`JULES_INITIAL::dump_file` = TRUE and :nml:mem:`OASIS_RIVERS::send_fields` contains ``inland_outflow``. | ++----------------------------------+-----------------------------------------------------------------------------------------+---------+ +| ``inland_outflow_rp`` | Inland basin flow on river routing points (kg m\ :sup:`-2` s\ :sup:`-1`). | none | ++----------------------------------+-----------------------------------------------------------------------------------------+---------+ | Required if :nml:mem:`JULES_VEGETATION::photo_acclim_model` = 2 or 3 | +----------------------------------+-----------------------------------------------------------------------------------------+---------+ | ``t_growth_gb`` | Running mean air temperature (K) | none | diff --git a/doc/source/namelists/jules_hydrology.nml.rst b/doc/source/namelists/jules_hydrology.nml.rst index b72be45e..d67fa50a 100644 --- a/doc/source/namelists/jules_hydrology.nml.rst +++ b/doc/source/namelists/jules_hydrology.nml.rst @@ -97,6 +97,18 @@ This file sets the hydrology options. It contains one namelist called :nml:lst:` Allow the soil conductance to increase as the top layer soil moisture goes above the critical soil moisture, as in Best et al. (2011) equation 7. +.. nml:member:: l_inland + + :type: logical + :default: F + + TRUE + Some rivers end at inland basin flow points. This inland basin flow is used to increase soil moisture at these locations for water conservation purposes. This is only available for coupled models i.e. UM or LFRic. When coupled to LFRic, the soil moisture flux correction applied by this switch must be calculated by the Rivers-standalone component (:nml:mem:`JULES_MODEL_ENVIRONMENT::lsm_id` = 3) and passed to LFRic via OASIS using :nml:mem:`OASIS_RIVERS::send_fields` = inland_outflow. + + FALSE + No inland basin flow. + + .. nml:group:: Only used if :nml:mem:`JULES_HYDROLOGY::l_top` = TRUE .. nml:member:: zw_max diff --git a/doc/source/namelists/model_grid.nml.rst b/doc/source/namelists/model_grid.nml.rst index b5f1eeac..2d4222bc 100644 --- a/doc/source/namelists/model_grid.nml.rst +++ b/doc/source/namelists/model_grid.nml.rst @@ -382,7 +382,7 @@ Examples of how to specify the model domain using through this namelist are prov .. nml:namelist:: JULES_LAND_FRAC -Land fraction is the fraction of each gridbox that is land. Currently, JULES considers any gridbox with land fraction > 0 to be 100% land, and all others to be 100% sea (or sea-ice). Land fraction data can be used to select only land points from the full input grid (see below). +Land fraction is the fraction of each gridbox that is land. By default, JULES considers any gridbox with land fraction > 0 to be 100% land, and all others to be 100% sea (or sea-ice). Rivers-standalone (TRIP) when coupled to LFRic needs to be able to determine coastal endorheic basins. In this case, :nml:mem:`l_use_land_fraction`, allows the land fractions to be kept. Land fraction data can be used to select only land points from the full input grid (see below). .. warning:: When the input grid consists of a single location (1D and :nml:mem:`JULES_INPUT_GRID::npoints` = 1 or 2D and :nml:mem:`JULES_INPUT_GRID::nx` = :nml:mem:`JULES_INPUT_GRID::ny` = 1), that single location is assumed to be 100% land. @@ -411,6 +411,21 @@ For any input grid with more than a single location, the following are used: In the file, the variable must have no levels dimensions and no time dimension. +.. nml:member:: l_use_land_fraction + + :type: logical + :default: F + + Land fractions are used to determine coastal endorheic basins to calculate the inland basin flow diagnostic inland_outflow_rp or :nml:mem:`OASIS_RIVERS::send_fields` = inland_outflow. + + TRUE + Supply land fractions (as fractions) to both the main grid and the rivers grid. This requires both grids and land-sea mask to be the same. + + FALSE + Land fractions are not used and the land fraction field is set to either 1.0 (any land) or 0.0. + + .. note:: This is only available in Rivers-standalone (TRIP) to calculate inland outflow fields. + ``JULES_MODEL_GRID`` namelist members ------------------------------------- diff --git a/doc/source/namelists/oasis_rivers.nml.rst b/doc/source/namelists/oasis_rivers.nml.rst index 591d0912..56b9ab20 100644 --- a/doc/source/namelists/oasis_rivers.nml.rst +++ b/doc/source/namelists/oasis_rivers.nml.rst @@ -40,12 +40,16 @@ This file contains a single namelists called :nml:lst:`OASIS_RIVERS`, which indi .. nml:member:: send_fields :type: character(:) - :permitted: 'outflow_per_river' + :permitted: 'outflow_per_river','inland_outflow' :default: '' List of fields to be sent via coupling from the river executable to other models. Names are case sensitive. -.. note:: The only field that can be sent via coupling is the total river runoff (`outflow_per_river`). +.. note:: The fields that can be sent via coupling are: + + 1. The total river runoff (`outflow_per_river`) which is sent to the ocean. + + 2. The inland basin flow (`inland_outflow`) which is sent to the land surface hydrology scheme. Turn on :nml:mem:`JULES_HYDROLOGY::l_inland` (in the land surface side of the coupler) to pass this inland basin flow into soil moisture. .. nml:member:: receive_fields diff --git a/doc/source/output-variables.rst b/doc/source/output-variables.rst index 4349855d..1e337f3c 100644 --- a/doc/source/output-variables.rst +++ b/doc/source/output-variables.rst @@ -434,6 +434,15 @@ Rivers | | This technically has dimensions of "np_rivers", although only ``[1:n_rivers]``, defined by | | | | the rivers_outflow_number (see :ref:`list-of-rivers-params`), is populated. | | +-------------------------------+-----------------------------------------------------------------------------------------------+------------+ +| ``inland_outflow_rp`` | Inland basin flow on river routing points (kg m\ :sup:`-2` s\ :sup:`-1`). | np_rivers | +| | Only available if :nml:mem:`JULES_RIVERS::l_rivers` = TRUE. | | +| | | | +| | Adding this diagnostic will turn on inland basin flow which diverts river water flowing | | +| | into an inland basin flow point to this diagnostic. At the same time runoff feeding | | +| | into an inland basin flow point will go to the oceans (via ``rivers_outflow_rp``). This is | | +| | to stop water being caught in an infinite loop between soils and rivers. Therefore by | | +| | adding this diagnostic the ``rflow`` and ``rivers_sto_rp`` diagnostics will also change. | | ++-------------------------------+-----------------------------------------------------------------------------------------------+------------+ | ``rrun_rp`` | River routing gridbox runoff rate received by river routing routine | np_rivers | | | (kg m\ :sup:`-2` s\ :sup:`-1`). | | | | Only available if :nml:mem:`JULES_RIVERS::l_rivers` = TRUE. | | diff --git a/etc/fcm-make/make-river.cfg b/etc/fcm-make/make-river.cfg index 96438df1..68c43e11 100644 --- a/etc/fcm-make/make-river.cfg +++ b/etc/fcm-make/make-river.cfg @@ -69,6 +69,7 @@ extract.path-incl[river] = $extract_path_incl \ src/control/standalone/var/model_grid_mod.F90 \ src/control/standalone/var/model_time_mod.F90 \ src/control/standalone/var/timestep_mod.F90 \ + src/initialisation/shared/check_compatible_options_rivers_mod.F90 \ src/initialisation/standalone/ancillaries/ancil_namelist_mod.F90 \ src/initialisation/standalone/ancillaries/init_ancillaries_coupling_mod.F90 \ src/initialisation/standalone/ancillaries/init_rivers_process_data_mod.F90 \ diff --git a/rose-meta/jules-shared/jules-hydrology/HEAD/rose-meta.conf b/rose-meta/jules-shared/jules-hydrology/HEAD/rose-meta.conf index 722fa5e9..42628dec 100644 --- a/rose-meta/jules-shared/jules-hydrology/HEAD/rose-meta.conf +++ b/rose-meta/jules-shared/jules-hydrology/HEAD/rose-meta.conf @@ -17,6 +17,14 @@ trigger=namelist:jules_hydrology=l_var_rainfrac: .true.; type=logical url=https://metoffice.github.io/jules/latest/namelists/jules_hydrology.nml.html#JULES_HYDROLOGY::l_hydrology +[namelist:jules_hydrology=l_inland] +compulsory=true +description=Apply inland basin water correction to soil moisture + =NOT AVAILABLE TO STANDALONE +sort-key=Panel-G06 +type=logical +url=https://metoffice.github.io/jules/latest/namelists/jules_hydrology.nml.html#JULES_HYDROLOGY::l_inland + [namelist:jules_hydrology=l_var_rainfrac] compulsory=true description=Enable variable large scale and convective rain fractions diff --git a/rose-meta/jules-shared/jules-model-environment/HEAD/rose-meta.conf b/rose-meta/jules-shared/jules-model-environment/HEAD/rose-meta.conf index b2e9ced3..adc29f7c 100644 --- a/rose-meta/jules-shared/jules-model-environment/HEAD/rose-meta.conf +++ b/rose-meta/jules-shared/jules-model-environment/HEAD/rose-meta.conf @@ -19,6 +19,7 @@ fail-if=this != 0 and this != 2; # This should only indicate that standalone (0) trigger=namelist:jules_deposition=l_deposition_from_ukca: 1; =namelist:jules_deposition=l_ukca_ddepo3_ocean: 1; =namelist:jules_deposition=l_ukca_dry_dep_so2wet: 1; + =namelist:jules_hydrology=l_inland: 1; =namelist:jules_irrig=l_irrig_limit: 0; =namelist:jules_pftparm=dust_veg_scj_io: 1; =namelist:jules_pftparm=fsmc_mod_io: 0; @@ -26,7 +27,6 @@ trigger=namelist:jules_deposition=l_deposition_from_ukca: 1; =namelist:jules_radiation=l_cosz: 0; =namelist:jules_radiation=l_dolr_land_black: 1; =namelist:jules_radiation=l_sea_alb_var_chl: 1; - =namelist:jules_rivers=l_inland: 1; =namelist:jules_rivers=l_riv_overbank: 0; =namelist:jules_rivers=trip_globe_shape: 1; =namelist:jules_soil=l_bedrock: 0; @@ -283,6 +283,7 @@ trigger=namelist:jules_pftparm: 1; =namelist:cable_soilparm=css_io: 2; =namelist:jules_spinup: 1,2; =namelist:jules_nlsizes: 1,2; + =namelist:jules_land_frac=l_use_land_fraction: 3; url=https://metoffice.github.io/jules/latest/namelists/model_environment.nml.html#JULES_MODEL_ENVIRONMENT::lsm_id value-titles='jules','cable','rivers-only' values=1,2,3 diff --git a/rose-meta/jules-standalone/HEAD/rose-meta.conf b/rose-meta/jules-standalone/HEAD/rose-meta.conf index e47b64c4..7017db83 100644 --- a/rose-meta/jules-standalone/HEAD/rose-meta.conf +++ b/rose-meta/jules-standalone/HEAD/rose-meta.conf @@ -2414,11 +2414,12 @@ fail-if=len(this) != namelist:jules_initial=nvars; = namelist:jules_initial=total_snow == '.false.' and namelist:jules_snow=nsmax > 0 and not any(this == "'tsnow'"); # tsnow must be given if total_snow = FALSE and nsmax > 0 = namelist:jules_initial=total_snow == '.false.' and namelist:jules_snow=nsmax > 0 and namelist:jules_radiation=l_snow_albedo == '.true.' and not any(this == "'rgrainl'"); # rgrainl must be given if total_snow = FALSE, nsmax > 0 and l_snow_albedo = TRUE = namelist:jules_soil=l_bedrock == '.true.' and not any(this == "'tsoil_deep'"); # tsoil_deep must be initialised if bedrock is switched on - = namelist:jules_rivers=l_rivers == '.true.' and namelist:jules_rivers=i_river_vn == "3" and not any(this == "'rivers_sto_rp'"); # rivers_sto_rp must be initialised if rivers is switched on and i_river_vn='3' : trip - = namelist:jules_rivers=l_rivers == '.true.' and namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_surfstore_rp'"); # rfm_surfstore_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm - = namelist:jules_rivers=l_rivers == '.true.' and namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_substore_rp'"); # rfm_substore_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm - = namelist:jules_rivers=l_rivers == '.true.' and namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_flowin_rp'"); # rfm_flowin_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm - = namelist:jules_rivers=l_rivers == '.true.' and namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_bflowin_rp'"); # rfm_bflowin_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm + = namelist:jules_rivers=i_river_vn == 3 and not ( any(this == "'rivers_sto_rp'") or any(namelist:jules_rivers_props=var == "'rivers_storage'") ); # rivers_sto_rp or rivers_storage must be initialised if rivers is switched on and i_river_vn='3' : trip + = ( namelist:jules_rivers=i_river_vn == 3 and not any(this == "'inland_outflow_rp'") ) and any(namelist:oasis_rivers=send_fields == "'inland_outflow'"); # inland_outflow_rp must be initialised when i_river_vn='3' (TRIP) and inland_outflow is requested + = namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_surfstore_rp'"); # rfm_surfstore_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm + = namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_substore_rp'"); # rfm_substore_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm + = namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_flowin_rp'"); # rfm_flowin_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm + = namelist:jules_rivers=i_river_vn == "2" and not any(this == "'rfm_bflowin_rp'"); # rfm_bflowin_rp must be initialised if rivers is switched on and i_river_vn='2' : rfm length=: sort-key=06 url=https://metoffice.github.io/jules/latest/namelists/initial_conditions.nml.html#JULES_INITIAL::var @@ -2430,7 +2431,7 @@ values='canht','canopy','cropcanht','cropdvi','cropharvc','croplai', ='snow_grnd','snow_ice','snow_liq','snow_tile','sthu_irr','sthuf', ='sthzw','t_growth_gb','t_soil','tsnow','tstar_tile','tsoil_deep', ='wood_prod_fast','wood_prod_med','wood_prod_slow','years_since_harvest', - ='zw' + ='zw','inland_outflow_rp' [namelist:jules_initial=var_name] compulsory=true @@ -2500,6 +2501,7 @@ url=https://metoffice.github.io/jules/latest/namelists/model_grid.nml.html#JULES [namelist:jules_input_grid=nx] compulsory=true description=Size of the x dimension +fail-if=this != namelist:jules_rivers_props=nx_rivers and namelist:jules_land_frac=l_use_land_fraction == '.true.'; # If using land fractions for rivers then the input grid needs to be the same as the rivers grid so that the land fractions are copied across to the rivers grid correctly range=1: sort-key=06 type=integer @@ -2508,6 +2510,7 @@ url=https://metoffice.github.io/jules/latest/namelists/model_grid.nml.html#JULES [namelist:jules_input_grid=ny] compulsory=true description=Size of the y dimension +fail-if=this != namelist:jules_rivers_props=ny_rivers and namelist:jules_land_frac=l_use_land_fraction == '.true.'; # If using land fractions for rivers then the input grid needs to be the same as the rivers grid so that the land fractions are copied across to the rivers grid correctly range=1: sort-key=07 type=integer @@ -2749,6 +2752,14 @@ sort-key=1 type=character url=https://metoffice.github.io/jules/latest/namelists/model_grid.nml.html#JULES_LAND_FRAC::file +[namelist:jules_land_frac=l_use_land_fraction] +compulsory=true +description=Use land fractions and pass these to river routing +fail-if=this == '.true.' and ( namelist:jules_rivers=i_river_vn != 3 or namelist:jules_model_environment=lsm_id != 3 ); # Land fractions are only used by TRIP in Rivers-standalone to determine coastal endorheic basins. +sort-key=3 +type=logical +url=https://metoffice.github.io/jules/latest/namelists/model_grid.nml.html#JULES_LAND_FRAC::l_use_land_fraction + [namelist:jules_land_frac=land_frac_name] description=Name of the variable containing the land fraction data sort-key=2 @@ -3083,6 +3094,7 @@ description=Names of variables to output, as recognised by JULES # See: https://github.com/metomi/rose/issues/2731 fail-if=len(this) != namelist:jules_output_profile=nvars; =any(namelist:jules_output_profile=var == "'outflow_per_river'") and not any(namelist:jules_rivers_props=var == "'rivers_outflow_number'"); # outflow_per_river requires the rivers outflow numbers ancillary data + =any(namelist:jules_output_profile=var == "'inland_outflow_rp'") and ( namelist:jules_rivers=i_river_vn != 3 or namelist:jules_model_environment=lsm_id != 3 ); # Inland outflow calculation can only be used with TRIP Rivers-standalone length=: sort-key=11 type=character @@ -4064,17 +4076,6 @@ value-titles=RFM,TRIP values=2,3 widget[rose-config-edit]=cylc8_compat.ComboBoxValueWidget -[namelist:jules_rivers=l_inland] -compulsory=true -description=Re-routing inland basin water back to soil moisture -help=Selecting 'Re-routing inland basin water back to soil moisture' is only - =applicable to the global river routing scheme 1A and fixes a bug where - =water from inland outflow points was previously 'lost' to the system on - =regridding. The re-routed water is held over until the next timestep - =and added to the change in top-level soil moisture. -sort-key=aa2 -type=logical - [namelist:jules_rivers=l_riv_overbank] compulsory=true description=Enable overbank inundation @@ -4090,7 +4091,6 @@ description=Enable river routing sort-key=a trigger=namelist:jules_rivers=i_river_vn: .true.; = namelist:jules_rivers=nstep_rivers: .true.; - = namelist:jules_rivers=l_inland: .true.; = namelist:jules_rivers=l_riv_overbank: .true.; = namelist:jules_overbank: .true.; = namelist:jules_rivers_props: .true.; @@ -4260,6 +4260,7 @@ url=https://metoffice.github.io/jules/latest/namelists/ancillaries.nml.html#JULE [namelist:jules_rivers_props=nx_rivers] compulsory=true description=Size of the x dimension of the river routing grid +fail-if=this != namelist:jules_input_grid=nx and namelist:jules_land_frac=l_use_land_fraction == '.true.'; # If using land fractions for rivers then the input grid needs to be the same as the rivers grid so that the land fractions are copied across to the rivers grid correctly range=2: sort-key=07 type=integer @@ -4276,6 +4277,7 @@ url=https://metoffice.github.io/jules/latest/namelists/ancillaries.nml.html#JULE [namelist:jules_rivers_props=ny_rivers] compulsory=true description=Size of the y dimension of the river routing grid +fail-if=this != namelist:jules_input_grid=ny and namelist:jules_land_frac=l_use_land_fraction == '.true.'; # If using land fractions for rivers then the input grid needs to be the same as the rivers grid so that the land fractions are copied across to the rivers grid correctly range=2: sort-key=08 type=integer @@ -7244,7 +7246,7 @@ compulsory=true description=Number of sent fields via OASIS fail-if=this < 0; =this == 0 and namelist:oasis_rivers=np_receive == 0; # Oasis coupling requested but no fields coupled -range=0:1 +range=0:2 sort-key=1 trigger=namelist:oasis_rivers=send_fields: this > 0; =namelist:oasis_rivers=cpl_freq: this >= 0; @@ -7264,13 +7266,13 @@ values='sub_surf_roff_rp','surf_roff_rp','sub_surf_roff','surf_roff' [namelist:oasis_rivers=send_fields] compulsory=true description=List of fields sent via OASIS coupling -fail-if=len(this)>1; +fail-if=len(this)>2; =len(this) != namelist:oasis_rivers=np_send; =any(this == "'outflow_per_river'") and not any(namelist:jules_rivers_props=var == "'rivers_outflow_number'"); # outflow_per_river requires the rivers outflow numbers ancillary data length=: sort-key=2 url=https://metoffice.github.io/jules/latest/namelists/oasis_rivers.nml.html#OASIS_RIVERS::send_fields -values='outflow_per_river' +values='outflow_per_river','inland_outflow' [namelist:run_convection] compulsory=false diff --git a/rose-meta/jules-standalone/versions.py b/rose-meta/jules-standalone/versions.py index ebe7d43c..d6222a90 100644 --- a/rose-meta/jules-standalone/versions.py +++ b/rose-meta/jules-standalone/versions.py @@ -149,3 +149,36 @@ def upgrade(self,config, meta_config=None): self.add_setting(config, ["namelist:jules_irrig", "irrig_option"], "0") return config, self.reports + + +class vn81_t34(MacroUpgrade): + """Upgrade macro from JULES #34 by Dan Copsey""" + + BEFORE_TAG = "vn8.1_t23" + AFTER_TAG = "vn8.1_t34" + + def upgrade(self, config, meta_config=None): + """Upgrade a JULES runtime app configuration.""" + + # Move the l_inland switch from the rivers namelist to the hydrology + # namelist. l_inland should always be false as it is only used + # in um-jules and lfric-jules (not jules-standalone). + # Also add l_use_land_fraction as false. + + lsm_id = int( + self.get_setting_value( + config, ["namelist:jules_model_environment", "lsm_id"] + ) + ) + if lsm_id != 3: + self.add_setting( + config, ["namelist:jules_hydrology", "l_inland"], ".false." + ) + self.remove_setting(config, ["namelist:jules_rivers", "l_inland"]) + + self.add_setting( + config, + ["namelist:jules_land_frac", "l_use_land_fraction"], + ".false.", + ) + return config, self.reports diff --git a/rose-stem/app/eraint_rfm_2ddata/rose-app.conf b/rose-stem/app/eraint_rfm_2ddata/rose-app.conf index 444bd07b..f4b3b8ca 100644 --- a/rose-stem/app/eraint_rfm_2ddata/rose-app.conf +++ b/rose-stem/app/eraint_rfm_2ddata/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -453,6 +453,7 @@ frac_name='frac' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -511,6 +512,7 @@ read_file=.false. [namelist:jules_land_frac] file='$ERAINT_INSTALL_DIR/ancil/MOSES2p2_land_frac_latlon.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -772,7 +774,6 @@ cbriver=0.15 cland=0.2 criver=0.62 i_river_vn=2 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/eraint_trip_2ddata/rose-app.conf b/rose-stem/app/eraint_trip_2ddata/rose-app.conf index db3baa5c..efe42441 100644 --- a/rose-stem/app/eraint_trip_2ddata/rose-app.conf +++ b/rose-stem/app/eraint_trip_2ddata/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -453,6 +453,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -510,6 +511,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$ERAINT_INSTALL_DIR/ancil/MOSES2p2_land_frac_latlon.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -771,7 +773,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_closures/rose-app.conf b/rose-stem/app/gswp2_closures/rose-app.conf index 2f96961a..b2c700c2 100644 --- a/rose-stem/app/gswp2_closures/rose-app.conf +++ b/rose-stem/app/gswp2_closures/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -772,7 +774,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_es_1p1/rose-app.conf b/rose-stem/app/gswp2_es_1p1/rose-app.conf index 2ae53f7b..2f799d0a 100644 --- a/rose-stem/app/gswp2_es_1p1/rose-app.conf +++ b/rose-stem/app/gswp2_es_1p1/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ read_from_dump=.true. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -867,7 +869,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_euro4/rose-app.conf b/rose-stem/app/gswp2_euro4/rose-app.conf index 5ee7d3c1..a92dd03f 100644 --- a/rose-stem/app/gswp2_euro4/rose-app.conf +++ b/rose-stem/app/gswp2_euro4/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ frac_name='field1391' b_pdm=0.40 dz_pdm=0.50 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -506,6 +507,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_gl4/rose-app.conf b/rose-stem/app/gswp2_gl4/rose-app.conf index 3f370f10..75101b8f 100644 --- a/rose-stem/app/gswp2_gl4/rose-app.conf +++ b/rose-stem/app/gswp2_gl4/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -506,6 +507,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_gl7/rose-app.conf b/rose-stem/app/gswp2_gl7/rose-app.conf index 54d08947..90fab089 100644 --- a/rose-stem/app/gswp2_gl7/rose-app.conf +++ b/rose-stem/app/gswp2_gl7/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -506,6 +507,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_irrig_limit_high_river_storage/rose-app.conf b/rose-stem/app/gswp2_irrig_limit_high_river_storage/rose-app.conf index 6147d791..609848fa 100644 --- a/rose-stem/app/gswp2_irrig_limit_high_river_storage/rose-app.conf +++ b/rose-stem/app/gswp2_irrig_limit_high_river_storage/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -506,6 +507,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_irrig_limit_low_river_storage/rose-app.conf b/rose-stem/app/gswp2_irrig_limit_low_river_storage/rose-app.conf index 074e4805..1694aa2d 100644 --- a/rose-stem/app/gswp2_irrig_limit_low_river_storage/rose-app.conf +++ b/rose-stem/app/gswp2_irrig_limit_low_river_storage/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -506,6 +507,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_rivers/opt/rose-app-rivers-only.conf b/rose-stem/app/gswp2_rivers/opt/rose-app-rivers-only.conf index f0cea6bd..53268c73 100644 --- a/rose-stem/app/gswp2_rivers/opt/rose-app-rivers-only.conf +++ b/rose-stem/app/gswp2_rivers/opt/rose-app-rivers-only.conf @@ -19,6 +19,7 @@ time_dim_name='time' [namelist:jules_land_frac] file='$RIVERS_ONLY_INSTALL_DIR/$RIVERS_ONLY_DRIVE_TASK.drive_rivers-only.nc' +l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] diff --git a/rose-stem/app/gswp2_rivers/rose-app.conf b/rose-stem/app/gswp2_rivers/rose-app.conf index 39859cdb..f92fb22c 100644 --- a/rose-stem/app/gswp2_rivers/rose-app.conf +++ b/rose-stem/app/gswp2_rivers/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -786,7 +788,6 @@ cbriver=0.15 cland=0.2 criver=0.62 i_river_vn=2 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_rivers_restart/opt/rose-app-rivers-only.conf b/rose-stem/app/gswp2_rivers_restart/opt/rose-app-rivers-only.conf index 684cf01b..92a3cf7c 100644 --- a/rose-stem/app/gswp2_rivers_restart/opt/rose-app-rivers-only.conf +++ b/rose-stem/app/gswp2_rivers_restart/opt/rose-app-rivers-only.conf @@ -19,6 +19,7 @@ time_dim_name='time' [namelist:jules_land_frac] file='$RIVERS_ONLY_INSTALL_DIR/$RIVERS_ONLY_DRIVE_TASK.drive_rivers-only.nc' +l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] diff --git a/rose-stem/app/gswp2_rivers_restart/rose-app.conf b/rose-stem/app/gswp2_rivers_restart/rose-app.conf index f68e97fa..efa4ecd9 100644 --- a/rose-stem/app/gswp2_rivers_restart/rose-app.conf +++ b/rose-stem/app/gswp2_rivers_restart/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -507,6 +508,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -788,7 +790,6 @@ cbriver=0.15 cland=0.2 criver=0.62 i_river_vn=2 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_rivers_spinup/rose-app.conf b/rose-stem/app/gswp2_rivers_spinup/rose-app.conf index c9f91cff..c8992c9f 100644 --- a/rose-stem/app/gswp2_rivers_spinup/rose-app.conf +++ b/rose-stem/app/gswp2_rivers_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -744,7 +746,6 @@ cbriver=0.15 cland=0.2 criver=0.62 i_river_vn=2 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_trip/opt/rose-app-rivers-only.conf b/rose-stem/app/gswp2_trip/opt/rose-app-rivers-only.conf index 28ea8d93..d76e9fed 100644 --- a/rose-stem/app/gswp2_trip/opt/rose-app-rivers-only.conf +++ b/rose-stem/app/gswp2_trip/opt/rose-app-rivers-only.conf @@ -19,6 +19,7 @@ time_dim_name='time' [namelist:jules_land_frac] file='$RIVERS_ONLY_INSTALL_DIR/$RIVERS_ONLY_DRIVE_TASK.drive_rivers-only.nc' +l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] @@ -45,6 +46,12 @@ lsm_id=3 [namelist:jules_output] nprofiles=2 +[namelist:jules_output_profile(2)] +nvars=3 +output_type='S','S','S' +var='rivers_outflow_rp','outflow_per_river','inland_outflow_rp' +var_name='','','' + [!!namelist:jules_pftparm] !!a_wl_io=0.65,0.65,0.005,0.005,0.10 !!a_ws_io=10.00,10.00,1.00,1.00,10.00 diff --git a/rose-stem/app/gswp2_trip/rose-app.conf b/rose-stem/app/gswp2_trip/rose-app.conf index 92fd7a13..3db153f6 100644 --- a/rose-stem/app/gswp2_trip/rose-app.conf +++ b/rose-stem/app/gswp2_trip/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -464,17 +465,17 @@ l_var_rainfrac=.false. !!zw_max=6.0 [namelist:jules_initial] -const_val=0.0,275.0,10.0,50.0,0.75,0.75,278.0 +const_val=0.0,275.0,10.0,50.0,0.75,0.75,278.0,0.0 dump_file=.false. file='' !!l_broadcast_soilt=.false. -nvars=7 +nvars=8 total_snow=.true. -!!tpl_name=7*'' -use_file=7*.false. +!!tpl_name=8*'' +use_file=8*.false. var='canopy','tstar_tile','cs','rgrain','snow_tile','sthuf', - ='t_soil' -!!var_name=7*'' + ='t_soil','rivers_sto_rp' +!!var_name=8*'' [namelist:jules_input_grid] grid_dim_name='land' @@ -505,6 +506,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -786,7 +788,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_trip_restart/opt/rose-app-rivers-only.conf b/rose-stem/app/gswp2_trip_restart/opt/rose-app-rivers-only.conf index 7aecfb16..8af893fb 100644 --- a/rose-stem/app/gswp2_trip_restart/opt/rose-app-rivers-only.conf +++ b/rose-stem/app/gswp2_trip_restart/opt/rose-app-rivers-only.conf @@ -19,6 +19,7 @@ time_dim_name='time' [namelist:jules_land_frac] file='$RIVERS_ONLY_INSTALL_DIR/$RIVERS_ONLY_DRIVE_TASK.drive_rivers-only.nc' +l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] diff --git a/rose-stem/app/gswp2_trip_restart/rose-app.conf b/rose-stem/app/gswp2_trip_restart/rose-app.conf index c587b7f8..c45cc937 100644 --- a/rose-stem/app/gswp2_trip_restart/rose-app.conf +++ b/rose-stem/app/gswp2_trip_restart/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -506,6 +507,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -787,7 +789,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_trip_spinup/rose-app.conf b/rose-stem/app/gswp2_trip_spinup/rose-app.conf index 1b3e8db6..2eb5d4ee 100644 --- a/rose-stem/app/gswp2_trip_spinup/rose-app.conf +++ b/rose-stem/app/gswp2_trip_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ frac_name='field1391' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -464,17 +465,17 @@ l_var_rainfrac=.false. !!zw_max=6.0 [namelist:jules_initial] -const_val=0.0,275.0,10.0,50.0,0.75,0.75,278.0 +const_val=0.0,275.0,10.0,50.0,0.75,0.75,278.0,0.0 dump_file=.false. file='' !!l_broadcast_soilt=.false. -nvars=7 +nvars=8 total_snow=.true. -!!tpl_name=7*'' -use_file=7*.false. +!!tpl_name=8*'' +use_file=8*.false. var='canopy','tstar_tile','cs','rgrain','snow_tile','sthuf', - ='t_soil' -!!var_name=7*'' + ='t_soil','rivers_sto_rp' +!!var_name=8*'' [namelist:jules_input_grid] grid_dim_name='land' @@ -505,6 +506,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -744,7 +746,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 i_river_vn=3 -!!l_inland=.false. l_riv_overbank=.false. l_rivers=.true. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/gswp2_ukv/rose-app.conf b/rose-stem/app/gswp2_ukv/rose-app.conf index 80b1c642..a990b311 100644 --- a/rose-stem/app/gswp2_ukv/rose-app.conf +++ b/rose-stem/app/gswp2_ukv/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ frac_name='field1391' b_pdm=0.40 dz_pdm=0.50 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -506,6 +507,7 @@ read_file=.false. [namelist:jules_land_frac] file='$GSWP2_INSTALL_DIR/ancil/lsmask_vector.nc' +!!l_use_land_fraction=.false. land_frac_name='lsmask' [namelist:jules_latlon] @@ -773,7 +775,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/imogen_layeredc/rose-app.conf b/rose-stem/app/imogen_layeredc/rose-app.conf index b89b2374..2cd637f6 100644 --- a/rose-stem/app/imogen_layeredc/rose-app.conf +++ b/rose-stem/app/imogen_layeredc/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -446,6 +446,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -499,6 +500,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$IMOGEN_INSTALL_DIR/ancil/grid_info.nc' +!!l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] @@ -760,7 +762,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/imogen_layeredc_spinup/rose-app.conf b/rose-stem/app/imogen_layeredc_spinup/rose-app.conf index b261f473..8335a372 100644 --- a/rose-stem/app/imogen_layeredc_spinup/rose-app.conf +++ b/rose-stem/app/imogen_layeredc_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -446,6 +446,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. [namelist:jules_land_frac] file='$IMOGEN_INSTALL_DIR/ancil/grid_info.nc' +!!l_use_land_fraction=.false. land_frac_name='land_fraction' [namelist:jules_latlon] @@ -745,7 +747,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm1_traitF/rose-app.conf b/rose-stem/app/loobos_crm1_traitF/rose-app.conf index 1bcaef88..caa3381e 100644 --- a/rose-stem/app/loobos_crm1_traitF/rose-app.conf +++ b/rose-stem/app/loobos_crm1_traitF/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -783,7 +785,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm4_traitF/rose-app.conf b/rose-stem/app/loobos_crm4_traitF/rose-app.conf index 83a0fbf3..abf0f099 100644 --- a/rose-stem/app/loobos_crm4_traitF/rose-app.conf +++ b/rose-stem/app/loobos_crm4_traitF/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -783,7 +785,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm5_traitF/rose-app.conf b/rose-stem/app/loobos_crm5_traitF/rose-app.conf index b1d08ee0..95785f8f 100644 --- a/rose-stem/app/loobos_crm5_traitF/rose-app.conf +++ b/rose-stem/app/loobos_crm5_traitF/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -783,7 +785,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm6_traitF/rose-app.conf b/rose-stem/app/loobos_crm6_traitF/rose-app.conf index 83ddba80..bd1780e4 100644 --- a/rose-stem/app/loobos_crm6_traitF/rose-app.conf +++ b/rose-stem/app/loobos_crm6_traitF/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -783,7 +785,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm6_traitF_srfT/rose-app.conf b/rose-stem/app/loobos_crm6_traitF_srfT/rose-app.conf index 6bcb31cb..0d3de615 100644 --- a/rose-stem/app/loobos_crm6_traitF_srfT/rose-app.conf +++ b/rose-stem/app/loobos_crm6_traitF_srfT/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -783,7 +785,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crm6_traitT/rose-app.conf b/rose-stem/app/loobos_crm6_traitT/rose-app.conf index f5f8dcbb..bcdfb55d 100644 --- a/rose-stem/app/loobos_crm6_traitT/rose-app.conf +++ b/rose-stem/app/loobos_crm6_traitT/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -785,7 +787,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_crops/rose-app.conf b/rose-stem/app/loobos_crops/rose-app.conf index 1b3cc0bd..5465258b 100644 --- a/rose-stem/app/loobos_crops/rose-app.conf +++ b/rose-stem/app/loobos_crops/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -785,7 +787,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_daily_disagg/rose-app.conf b/rose-stem/app/loobos_daily_disagg/rose-app.conf index 05bbbc53..8e556595 100644 --- a/rose-stem/app/loobos_daily_disagg/rose-app.conf +++ b/rose-stem/app/loobos_daily_disagg/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_euro4/rose-app.conf b/rose-stem/app/loobos_euro4/rose-app.conf index b717b0ba..a08895fe 100644 --- a/rose-stem/app/loobos_euro4/rose-app.conf +++ b/rose-stem/app/loobos_euro4/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='tile_fractions.dat' b_pdm=0.40 dz_pdm=0.50 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -501,6 +502,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -764,7 +766,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_fire/rose-app.conf b/rose-stem/app/loobos_fire/rose-app.conf index 02790005..b0dbebba 100644 --- a/rose-stem/app/loobos_fire/rose-app.conf +++ b/rose-stem/app/loobos_fire/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -447,6 +447,7 @@ read_from_dump=.true. b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -499,6 +500,7 @@ read_from_dump=.true. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -775,7 +777,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_fire_spinup/rose-app.conf b/rose-stem/app/loobos_fire_spinup/rose-app.conf index 96df1775..35218807 100644 --- a/rose-stem/app/loobos_fire_spinup/rose-app.conf +++ b/rose-stem/app/loobos_fire_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -447,6 +447,7 @@ file='' b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -500,6 +501,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -750,7 +752,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_forecast/rose-app.conf b/rose-stem/app/loobos_forecast/rose-app.conf index 5daa1877..cac50760 100644 --- a/rose-stem/app/loobos_forecast/rose-app.conf +++ b/rose-stem/app/loobos_forecast/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -500,6 +501,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -763,7 +765,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_gl4/rose-app.conf b/rose-stem/app/loobos_gl4/rose-app.conf index b3c3bb7a..893fb555 100644 --- a/rose-stem/app/loobos_gl4/rose-app.conf +++ b/rose-stem/app/loobos_gl4/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_gl7/rose-app.conf b/rose-stem/app/loobos_gl7/rose-app.conf index 65871a23..49bd7afa 100644 --- a/rose-stem/app/loobos_gl7/rose-app.conf +++ b/rose-stem/app/loobos_gl7/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_gl8/rose-app.conf b/rose-stem/app/loobos_gl8/rose-app.conf index f4ad9bfc..7205b675 100644 --- a/rose-stem/app/loobos_gl8/rose-app.conf +++ b/rose-stem/app/loobos_gl8/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_gl8_medlyn/rose-app.conf b/rose-stem/app/loobos_gl8_medlyn/rose-app.conf index 7ebcdd84..980ba81d 100644 --- a/rose-stem/app/loobos_gl8_medlyn/rose-app.conf +++ b/rose-stem/app/loobos_gl8_medlyn/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_irrig/rose-app.conf b/rose-stem/app/loobos_irrig/rose-app.conf index c3ecdfed..9509d85e 100644 --- a/rose-stem/app/loobos_irrig/rose-app.conf +++ b/rose-stem/app/loobos_irrig/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -784,7 +786,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_irrig_nirrtile/rose-app.conf b/rose-stem/app/loobos_irrig_nirrtile/rose-app.conf index 7f5f1a8d..efed621b 100644 --- a/rose-stem/app/loobos_irrig_nirrtile/rose-app.conf +++ b/rose-stem/app/loobos_irrig_nirrtile/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -504,6 +505,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -784,7 +786,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_c1p1/rose-app.conf b/rose-stem/app/loobos_jules_c1p1/rose-app.conf index 7baf2ce8..565f75f7 100644 --- a/rose-stem/app/loobos_jules_c1p1/rose-app.conf +++ b/rose-stem/app/loobos_jules_c1p1/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -835,7 +837,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_c1p1_fire/rose-app.conf b/rose-stem/app/loobos_jules_c1p1_fire/rose-app.conf index a65b3c2b..3770d7ef 100644 --- a/rose-stem/app/loobos_jules_c1p1_fire/rose-app.conf +++ b/rose-stem/app/loobos_jules_c1p1_fire/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -842,7 +844,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_cn/rose-app.conf b/rose-stem/app/loobos_jules_cn/rose-app.conf index 99f9758d..f6854472 100644 --- a/rose-stem/app/loobos_jules_cn/rose-app.conf +++ b/rose-stem/app/loobos_jules_cn/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ read_from_dump=.false. b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -794,7 +796,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_cn_spinup/rose-app.conf b/rose-stem/app/loobos_jules_cn_spinup/rose-app.conf index 13f9db8a..4001f25f 100644 --- a/rose-stem/app/loobos_jules_cn_spinup/rose-app.conf +++ b/rose-stem/app/loobos_jules_cn_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='' b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -503,6 +504,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -755,7 +757,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0/rose-app.conf index 17df8014..864f6f8c 100644 --- a/rose-stem/app/loobos_jules_es_1p0/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -876,7 +878,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_biocrop/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_biocrop/rose-app.conf index b5d8fc94..ca2e40cd 100644 --- a/rose-stem/app/loobos_jules_es_1p0_biocrop/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_biocrop/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -503,6 +504,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -1009,7 +1011,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_biocrop_agexpand/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_biocrop_agexpand/rose-app.conf index a7936243..b651c1a4 100644 --- a/rose-stem/app/loobos_jules_es_1p0_biocrop_agexpand/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_biocrop_agexpand/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -503,6 +504,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -1009,7 +1011,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_biocrop_spinup/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_biocrop_spinup/rose-app.conf index 162ac831..5988ad50 100644 --- a/rose-stem/app/loobos_jules_es_1p0_biocrop_spinup/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_biocrop_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ file='' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -508,6 +509,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -1014,7 +1016,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_deposition/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_deposition/rose-app.conf index c99d2576..e93eeffb 100644 --- a/rose-stem/app/loobos_jules_es_1p0_deposition/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_deposition/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -450,6 +450,7 @@ read_from_dump=.false. !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -1003,7 +1005,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_deposition_spinup/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_deposition_spinup/rose-app.conf index d6b6421d..938244c0 100644 --- a/rose-stem/app/loobos_jules_es_1p0_deposition_spinup/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_deposition_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -976,7 +978,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_es_1p0_spinup/rose-app.conf b/rose-stem/app/loobos_jules_es_1p0_spinup/rose-app.conf index 93299f95..c0d9c08b 100644 --- a/rose-stem/app/loobos_jules_es_1p0_spinup/rose-app.conf +++ b/rose-stem/app/loobos_jules_es_1p0_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -505,6 +506,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -849,7 +851,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_layeredcn/rose-app.conf b/rose-stem/app/loobos_jules_layeredcn/rose-app.conf index 04d4a37e..6af4dde4 100644 --- a/rose-stem/app/loobos_jules_layeredcn/rose-app.conf +++ b/rose-stem/app/loobos_jules_layeredcn/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ read_from_dump=.false. b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -796,7 +798,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_jules_layeredcn_spinup/rose-app.conf b/rose-stem/app/loobos_jules_layeredcn_spinup/rose-app.conf index e6784f06..0c4c4f7c 100644 --- a/rose-stem/app/loobos_jules_layeredcn_spinup/rose-app.conf +++ b/rose-stem/app/loobos_jules_layeredcn_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='' b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -503,6 +504,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -755,7 +757,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_julesc/rose-app.conf b/rose-stem/app/loobos_julesc/rose-app.conf index a2c522ab..d2ed7c81 100644 --- a/rose-stem/app/loobos_julesc/rose-app.conf +++ b/rose-stem/app/loobos_julesc/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ read_from_dump=.false. b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -500,6 +501,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -763,7 +765,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_julesc_spinup/rose-app.conf b/rose-stem/app/loobos_julesc_spinup/rose-app.conf index 903b2f11..9601e937 100644 --- a/rose-stem/app/loobos_julesc_spinup/rose-app.conf +++ b/rose-stem/app/loobos_julesc_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='' b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -503,6 +504,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -740,7 +742,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_prescribe_sthuf/rose-app.conf b/rose-stem/app/loobos_prescribe_sthuf/rose-app.conf index 47a9e32a..990eb6c3 100644 --- a/rose-stem/app/loobos_prescribe_sthuf/rose-app.conf +++ b/rose-stem/app/loobos_prescribe_sthuf/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -503,6 +504,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -809,7 +811,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_trif/rose-app.conf b/rose-stem/app/loobos_trif/rose-app.conf index b1e60302..fcec6ae8 100644 --- a/rose-stem/app/loobos_trif/rose-app.conf +++ b/rose-stem/app/loobos_trif/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -447,6 +447,7 @@ read_from_dump=.false. b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -499,6 +500,7 @@ read_from_dump=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -762,7 +764,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_trif_spinup/rose-app.conf b/rose-stem/app/loobos_trif_spinup/rose-app.conf index 3f9ec59b..4825a352 100644 --- a/rose-stem/app/loobos_trif_spinup/rose-app.conf +++ b/rose-stem/app/loobos_trif_spinup/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -447,6 +447,7 @@ file='' b_pdm=1.0 dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -500,6 +501,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -737,7 +739,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_ukv/rose-app.conf b/rose-stem/app/loobos_ukv/rose-app.conf index bdb93682..5ed59cb8 100644 --- a/rose-stem/app/loobos_ukv/rose-app.conf +++ b/rose-stem/app/loobos_ukv/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -448,6 +448,7 @@ file='tile_fractions.dat' b_pdm=0.40 dz_pdm=0.50 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.true. l_spdmvar=.false. @@ -501,6 +502,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -764,7 +766,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/loobos_vegdrag/rose-app.conf b/rose-stem/app/loobos_vegdrag/rose-app.conf index c6b278f1..937da13b 100644 --- a/rose-stem/app/loobos_vegdrag/rose-app.conf +++ b/rose-stem/app/loobos_vegdrag/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -449,6 +449,7 @@ file='tile_fractions.dat' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -502,6 +503,7 @@ read_file=.false. !!var_name='' [namelist:jules_land_frac] +!!l_use_land_fraction=.false. [namelist:jules_latlon] const_val=52.168,5.744 @@ -765,7 +767,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/app/surf_gl9/rose-app.conf b/rose-stem/app/surf_gl9/rose-app.conf index 8a21b7f2..c5862a4d 100644 --- a/rose-stem/app/surf_gl9/rose-app.conf +++ b/rose-stem/app/surf_gl9/rose-app.conf @@ -1,4 +1,4 @@ -meta=jules-standalone/vn8.1_t23 +meta=jules-standalone/vn8.1_t34 [command] default=rose-run jules.exe @@ -451,6 +451,7 @@ frac_name='field216' !!b_pdm=1.0 !!dz_pdm=1.0 l_hydrology=.true. +!!l_inland=.false. l_limit_gsoil=.false. l_pdm=.false. !!l_spdmvar=.false. @@ -514,6 +515,7 @@ read_file=.false. [namelist:jules_land_frac] file='$SURF_INSTALL_DIR/MaskData1.nc' +!!l_use_land_fraction=.false. land_frac_name='field30' [namelist:jules_latlon] @@ -782,7 +784,6 @@ wght_alb=0.0,0.5,0.0,0.5 !!cland=0.2 !!criver=0.62 !!i_river_vn=2 -!!l_inland=.false. !!l_riv_overbank=.false. l_rivers=.false. !!lake_water_conserve_method=1 diff --git a/rose-stem/include/variables.cylc b/rose-stem/include/variables.cylc index 32301814..8f8d5177 100644 --- a/rose-stem/include/variables.cylc +++ b/rose-stem/include/variables.cylc @@ -1,4 +1,4 @@ ############################################################################### ## Common variable definitions ############################################################################### -{%- set KGO_VERSION = 'vn8.1_t107' %} +{%- set KGO_VERSION = 'vn8.1_t89' %} diff --git a/src/control/rivers-standalone/oasis_rivers_control_mod.F90 b/src/control/rivers-standalone/oasis_rivers_control_mod.F90 index 6e2f0d76..52eb949a 100644 --- a/src/control/rivers-standalone/oasis_rivers_control_mod.F90 +++ b/src/control/rivers-standalone/oasis_rivers_control_mod.F90 @@ -330,7 +330,9 @@ SUBROUTINE oasis_send(rivers, TIME) oasis_torestout, oasis_waitgroup, oasis_ok USE oasis_rivers_mod, ONLY: np_send, cpl_send USE jules_rivers_mod, ONLY: rivers_type, n_rivers, & - l_outflow_per_river, calc_outflow_per_river + l_outflow_per_river, calc_outflow_per_river, & + nx_rivers, ny_rivers, l_inland_outflow +USE rivers_regrid_mod, ONLY: rp_to_twod USE missing_data_mod, ONLY: imdi ! IMPLICIT NONE @@ -353,6 +355,7 @@ SUBROUTINE oasis_send(rivers, TIME) ! Local variables REAL, ALLOCATABLE :: outflow_per_river(:) INTEGER :: i, ip, ierror, ERROR +REAL :: inland_outflow(nx_rivers, ny_rivers) CHARACTER(LEN=*), PARAMETER :: RoutineName = 'OASIS_SEND' @@ -366,12 +369,19 @@ SUBROUTINE oasis_send(rivers, TIME) outflow_per_river = calc_outflow_per_river(rivers) END IF +! Convert inland basin flow from river points grid to 2D rivers grid +IF (l_inland_outflow) THEN + CALL rp_to_twod(rivers%inland_outflow_rp, inland_outflow, rivers) +END IF + ! Loop in all variables that are sent via coupling DO i = 1, np_send SELECT CASE(TRIM(cpl_send(i)%field_name)) ! send the right field CASE ('outflow_per_river') CALL oasis_put(cpl_send(i)%field_id,TIME,outflow_per_river,ierror) + CASE ('inland_outflow') + CALL oasis_put(cpl_send(i)%field_id,TIME,inland_outflow,ierror) END SELECT IF (ierror /= oasis_sent .AND. ierror /= oasis_loctrans .AND. & diff --git a/src/control/rivers-standalone/oasis_rivers_mod.F90 b/src/control/rivers-standalone/oasis_rivers_mod.F90 index a45a8bbe..92c8e9a5 100644 --- a/src/control/rivers-standalone/oasis_rivers_mod.F90 +++ b/src/control/rivers-standalone/oasis_rivers_mod.F90 @@ -75,7 +75,7 @@ MODULE oasis_rivers_mod SUBROUTINE check_oasis_rivers() -USE jules_rivers_mod, ONLY: l_outflow_per_river +USE jules_rivers_mod, ONLY: l_outflow_per_river, l_inland_outflow USE jules_model_environment_mod, ONLY: l_oasis_rivers USE model_time_mod, ONLY: timestep_len USE ereport_mod, ONLY: ereport @@ -128,10 +128,10 @@ SUBROUTINE check_oasis_rivers() ELSE IF (np_send < 0) THEN errcode = 107 CALL ereport(RoutineName, errcode, 'np_send must be >= 0') - ELSE IF (np_send > 1) THEN + ELSE IF (np_send > 2) THEN errcode = 108 CALL ereport(RoutineName, errcode, 'np_send must be ' // & - 'in the range 0:1') + 'in the range 0:2') END IF ! Check that at least one coupling field is exchanged @@ -185,6 +185,9 @@ SUBROUTINE check_oasis_rivers() cpl_send(i)%field_name = TRIM(send_fields(i)) l_runoff_1d = .TRUE. ! 1d runoff partition required l_outflow_per_river = .TRUE. ! Check river number ancillary is given + CASE ('inland_outflow') + cpl_send(i)%field_name = TRIM(send_fields(i)) + l_inland_outflow = .TRUE. ! Generate inland basin flows CASE DEFAULT errcode = 117 CALL ereport(RoutineName, errcode, & diff --git a/src/control/shared/coastal.F90 b/src/control/shared/coastal.F90 index badea544..7afde8c9 100644 --- a/src/control/shared/coastal.F90 +++ b/src/control/shared/coastal.F90 @@ -17,6 +17,10 @@ MODULE coastal REAL, DIMENSION(:,:), ALLOCATABLE :: flandg ! Land fraction on all tiles. +LOGICAL :: l_use_land_fraction = .FALSE. +! Switch to indicate that land fractions should be used instead of all land +! fractions being set to 1.0 by standalone. + !----------------------------------------------------------------------------- ! Implementation for field variables ! Each variable is declared in both the 'data' TYPE and the 'pointer' type. diff --git a/src/control/shared/jules_hydrology_mod.F90 b/src/control/shared/jules_hydrology_mod.F90 index 2e2a7f31..f1d360b4 100644 --- a/src/control/shared/jules_hydrology_mod.F90 +++ b/src/control/shared/jules_hydrology_mod.F90 @@ -45,8 +45,10 @@ MODULE jules_hydrology_mod l_wetland_unfrozen = .FALSE., & ! Switch for TOPMODEL-based hydrology with unfrozen wetland inundation ! Only used if l_top=.T. - l_limit_gsoil = .FALSE. + l_limit_gsoil = .FALSE., & ! Switch for limiting gsoil above theta_crit + l_inland = .FALSE. + ! Switch for putting inland water from from rivers into soil moisture !----------------------------------------------------------------------------- ! PDM parameters @@ -83,7 +85,7 @@ MODULE jules_hydrology_mod !------------------------------------------------------------------------------ NAMELIST / jules_hydrology/ & l_hydrology, l_top, l_pdm, l_spdmvar, l_baseflow_corr, l_var_rainfrac, & - l_wetland_unfrozen, l_limit_gsoil, & + l_wetland_unfrozen, l_limit_gsoil, l_inland, & dz_pdm, b_pdm, s_pdm, slope_pdm_max, ti_max, ti_wetl, zw_max, nfita @@ -231,6 +233,9 @@ SUBROUTINE print_nlist_jules_hydrology() WRITE(lineBuffer, *) ' l_limit_gsoil = ', l_limit_gsoil CALL jules_print('jules_hydrology', lineBuffer) +WRITE(lineBuffer, *) ' l_inland = ', l_inland +CALL jules_print('jules_hydrology', lineBuffer) + WRITE(lineBuffer, *) ' dz_pdm = ', dz_pdm CALL jules_print('jules_hydrology', lineBuffer) @@ -297,7 +302,7 @@ SUBROUTINE read_nml_jules_hydrology (unitnumber) INTEGER, PARAMETER :: no_of_types = 3 INTEGER, PARAMETER :: n_int = 1 INTEGER, PARAMETER :: n_real = 7 -INTEGER, PARAMETER :: n_log = 8 +INTEGER, PARAMETER :: n_log = 9 TYPE :: my_namelist SEQUENCE @@ -317,6 +322,7 @@ SUBROUTINE read_nml_jules_hydrology (unitnumber) LOGICAL :: l_var_rainfrac LOGICAL :: l_wetland_unfrozen LOGICAL :: l_limit_gsoil + LOGICAL :: l_inland END TYPE my_namelist TYPE (my_namelist) :: my_nml @@ -352,6 +358,7 @@ SUBROUTINE read_nml_jules_hydrology (unitnumber) my_nml % l_var_rainfrac = l_var_rainfrac my_nml % l_wetland_unfrozen = l_wetland_unfrozen my_nml % l_limit_gsoil = l_limit_gsoil + my_nml % l_inland = l_inland END IF @@ -377,6 +384,7 @@ SUBROUTINE read_nml_jules_hydrology (unitnumber) l_var_rainfrac = my_nml % l_var_rainfrac l_wetland_unfrozen = my_nml % l_wetland_unfrozen l_limit_gsoil = my_nml % l_limit_gsoil + l_inland = my_nml % l_inland END IF diff --git a/src/control/shared/jules_rivers_mod.F90 b/src/control/shared/jules_rivers_mod.F90 index 44f80d97..38b019f9 100644 --- a/src/control/shared/jules_rivers_mod.F90 +++ b/src/control/shared/jules_rivers_mod.F90 @@ -122,8 +122,6 @@ MODULE jules_rivers_mod LOGICAL :: & l_rivers = .FALSE. & ! Switch for runoff routing - ,l_inland = .FALSE. & - ! Control rerouting of inland basin water ,l_riv_overbank = .FALSE. & ! Logical to control overbank inundation ,l_outflow_per_river = .FALSE. & @@ -138,7 +136,12 @@ MODULE jules_rivers_mod ! so outflow_per_river should be present in jules_output. ! Both cases are checked once the latter namelist is read. ! Additionally, rivers_outflow_rp is added to the dump. - + ,l_inland_outflow = .FALSE. & + ! Internal flag which is set to TRUE when at least one of the + ! following is true: + ! - OASIS send field contains 'inland_outflow' + ! - The diagnostic 'inland_outflow_rp' has been requested + ! - UM-TRIP when l_inland = T ,l_init_storage = .FALSE. ! Set to true if an initial river storage ancillary file is ! used @@ -235,7 +238,7 @@ MODULE jules_rivers_mod ! Single namelist definition for UM and standalone !------------------------------------------------------------------------------ NAMELIST /jules_rivers/ & - l_rivers, l_inland, l_riv_overbank, l_adapt_timestep, l_sea_level, & + l_rivers, l_riv_overbank, l_adapt_timestep, l_sea_level, & l_vary_sea_level, i_river_vn, nstep_rivers, & trip_globe_shape, & cland, criver, cbland, cbriver, runoff_factor, retl, retr, & @@ -451,6 +454,8 @@ MODULE jules_rivers_mod ! Maps ocean outflow gridboxes to the river they ! belong to (on river points) ! Used for coupling to ocean model + REAL(KIND=real_jlslsm), ALLOCATABLE :: land_fraction_rp(:) + ! Land fraction on river points REAL(KIND=real_jlslsm), ALLOCATABLE :: rivers_sto_rp(:) ! Water storage (kg) REAL(KIND=real_jlslsm), ALLOCATABLE :: rivers_lat_rp(:) @@ -562,12 +567,15 @@ MODULE jules_rivers_mod ! from an ancillary on the 2d Rivers grid. ! The ancillary can either be for a single time or ! a 12-month climatology + REAL(KIND=real_jlslsm), ALLOCATABLE :: land_fraction_2d(:,:) + ! Land fraction on global 2D grid + + ! Arrays defined on 1d river points vectors REAL(KIND=real_jlslsm), ALLOCATABLE :: rivers_xgrid(:) ! Coordinate values for x-dimension of rivers grid REAL(KIND=real_jlslsm), ALLOCATABLE :: rivers_ygrid(:) ! Coordinate values for y-dimension of rivers grid - ! Arrays defined on 1d river points vectors REAL(KIND=real_jlslsm), ALLOCATABLE :: rfm_flowobs1_rp(:) ! Initial (observed) river flow (kg m-2 s-1) REAL(KIND=real_jlslsm), ALLOCATABLE :: rfm_surfstore_rp(:) @@ -586,6 +594,8 @@ MODULE jules_rivers_mod ! Gridbox area of each river grid pixel (m2) REAL(KIND=real_jlslsm), ALLOCATABLE :: rivers_outflow_rp(:) ! River outflow into the ocean (kg s-1) + REAL(KIND=real_jlslsm), ALLOCATABLE :: inland_outflow_rp(:) + ! Inland basin flow into soil moisture (kg m-2 s-1) END TYPE rivers_data_type TYPE :: rivers_type @@ -602,6 +612,8 @@ MODULE jules_rivers_mod INTEGER, POINTER :: rivers_next_rp(:) INTEGER, POINTER :: rivers_seq_rp(:) INTEGER, POINTER :: rivers_outflow_number_rp(:) + REAL(KIND=real_jlslsm), POINTER :: land_fraction_2d(:,:) + REAL(KIND=real_jlslsm), POINTER :: land_fraction_rp(:) REAL(KIND=real_jlslsm), POINTER :: rivers_sto_rp(:) REAL(KIND=real_jlslsm), POINTER :: rivers_lat_rp(:) REAL(KIND=real_jlslsm), POINTER :: rivers_lon_rp(:) @@ -651,6 +663,7 @@ MODULE jules_rivers_mod REAL(KIND=real_jlslsm), POINTER :: rfm_baseflow_rp(:) REAL(KIND=real_jlslsm), POINTER :: rivers_boxareas_rp(:) REAL(KIND=real_jlslsm), POINTER :: rivers_outflow_rp(:) + REAL(KIND=real_jlslsm), POINTER :: inland_outflow_rp(:) END TYPE rivers_type CONTAINS @@ -1161,8 +1174,6 @@ SUBROUTINE print_nlist_jules_rivers() WRITE(lineBuffer,*)' l_rivers = ',l_rivers CALL jules_print('jules_rivers',lineBuffer) -WRITE(lineBuffer,*)' l_inland = ',l_inland -CALL jules_print('jules_rivers',lineBuffer) WRITE(lineBuffer,*)' l_riv_overbank = ',l_riv_overbank CALL jules_print('jules_rivers',lineBuffer) WRITE(lineBuffer,*)' i_river_vn = ',i_river_vn @@ -1304,7 +1315,7 @@ SUBROUTINE read_nml_jules_rivers(unit_in) INTEGER, PARAMETER :: no_of_types = 3 INTEGER, PARAMETER :: n_int = 5 INTEGER, PARAMETER :: n_real = 12 -INTEGER, PARAMETER :: n_log = 6 +INTEGER, PARAMETER :: n_log = 5 TYPE :: my_namelist SEQUENCE @@ -1326,7 +1337,6 @@ SUBROUTINE read_nml_jules_rivers(unit_in) REAL(KIND=real_jlslsm) :: rivers_speed REAL(KIND=real_jlslsm) :: runoff_factor LOGICAL :: l_adapt_timestep - LOGICAL :: l_inland LOGICAL :: l_riv_overbank LOGICAL :: l_rivers LOGICAL :: l_sea_level @@ -1365,7 +1375,6 @@ SUBROUTINE read_nml_jules_rivers(unit_in) my_nml % rivers_speed = rivers_speed my_nml % runoff_factor = runoff_factor my_nml % l_adapt_timestep = l_adapt_timestep - my_nml % l_inland = l_inland my_nml % l_riv_overbank = l_riv_overbank my_nml % l_rivers = l_rivers my_nml % l_sea_level = l_sea_level @@ -1393,7 +1402,6 @@ SUBROUTINE read_nml_jules_rivers(unit_in) rivers_speed = my_nml % rivers_speed runoff_factor = my_nml % runoff_factor l_adapt_timestep = my_nml % l_adapt_timestep - l_inland = my_nml % l_inland l_riv_overbank = my_nml % l_riv_overbank l_rivers = my_nml % l_rivers l_sea_level = my_nml % l_sea_level diff --git a/src/control/shared/surf_couple_extra_mod.F90 b/src/control/shared/surf_couple_extra_mod.F90 index ca35dc00..4b52d3c1 100644 --- a/src/control/shared/surf_couple_extra_mod.F90 +++ b/src/control/shared/surf_couple_extra_mod.F90 @@ -128,7 +128,7 @@ SUBROUTINE surf_couple_extra( & !Import interfaces to subroutines called USE hydrol_mod, ONLY: hydrol USE snow_mod, ONLY: snow -USE jules_rivers_mod, ONLY: l_rivers, l_inland, rivers_call +USE jules_rivers_mod, ONLY: l_rivers, rivers_call ! Code which isn't currently suitable for building into LFRic #if !defined(LFRIC) @@ -190,7 +190,8 @@ SUBROUTINE surf_couple_extra( & USE deposition_from_surf_couple_extra_mod, & ONLY: deposition_from_surf_couple_extra -USE jules_hydrology_mod, ONLY: l_hydrology, l_pdm, l_top, l_var_rainfrac +USE jules_hydrology_mod, ONLY: l_hydrology, l_pdm, l_top, l_var_rainfrac, & + l_inland USE lake_mod, ONLY: h_snow_sw_att & , trap_frozen & diff --git a/src/control/shared/surf_couple_rivers_mod.F90 b/src/control/shared/surf_couple_rivers_mod.F90 index ba24b206..56f5740b 100644 --- a/src/control/shared/surf_couple_rivers_mod.F90 +++ b/src/control/shared/surf_couple_rivers_mod.F90 @@ -59,7 +59,8 @@ SUBROUTINE surf_couple_rivers( & rivers_type, l_riv_overbank, & l_vary_sea_level, & ! UM only - l_inland, rivers_um_trip, rivers_first + l_inland_outflow, rivers_um_trip, & + rivers_first USE jules_model_environment_mod, ONLY: l_oasis_rivers USE timestep_mod, ONLY: timestep @@ -291,7 +292,7 @@ SUBROUTINE surf_couple_rivers( & #if defined(UM_JULES) !Pass inland flow to soil moisture every timestep -IF ( .NOT. l_inland) THEN +IF ( .NOT. l_inland_outflow) THEN DO j = 1, rows DO i = 1, row_length inlandout_atmos(i,j) = 0.0 @@ -675,7 +676,7 @@ SUBROUTINE surf_couple_rivers( & #if defined(UM_JULES) !compress inland basin outputs to land points only - IF (l_inland) THEN + IF (l_inland_outflow) THEN DO l = 1,land_pts j = (land_index(l) - 1) / row_length +1 i = land_index(l) - (j-1) * row_length diff --git a/src/control/standalone/check_unavailable_options_mod.F90 b/src/control/standalone/check_unavailable_options_mod.F90 index 05ed5893..198871ea 100644 --- a/src/control/standalone/check_unavailable_options_mod.F90 +++ b/src/control/standalone/check_unavailable_options_mod.F90 @@ -18,11 +18,11 @@ SUBROUTINE check_unavailable_options() USE jules_print_mgr, ONLY: jules_message, jules_print, jules_format, & PrNorm, newline USE missing_data_mod, ONLY: imdi -USE jules_hydrology_mod, ONLY: l_var_rainfrac +USE jules_hydrology_mod, ONLY: l_var_rainfrac, l_inland USE jules_surface_mod, ONLY: formdrag, no_drag, i_modiscopt, iscrntdiag, & srf_ex_cnv_gust, l_vary_z0m_soil USE jules_surface_types_mod, ONLY: tile_map_ids, ntype -USE jules_rivers_mod, ONLY: i_river_vn, l_inland, rivers_um_trip, & +USE jules_rivers_mod, ONLY: i_river_vn, rivers_um_trip, & trip_globe_shape USE jules_radiation_mod, ONLY: l_sea_alb_var_chl, l_dolr_land_black USE jules_vegetation_mod, ONLY: l_nrun_mid_trif, l_trif_init_accum @@ -38,6 +38,15 @@ SUBROUTINE check_unavailable_options() error_sum = 0 +! jules_hydrology +IF ( l_inland ) THEN + error_sum = error_sum + 1 + WRITE(jules_message,'(I0,A,L1)') error_sum, & + ": Re-routing inland basin water back to soil moisture is not " // & + " required (must not be selected) by standalone. l_inland = ", l_inland + CALL jules_print(RoutineName, jules_message, level = PrNorm) +END IF + ! jules_surface IF ( formdrag /= no_drag ) THEN error_sum = error_sum + 1 @@ -102,14 +111,6 @@ SUBROUTINE check_unavailable_options() CALL jules_print(RoutineName, jules_message, level = PrNorm) END IF -IF ( l_inland ) THEN - error_sum = error_sum + 1 - WRITE(jules_message,'(I0,A,L1)') error_sum, & - ": Re-routing inland basin water back to soil moisture is not " // & - " required (must not be selected) by standalone. l_inland = ", l_inland - CALL jules_print(RoutineName, jules_message, level = PrNorm) -END IF - IF ( trip_globe_shape /= imdi ) THEN error_sum = error_sum + 1 WRITE(jules_message,'(I0,A,L1)') error_sum, & diff --git a/src/initialisation/rivers-standalone/check_compatible_options_mod.F90 b/src/initialisation/rivers-standalone/check_compatible_options_mod.F90 index 99acfdf4..fef06851 100644 --- a/src/initialisation/rivers-standalone/check_compatible_options_mod.F90 +++ b/src/initialisation/rivers-standalone/check_compatible_options_mod.F90 @@ -24,7 +24,7 @@ SUBROUTINE check_compatible_options() !----------------------------------------------------------------------------- USE model_time_mod, ONLY: max_spinup_cycles - +USE check_compatible_options_rivers_mod, ONLY: check_compatible_options_rivers USE ereport_mod, ONLY: ereport USE jules_print_mgr, ONLY: jules_print, jules_message @@ -47,6 +47,9 @@ SUBROUTINE check_compatible_options() CALL jules_print(routinename, jules_message) END IF +! Call rivers compatible options routine +CALL check_compatible_options_rivers(ERROR) + IF ( ERROR /= 0 ) & CALL ereport(routinename, ERROR, & "Error(s) found in enabled science options and/or " // & diff --git a/src/initialisation/shared/check_compatible_options_mod.F90 b/src/initialisation/shared/check_compatible_options_mod.F90 index 40fdee02..ff64bbec 100644 --- a/src/initialisation/shared/check_compatible_options_mod.F90 +++ b/src/initialisation/shared/check_compatible_options_mod.F90 @@ -27,11 +27,12 @@ SUBROUTINE check_compatible_options(call_type) USE jules_irrig_mod, ONLY: l_irrig_dmd, l_irrig_limit, & nstep_irrig, irrig_option, & tile_based_irrigation +USE jules_hydrology_mod, ONLY: l_inland USE jules_model_environment_mod, ONLY: lsm_id, cable USE jules_radiation_mod, ONLY: l_albedo_obs, l_snow_albedo, & l_albedo_obs -USE jules_rivers_mod, ONLY: i_river_vn, l_rivers, l_riv_overbank, & - rivers_camaflood, rivers_rfm +USE jules_rivers_mod, ONLY: i_river_vn, l_rivers, rivers_um_trip, & + l_inland_outflow USE jules_soil_biogeochem_mod, ONLY: l_layeredc, z_burn_max USE jules_soil_mod, ONLY: l_tile_soil, l_holdwater USE jules_surface_mod, ONLY: l_flake_model, l_aggregate @@ -56,6 +57,7 @@ SUBROUTINE check_compatible_options(call_type) jules_format, newline USE errormessagelength_mod, ONLY: errormessagelength +USE check_compatible_options_rivers_mod, ONLY: check_compatible_options_rivers USE check_unavailable_options_mod, ONLY: check_unavailable_options USE jules_water_tracers_mod, ONLY: l_wtrac_jls USE wtrac_check_options_mod, ONLY: wtrac_check_options @@ -295,44 +297,14 @@ SUBROUTINE check_compatible_options(call_type) CALL wtrac_check_options(ERROR) END IF -! Overbank inundation can only be used if rivers are modelled. -IF ( l_riv_overbank .AND. .NOT. l_rivers ) THEN - ERROR = 1 - CALL jules_print(routinename, & - "Overbank inundation can only be used if river routing is modelled.") +! UM-TRIP inland outflow soil moisture correction (l_inland) requires +! inland outflow to be calculated. Internal switch needs to be set. +IF ( i_river_vn == rivers_um_trip .AND. l_inland ) THEN + l_inland_outflow = .TRUE. END IF -! Check that a suitable combination of river routing and overbank models is -! selected. -SELECT CASE ( overbank_model ) -CASE ( overbank_simple, overbank_simple_rosgen, overbank_hypsometric ) - ! Diagnostic overbank inundation can currently only be used with RFM river - ! routing. - IF ( i_river_vn /= rivers_rfm ) THEN - ERROR = 1 - CALL jules_print(routinename, & - "Diagnostic overbank inundation can only be used " // & - "with RFM river routing.") - END IF -CASE ( overbank_quantiles ) - ! Only CaMa-Flood can use elevation quantiles. - IF ( i_river_vn /= rivers_camaflood ) THEN - ERROR = 1 - CALL jules_print(routinename, & - "Elevation quantiles can only be used with CaMa-Flood routing.") - END IF -END SELECT - -! While CaMa-Flood routing is in development it can only be used with overbank -! inundation using quantiles. -IF ( l_rivers .AND. i_river_vn == rivers_camaflood .AND. & - ( .NOT. l_riv_overbank .OR. .NOT. overbank_model == overbank_quantiles ) & - ) THEN - ERROR = 1 - CALL jules_print(routinename, & - "CaMa-Flood routing can only be used with overbank " // & - "inundation using quantiles.") -END IF +! Call rivers compatible options routine +CALL check_compatible_options_rivers(ERROR) IF ( ERROR /= 0 ) THEN CALL ereport(routinename, ERROR, & diff --git a/src/initialisation/shared/check_compatible_options_rivers_mod.F90 b/src/initialisation/shared/check_compatible_options_rivers_mod.F90 new file mode 100644 index 00000000..05d9f0e9 --- /dev/null +++ b/src/initialisation/shared/check_compatible_options_rivers_mod.F90 @@ -0,0 +1,119 @@ +! *****************************COPYRIGHT************************************** +! (C) Crown copyright Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +! *****************************COPYRIGHT************************************** +MODULE check_compatible_options_rivers_mod + +IMPLICIT NONE + +CONTAINS + +SUBROUTINE check_compatible_options_rivers( ERROR ) +!----------------------------------------------------------------------------- +! Description: +! Checks that the enabled Rivers schemes are compatible. Refer to the JULES +! user manual for more information. +! +! Code Owner: Please refer to ModuleLeaders.txt +! This file belongs in TECHNICAL +! +! Code Description: +! Language: Fortran 90. +! This code is written to JULES coding standards v1. +!----------------------------------------------------------------------------- + +USE jules_rivers_mod, ONLY: i_river_vn, l_rivers, l_riv_overbank, & + rivers_camaflood, rivers_um_trip, & + rivers_rfm, rivers_trip, & + l_inland_outflow +USE jules_model_environment_mod, ONLY: lsm_id, rivers +USE overbank_inundation_mod, ONLY: overbank_hypsometric, overbank_model, & + overbank_quantiles, overbank_simple, & + overbank_simple_rosgen +USE coastal, ONLY: l_use_land_fraction + +USE jules_print_mgr, ONLY: jules_print, jules_message + +IMPLICIT NONE + +! Arguments +INTEGER, INTENT(IN OUT) :: ERROR ! Error indicator + +! Local +CHARACTER(LEN=*), PARAMETER :: routinename='CHECK_COMPATIBLE_OPTIONS_RIVERS' + +! Overbank inundation can only be used if rivers are modelled. +IF ( l_riv_overbank .AND. .NOT. l_rivers ) THEN + ERROR = 1 + CALL jules_print(routinename, & + "Overbank inundation can only be used if river routing is modelled.") +END IF + +! Check that a suitable combination of river routing and overbank models is +! selected. +SELECT CASE ( overbank_model ) +CASE ( overbank_simple, overbank_simple_rosgen, overbank_hypsometric ) + ! Diagnostic overbank inundation can currently only be used with RFM river + ! routing. + IF ( i_river_vn /= rivers_rfm ) THEN + ERROR = 1 + CALL jules_print(routinename, & + "Diagnostic overbank inundation can only be used " // & + "with RFM river routing.") + END IF +CASE ( overbank_quantiles ) + ! Only CaMa-Flood can use elevation quantiles. + IF ( i_river_vn /= rivers_camaflood ) THEN + ERROR = 1 + CALL jules_print(routinename, & + "Elevation quantiles can only be used with CaMa-Flood routing.") + END IF +END SELECT + +! While CaMa-Flood routing is in development it can only be used with overbank +! inundation using quantiles. +IF ( l_rivers .AND. i_river_vn == rivers_camaflood .AND. & + ( .NOT. l_riv_overbank .OR. .NOT. overbank_model == overbank_quantiles ) & + ) THEN + ERROR = 1 + CALL jules_print(routinename, & + "CaMa-Flood routing can only be used with overbank " // & + "inundation using quantiles.") +END IF + +! Check land fractions are only used in rivers-standalone when inland outflow +! calculation is requested. +IF ( l_use_land_fraction ) THEN + IF ( lsm_id /= rivers ) THEN + ERROR = 1 + ELSE + SELECT CASE ( i_river_vn ) + CASE ( rivers_trip ) + IF ( .NOT. l_inland_outflow ) ERROR = 1 + CASE DEFAULT + ERROR = 1 + END SELECT + END IF + WRITE(jules_message,'(A,1x,L1,2(1x,A,I0))') & + "Land fractions (l_use_land_fraction) only used to calculate inland " // & + "outflow in Rivers-standalone; l_inland_outflow = ", l_inland_outflow, & + "lsm_id = ", lsm_id, "i_river_vn = ", i_river_vn + CALL jules_print(routinename, jules_message) +END IF + +IF ( l_inland_outflow ) THEN + SELECT CASE ( i_river_vn ) + CASE ( rivers_trip, rivers_um_trip ) + ! Inland outflow calculation allowed for these + CASE DEFAULT + ERROR = 1 + WRITE(jules_message,'(A,1x,I0)') & + "Inland outflow can only be calculated by TRIP; i_river_vn = ", i_river_vn + CALL jules_print(routinename, jules_message) + END SELECT +END IF + +END SUBROUTINE check_compatible_options_rivers +END MODULE check_compatible_options_rivers_mod + diff --git a/src/initialisation/standalone/ancillaries/init_ancillaries_coupling_mod.F90 b/src/initialisation/standalone/ancillaries/init_ancillaries_coupling_mod.F90 index 94967496..2eacb777 100644 --- a/src/initialisation/standalone/ancillaries/init_ancillaries_coupling_mod.F90 +++ b/src/initialisation/standalone/ancillaries/init_ancillaries_coupling_mod.F90 @@ -25,12 +25,13 @@ MODULE init_ancillaries_coupling_mod SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & direction_grid, & rivers_outflow_number, & - rivers_storage ) + rivers_storage, land_fraction_2d ) USE jules_rivers_mod, ONLY: nx_rivers, ny_rivers, n_rivers, i_river_vn, & - rivers_trip, l_inland, l_outflow_per_river, & - l_init_storage + rivers_trip, l_inland_outflow, & + l_outflow_per_river, l_init_storage USE jules_rivers_props_mod, ONLY: l_ignore_ancil_rivers_check +USE coastal, ONLY: l_use_land_fraction USE missing_data_mod, ONLY: imdi USE string_utils_mod, ONLY: to_string USE um_types, ONLY: real_jlslsm @@ -58,6 +59,10 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & rivers_storage(nx_rivers,ny_rivers) ! River routing gridbox river storage (kg). +REAL(KIND=real_jlslsm), INTENT(IN) :: & + land_fraction_2d(nx_rivers,ny_rivers) + ! Fraction of land in each grid box + !------------------------------------------------------------------------------ ! Array arguments with INTENT(IN OUT) !------------------------------------------------------------------------------ @@ -75,6 +80,8 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & ! Field to be checked for consistency check_river_ancil_ctrl(:,:), & ! Field used as a control to check for consistency + check_land_fractions(:,:), & + ! Field used to check land fractions for conststency match(:,:) ! Difference between test and control @@ -85,6 +92,7 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & ALLOCATE ( check_river_ancil_test(nx_rivers,ny_rivers) ) ALLOCATE ( check_river_ancil_ctrl(nx_rivers,ny_rivers) ) +ALLOCATE ( check_land_fractions(nx_rivers,ny_rivers) ) ALLOCATE ( match(nx_rivers,ny_rivers) ) IF ( l_outflow_per_river ) THEN @@ -115,19 +123,19 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & ! The River routing ancillary includes inland basin flow points. The River ! number ancillary supports inland basin flow for water conservation and hence ! each inland basin has an accompanying River number, although inland basin - ! water conservation is not currently implemented. When l_inland=F, outflow is - ! not calculated for inland basins hence we don't include it in the outflow - ! per river calculation. + ! water conservation is not currently implemented. When l_inland_outflow=F, + ! outflow is not calculated for inland basins hence we don't include it in the + ! outflow per river calculation. check_river_ancil_ctrl(:,:) = 0 WHERE ( direction_grid(:,:) == dir_inland_drainage ) check_river_ancil_ctrl(:,:) = 1 END WHERE ! Setting the river number to zero for inland basins, excludes them from the ! outflow per river calculation. - IF ( .NOT. l_inland ) THEN + IF ( .NOT. l_inland_outflow ) THEN CALL log_info(RoutineName, & 'Inland basins will not be included in outflow per river ' // & - 'calculation. l_inland = F.') + 'calculation. l_inland_outflow = F.') WHERE ( check_river_ancil_ctrl(:,:) == 1 ) rivers_outflow_number(:,:) = 0 END WHERE @@ -188,7 +196,7 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & IF ( ERROR /= 0 ) THEN WRITE(jules_message, *) & - 'River routine & storage ancillary is not consistent. ' // & + 'River routing & storage ancillary are not consistent. ' // & 'Number of inconsistent points = ', ERROR CALL log_error(RoutineName, jules_message) ELSE @@ -197,7 +205,53 @@ SUBROUTINE check_ancil_rivers( dir_mouth, dir_inland_drainage, & END IF END IF -DEALLOCATE( check_river_ancil_test, check_river_ancil_ctrl, match ) +IF ( l_use_land_fraction) THEN + ! Make sure there are no land fractions at non-river points. + check_land_fractions(:,:) = 0 + WHERE ( land_fraction_2d(:,:) > 0 ) + check_land_fractions(:,:) = 1 ! Set points with land fractions to 1 + END WHERE + WHERE ( direction_grid(:,:) > 0 ) + check_land_fractions(:,:) = 0 ! Set points with rivers back to 0 + END WHERE + + ERROR = SUM( check_land_fractions ) + + IF ( ERROR /= 0 ) THEN + WRITE(jules_message, *) & + 'There are some land fractions at non-river points. ' // & + 'Number of inconsistent points = ', ERROR + CALL log_fatal(RoutineName, jules_message) + ELSE + CALL log_info(RoutineName, & + 'All non-zero land fraction points are modelled by rivers') + END IF + + ! Make sure there are no river direction points (not outflow) + ! at zero land fraction points. + check_land_fractions(:,:) = 0 + WHERE ( direction_grid(:,:) > 0 .AND. direction_grid(:,:) < dir_mouth ) + check_land_fractions(:,:) = 1 ! Set points with river directions to 1 + END WHERE + WHERE ( land_fraction_2d(:,:) > 0 ) + check_land_fractions(:,:) = 0 ! Set points with land fractions back to 0 + END WHERE + + ERROR = SUM( check_land_fractions ) + + IF ( ERROR /= 0 ) THEN + WRITE(jules_message, *) & + 'There are some river direction points at zero land fraction points. '//& + 'Number of inconsistent points = ', ERROR + CALL log_fatal(RoutineName, jules_message) + ELSE + CALL log_info(RoutineName, & + 'All river direction points have a non-zero land fraction.') + END IF +END IF + +DEALLOCATE( check_river_ancil_test, check_river_ancil_ctrl, match, & + check_land_fractions ) END SUBROUTINE check_ancil_rivers diff --git a/src/initialisation/standalone/ancillaries/init_rivers_process_data_mod.F90 b/src/initialisation/standalone/ancillaries/init_rivers_process_data_mod.F90 index 3f637d79..d2b50cfe 100644 --- a/src/initialisation/standalone/ancillaries/init_rivers_process_data_mod.F90 +++ b/src/initialisation/standalone/ancillaries/init_rivers_process_data_mod.F90 @@ -19,6 +19,7 @@ MODULE init_rivers_process_data_mod USE jules_rivers_mod, ONLY: inland_drainage, river_mouth, sea USE logging_mod, ONLY: log_fatal, log_info, log_warn +USE jules_print_mgr, ONLY: jules_message USE string_utils_mod, ONLY: to_string @@ -139,6 +140,8 @@ SUBROUTINE process_rivers_data( l_use_direction, rivers, rivers_data ) USE rivers_utils, ONLY: rivers_earth_area +USE coastal, ONLY: flandg, l_use_land_fraction + IMPLICIT NONE !------------------------------------------------------------------------------ @@ -269,6 +272,14 @@ SUBROUTINE process_rivers_data( l_use_direction, rivers, rivers_data ) l_reverse_y, rivers_reglatlon, rivers%global_land_index, & global_proj_x_land_work, river_xbound, river_ybound ) + !---------------------------------------------------------------------------- + ! Copy the land fraction from the land grid to the rivers grid. + ! We have already checked that the two grids have the same size. + !---------------------------------------------------------------------------- + IF ( l_use_land_fraction ) THEN + rivers%land_fraction_2d(:,:) = flandg(:,:) + END IF + !---------------------------------------------------------------------------- ! If necessary remap from river input grid to river grid. This handles river ! routing and overbank inundation variables. @@ -355,7 +366,7 @@ SUBROUTINE process_rivers_data( l_use_direction, rivers, rivers_data ) IF ( l_outflow_per_river .OR. l_init_storage ) THEN CALL check_ancil_rivers( dir_mouth, dir_inland_drainage, & direction_grid, rivers%rivers_outflow_number, & - rivers%rivers_storage ) + rivers%rivers_storage, rivers%land_fraction_2d ) END IF END IF ! is_master @@ -1138,6 +1149,10 @@ SUBROUTINE remap_ancil( nx_rivers, ny_rivers, rivers_dx, & CALL remap_field( nx_rivers, ny_rivers, rivers_dx, l_shift_x, l_reverse_y, & rivers%rivers_xgrid, rivers%rivers_storage ) +CASE ( 'land_fraction_2d' ) + CALL remap_field( nx_rivers, ny_rivers, rivers_dx, l_shift_x, l_reverse_y, & + rivers%rivers_xgrid, rivers%land_fraction_2d ) + CASE ( 'sequence' ) CALL remap_field( nx_rivers, ny_rivers, rivers_dx, l_shift_x, l_reverse_y, & rivers%rivers_xgrid, rivers%rivers_seq ) @@ -2219,6 +2234,8 @@ SUBROUTINE set_river_point_values( rivers_x1_input, & logn_mean_rp, logn_stdev_rp, overbank_hypsometric, & overbank_model, overbank_quantiles +USE coastal, ONLY: l_use_land_fraction + IMPLICIT NONE !------------------------------------------------------------------------------ @@ -2267,8 +2284,11 @@ SUBROUTINE set_river_point_values( rivers_x1_input, & irx, iry, ix, iy ! Index variables. +LOGICAL :: & + frac_chck(np_rivers) + ! Flag indicating coastal river points i.e. land fraction < 1.0. + !end of header -!------------------------------------------------------------------------------ !------------------------------------------------------------------------------ ! Scan the river grid for river points and add these to the 1-D river point @@ -2420,6 +2440,14 @@ SUBROUTINE set_river_point_values( rivers_x1_input, & NINT(rivers%rivers_outflow_number(irx,iry)) END IF + !------------------------------------------------------------------------ + ! If the grids are compatible then copy across the land fraction into + ! the rivers grid and test whether the model is using fractional land. + !------------------------------------------------------------------------ + IF ( l_use_land_fraction ) THEN + rivers%land_fraction_rp(ip) = rivers%land_fraction_2d(ix,iy) + END IF + !------------------------------------------------------------------------ ! Set overbank inundation ancillary variables, if required. !------------------------------------------------------------------------ @@ -2439,6 +2467,18 @@ SUBROUTINE set_river_point_values( rivers_x1_input, & END DO ! iy END DO ! ix +! Confirm that land fractions are being used +IF ( l_use_land_fraction ) THEN + frac_chck(:) = ( ( 1.0 - rivers%land_fraction_rp(:) ) > EPSILON(1.0) ) + IF ( ANY ( frac_chck(:) ) ) THEN + WRITE(jules_message,*) COUNT ( frac_chck(:) ), & + " coastal points have been detected." + CALL log_info(RoutineName, jules_message) + END IF +ELSE + CALL log_info(RoutineName, "Land fractions are not being used") +END IF + END SUBROUTINE set_river_point_values diff --git a/src/initialisation/standalone/ancillaries/init_rivers_props_mod.F90 b/src/initialisation/standalone/ancillaries/init_rivers_props_mod.F90 index 85d8774e..541870ba 100644 --- a/src/initialisation/standalone/ancillaries/init_rivers_props_mod.F90 +++ b/src/initialisation/standalone/ancillaries/init_rivers_props_mod.F90 @@ -61,6 +61,7 @@ SUBROUTINE init_rivers_props(rivers, rivers_data) x_dim_name, y_dim_name, is_climatology USE logging_mod, ONLY: log_fatal, log_info +USE jules_print_mgr, ONLY: jules_message USE model_grid_mod, ONLY: global_land_pts, l_coord_latlon @@ -69,6 +70,7 @@ SUBROUTINE init_rivers_props(rivers, rivers_data) USE overbank_inundation_mod, ONLY: & init_rosgen_vars, overbank_model, overbank_simple_rosgen, & overbank_hypsometric, overbank_quantiles +USE coastal, ONLY: l_use_land_fraction USE parallel_mod, ONLY: is_master_task, master_task_id @@ -145,6 +147,7 @@ SUBROUTINE init_rivers_props(rivers, rivers_data) use_sub_local ! A local copy of use_subgrid. + !------------------------------------------------------------------------------ ! Local array variables (not in namelist). !------------------------------------------------------------------------------ @@ -383,6 +386,21 @@ SUBROUTINE init_rivers_props(rivers, rivers_data) CALL mpi_bcast( l_init_storage, 1, mpi_logical, master_task_id, & mpi_local_comm, ERROR ) +!------------------------------------------------------------------------------ +! Check to see if the 2d rivers grid (dummy_grid) and the 2d land grid +! (local_grid) are the same. If so then we can copy the land fractions +! across from the land grid to the rivers grid in process_rivers_data. +!------------------------------------------------------------------------------ +IF ( l_use_land_fraction ) THEN + IF ( ( local_grid%nx /= dummy_grid%nx ) .OR. & + ( local_grid%ny /= dummy_grid%ny ) ) THEN + WRITE(jules_message,*) & + "JULES model grid must be the same as the 2D Rivers grid, " // & + "when l_use_land_fraction = T" + CALL log_fatal( RoutineName, jules_message ) + END IF +END IF + !------------------------------------------------------------------------------ ! Process the ancillary fields to identify river points and populate fields ! on river points. diff --git a/src/initialisation/standalone/ancillaries/jules_rivers_props_mod.F90 b/src/initialisation/standalone/ancillaries/jules_rivers_props_mod.F90 index a48715f2..d847d1a0 100644 --- a/src/initialisation/standalone/ancillaries/jules_rivers_props_mod.F90 +++ b/src/initialisation/standalone/ancillaries/jules_rivers_props_mod.F90 @@ -501,6 +501,8 @@ SUBROUTINE allocate_river_vars_grid( global_land_pts, nx_rivers, ny_rivers, & error_sum = error_sum + ERROR ALLOCATE( river_manning_grid(nx_size, ny_size), STAT = ERROR ) error_sum = error_sum + ERROR +ALLOCATE( rivers_data%land_fraction_2d(nx_rivers, ny_rivers), STAT = ERROR ) +error_sum = error_sum + ERROR ! CaMa-Flood variables that depend on a further switch. IF ( i_river_vn == rivers_camaflood .AND. l_sea_level ) THEN @@ -583,6 +585,7 @@ SUBROUTINE allocate_river_vars_grid( global_land_pts, nx_rivers, ny_rivers, & rivers_data%rivers_seq(:,:) = rmdi rivers_data%rivers_outflow_number(:,:) = rmdi rivers_data%rivers_storage(:,:) = rmdi +rivers_data%land_fraction_2d(:,:) = rmdi ! Associate pointers rivers%rivers_dir => rivers_data%rivers_dir @@ -593,6 +596,7 @@ SUBROUTINE allocate_river_vars_grid( global_land_pts, nx_rivers, ny_rivers, & rivers%rivers_seq => rivers_data%rivers_seq rivers%rivers_outflow_number => rivers_data%rivers_outflow_number rivers%rivers_storage => rivers_data%rivers_storage +rivers%land_fraction_2d => rivers_data%land_fraction_2d RETURN END SUBROUTINE allocate_river_vars_grid @@ -681,12 +685,16 @@ SUBROUTINE allocate_rivers_vars_rp( np_rivers, rivers, rivers_data ) error_sum = error_sum + ERROR ALLOCATE(rivers_data%rivers_y_coord_rp(np_rivers_tmp), STAT = ERROR) error_sum = error_sum + ERROR +ALLOCATE(rivers_data%land_fraction_rp(np_rivers), STAT = ERROR) +error_sum = error_sum + ERROR ! Fluxes. ALLOCATE(rivers_data%rflow_rp(np_rivers_tmp), STAT = ERROR) error_sum = error_sum + ERROR ALLOCATE(rivers_data%rivers_outflow_rp(np_rivers), STAT = ERROR) error_sum = error_sum + ERROR +ALLOCATE(rivers_data%inland_outflow_rp(np_rivers), STAT = ERROR) +error_sum = error_sum + ERROR ALLOCATE(rivers_data%rrun_rp(np_rivers_tmp), STAT = ERROR) error_sum = error_sum + ERROR ALLOCATE(rivers_data%rrun_sub_surf_rp(np_rivers_tmp), STAT = ERROR) @@ -888,12 +896,14 @@ SUBROUTINE allocate_rivers_vars_rp( np_rivers, rivers, rivers_data ) rivers_data%rivers_next_rp(:) = imdi rivers_data%rivers_x_coord_rp(:) = rmdi rivers_data%rivers_y_coord_rp(:) = rmdi +rivers_data%land_fraction_rp(:) = 1.0 ! Fluxes. rivers_data%rflow_rp(:) = 0.0 rivers_data%rivers_outflow_rp(:) = rmdi rivers_data%rrun_rp(:) = 0.0 rivers_data%rrun_sub_surf_rp(:) = 0.0 rivers_data%rrun_surf_rp(:) = 0.0 +rivers_data%inland_outflow_rp(:) = rmdi ! Initialise regridding variable. rivers_data%map_river_to_land_points(:) = imdi @@ -959,12 +969,14 @@ SUBROUTINE allocate_rivers_vars_rp( np_rivers, rivers, rivers_data ) rivers%rivers_next_rp => rivers_data%rivers_next_rp rivers%rivers_x_coord_rp => rivers_data%rivers_x_coord_rp rivers%rivers_y_coord_rp => rivers_data%rivers_y_coord_rp +rivers%land_fraction_rp => rivers_data%land_fraction_rp ! Fluxes. rivers%rflow_rp => rivers_data%rflow_rp rivers%rivers_outflow_rp => rivers_data%rivers_outflow_rp rivers%rrun_rp => rivers_data%rrun_rp rivers%rrun_sub_surf_rp => rivers_data%rrun_sub_surf_rp rivers%rrun_surf_rp => rivers_data%rrun_surf_rp +rivers%inland_outflow_rp => rivers_data%inland_outflow_rp ! Associate pointers for regridding variable. rivers%map_river_to_land_points => rivers_data%map_river_to_land_points diff --git a/src/initialisation/standalone/grid/init_land_frac_mod.F90 b/src/initialisation/standalone/grid/init_land_frac_mod.F90 index 09af073a..54ae1341 100644 --- a/src/initialisation/standalone/grid/init_land_frac_mod.F90 +++ b/src/initialisation/standalone/grid/init_land_frac_mod.F90 @@ -16,7 +16,7 @@ SUBROUTINE init_land_frac() USE string_utils_mod, ONLY: to_string -USE coastal, ONLY: flandg +USE coastal, ONLY: flandg, l_use_land_fraction USE input_mod, ONLY: input_grid => grid @@ -49,7 +49,8 @@ SUBROUTINE init_land_frac() !----------------------------------------------------------------------------- CHARACTER(LEN=max_file_name_len) :: FILE CHARACTER(LEN=max_sdf_name_len) :: land_frac_name -NAMELIST / jules_land_frac/ FILE, land_frac_name + +NAMELIST /jules_land_frac/ FILE, land_frac_name, l_use_land_fraction !----------------------------------------------------------------------------- ! Initialise @@ -97,13 +98,15 @@ SUBROUTINE init_land_frac() is_climatology = [ .FALSE. ]) END IF -! For now, make sure that land fraction is either 1.0 or 0.0 - until JULES -! can deal with coastal tiling -WHERE ( flandg > EPSILON(1.0) ) - flandg = 1.0 -ELSE WHERE - flandg = 0.0 -END WHERE +IF ( .NOT. l_use_land_fraction ) THEN + ! For now, make sure that land fraction is either 1.0 or 0.0 - until JULES + ! can deal with coastal tiling + WHERE ( flandg > EPSILON(1.0) ) + flandg = 1.0 + ELSE WHERE + flandg = 0.0 + END WHERE +END IF RETURN diff --git a/src/initialisation/standalone/init_output_mod.F90 b/src/initialisation/standalone/init_output_mod.F90 index a69129c6..f35234c0 100644 --- a/src/initialisation/standalone/init_output_mod.F90 +++ b/src/initialisation/standalone/init_output_mod.F90 @@ -347,7 +347,7 @@ SUBROUTINE check_output_vars( nvars, var, var_name, output_type, & l_water_resources, l_water_transfers, no_model, nr_gwater_model USE jules_rivers_mod, ONLY: l_rivers, l_riv_overbank, l_outflow_per_river, & - i_river_vn, rivers_camaflood, rivers_rfm, rivers_trip + i_river_vn, rivers_camaflood, rivers_rfm, rivers_trip, l_inland_outflow USE jules_deposition_mod, ONLY: l_deposition, l_deposition_flux @@ -431,6 +431,25 @@ SUBROUTINE check_output_vars( nvars, var, var_name, output_type, & 'outflow_per_river requested without a river number ancillary specified.' CALL log_fatal(RoutineName, jules_message) END IF + + IF ( ANY( var(:) == 'inland_outflow_rp' ) ) THEN + ! The inland basin flow is used for water conservation purposes + ! and as such alters the calculation of river flow. To avoid + ! super-saturation, inflow (surface & sub-surface runoff) is sent + ! to the ocean via the closest large river favouring those with + ! larger climatological outflows. This diagnostic when coupled + ! is passed to the soil moisture. When uncoupled, ensure its + ! affect on river flow calculations is known via a warning. + IF (.NOT. l_inland_outflow) THEN + CALL log_warn( RoutineName, & + "Adding the inland_outflow_rp diagnostic " // & + "will alter the flow going into inland basin flow " // & + "points, changing the calculation of river flow and " // & + "its associated diagnostics." ) + END IF + + l_inland_outflow = .TRUE. + END IF END IF !----------------------------------------------------------------------------- diff --git a/src/io/dump/get_dim_info_mod.F90 b/src/io/dump/get_dim_info_mod.F90 index a23e7b27..be189123 100644 --- a/src/io/dump/get_dim_info_mod.F90 +++ b/src/io/dump/get_dim_info_mod.F90 @@ -561,7 +561,7 @@ SUBROUTINE get_dim_info_rivers( l_reading, identifier, ndims, dim_sizes, & CASE ( 'rivers_lat_rp', 'rivers_lon_rp', 'rivers_x_coord_rp', & 'rivers_y_coord_rp', 'rivers_sto_rp', 'rfm_surfstore_rp', & 'rfm_substore_rp', 'rfm_flowin_rp', 'rfm_bflowin_rp', & - 'rivers_outflow_rp', 'outflow_per_river', & + 'rivers_outflow_rp', 'outflow_per_river', 'inland_outflow_rp', & 'flood_flow', 'flood_flow_prev', 'flood_storage', 'flood_storage_prev', & 'river_channel_flow', 'river_channel_storage', 'river_depth_prev', & 'river_flow_prev' & diff --git a/src/io/dump/read_dump_mod.F90 b/src/io/dump/read_dump_mod.F90 index fa78cbb2..fcfd4493 100644 --- a/src/io/dump/read_dump_mod.F90 +++ b/src/io/dump/read_dump_mod.F90 @@ -987,7 +987,7 @@ SUBROUTINE read_dump(file_name, identifiers) 'flood_storage_prev', 'rfm_bflowin_rp', 'rfm_flowin_rp', & 'rfm_substore_rp', 'rfm_surfstore_rp', 'river_channel_storage', & 'river_channel_flow', 'river_depth_prev', 'river_flow_prev', & - 'rivers_outflow_rp', 'rivers_sto_rp' ) + 'rivers_outflow_rp', 'rivers_sto_rp', 'inland_outflow_rp' ) ! nothing to do !------------------------------------------------------------------------- diff --git a/src/io/dump/read_dump_var_rivers_mod.F90 b/src/io/dump/read_dump_var_rivers_mod.F90 index aa53f957..2045b2b8 100644 --- a/src/io/dump/read_dump_var_rivers_mod.F90 +++ b/src/io/dump/read_dump_var_rivers_mod.F90 @@ -97,6 +97,9 @@ SUBROUTINE read_dump_var_rivers( identifier, FILE, var_id ) CASE ( 'rivers_sto_rp' ) CALL file_read_var(FILE, var_id, rivers%rivers_sto_rp) +CASE ( 'inland_outflow_rp' ) + CALL file_read_var(FILE, var_id, rivers%inland_outflow_rp) + CASE DEFAULT CALL log_fatal( RoutineName, & "Unexpected variable in dump - " // TRIM(identifier) ) diff --git a/src/io/dump/required_vars_for_rivers_mod.F90 b/src/io/dump/required_vars_for_rivers_mod.F90 index 47771afe..8bbbe4a4 100644 --- a/src/io/dump/required_vars_for_rivers_mod.F90 +++ b/src/io/dump/required_vars_for_rivers_mod.F90 @@ -16,7 +16,8 @@ SUBROUTINE required_vars_for_rivers( nvars, identifiers, & read_or_write_dump ) USE jules_rivers_mod, ONLY: l_outflow_per_river, i_river_vn, rivers_camaflood, & - rivers_rfm, rivers_trip, l_init_storage + rivers_rfm, rivers_trip, l_init_storage, & + l_inland_outflow USE logging_mod, ONLY: log_warn @@ -84,7 +85,16 @@ SUBROUTINE required_vars_for_rivers( nvars, identifiers, & CALL add_to_list( 'rivers_outflow_rp', nvars, identifiers ) ELSE CALL log_warn( RoutineName, & - "rivers_outflow_rp will be initialised to zero.") + "rivers_outflow_rp will be initialised to rmdi.") + END IF +END IF + +IF ( l_inland_outflow ) THEN + IF ( read_or_write_dump_local ) THEN + CALL add_to_list( 'inland_outflow_rp', nvars, identifiers ) + ELSE + CALL log_warn( RoutineName, & + "inland_outflow_rp will be initialised to rmdi.") END IF END IF diff --git a/src/io/dump/write_dump_mod.F90 b/src/io/dump/write_dump_mod.F90 index 2c5e6b40..55a56520 100644 --- a/src/io/dump/write_dump_mod.F90 +++ b/src/io/dump/write_dump_mod.F90 @@ -680,6 +680,7 @@ SUBROUTINE write_dump() 'rivers_x_coord_rp', 'rivers_y_coord_rp', & 'rfm_surfstore_rp', 'rfm_substore_rp', & 'rfm_flowin_rp', 'rfm_bflowin_rp', 'rivers_outflow_rp', & + 'inland_outflow_rp', & 'flood_flow', 'flood_flow_prev', 'flood_storage', & 'flood_storage_prev', 'river_channel_flow', 'river_channel_storage', & 'river_depth_prev', 'river_flow_prev' ) diff --git a/src/io/dump/write_dump_var_rivers_mod.F90 b/src/io/dump/write_dump_var_rivers_mod.F90 index cf86b15e..20475240 100644 --- a/src/io/dump/write_dump_var_rivers_mod.F90 +++ b/src/io/dump/write_dump_var_rivers_mod.F90 @@ -110,6 +110,9 @@ SUBROUTINE write_dump_var_rivers( identifier, FILE, var_id ) CASE ( 'rivers_y_coord_rp' ) CALL file_write_var(FILE, var_id, rivers%rivers_y_coord_rp) +CASE ( 'inland_outflow_rp' ) + CALL file_write_var(FILE, var_id, rivers%inland_outflow_rp) + CASE DEFAULT CALL log_fatal( RoutineName, & "Unrecognised variable for dump - " // TRIM(identifier) ) diff --git a/src/io/model_interface/extract_var.inc b/src/io/model_interface/extract_var.inc index 49d27599..83077bc9 100644 --- a/src/io/model_interface/extract_var.inc +++ b/src/io/model_interface/extract_var.inc @@ -2683,6 +2683,9 @@ CASE ( 'rfm_surfstore_rp' ) CASE ( 'rivers_outflow_rp' ) cube = cube_from_array(rivers%rivers_outflow_rp) +CASE ( 'inland_outflow_rp' ) + cube = cube_from_array(rivers%inland_outflow_rp) + CASE ( 'river_elevation' ) cube = cube_from_array(rivers%river_elevation) diff --git a/src/io/model_interface/model_interface_mod.F90 b/src/io/model_interface/model_interface_mod.F90 index b3c63407..b06b80a8 100644 --- a/src/io/model_interface/model_interface_mod.F90 +++ b/src/io/model_interface/model_interface_mod.F90 @@ -176,7 +176,7 @@ MODULE model_interface_mod ! Array holding the metadata for all model variables that we can use for input ! or output. The CABLE land surface model adds 10 prognostics for tiled ! soil/snow prognostics. -INTEGER, PARAMETER :: n_vars = 722 +INTEGER, PARAMETER :: n_vars = 723 TYPE(var_metadata) :: metadata(n_vars) ! Include the metadata DATA statement diff --git a/src/io/model_interface/populate_var.inc b/src/io/model_interface/populate_var.inc index 4dc4976c..5b1ca8af 100644 --- a/src/io/model_interface/populate_var.inc +++ b/src/io/model_interface/populate_var.inc @@ -2439,6 +2439,14 @@ CASE ( 'rivers_outflow_rp' ) rivers%rivers_outflow_rp(:) = const_val END IF +CASE ( 'inland_outflow_rp' ) + IF ( PRESENT(cube) ) THEN + cube_land = cube_create([ SIZE(cube%values) ]) + CALL cube_get_data(cube_land, rivers%inland_outflow_rp) + ELSE + rivers%inland_outflow_rp(:) = const_val + END IF + CASE ( 'rfm_surfstore_rp' ) IF ( PRESENT(cube) ) THEN cube_land = cube_create([ SIZE(cube%values) ]) diff --git a/src/io/model_interface/variable_metadata.inc b/src/io/model_interface/variable_metadata.inc index 0efd8ac3..8b7fa44c 100644 --- a/src/io/model_interface/variable_metadata.inc +++ b/src/io/model_interface/variable_metadata.inc @@ -9354,4 +9354,17 @@ DATA metadata(722) / var_metadata( & ! Units "kg s-1" & ) / +!----------------------------------------------------------------------------- +! Metadata for inland_outflow_rp +!----------------------------------------------------------------------------- +DATA metadata(723) / var_metadata( & +! String identifier + 'inland_outflow_rp', & +! Variable type + var_type_rp, & +! Long name + "Inland basin flow on river routing grid", & +! Units + "kg m-2 s-1" & + ) / #endif diff --git a/src/science/river_routing/rivers_route_mod.F90 b/src/science/river_routing/rivers_route_mod.F90 index a7dc380d..9f94355b 100644 --- a/src/science/river_routing/rivers_route_mod.F90 +++ b/src/science/river_routing/rivers_route_mod.F90 @@ -113,7 +113,8 @@ SUBROUTINE rivers_route_rp(rivers) rivers%rflow_rp, baseflow, rivers%rivers_outflow_rp, & rivers%rivers_next_rp, rivers%rivers_seq_rp, & rivers%rivers_sto_rp,rivers%rivers_boxareas_rp, & - rivers%rivers_lat_rp, rivers%rivers_lon_rp ) + rivers%rivers_lat_rp, rivers%rivers_lon_rp, & + rivers%inland_outflow_rp, rivers%land_fraction_rp ) CASE DEFAULT WRITE(jules_message,*) 'ERROR: rivers_drive: ' // & 'do not recognise i_river_vn=', i_river_vn diff --git a/src/science/river_routing/rivers_route_trip_mod.F90 b/src/science/river_routing/rivers_route_trip_mod.F90 index 4ec3a65c..fb07095b 100644 --- a/src/science/river_routing/rivers_route_trip_mod.F90 +++ b/src/science/river_routing/rivers_route_trip_mod.F90 @@ -44,11 +44,13 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & rivers_outflow_rp, rivers_next_rp, & rivers_seq_rp, rivers_sto_rp , & rivers_boxareas_rp, & - rivers_lat_rp, rivers_lon_rp ) + rivers_lat_rp, rivers_lon_rp, & + inland_outflow_rp, land_fraction_rp ) USE jules_rivers_mod, ONLY: & ! imported scalars with intent(in) - np_rivers,nstep_rivers,nseqmax,river_mouth,rivers_meander,rivers_speed + np_rivers,nstep_rivers,nseqmax,river_mouth,rivers_meander,rivers_speed, & + inland_drainage, l_inland_outflow USE rivers_utils, ONLY: & ! imported procedures @@ -57,6 +59,8 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & USE timestep_mod, ONLY: & timestep +USE missing_data_mod, ONLY: imdi + USE um_types, ONLY: real_jlslsm IMPLICIT NONE @@ -80,8 +84,10 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & ,baseflow(np_rivers) & ! rate of channel base flow leaving gridbox (kg m-2 s-1) ! At present this is set to zero. - ,rivers_outflow_rp(np_rivers) + ,rivers_outflow_rp(np_rivers) & ! River outflow into the ocean (kg s-1) + ,inland_outflow_rp(np_rivers) + ! Inland basin flow into the soil on river grid (kg m-2 s-1) ! Rivers Arrays INTEGER, INTENT(IN) :: rivers_next_rp(:) @@ -90,10 +96,13 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & REAL, INTENT(IN) :: rivers_lat_rp(:) REAL, INTENT(IN) :: rivers_lon_rp(:) REAL, INTENT(IN OUT) :: rivers_sto_rp(:) +REAL, INTENT(IN) :: land_fraction_rp(:) INTEGER :: & ! local scalars (work/loop counters) - ip, iseq + ip, iseq & +! local arrays + ,coastal_mask_rp(np_rivers) REAL(KIND=real_jlslsm) :: & ! local scalars @@ -118,16 +127,46 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & dt = REAL(nstep_rivers) * timestep -! Initialise inflow with total runoff generated over each gridbox. -! Convert runoff to kg s-1 flux -DO ip = 1, np_rivers - inflow(ip) = ( sfc_runoff(ip) + sub_sfc_runoff(ip) ) * & - rivers_boxareas_rp(ip) +coastal_mask_rp(:) = imdi +IF ( l_inland_outflow ) THEN + ! Set coastal mask; used to direct inland water flow either to soil moisture + ! or ocean for water conservation purposes. + WHERE ( ( 1.0 - land_fraction_rp(:) ) > EPSILON(1.0) ) + coastal_mask_rp(:) = 1 + ELSE WHERE + coastal_mask_rp(:) = 0 + END WHERE +END IF +DO ip = 1, np_rivers ! Initialise outflows. outflow(ip) = 0.0 baseflow(ip) = 0.0 rivers_outflow_rp(ip) = 0.0 + inland_outflow_rp(ip) = 0.0 + + ! Initialise inflow with total runoff generated over each gridbox. + ! Convert runoff to kg s-1 flux + inflow(ip) = ( sfc_runoff(ip) + sub_sfc_runoff(ip) ) * & + rivers_boxareas_rp(ip) + + IF ( l_inland_outflow ) THEN + ! Inland basin flow is passed to the soil moisture to conserve water in + ! coupled models. + ! To avoid the scenario where the soil becomes super-saturated, runs off + ! to the rivers only to be returned to the inland basin, then back to the + ! soil again creating a loop, we send the inflow to the ocean via the + ! closest large river favouring those with larger climatological outflows + ! (defined by river number ancillary). + ! Coastal inland water basins are treated in the same way as river mouths. + IF ( rivers_next_rp(ip) == inland_drainage .AND. & + coastal_mask_rp(ip) == 0 ) THEN + ! Non-coast inland basin send the inflow to the ocean + rivers_outflow_rp(ip) = inflow(ip) + inflow(ip) = 0.0 + END IF + END IF + END DO !----------------------------------------------------------------------------- @@ -188,13 +227,24 @@ SUBROUTINE rivers_route_trip( sfc_runoff, sub_sfc_runoff, outflow, baseflow, & ! End main TRIP algorithm routine !----------------------------------------------------------------------------- -! Catch all outflow going into the sea and save it in rivers_outflow_rp. +! Catch all outflow and either save it in rivers_outflow_rp (for outflow to +! the ocean) or inland_outflow_rp (for inland basin flow back to the soil). ! Also return flows in flux density units kg/m2/s. !----------------------------------------------------------------------------- DO ip = 1,np_rivers IF ( rivers_next_rp(ip) == river_mouth ) THEN rivers_outflow_rp(ip) = outflow(ip) + ELSE IF ( l_inland_outflow .AND. rivers_next_rp(ip) == inland_drainage ) THEN + SELECT CASE ( coastal_mask_rp(ip) ) + CASE ( 1 ) + ! Coastal inland basins, direct outflow to ocean (as for river mouth) + rivers_outflow_rp(ip) = outflow(ip) + CASE ( 0 ) + ! Non-coastal inland basins, direct flow in flux density units + ! kg/m2/s to soil moisture + inland_outflow_rp(ip) = outflow(ip) / rivers_boxareas_rp(ip) + END SELECT END IF ! Return flows in flux density units kg/m2/s