From 1550a06158eded8cf8c20cb475e99a749b7b7f1b Mon Sep 17 00:00:00 2001 From: Rich Fiorella Date: Wed, 24 Jul 2024 19:34:50 -0600 Subject: [PATCH] fix divide by zero issue in canopyhydrologymod --- components/elm/src/biogeophys/CanopyHydrologyMod.F90 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/elm/src/biogeophys/CanopyHydrologyMod.F90 b/components/elm/src/biogeophys/CanopyHydrologyMod.F90 index af6f17cc5597..70c1b798c53c 100755 --- a/components/elm/src/biogeophys/CanopyHydrologyMod.F90 +++ b/components/elm/src/biogeophys/CanopyHydrologyMod.F90 @@ -844,13 +844,16 @@ subroutine FracH2OSfc(bounds, num_h2osfc, filter_h2osfc, & if (swc > iwp_microrel(c) - iwp_exclvol(c)) then d = swc + iwp_exclvol(c) else - d = 0.0 + d = swc + iwp_exclvol(c) do k=1,10 fd = (2_r8*iwp_exclvol(c) - iwp_microrel(c)) * (d/iwp_microrel(c))**3_r8 & + (2_r8*iwp_microrel(c) - 3_r8*iwp_exclvol(c)) * (d/iwp_microrel(c))**2_r8 & - swc dfdd = (3_r8/iwp_microrel(c)) * (2_r8*iwp_exclvol(c) - iwp_microrel(c)) * (d/iwp_microrel(c))**2_r8 & + (2_r8/iwp_microrel(c)) * (2_r8*iwp_microrel(c) - 3_r8*iwp_exclvol(c)) * (d/iwp_microrel(c)) + if (dfdd < 1.0e-12_r8) then + write(iulog,*) "careful! getting close to dividing by 0..." + end if d = d - fd/dfdd enddo endif