Tidal forcing at the open boundary
Moderators: arango, kate, robertson
Tidal forcing at the open boundary
What kind of open boundary conditions should be used to force the tides. I checked the idealized WEDDELL test case, in which the Flather/Chapman conditions are applied for 2D momentum. Do I have to use this kind of boundary condition?
- arango
- Site Admin
- Posts: 1356
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Yes, for tidal forcing you need to use Flather boundary conditions for momentum. If you check the 2D boundary condition routines, you will notice that for the CPP flag *_M2FLATHER we use Flather boundary conditions for the velocity normal to the boundary and Chapman boundary conditions for the tangential velocity. Also notice that for the 2D momentum Flather boundary conditions we need both tidal current and tidal elevation. This forcing is superimposed onto the boundary condition arrays in routine clm_tides as the sum of all tidal constituents.
For the free-surface we use Chapman boundary conditions with gravity wave celerity.
It is our experience that to get the tides correctly, you need to specify both tidal currents (minor and major axis of the tidal ellipse) and tidal elevation. In realistic applications with ROMS, you must use tidal currents at the open boundary. Specifying the tidal elevation only will not
do the job.
For US East coast applications we use tidal data form ADCIRC. For more information about tidal forcing please visit:
http://www.myroms.org/index.php?page=forcing
Hernan
For the free-surface we use Chapman boundary conditions with gravity wave celerity.
It is our experience that to get the tides correctly, you need to specify both tidal currents (minor and major axis of the tidal ellipse) and tidal elevation. In realistic applications with ROMS, you must use tidal currents at the open boundary. Specifying the tidal elevation only will not
do the job.
For US East coast applications we use tidal data form ADCIRC. For more information about tidal forcing please visit:
http://www.myroms.org/index.php?page=forcing
Hernan
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
tidal open boundary conditions
Well. I saw the example where you used ADCIRC tidal fields but you have prescribed tidal fields at all grid points instead only at the open boundaries. If I only want to have tidal forcing open boundary, how do I specify this in the NetCDF file? Do I need to set it at all other interior points to a missing value?
Now, if I want to simulate only tides, how should forcing NetCDF looks like? Do I need to specify all other not used forcing varibles, like stress and so on? I hope not. All routines for constructing the forcing NetCDF file are strcutured to append fields to an existing file. Is there a matlab script to create a scratch forcing NetCDF file?
Cheers, Ivica
Now, if I want to simulate only tides, how should forcing NetCDF looks like? Do I need to specify all other not used forcing varibles, like stress and so on? I hope not. All routines for constructing the forcing NetCDF file are strcutured to append fields to an existing file. Is there a matlab script to create a scratch forcing NetCDF file?
Cheers, Ivica
- arango
- Site Admin
- Posts: 1356
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
There are a lot of questions here. First, all the Fortran 77 processing codes for initial and forcing conditions were written several years ago. I have not updated all these old codes becuase we now have more flexible ways to prepare the model input files. I don't know if I will ever update these codes. In these old codes, we assumed that only one forcing NetCDF file is needed. That is, all the forcing fields are contained in a single NetCDF forcing file. Although you can still use a single forcing NetCDF file, nowadays we can use multitple forcing NetCDF files. See model input script (ocean.in) for details. For example, you can have a different NetCDF for wind stress, heat freshwater fluxes, atmospheric fields for bulk parameterizations, rivers, tides, and other kind of forcing. I highly recommened to have multiple forcing files
I always have tides and rivers files separated. This give us a lot of flexibility.
There is not need to have complex codes to generate any of the model input files. See the following post.
viewtopic.php?t=63
Notice that creating these files are trivial if you use the provide CDL scripts. You can modify any of these CDL scripts and enter the appropriate dimension for you application. Then, I use a lot of matlab scripts to write the data in.
Yes, it is not obvious to many users why we built the tidal forcing in the full grid. We did this because of sponge layers and nudging bands next to the open boundaries. The interior tidal field maybe needed for such application. Now for tidal forcing at the open boundary, you can still use this structure provide that you specify the tiday forcing at the correct boundary points. If you don't have any information in the interior, I recommend that you repeat the same value (Ibry,:) or (Jbry,:) in the tidal arrays. I don't recommend special values other than zero. If you put a large number (say 1E35), the NetCDF reading routine can assign an infinite number. It is better to specify the same value at the boundary and interior.
If you are only interested in tidal forcing, you can create a separate NetCDF file for the remaining forcing fields. If don't know the value of those fields, you can set them to zero. That is, all forcing terms will not accounted for in you application. Alternatively, you can specify those fields using real data or an analytical expression.
![Exclamation :!:](./images/smilies/icon_exclaim.gif)
There is not need to have complex codes to generate any of the model input files. See the following post.
viewtopic.php?t=63
Notice that creating these files are trivial if you use the provide CDL scripts. You can modify any of these CDL scripts and enter the appropriate dimension for you application. Then, I use a lot of matlab scripts to write the data in.
Yes, it is not obvious to many users why we built the tidal forcing in the full grid. We did this because of sponge layers and nudging bands next to the open boundaries. The interior tidal field maybe needed for such application. Now for tidal forcing at the open boundary, you can still use this structure provide that you specify the tiday forcing at the correct boundary points. If you don't have any information in the interior, I recommend that you repeat the same value (Ibry,:) or (Jbry,:) in the tidal arrays. I don't recommend special values other than zero. If you put a large number (say 1E35), the NetCDF reading routine can assign an infinite number. It is better to specify the same value at the boundary and interior.
If you are only interested in tidal forcing, you can create a separate NetCDF file for the remaining forcing fields. If don't know the value of those fields, you can set them to zero. That is, all forcing terms will not accounted for in you application. Alternatively, you can specify those fields using real data or an analytical expression.
testing different obc's for tidal applications
I am modeling tidal flows over rough topography, in particular the Strait of Juan de Fuca. I have been reading up on obc's and have found the literature dealing with conditions along a coast and without tides (Chapman, Marchesiello, Palma). Does anyone know of any quantitative evaluation of OBC's in a tidal application.
Thanks
WAyne
Thanks
WAyne
-
- Posts: 22
- Joined: Fri Jul 08, 2005 5:42 pm
- Location: Kyoto University
Re: testing different obc's for tidal applications
I've shortly summarized OBC and tidal forcing in ROMS 3.0.
This is very tentative and will be rewritten when I have time.
See
http://sauron.urban.eng.osaka-cu.ac.jp/ ... ms_obc.pdf
This is very tentative and will be rewritten when I have time.
See
http://sauron.urban.eng.osaka-cu.ac.jp/ ... ms_obc.pdf
wmartin wrote:I am modeling tidal flows over rough topography, in particular the Strait of Juan de Fuca. I have been reading up on obc's and have found the literature dealing with conditions along a coast and without tides (Chapman, Marchesiello, Palma). Does anyone know of any quantitative evaluation of OBC's in a tidal application.
Thanks
WAyne
The way to include tides in a painless way is to use a FLATHER/CHAPMAN combination, then specify the climatological sea surface height with tides in it.
Thus your cpp options for an eastern open boundary with tides would look like this:
Then you could either define these:
and specify the tidal forcing through fsobc (the tidal height -- I typically leave the climatological velocity set to zero). This works great for idealized cases, or cases where the tidal height along the open boundary is essentially uniform, and can be prescribed analytically. For example I use this combination in my model of the Merrimack outflow. Since I am only interested in the M2 tide, and the domain is only about 10km wide, it is easy to specify analytically, although the model is otherwise realistic.
The other option is that you can use things like SSH_TIDES and UV_TIDES. These options can be used to specify realistic tidal constituents along the open boundary. The tidal anomalies to the open boundary conditions will be added to the tidally averaged climatological ssh and uv bounary values. (Using these options is beyond the scope of this post....)
Thus your cpp options for an eastern open boundary with tides would look like this:
Code: Select all
#define EAST_FSCHAPMAN
#define EAST_M2FLATHER
#define EAST_M3RADIATION
#define EAST_TRADIATION
Code: Select all
#define ANA_FSOBC
#define ANA_M2OBC
The other option is that you can use things like SSH_TIDES and UV_TIDES. These options can be used to specify realistic tidal constituents along the open boundary. The tidal anomalies to the open boundary conditions will be added to the tidally averaged climatological ssh and uv bounary values. (Using these options is beyond the scope of this post....)
Re: Tidal forcing at the open boundary
Hi,
I'm trying to simulate the variation of the tidal constants (and consequently, local Sea Level Rise) when MSL increases e.g. 1.0 meter.
Using ROMS (now, trunk-r186) for tides at South China Sea with below CPP for all OBCs, I've got surface elevation ussually 50% higher than observation for most coastal points. I'm trying to figure out but do you think that although tidal forcings (from TPXO7 by MATLAB) were available at all grid points but, in fact, they were used only at open boundary (or several layers at OB)? It seems that when I check "set_tides.F".
Furthermore, there was no differences in outputs when I set all tidal parameters at all grid points to zero (except three boundary layers).
#define RAMP_TIDES
#define SSH_TIDES
# define ADD_FSOBC
# define EAST_FSCHAPMAN
....
#define UV_TIDES
# define ADD_M2OBC
# define EAST_M2FLATHER
....
I'm trying to simulate the variation of the tidal constants (and consequently, local Sea Level Rise) when MSL increases e.g. 1.0 meter.
Using ROMS (now, trunk-r186) for tides at South China Sea with below CPP for all OBCs, I've got surface elevation ussually 50% higher than observation for most coastal points. I'm trying to figure out but do you think that although tidal forcings (from TPXO7 by MATLAB) were available at all grid points but, in fact, they were used only at open boundary (or several layers at OB)? It seems that when I check "set_tides.F".
Furthermore, there was no differences in outputs when I set all tidal parameters at all grid points to zero (except three boundary layers).
#define RAMP_TIDES
#define SSH_TIDES
# define ADD_FSOBC
# define EAST_FSCHAPMAN
....
#define UV_TIDES
# define ADD_M2OBC
# define EAST_M2FLATHER
....
Re: Tidal forcing at the open boundary
Yes, it is true that ROMS will try to read the tides over the whole grid, then only use them at the boundary. It is applying them as part of the boundary condition, letting them propagate into the grid. If you have a large enough domain to require the body force potential tide, then that's another story (though the South China Sea is not that big). Paul Budgell has coded it up and it is in my svn branch. You then have to provide the tidal potential everywhere as more input fields.
Re: Tidal forcing at the open boundary
[quote="kate"]Yes, it is true that ROMS will try to read the tides over the whole grid, then only use them at the boundary. It is applying them as part of the boundary condition, letting them propagate into the grid. If you have a large enough domain to require the body force potential tide, then that's another story (though the South China Sea is not that big). Paul Budgell has coded it up and it is in my svn branch. You then have to provide the tidal potential everywhere as more input fields.[/quote]
Since ROMS only use the tidal info on the boundary, then if I only give tidal information at the open boundary and set all other grids with 0 for everything, will it still work? Another questions is if you specify tidal elevation and reduced physics at the offshore boundary, what will be a good choice for the remaining two cross-shore boundaries? can they also be driven by tides?
Since ROMS only use the tidal info on the boundary, then if I only give tidal information at the open boundary and set all other grids with 0 for everything, will it still work? Another questions is if you specify tidal elevation and reduced physics at the offshore boundary, what will be a good choice for the remaining two cross-shore boundaries? can they also be driven by tides?
Re: Tidal forcing at the open boundary
Do you mean that tide can be generated by ROMS by introducing in the tide generating forces ? Or do you intend to do this?kate wrote: If you have a large enough domain to require the body force potential tide, then that's another story. Paul Budgell has coded it up and it is in my svn branch. You then have to provide the tidal potential everywhere as more input fields.
Re: Tidal forcing at the open boundary
We usually apply the tides as a boundary condition. In a global model, there are no open boundaries for applying the tides. Clearly, the model must generate its own internally. Paul Budgell has this code and it is now in my branch of ROMS. A small domain still needs tides at the boundaries and basin-scale problems need both kinds of forcing.
Re: Tidal forcing at the open boundary
[quote="kate"] Paul Budgell has this code and it is now in my branch of ROMS. [/quote]
Is this shared? If it is,Would you please give me a link to this?
Is this shared? If it is,Would you please give me a link to this?
Re: Tidal forcing at the open boundary
You have to ask Dave Robertson for access. Then do a search on POT_TIDES.
-
- Posts: 4
- Joined: Fri Oct 21, 2011 2:14 am
- Location: OSU
Re: Tidal forcing at the open boundary
I am looking for the code to implement a TIDAL FORCING to a grid with NO OPEN BOUNDARY (global grid). I can see from the blog that an option POT_TIDES exists
Kate and leonjld has mentioned "If you have a large enough domain to require the body force potential tide, then that's another story. Paul Budgell has coded it up and it is in my svn branch. You then have to provide the tidal potential everywhere as more input fields"
I have downloaded the last version of ROMS and does not look like it is written there.
Can someone share the code ?
Thank you
Vincent
Kate and leonjld has mentioned "If you have a large enough domain to require the body force potential tide, then that's another story. Paul Budgell has coded it up and it is in my svn branch. You then have to provide the tidal potential everywhere as more input fields"
I have downloaded the last version of ROMS and does not look like it is written there.
Can someone share the code ?
Thank you
Vincent
Re: Tidal forcing at the open boundary
My svn branch is available by contacting Dave Robertson (see my previous message). It is also available here via git.
-
- Posts: 12
- Joined: Mon Jan 30, 2012 8:02 pm
- Location: University of Texas at Dallas
Re: Tidal forcing at the open boundary
Quick question,
I want to set up an operational system simulating full ocean physics in the Caribbean, meaning I want to simulate tides along with wind induced currents and so on. I am providing tidal forcing (tidal ssh and tidal induced currents) at the open boundaries via a netcdf tide forcing file and I am using the AmSeas NCOM model to provide all lateral OBC's (SSH, currents, temp, salt, etc) in the boundary conditions file. My question is, if I am giving the ROMS model tide induced currents (from OTPS) in the tide forcing file and the 3D currents from NCOM in the boundary file (which includes the tidal signal as well) will this be physically correct? It may seem as if I am providing the tidal signal twice which may cause a non-physical interaction between the boundary file currents and the tidal forcing file currents?
I have seen cases in which the tidal signal is removed from the boundary conditions file to obtain only the geostrophic flow at the boundary and then simulating the tidal currents separately in ROMS activating all the TIDE cpp flags. Which would be the correct ('physically realistic') way to do it? Provide the full currents from NCOM as is, or filtering the tide signal from the boundaries?
Any insight would be really helpful, thanks in advance!
I want to set up an operational system simulating full ocean physics in the Caribbean, meaning I want to simulate tides along with wind induced currents and so on. I am providing tidal forcing (tidal ssh and tidal induced currents) at the open boundaries via a netcdf tide forcing file and I am using the AmSeas NCOM model to provide all lateral OBC's (SSH, currents, temp, salt, etc) in the boundary conditions file. My question is, if I am giving the ROMS model tide induced currents (from OTPS) in the tide forcing file and the 3D currents from NCOM in the boundary file (which includes the tidal signal as well) will this be physically correct? It may seem as if I am providing the tidal signal twice which may cause a non-physical interaction between the boundary file currents and the tidal forcing file currents?
I have seen cases in which the tidal signal is removed from the boundary conditions file to obtain only the geostrophic flow at the boundary and then simulating the tidal currents separately in ROMS activating all the TIDE cpp flags. Which would be the correct ('physically realistic') way to do it? Provide the full currents from NCOM as is, or filtering the tide signal from the boundaries?
Any insight would be really helpful, thanks in advance!
Re: Tidal forcing at the open boundary
You are right - you want to provide the tides once and only once. You get to pick which way to do it. Some considerations:
1. How often are you getting boundary conditions from NCOM? You'd want at least every three hours, but perhaps hourly would be better for the tides.
2. How good are the tides in NCOM? Would they be better from say TPXO which is doing assimilation of altimetry?
1. How often are you getting boundary conditions from NCOM? You'd want at least every three hours, but perhaps hourly would be better for the tides.
2. How good are the tides in NCOM? Would they be better from say TPXO which is doing assimilation of altimetry?
-
- Posts: 12
- Joined: Mon Jan 30, 2012 8:02 pm
- Location: University of Texas at Dallas
Re: Tidal forcing at the open boundary
Thanks for the reply Kate,
Boundary conditions from NCOM are given every 3 hours and I would say tides are really good (they also assimilate altimetry) but I can't say if better than TPXO, probably not.
So it would probably be better if I provide tide currents from OTPS or adcirc and filter tide signal from NCOM. What would be the best way to do this?
Alternatively it would be easier for me to give the full BCs from NCOM and just use tide forcing for SSH but this doesn't seem right to me because in the simulations I have done ROMS seems to reproduce tide currents and ssh better by activating all tide cpp's instead of providing OBC's from NCOM.
Boundary conditions from NCOM are given every 3 hours and I would say tides are really good (they also assimilate altimetry) but I can't say if better than TPXO, probably not.
So it would probably be better if I provide tide currents from OTPS or adcirc and filter tide signal from NCOM. What would be the best way to do this?
Alternatively it would be easier for me to give the full BCs from NCOM and just use tide forcing for SSH but this doesn't seem right to me because in the simulations I have done ROMS seems to reproduce tide currents and ssh better by activating all tide cpp's instead of providing OBC's from NCOM.
Re: Tidal forcing at the open boundary
Sometimes you just have to try these things and decide what works best for you. Providing the 3-hourly BC's from NCOM will save you having to figure out tidal filtering, but requires a lot of interpolating. What will give the best tides will also be determined by trying various options and evaluating them.
-
- Posts: 12
- Joined: Mon Jan 30, 2012 8:02 pm
- Location: University of Texas at Dallas
Re: Tidal forcing at the open boundary
Ok, I see your point it would be ideal for me to test both ways.
I don't have any experience filtering the tides and from what I have read so far it doesn't seem trivial. Do you have any material that may be helpful, or could you point me in the right direction?
Any suggestion is welcome and thanks for your guidance, it has been most helpful!
I don't have any experience filtering the tides and from what I have read so far it doesn't seem trivial. Do you have any material that may be helpful, or could you point me in the right direction?
Any suggestion is welcome and thanks for your guidance, it has been most helpful!
-
- Posts: 25
- Joined: Thu Feb 09, 2017 6:44 pm
- Location: Inha university
Re: Tidal forcing at the open boundary
Hello friends
I wanna make tide forcing in my model.
I just have tide constituents(M2,S2,K1,O1,N2...) at open boundary.
And as long as I know, there are two ways to force with tides.
One way is to provide boundary conditions with enough temporal resolution to solve the tides and Second is to provide the tidal constituents at all grid point. So I think I need to use first one.
but I don't have Idea how I apply this method in my input.Can I just put tide informations in boundary input file(zeta, ubar, etc.) or make tidal forcing input file(tide_Eamp,tide_Ephase,etc)?
I wanna make tide forcing in my model.
I just have tide constituents(M2,S2,K1,O1,N2...) at open boundary.
And as long as I know, there are two ways to force with tides.
One way is to provide boundary conditions with enough temporal resolution to solve the tides and Second is to provide the tidal constituents at all grid point. So I think I need to use first one.
but I don't have Idea how I apply this method in my input.Can I just put tide informations in boundary input file(zeta, ubar, etc.) or make tidal forcing input file(tide_Eamp,tide_Ephase,etc)?
Last edited by changjw214 on Fri Apr 21, 2017 3:55 pm, edited 1 time in total.
Re: Tidal forcing at the open boundary
ROMS wants to read the tides everywhere, but only uses them at the boundaries. You can set all the interior values to zero if you want.