Opened 6 years ago

Closed 6 years ago

#772 closed bug (Fixed)

dateclock won't compile with gfortran.

Reported by: kate Owned by:
Priority: major Milestone: Release ROMS/TOMS 3.7
Component: Nonlinear Version: 3.7
Keywords: Cc:

Description

I got this error from gfortran:

dateclock.f90:569:42:

           IF (DateNumber.ge.REAL(gregorian*86400,r8)) THEN
                                          1
Error: Arithmetic overflow at (1)

It compiles with this fix:

diff --git a/ROMS/Utility/dateclock.F b/ROMS/Utility/dateclock.F
index 55c6da41..6d8d17d4 100644
--- a/ROMS/Utility/dateclock.F
+++ b/ROMS/Utility/dateclock.F
@@ -586,7 +586,7 @@
             MyDateNumber=DateNumber+Rclock%DateNumber(1)
           END IF
         ELSE
-          IF (DateNumber.ge.REAL(gregorian*86400,r8)) THEN
+          IF (DateNumber.ge.REAL(gregorian,r8)*86400) THEN
             MyDateNumber=DateNumber/86400.0_r8
           ELSE
             MyDateNumber=(DateNumber+Rclock%DateNumber(2))/86400.0_r8

Change History (2)

comment:1 by kate, 6 years ago

Summary: Latest won't compile with gfortran.dateclock won't compile with gfortran.

comment:2 by arango, 6 years ago

Resolution: Fixed
Status: newclosed

Yep, thank you. It is an integer overflow because of the numbers are too big for interger*4. I just put the r8 in the wrong place.

Note: See TracTickets for help on using tickets.