You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
within subroutine W3FLD1 of w3fld1md.F90. Here TAUDIR = -TAUDIRB, where the values are floating point approximations near Pi. See sample truncated with added write statement output:
WAVEWATCH III calculating for 2019/12/01 06:36:00 UTC at 22:25:48
WAVEWATCH III calculating for 2019/12/01 06:48:00 UTC at 22:25:56
WAVEWATCH III calculating for 2019/12/01 07:00:00 UTC at 22:26:04
WAVEWATCH III calculating for 2019/12/01 07:12:00 UTC at 22:26:12
******* !!! WARNING - TAUDIR: 3.141582
******* !!! WARNING - TAUDIRB: -3.141582
WAVEWATCH III calculating for 2019/12/01 07:24:00 UTC at 22:26:20
.
.
WAVEWATCH III calculating for 2019/12/01 10:00:00 UTC at 22:27:54
******* !!! WARNING - TAUDIR: 3.141584
******* !!! WARNING - TAUDIRB: -3.141584
WAVEWATCH III calculating for 2019/12/01 10:12:00 UTC at 22:28:01
.
.
WAVEWATCH III reached the end of a computation loop at 22:29:12
Updating input at 2019/12/01 12:00:00 UTC
Updating currents
Updating winds
WAVEWATCH III calculating for 2019/12/01 12:12:00 UTC at 22:29:12
.
.
WAVEWATCH III calculating for 2019/12/01 15:36:00 UTC at 22:31:09
WAVEWATCH III calculating for 2019/12/01 15:48:00 UTC at 22:31:16
******* !!! WARNING - TAUDIR: -3.141553
******* !!! WARNING - TAUDIRB: 3.141553
******* !!! WARNING - TAUDIR: -3.141553
******* !!! WARNING - TAUDIRB: 3.141553
WAVEWATCH III calculating for 2019/12/01 16:00:00 UTC at 22:31:23
WAVEWATCH III calculating for 2019/12/01 16:12:00 UTC at 22:31:29
WAVEWATCH III calculating for 2019/12/01 16:24:00 UTC at 22:31:37
WAVEWATCH III calculating for 2019/12/01 16:36:00 UTC at 22:31:43
.
.
WAVEWATCH III calculating for 2019/12/01 19:00:00 UTC at 22:33:04
WAVEWATCH III calculating for 2019/12/01 19:12:00 UTC at 22:33:11
WAVEWATCH III calculating for 2019/12/01 19:24:00 UTC at 22:33:18
******* !!! WARNING - TAUDIR: -3.141573
******* !!! WARNING - TAUDIRB: 3.141573
******* !!! WARNING - TAUDIR: 3.141589
******* !!! WARNING - TAUDIRB: -3.141589
******* !!! WARNING - TAUDIR: 3.141589
******* !!! WARNING - TAUDIRB: -3.141589
WAVEWATCH III calculating for 2019/12/01 19:36:00 UTC at 22:33:25
WAVEWATCH III calculating for 2019/12/01 19:48:00 UTC at 22:33:32
I hit this error looking for a different issue, so I bypassed it with IF logic. It's just a mathematical bypass though -- I don't know what the science considerations are currently. I rationalized that in these cases, you have a finite number over zero, and taking the liberty to view that as a limit, as the denominator approaching zero, then the term approaches a very large number, and it only needs to be greater than 0.1, so assign it .true..
IF ((TAUDIR+TAUDIRB).NE.0.) THEN
CRIT2=(ABS(TAUDIR-TAUDIRB)*100.0/(TAUDIR+TAUDIRB)*0.5) .GT.0.1ELSE
CRIT2=.TRUE.ENDIF
Additional context
Fyi, this new issue #1159 also has floating point divide by zero. It's in a different subroutine, but same module, W3FLD1MD. The related pr #1163.
The text was updated successfully, but these errors were encountered:
Describe the bug
Running a
Debug
build with additional flags captures a divide-by-zero floating point exception inw3fld1md.F90
.To Reproduce
b
from regtestww3_ufs1.1/unstr
Debug
cmake type, and additionally, appends these compile flags:Expected behavior
forrtl: error (75): floating point exception
due to a divide-by-zero occurring in a test condition parameter,within subroutine
W3FLD1
ofw3fld1md.F90
. HereTAUDIR = -TAUDIRB
, where the values are floating point approximations nearPi
. See sample truncated with added write statement output:I hit this error looking for a different issue, so I bypassed it with
IF
logic. It's just a mathematical bypass though -- I don't know what the science considerations are currently. I rationalized that in these cases, you have a finite number over zero, and taking the liberty to view that as a limit, as the denominator approaching zero, then the term approaches a very large number, and it only needs to be greater than0.1
, so assign it.true.
.Screenshots
Additional context
Fyi, this new issue #1159 also has floating point divide by zero. It's in a different subroutine, but same module,
W3FLD1MD
. The related pr #1163.The text was updated successfully, but these errors were encountered: