model time bug

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
a11209778
Posts: 1
Joined: Wed Jun 14, 2023 2:54 am
Location: gdou

model time bug

#1 Unread post by a11209778 »

I encountered an issue while running a storm surge simulation. The files include background field, initial field, boundary field, and atmospheric files. However, ROMS encounters a time error during runtime, reaching the year 2178. I'm unsure where to make changes, whether it's in the initial field or the ERA5 forcing field. Could you please assist in resolving this issue? Below are my input files and the error message for reference.
Attachments
roms_zjw.in
(142.59 KiB) Downloaded 18 times
log.txt
(28.94 KiB) Downloaded 21 times

mjfconan
Posts: 21
Joined: Mon Mar 03, 2014 1:57 pm
Location: SKLEC, ECNU, China

Re: model time bug

#2 Unread post by mjfconan »

Hello,
You may check the units attribute of the time variable (such as "ocean_time") in "zjw_ini.nc". If it starts with "days since", you may change it to "hours since"; Or reset its value correctly. For instance, you may need 58362/3600=16.2117 (days since 2018-09-01).
PS: This is not a bug.

User avatar
arango
Site Admin
Posts: 1351
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

Re: model time bug

#3 Unread post by arango »

Why do you think that it is a ROMS bug? You didn't configure your application correctly! ROMS internal time is in seconds. Any input NetCDF data into ROMS needs to have the correct units attribute to the time variable to make the proper conversion. This is my first time hearing such a message about data time management in this forum in all the years. Users need to pay attention to the following attributes of the form:

Code: Select all

double time(time) ;
		time:long_name = "time since initialization" ;
		time:units = "days since 2011-01-01 00:00:00" ;
		time:calendar = "gregorian" ;

or

double time(time) ;
		time:long_name = "time since initialization" ;
		time:units = "hours since 2011-01-01 00:00:00" ;
		time:calendar = "gregorian" ;

or

double time(time) ;
		time:long_name = "time since initialization" ;
		time:units = "seconds since 2011-01-01 00:00:00" ;
		time:calendar = "gregorian" ;
We always assume that time in any ocean application is in the Greenwich Mean Time (GMT) zone to allow comparison with observations and data assimilation.

Post Reply