tidal forcing file: inconsistent restart and harmonic time

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
User avatar
d.kobashi
Posts: 69
Joined: Tue Sep 28, 2010 11:59 pm
Location: Texas A&M University

tidal forcing file: inconsistent restart and harmonic time

#1 Unread post by d.kobashi »

Hi,

I am a bit confused about tidal forcing file.
I created tidal forcing netcdf file and when I ran ROMS for the Texas-Louisiana Shelf (actually COAWST, but Rutgers ROMS inside), I got the following error.

GET_IDATA - incosistent restart and harmonics time:


When I looked at tidal forcing file, ROMS added additional variables internally (see below) in the tidal forcing file.
Then when I ran the model, I got the error above.
I had to change the variable, 'ocean_time' inside the forcing netcdf file to the initialization time and then the error went away and the model ran. However, when I restarted ROMS, the error came back again. So do I have to change initialization time manually every time I re-start the model?

I am not sure what I did wrong. I did not have this kind of error when I used an older version of ROMS (3.4, 3.5). By the way, I defined AVERAGE_DETIDE as well as UV_TIDES and SSH_TIDES.

I use COAWST version 3.1 (equivalent to ROMS 3.7 I think. not sure about revision number).

Any comments/suggestions would be appreciated.

Thanks in advance.

DJ@TAMU


The original tidal forcing

Code: Select all

variables:
	double tide_period(tide_period) ;
		tide_period:long_name = "Tide angular period" ;
		tide_period:units = "hours" ;
	double tide_Ephase(tide_period, eta_rho, xi_rho) ;
		tide_Ephase:long_name = "Tide elevation phase angle" ;
		tide_Ephase:units = "degrees" ;
	double tide_Eamp(tide_period, eta_rho, xi_rho) ;
		tide_Eamp:long_name = "Tide elevation amplitude" ;
		tide_Eamp:units = "meters" ;
	double tide_Cmin(tide_period, eta_rho, xi_rho) ;
		tide_Cmin:long_name = "Tidal current ellipse semi-minor axis" ;
		tide_Cmin:units = "meter second-1" ;
	double tide_Cmax(tide_period, eta_rho, xi_rho) ;
		tide_Cmax:long_name = "Tidal current ellipse semi-major axis" ;
		tide_Cmax:units = "meter second-1" ;
	double tide_Cangle(tide_period, eta_rho, xi_rho) ;
		tide_Cangle:long_name = "Tidal current ellipse inclination angle" ;
		tide_Cangle:units = "degrees between semi-major axis and east" ;
	double tide_Cphase(tide_period, eta_rho, xi_rho) ;
		tide_Cphase:long_name = "Tidal current phase angle" ;
		tide_Cphase:units = "degrees" ;
	double tide_Uamp(tide_period, eta_rho, xi_rho) ;
		tide_Uamp:long_name = "Tidal current U-component amplitude" ;
		tide_Uamp:units = "meters" ;
	double tide_Uphase(tide_period, eta_rho, xi_rho) ;
		tide_Uphase:long_name = "Tidal current U-component phase" ;
		tide_Uphase:units = "degrees" ;
	double tide_Vamp(tide_period, eta_rho, xi_rho) ;
		tide_Vamp:long_name = "Tidal current V-component amplitude" ;
		tide_Vamp:units = "meters" ;
	double tide_Vphase(tide_period, eta_rho, xi_rho) ;
		tide_Vphase:long_name = "Tidal current V-component phase" ;
		tide_Vphase:units = "degrees" ;
The modified one by ROMS internally.

Code: Select all

variables:
	double tide_period(tide_period) ;
		tide_period:long_name = "Tide angular period" ;
		tide_period:units = "hours" ;
	double tide_Ephase(tide_period, eta_rho, xi_rho) ;
		tide_Ephase:long_name = "Tide elevation phase angle" ;
		tide_Ephase:units = "degrees" ;
	double tide_Eamp(tide_period, eta_rho, xi_rho) ;
		tide_Eamp:long_name = "Tide elevation amplitude" ;
		tide_Eamp:units = "meters" ;
	double tide_Cmin(tide_period, eta_rho, xi_rho) ;
		tide_Cmin:long_name = "Tidal current ellipse semi-minor axis" ;
		tide_Cmin:units = "meter second-1" ;
	double tide_Cmax(tide_period, eta_rho, xi_rho) ;
		tide_Cmax:long_name = "Tidal current ellipse semi-major axis" ;
		tide_Cmax:units = "meter second-1" ;
	double tide_Cangle(tide_period, eta_rho, xi_rho) ;
		tide_Cangle:long_name = "Tidal current ellipse inclination angle" ;
		tide_Cangle:units = "degrees between semi-major axis and east" ;
	double tide_Cphase(tide_period, eta_rho, xi_rho) ;
		tide_Cphase:long_name = "Tidal current phase angle" ;
		tide_Cphase:units = "degrees" ;
	double tide_Uamp(tide_period, eta_rho, xi_rho) ;
		tide_Uamp:long_name = "Tidal current U-component amplitude" ;
		tide_Uamp:units = "meters" ;
	double tide_Uphase(tide_period, eta_rho, xi_rho) ;
		tide_Uphase:long_name = "Tidal current U-component phase" ;
		tide_Uphase:units = "degrees" ;
	double tide_Vamp(tide_period, eta_rho, xi_rho) ;
		tide_Vamp:long_name = "Tidal current V-component amplitude" ;
		tide_Vamp:units = "meters" ;
	double tide_Vphase(tide_period, eta_rho, xi_rho) ;
		tide_Vphase:long_name = "Tidal current V-component phase" ;
		tide_Vphase:units = "degrees" ;
	int Hcount ;
		Hcount:long_name = "number of time-accumulated tide harmonics" ;
	double ocean_time ;
		ocean_time:long_name = "accumulated harmonics time since initialization" ;
		ocean_time:units = "seconds since 1970-01-01 00:00:00" ;
		ocean_time:calendar = "gregorian" ;
	double CosW(tide_period) ;
		CosW:long_name = "time-accumulated COS(omega(k)*t)" ;
		CosW:units = "radians" ;
	double SinW(tide_period) ;
		SinW:long_name = "time-accumulated SIN(omega(k)*t)" ;
		SinW:units = "radians" ;
	double CosWCosW(tide_period, tide_period) ;
		CosWCosW:long_name = "time-accumulated COS(omega(k)*t)*COS(omega(l)*t) matrix" ;
		CosWCosW:units = "radians" ;
	double SinWSinW(tide_period, tide_period) ;
		SinWSinW:long_name = "time-accumulated SIN(omega(k)*t)*SIN(omega(l)*t) matrix" ;
		SinWSinW:units = "radians" ;
	double SinWCosW(tide_period, tide_period) ;
		SinWCosW:long_name = "time-accumulated SIN(omega(k)*t)*COS(omega(l)*t) matrix" ;
		SinWCosW:units = "radians" ;
	double zeta_tide(harmonics, eta_rho, xi_rho) ;
		zeta_tide:long_name = "time-accumulated free-surface tide harmonics" ;
		zeta_tide:units = "meter" ;
		zeta_tide:coordinates = "x_rho y_rho ocean_time" ;
		zeta_tide:field = "zeta_tide, scalar" ;
		zeta_tide:_FillValue = 1.e+37 ;
	double ubar_tide(harmonics, eta_u, xi_u) ;
		ubar_tide:long_name = "time-accumulated 2D u-momentum tide harmonics" ;
		ubar_tide:units = "meter second-1" ;
		ubar_tide:coordinates = "x_u y_u ocean_time" ;
		ubar_tide:field = "ubar_tide, scalar" ;
		ubar_tide:_FillValue = 1.e+37 ;
	double vbar_tide(harmonics, eta_v, xi_v) ;
		vbar_tide:long_name = "time-accumulated 2D v-momentum tide harmonics" ;
		vbar_tide:units = "meter second-1" ;
		vbar_tide:coordinates = "x_v y_v ocean_time" ;
		vbar_tide:field = "vbar_tide, scalar" ;
		vbar_tide:_FillValue = 1.e+37 ;
	double u_tide(harmonics, s_rho, eta_u, xi_u) ;
		u_tide:long_name = "time-accumulated 3D u-momentum tide harmonics" ;
		u_tide:units = "meter second-1" ;
		u_tide:coordinates = "x_u y_u s_rho ocean_time" ;
		u_tide:field = "u_tide, scalar" ;
		u_tide:_FillValue = 1.e+37 ;
	double v_tide(harmonics, s_rho, eta_v, xi_v) ;
		v_tide:long_name = "time-accumulated 3D v-momentum tide harmonics" ;
		v_tide:units = "meter second-1" ;
		v_tide:coordinates = "x_v y_v s_rho ocean_time" ;
		v_tide:field = "v_tide, scalar" ;
		v_tide:_FillValue = 1.e+37 ;

User avatar
d.kobashi
Posts: 69
Joined: Tue Sep 28, 2010 11:59 pm
Location: Texas A&M University

Re: tidal forcing file: inconsistent restart and harmonic ti

#2 Unread post by d.kobashi »

Ok. Hernan answered a part of my question in a different post related to appending additional variables to the existing tidal forcing file (see viewtopic.php?t=3553).
Google did not catch this one.

I am still digging in more to understand why I have to manually specify ocean_time for each restart with AVERAGE_DETIDE.

Thanks,

DJ@TAMU

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

Re: tidal forcing file: inconsistent restart and harmonic ti

#3 Unread post by arango »

I don't know why you have to do this. I far as recall, we don't need to change the input script except for the restart flag and the initial conditions NetCDF:

Code: Select all

       NRREC == -1
...
     ININAME == ocean_rst.nc 
You shouldn't change:

Code: Select all

      DSTART =  xxxxx                      ! days
  TIDE_START =  xxxxx                      ! days
    TIME_REF =  xxxxx                      ! yyyymmdd.dd
These values should remain the same. Everything should be taking care internally. Perhaps, the restart is not written at the correct time as the history and average files. What are the values of NRST, NHIS, NAVG? I think that they need to be consisted and saved at the same time. You need to check the time in all your output NetCDF files.

Post Reply