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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@

## 2025

### 5 Dec 2025

- [change] Removed `BaseTMethod` parameter from HDD/CDD calculations (#144)
- Model now always uses weekday/weekend-specific base temperatures (`BaseT_Heating`, `BaseT_Cooling`)
- Simplifies anthropogenic heat flux calculation logic
- `BaseTMethod` in legacy input files is now ignored

### 3 Dec 2025
- [feature] Improved albedos ranges (ge=0.0 and le=1.0) in Field of Pydantic classes for alb_id, air_ssa_lw, air_ssa_sw, veg_ssa_lw, veg_ssa_sw (PR #978)
- [feature] Improved ranges (ge=0.0) in Field of Pydantic classes for preciplimitalb, roof_albedo_dir_mult_fact, and ground_albedo_dir_mult_fact. (PR #978)
Expand Down
16 changes: 9 additions & 7 deletions docs/source/inputs/tables/RunControl/scheme_options.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,17 @@ Scheme options

.. option:: BaseTMethod

.. deprecated:: v2025a

This option has been removed. The model now always uses weekday/weekend-specific
base temperatures (``BaseT_Heating`` and ``BaseT_Cooling``) for HDD/CDD calculations.
If present in legacy input files, this parameter is ignored.

:Requirement:
Required
Optional (ignored)
:Description:
Determines method for base temperature used in HDD/CDD calculations.
:Configuration:
.. csv-table::
:file: csv-table/BaseTMethod.csv
:header-rows: 1
:widths: 10 80
Previously determined method for base temperature used in HDD/CDD calculations.
Now deprecated in favour of always using weekday/weekend-specific base temperatures.

.. option:: EmissionsMethod

Expand Down
1 change: 0 additions & 1 deletion src/suews/src/suews_ctrl_const.f95
Original file line number Diff line number Diff line change
Expand Up @@ -1143,7 +1143,6 @@ MODULE module_ctrl_const_datain

! ---- Model options set in RunControl --------------------------------------------------------
INTEGER :: EmissionsMethod, & ! anthropogenic emissions method
BaseTMethod, & ! base temperature method for HDD/CDD calculations used in QF module
CBLuse, & !CBL slab model used (1) or not used (0)
MultipleMetFiles, & !Indicates whether a single met file is used for all grids (0) or one for each grid (1)
MultipleInitFiles, & !Indicates whether a single initial conditions file is used for all grids (0) or one for each grid (1)
Expand Down
23 changes: 3 additions & 20 deletions src/suews/src/suews_phys_dailystate.f95
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,6 @@ SUBROUTINE SUEWS_cal_DailyState( &
TYPE(SUEWS_STATE), INTENT(INOUT) :: modState

! INTEGER :: WaterUseMethod
INTEGER, PARAMETER :: BaseTMethod = 2 ! base t method [-]
REAL(KIND(1D0)), PARAMETER :: BaseT_HC = 18.2 !base temperature for heating degree dayb [degC] ! to be fully removed TODO

! TYPE(IRRIGATION_PRM), INTENT(IN) :: irrPrm
! INTEGER :: Ie_start !Starting time of water use (DOY)
Expand Down Expand Up @@ -504,12 +502,10 @@ SUBROUTINE SUEWS_cal_DailyState( &
! regular update at all timesteps of a day
IF (execute_subroutines) THEN
CALL update_DailyState_Day( &
BaseTMethod, &
DayofWeek_id, &
avkdn, & !input
Tair, &
Precip, &
BaseT_HC, &
BaseT_Heating, BaseT_Cooling, &
nsh_real, &
Tmin_id, Tmax_id, lenDay_id, & !inout
Expand Down Expand Up @@ -747,26 +743,22 @@ END SUBROUTINE SUEWS_cal_DailyState
! END SUBROUTINE update_DailyState_End

SUBROUTINE update_DailyState_Day( &
BaseTMethod, &
DayofWeek_id, &
avkdn, & !input
Tair, &
Precip, &
BaseT_HC, &
BaseT_Heating, BaseT_Cooling, &
nsh_real, &
Tmin_id, Tmax_id, lenDay_id, & !inout
HDD_id) !inout
! use time, only: id, id_prev_t
IMPLICIT NONE

INTEGER, INTENT(IN) :: BaseTMethod
INTEGER, DIMENSION(3), INTENT(in) :: DayofWeek_id

REAL(KIND(1D0)), INTENT(IN) :: avkdn
REAL(KIND(1D0)), INTENT(IN) :: Tair ! Ambient air temperature [degC], this can be from either forcing or diagnostic
REAL(KIND(1D0)), INTENT(IN) :: Precip
REAL(KIND(1D0)), INTENT(IN) :: BaseT_HC
REAL(KIND(1D0)), DIMENSION(2), INTENT(IN) :: BaseT_Heating
REAL(KIND(1D0)), DIMENSION(2), INTENT(IN) :: BaseT_Cooling
REAL(KIND(1D0)), INTENT(IN) :: nsh_real
Expand Down Expand Up @@ -794,18 +786,9 @@ SUBROUTINE update_DailyState_Day( &
iu = 1 !Set to 1=weekday
IF (DayofWeek_id(1) == 1 .OR. DayofWeek_id(1) == 7) iu = 2 !Set to 2=weekend

SELECT CASE (BaseTMethod)
CASE (1)
BaseT_Heating_use = BaseT_HC
BaseT_Cooling_use = BaseT_HC
CASE (2)
BaseT_Heating_use = BaseT_Heating(iu)
BaseT_Cooling_use = BaseT_Cooling(iu)

CASE default
CALL ErrorHint(75, "RunControl.nml", -999, -999, -999)

END SELECT
! Use weekday/weekend-specific base temperatures for heating/cooling degree day calculations
BaseT_Heating_use = BaseT_Heating(iu)
BaseT_Cooling_use = BaseT_Cooling(iu)

! Daily min and max temp (these get updated through the day) ---------------------
Tmin_id = MIN(Tair, Tmin_id) !Daily min T in column 3
Expand Down
Loading