From c0f83f8912c66c029fa27cbde547ed1638291204 Mon Sep 17 00:00:00 2001 From: thomas-pijls Date: Wed, 15 Apr 2026 10:01:49 +0200 Subject: [PATCH 1/5] UNST-9814: Renamed SecchiDepth2 to SecchiDepthNonPenetrative and set SecchiDepth2 to deprecated --- .../src/dflowfm_data/fm_deprecated_keywords.f90 | 2 ++ .../src/dflowfm_data/unstruc_model.f90 | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/fm_deprecated_keywords.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/fm_deprecated_keywords.f90 index 9c5652f4faa..3cae0c27c80 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/fm_deprecated_keywords.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/fm_deprecated_keywords.f90 @@ -31,6 +31,8 @@ subroutine default_fm_deprecated_keywords() call add_deprecated_keyword(deprecated_mdu_keywords, 'Numerics', 'Vertadvtypsal', DEPRECATED, 'Use verticalAdvectionType instead.') call add_deprecated_keyword(deprecated_mdu_keywords, 'Numerics', 'Vertadvtyptem', DEPRECATED, 'Use verticalAdvectionType instead.') call add_deprecated_keyword(deprecated_mdu_keywords, 'Physics', 'Jadelvappos', DEPRECATED) + call add_deprecated_keyword(deprecated_mdu_keywords, 'Physics', 'SecchiDepth2', DEPRECATED, 'Use SecchiDepthNonPenetrative instead.') + call add_deprecated_keyword(deprecated_mdu_keywords, 'Physics', 'SecchiDepth2Fraction', DEPRECATED, 'Use SecchiDepthNonPenetrativeFraction instead.') call add_deprecated_keyword(deprecated_mdu_keywords, 'Processes', 'ThetaVertical', DEPRECATED, 'Use VerticalAdvectionType instead.') call add_deprecated_keyword(deprecated_mdu_keywords, 'Processes', 'dtMassBalance', DEPRECATED) call add_deprecated_keyword(deprecated_mdu_keywords, 'Lateral', 'type', DEPRECATED, 'Use [Lateral] locationType instead.') diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 index 3810d2221f0..d076c9d90d7 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 @@ -1424,8 +1424,10 @@ subroutine readMDUFile(filename, istat) ! Secchi parameter readout call prop_get(md_ptr, 'physics', 'SecchiDepth', secchi_depth(1)) - call prop_get(md_ptr, 'physics', 'SecchiDepth2', secchi_depth(2)) - call prop_get(md_ptr, 'physics', 'SecchiDepth2Fraction', secchi_radiation_fraction(2)) + call prop_get(md_ptr, 'physics', 'SecchiDepth2', secchi_depth(2)) ! Deprecated, use SecchiDepthNonPenetrative instead + call prop_get(md_ptr, 'physics', 'SecchiDepthNonPenetrative', secchi_depth(2)) + call prop_get(md_ptr, 'physics', 'SecchiDepth2Fraction', secchi_radiation_fraction(2)) ! Deprecated, use SecchiDepthNonPenetrativeFraction instead + call prop_get(md_ptr, 'physics', 'SecchiDepthNonPenetrativeFraction', secchi_radiation_fraction(2)) diffuse_attenuation_coefficient(1) = secchi_depth(1) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR @@ -3445,12 +3447,10 @@ subroutine writeMDUFilepointer(mout, writeall, istat) call prop_set(prop_ptr, 'physics', 'Temperature', temperature_model, 'Include temperature (0: no, 1: only transport, 3: excess model of D3D, 5: composite (ocean) model)') if (writeall .or. (temperature_model /= TEMPERATURE_MODEL_NONE)) then - call prop_set(prop_ptr, 'physics', 'InitialTemperature', temini, 'Uniform initial water temperature (degC)') + call prop_set(prop_ptr, 'physics', 'InitialTemperature', temini, 'Uniform initial water temperature (deg C)') call prop_set(prop_ptr, 'physics', 'SecchiDepth', secchi_depth(1), 'Water clarity parameter (m)') - if (secchi_depth(2) > 0) then - call prop_set(prop_ptr, 'physics', 'SecchiDepth2', secchi_depth(2), 'Water clarity parameter for infrared radiation (m), only used if > 0') - call prop_set(prop_ptr, 'physics', 'SecchiDepth2Fraction', secchi_radiation_fraction(2), 'Fraction of total absorbed by profile 2') - end if + call prop_set(prop_ptr, 'physics', 'SecchiDepthNonPenetrative', secchi_depth(2), 'Water clarity parameter for non-penetrative radiation (m).') + call prop_set(prop_ptr, 'physics', 'SecchiDepthNonPenetrativeFraction', secchi_radiation_fraction(2), 'Fraction of solar radiation that is non-penetrative (-).') call prop_set(prop_ptr, 'physics', 'Stanton', Stanton, 'Coefficient for convective heat flux, if negative, Ccon = abs(Stanton)*Cdwind') call prop_set(prop_ptr, 'physics', 'Dalton', Dalton, 'Coefficient for evaporative heat flux, if negative, Ceva = abs(Dalton)*Cdwind') From 78533b5d4efc43d3862b37b6e58d490c62852971 Mon Sep 17 00:00:00 2001 From: thomas-pijls Date: Wed, 15 Apr 2026 10:06:07 +0200 Subject: [PATCH 2/5] UNST-9814: Renamed DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR to POOL_ATKINS_PARAMETER --- .../packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 | 6 +++--- .../dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 | 4 ++-- .../dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 index 1e813eb7096..d36741cce05 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 @@ -99,7 +99,7 @@ module m_physcoef real(kind=dp), dimension(2) :: secchi_depth !< [m] Constant Secchi depth; 1 = visible light and UV radiation, 2 = infrared radiation real(kind=dp), dimension(2) :: secchi_radiation_fraction !< [-] Radiation fraction in (1) visible light and UV radiation, (2) infrared radiation used in Secchi computation real(kind=dp), dimension(2) :: diffuse_attenuation_coefficient !< [m] Diffuse attenuation coefficient for radiation - real(kind=dp), parameter :: DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR = 1.7_dp !< factor to compute diffuse attenuation coefficient from secchi depth + real(kind=dp), parameter :: POOL_ATKINS_PARAMETER = 1.7_dp !< [-] Parameter for conversion of Secchi depth to diffuse attenuation coefficient integer :: limiterhordif !< 0=No, 1=Horizontal gradient densitylimiter, 2=Finite volume @@ -154,8 +154,8 @@ subroutine default_physcoef() secchi_depth(2) = 0.0_dp secchi_radiation_fraction(1) = 1.0_dp secchi_radiation_fraction(2) = 0.0_dp - diffuse_attenuation_coefficient(1) = secchi_depth(1) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR - diffuse_attenuation_coefficient(2) = secchi_depth(2) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR + diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOL_ATKINS_PARAMETER + diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOL_ATKINS_PARAMETER vicwminb = 0.0_dp xlozmidov = 0.0_dp idensform = 2 diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 index d076c9d90d7..ad33b302466 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 @@ -1429,10 +1429,10 @@ subroutine readMDUFile(filename, istat) call prop_get(md_ptr, 'physics', 'SecchiDepth2Fraction', secchi_radiation_fraction(2)) ! Deprecated, use SecchiDepthNonPenetrativeFraction instead call prop_get(md_ptr, 'physics', 'SecchiDepthNonPenetrativeFraction', secchi_radiation_fraction(2)) - diffuse_attenuation_coefficient(1) = secchi_depth(1) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR + diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOL_ATKINS_PARAMETER if (secchi_depth(2) > 0) then - diffuse_attenuation_coefficient(2) = secchi_depth(2) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR + diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOL_ATKINS_PARAMETER secchi_radiation_fraction(1) = 1.0_dp - secchi_radiation_fraction(2) end if diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 index 9c57ecfdd18..b0c62cf83e2 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 @@ -42,7 +42,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) use m_physcoef, only: ag, rhomean, backgroundsalinity, backgroundwatertemperature, dalton, epshstem, stanton, secchi_depth, & soiltempthick, BACKGROUND_AIR_PRESSURE, BACKGROUND_HUMIDITY, BACKGROUND_CLOUDINESS, surftempsmofac, & jadelvappos, free_convection_coefficient, secchi_radiation_fraction, diffuse_attenuation_coefficient, & - DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR + POOL_ATKINS_PARAMETER use m_heatfluxes, only: em, albedo, cpa, spatial_secchi_depth_is_available, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & qconmap, qlongmap, qfrevamap, qfrconmap, qsunav, qlongav, qconav, qevaav, qfrconav, qfrevaav use m_flow, only: kmx, hs, solar_radiation_factor, zws, ucx, ucy, ktop @@ -218,7 +218,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) do j = j2, 1, -1 if (j == 1 .and. spatial_secchi_depth_is_available) then - diffuse_attenuation_coefficient_in_cell(1) = spatial_secchi_depth(n) / DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR + diffuse_attenuation_coefficient_in_cell(1) = spatial_secchi_depth(n) / POOL_ATKINS_PARAMETER end if zlo = 0.0_dp From 890024c80c0aaf0d5ef15462bba374ce2b7c07d8 Mon Sep 17 00:00:00 2001 From: thomas-pijls Date: Mon, 20 Apr 2026 10:31:29 +0200 Subject: [PATCH 3/5] UNST-9814: Renamed POOL_ATKINS_PARAMETER to POOLE_ATKINS_PARAMETER --- .../packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 | 6 +++--- .../dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 | 4 ++-- .../dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 index d36741cce05..01cf95da621 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/m_physcoef.f90 @@ -99,7 +99,7 @@ module m_physcoef real(kind=dp), dimension(2) :: secchi_depth !< [m] Constant Secchi depth; 1 = visible light and UV radiation, 2 = infrared radiation real(kind=dp), dimension(2) :: secchi_radiation_fraction !< [-] Radiation fraction in (1) visible light and UV radiation, (2) infrared radiation used in Secchi computation real(kind=dp), dimension(2) :: diffuse_attenuation_coefficient !< [m] Diffuse attenuation coefficient for radiation - real(kind=dp), parameter :: POOL_ATKINS_PARAMETER = 1.7_dp !< [-] Parameter for conversion of Secchi depth to diffuse attenuation coefficient + real(kind=dp), parameter :: POOLE_ATKINS_PARAMETER = 1.7_dp !< [-] Parameter for conversion of Secchi depth to diffuse attenuation coefficient integer :: limiterhordif !< 0=No, 1=Horizontal gradient densitylimiter, 2=Finite volume @@ -154,8 +154,8 @@ subroutine default_physcoef() secchi_depth(2) = 0.0_dp secchi_radiation_fraction(1) = 1.0_dp secchi_radiation_fraction(2) = 0.0_dp - diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOL_ATKINS_PARAMETER - diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOL_ATKINS_PARAMETER + diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOLE_ATKINS_PARAMETER + diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOLE_ATKINS_PARAMETER vicwminb = 0.0_dp xlozmidov = 0.0_dp idensform = 2 diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 index ad33b302466..1cdfe22f5ca 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_data/unstruc_model.f90 @@ -1429,10 +1429,10 @@ subroutine readMDUFile(filename, istat) call prop_get(md_ptr, 'physics', 'SecchiDepth2Fraction', secchi_radiation_fraction(2)) ! Deprecated, use SecchiDepthNonPenetrativeFraction instead call prop_get(md_ptr, 'physics', 'SecchiDepthNonPenetrativeFraction', secchi_radiation_fraction(2)) - diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOL_ATKINS_PARAMETER + diffuse_attenuation_coefficient(1) = secchi_depth(1) / POOLE_ATKINS_PARAMETER if (secchi_depth(2) > 0) then - diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOL_ATKINS_PARAMETER + diffuse_attenuation_coefficient(2) = secchi_depth(2) / POOLE_ATKINS_PARAMETER secchi_radiation_fraction(1) = 1.0_dp - secchi_radiation_fraction(2) end if diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 index b0c62cf83e2..867ddc3903b 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 @@ -42,7 +42,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) use m_physcoef, only: ag, rhomean, backgroundsalinity, backgroundwatertemperature, dalton, epshstem, stanton, secchi_depth, & soiltempthick, BACKGROUND_AIR_PRESSURE, BACKGROUND_HUMIDITY, BACKGROUND_CLOUDINESS, surftempsmofac, & jadelvappos, free_convection_coefficient, secchi_radiation_fraction, diffuse_attenuation_coefficient, & - POOL_ATKINS_PARAMETER + POOLE_ATKINS_PARAMETER use m_heatfluxes, only: em, albedo, cpa, spatial_secchi_depth_is_available, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & qconmap, qlongmap, qfrevamap, qfrconmap, qsunav, qlongav, qconav, qevaav, qfrconav, qfrevaav use m_flow, only: kmx, hs, solar_radiation_factor, zws, ucx, ucy, ktop @@ -218,7 +218,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) do j = j2, 1, -1 if (j == 1 .and. spatial_secchi_depth_is_available) then - diffuse_attenuation_coefficient_in_cell(1) = spatial_secchi_depth(n) / POOL_ATKINS_PARAMETER + diffuse_attenuation_coefficient_in_cell(1) = spatial_secchi_depth(n) / POOLE_ATKINS_PARAMETER end if zlo = 0.0_dp From 6e31ef330f60f1a2f1580f64ac6c7b1e0eb987aa Mon Sep 17 00:00:00 2001 From: thomas-pijls Date: Mon, 20 Apr 2026 10:34:31 +0200 Subject: [PATCH 4/5] UNST-9814: Fixed merge conflicts --- .../dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 index 0e283b50f2a..867ddc3903b 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 @@ -44,8 +44,6 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) jadelvappos, free_convection_coefficient, secchi_radiation_fraction, diffuse_attenuation_coefficient, & POOLE_ATKINS_PARAMETER use m_heatfluxes, only: em, albedo, cpa, spatial_secchi_depth_is_available, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & - DIFFUSE_ATTENUATION_COEFFICIENT_FACTOR - use m_heatfluxes, only: em, albedo, cpa, secchi_depth_is_spatially_varying, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & qconmap, qlongmap, qfrevamap, qfrconmap, qsunav, qlongav, qconav, qevaav, qfrconav, qfrevaav use m_flow, only: kmx, hs, solar_radiation_factor, zws, ucx, ucy, ktop use m_flowparameters, only: jahisheatflux, temperature_model, TEMPERATURE_MODEL_EXCESS, TEMPERATURE_MODEL_COMPOSITE, & From adb7f757cb1680469adaa38d0d914a35930ac221 Mon Sep 17 00:00:00 2001 From: thomas-pijls Date: Mon, 20 Apr 2026 10:43:12 +0200 Subject: [PATCH 5/5] UNST-9814: Fixed build errors --- .../dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 index 867ddc3903b..c1e58efa5f1 100644 --- a/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 +++ b/src/engines_gpl/dflowfm/packages/dflowfm_kernel/src/dflowfm_kernel/compute/heatun.f90 @@ -43,7 +43,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) soiltempthick, BACKGROUND_AIR_PRESSURE, BACKGROUND_HUMIDITY, BACKGROUND_CLOUDINESS, surftempsmofac, & jadelvappos, free_convection_coefficient, secchi_radiation_fraction, diffuse_attenuation_coefficient, & POOLE_ATKINS_PARAMETER - use m_heatfluxes, only: em, albedo, cpa, spatial_secchi_depth_is_available, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & + use m_heatfluxes, only: em, albedo, cpa, secchi_depth_is_spatially_varying, spatial_secchi_depth, jamapheatflux, rcpi, fwind, qtotmap, qsunmap, qevamap, & qconmap, qlongmap, qfrevamap, qfrconmap, qsunav, qlongav, qconav, qevaav, qfrconav, qfrevaav use m_flow, only: kmx, hs, solar_radiation_factor, zws, ucx, ucy, ktop use m_flowparameters, only: jahisheatflux, temperature_model, TEMPERATURE_MODEL_EXCESS, TEMPERATURE_MODEL_COMPOSITE, & @@ -217,7 +217,7 @@ subroutine heatun(n, time_in_hours, nominal_solar_radiation) do j = j2, 1, -1 - if (j == 1 .and. spatial_secchi_depth_is_available) then + if (j == 1 .and. secchi_depth_is_spatially_varying) then diffuse_attenuation_coefficient_in_cell(1) = spatial_secchi_depth(n) / POOLE_ATKINS_PARAMETER end if