Dear all,
Using ROMS-3.1 for tidal simulation in South China Sea, the output tidal amplitudes in all stations seemed to much higher than expected (says, ~ 4-5m compared to ~1.5-2m).
The following CPPs were used:
#define UV_ADV
#define UV_COR
#define UV_VIS2
#define MIX_S_UV
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#define TS_DIF2
#define MIX_S_TS
#undef TS_MPDATA
#define DJ_GRADPS
#undef UV_PSOURCE
#undef TS_PSOURCE
#define SOLVE3D
#define SALINITY
#define NONLIN_EOS
#define CURVGRID
#define SPLINES
#define MASKING
#define STATIONS
#define FLOATS
#define AVERAGES
#undef EASTERN_WALL
#undef WESTERN_WALL
#undef SOUTHERN_WALL
#undef NORTHERN_WALL
#undef SPONGE
#define RADIATION_2D
#define RAMP_TIDES
#define SSH_TIDES
# define ADD_FSOBC
# define EAST_FSCHAPMAN
# define NORTH_FSCHAPMAN
# define WEST_FSCHAPMAN
# define SOUTH_FSCHAPMAN
#define UV_TIDES
# define ADD_M2OBC
# define EAST_M2FLATHER
# define NORTH_M2FLATHER
# define WEST_M2FLATHER
# define SOUTH_M2FLATHER
#define EAST_M3RADIATION
#define EAST_TRADIATION
#define EAST_TNUDGING
#define NORTH_M3RADIATION
#define NORTH_TRADIATION
#define NORTH_TNUDGING
#define WEST_M3RADIATION
#define WEST_TRADIATION
#define WEST_TNUDGING
#define SOUTH_M3RADIATION
#define SOUTH_TRADIATION
#define SOUTH_TNUDGING
#define UV_QDRAG
#ifdef SOLVE3D
# define GLS_MIXING
# ifdef GLS_MIXING
# define KANTHA_CLAYSON
# define N2S2_HORAVG
# endif
# if defined SEDIMENT || defined SG_BBL || defined MB_BBL || defined SSW_BBL
# define ANA_SEDIMENT
# endif
# define ANA_BSFLUX
# define ANA_SSFLUX
# define ANA_BTFLUX
# undef ANA_STFLUX
# undef ANA_BPFLUX
# undef ANA_SPFLUX
# undef ANA_SRFLUX
# define DIURNAL_SRFLUX
#endif
#define QCORRECTION
#define SOLAR_SOURCE
Although the tidal forcings reproduced by Roms_tools through TPXO7 were reasonable (I've checked) the output screen showed quite high input values of tidal elevation amplitude and maximum tidal current as:
GET_NGFLD - tidal period
(Min = 4.30819210E+04 Max = 2.38071599E+06)
GET_2DFLD - tidal elevation amplitude
(Min = 7.32374201E-05 Max = 2.11612036E+01)
GET_2DFLD - tidal elevation phase angle
(Min = 1.27267371E-05 Max = 6.28318530E+00)
GET_2DFLD - tidal current inclination angle
(Min = 1.76610601E-06 Max = 6.28318321E+00)
GET_2DFLD - tidal current phase angle
(Min = 5.46455752E-06 Max = 6.28318301E+00)
GET_2DFLD - maximum tidal current, ellipse major axis
(Min = 9.11001471E-07 Max = 2.96800211E+01)
GET_2DFLD - minimum tidal current, ellipse minor axis
(Min = -2.58843552E+00 Max = 2.87629934E+00)
Were these information interpolated from something?
Is there any suggestion?
Thanks in advance,
High output amplitutes in tidal simulation
Re: High output amplitutes in tidal simulation
Are you using the source from myroms.org, ROMS IRD/Agrif, or ROMS UCLA?
If the myroms.org source, then I'm not so sure the tidal forcing input values are reasonable:
The default units for tidal elevation are meters. You have 2.11612036E+01 which is 21.1 meters.
I suspect several of your other inputs are also wrong.
If you are not using the myroms.org source, or have scaled your inputs using the scale factor option provided by varinfo.dat, then let us know in your next posting because it affects how to tackle your problem.
John.
If the myroms.org source, then I'm not so sure the tidal forcing input values are reasonable:
The default units for the tide period are indicated in varinfo.dat as hours. On input these are converted to seconds and reported to stdout (above). You have a max tide period of 2.38071599E+06 seconds, or 786 hours.GET_NGFLD - tidal period
(Min = 4.30819210E+04 Max = 2.38071599E+06)
GET_2DFLD - tidal elevation amplitude
(Min = 7.32374201E-05 Max = 2.11612036E+01)
The default units for tidal elevation are meters. You have 2.11612036E+01 which is 21.1 meters.
I suspect several of your other inputs are also wrong.
If you are not using the myroms.org source, or have scaled your inputs using the scale factor option provided by varinfo.dat, then let us know in your next posting because it affects how to tackle your problem.
John.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: High output amplitutes in tidal simulation
Thanks for you reply
I'm using ROMS UCLA (trunk-r186, trunk-r195, trunk-r200, etc and they are all the same problem). I haven't modified any thing in varinfo.dat yet. Here is the related variable:
!
!------------------------------------------------------------------------------
! Tidal forcing variables.
!------------------------------------------------------------------------------
!
'tide_period' ! Input
'tidal period'
'hours' ! [s]
'tide_period, scalar, series'
'tide_period'
'idTper'
'nulvar'
3600.0d0 ! 60*60
'tide_Eamp' ! Input
'tidal elevation amplitude'
'meter' ! [m]
'SSH_Tamp, scalar, series'
'tide_period'
'idTzam'
'r2dvar'
1.0d0
......................
Thanks again.
dhson.
I'm using ROMS UCLA (trunk-r186, trunk-r195, trunk-r200, etc and they are all the same problem). I haven't modified any thing in varinfo.dat yet. Here is the related variable:
!
!------------------------------------------------------------------------------
! Tidal forcing variables.
!------------------------------------------------------------------------------
!
'tide_period' ! Input
'tidal period'
'hours' ! [s]
'tide_period, scalar, series'
'tide_period'
'idTper'
'nulvar'
3600.0d0 ! 60*60
'tide_Eamp' ! Input
'tidal elevation amplitude'
'meter' ! [m]
'SSH_Tamp, scalar, series'
'tide_period'
'idTzam'
'r2dvar'
1.0d0
......................
Thanks again.
dhson.
Re: High output amplitutes in tidal simulation
You say you are using ...
From varinfo.dat your tide period input has to be in hours, because you have a scale factor of 3600 which converts the hours to seconds. The units in square brackets [s] show this is what ROMS requires once your data are read and your scale factor is applied.
The stdout from the run reports a maximum period for the constituents of 2.38071599E+06 seconds, which is 661 hours (or 27.55 days). Is this what you intended? You have a minimum period for the constituents of 4.308E+04 which is 11.96 hours, which is right for the K2 constituent. So it looks to me that your tide periods are plausible.
However, I must assume the tide amplitude is wrong. stdout reports a maximum amplitude of 21 meters. I strongly suspect Roms_tools has given you data in centimeters. Perhaps this is documented in the tides file itself. Do:
and look at the attributes of tide_Eamp. Check the values too.
If you think these are in centimeters, then you can either:
(a) modify the data in the file to convert to meters, or
(b) set the scale factor in varinfo.dat to 0.01 to make the conversion on input
John.
I didn't think UCLA ROMS did the I/O this way - with varinfo.dat, or maintained an svn repository (i.e. with a trunk etc.) Are you actually using the source downloaded from myroms.org (a.k.a Rutgers ROMS)?ROMS UCLA (trunk-r186, trunk-r195, trunk-r200, etc and they are all the same problem).
From varinfo.dat your tide period input has to be in hours, because you have a scale factor of 3600 which converts the hours to seconds. The units in square brackets [s] show this is what ROMS requires once your data are read and your scale factor is applied.
The stdout from the run reports a maximum period for the constituents of 2.38071599E+06 seconds, which is 661 hours (or 27.55 days). Is this what you intended? You have a minimum period for the constituents of 4.308E+04 which is 11.96 hours, which is right for the K2 constituent. So it looks to me that your tide periods are plausible.
However, I must assume the tide amplitude is wrong. stdout reports a maximum amplitude of 21 meters. I strongly suspect Roms_tools has given you data in centimeters. Perhaps this is documented in the tides file itself. Do:
Code: Select all
ncdump -h your_tides_file.nc
If you think these are in centimeters, then you can either:
(a) modify the data in the file to convert to meters, or
(b) set the scale factor in varinfo.dat to 0.01 to make the conversion on input
John.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: High output amplitutes in tidal simulation
Dear Jonh,
In fact, update ROMS version 3.1 from trunks did not take much time to modify so we prefer this way.
Unfortunately, I did not find any problem in the tidal forcing file:
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 = "Tidal elevation phase angle" ;
tide_Ephase:units = "Degrees" ;
double tide_Eamp(tide_period, eta_rho, xi_rho) ;
tide_Eamp:long_name = "Tidal elevation amplitude" ;
tide_Eamp:units = "Meter" ;
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 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" ;
I guess there were some bugs in coding.
In fact, update ROMS version 3.1 from trunks did not take much time to modify so we prefer this way.
Unfortunately, I did not find any problem in the tidal forcing file:
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 = "Tidal elevation phase angle" ;
tide_Ephase:units = "Degrees" ;
double tide_Eamp(tide_period, eta_rho, xi_rho) ;
tide_Eamp:long_name = "Tidal elevation amplitude" ;
tide_Eamp:units = "Meter" ;
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 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" ;
I guess there were some bugs in coding.