how to radiate and damping out waves ?

Discussion of how to use ROMS on different regional and basin scale applications.

Moderators: arango, robertson

Post Reply
Message
Author
cecilia
Posts: 41
Joined: Thu Aug 16, 2007 9:10 pm
Location: DGF - UChile
Contact:

how to radiate and damping out waves ?

#1 Post by cecilia » Mon Nov 26, 2007 7:01 pm

Is there a module / subprogram in ROMS to radiate (barotropic) and damping (baroclinic) waves out of the computational domain ?

Thanks a lot

Cecilia

User avatar
kate
Posts: 3678
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

#2 Post by kate » Mon Nov 26, 2007 7:30 pm

We usually do some thing like:

Code: Select all

#define UV_VIS2
#define MIX_S_UV
#define VISC_GRID
#define SPONGE

#ifdef SOLVE3D
# define TS_DIF2
# define MIX_GEO_TS
# define DIFF_GRID
#endif

#ifndef NORTHERN_WALL
# define NORTH_FSCHAPMAN
# define NORTH_M2FLATHER
# ifdef SOLVE3D
#  define NORTH_M3RADIATION
#  define NORTH_M3NUDGING
#  define NORTH_TRADIATION
#  define NORTH_TNUDGING
# endif
#endif
This will radiate the 2-d waves (Chapman-Flather) and do a combined radiation, nudging, sponge on the 3-d signals. The SPONGE is set up in ana_hmix.h nowadays. You have to provide boundary values from some larger domain with this, however. The nudging timescales are set in the ocean.in file, with stronger nudging on incoming signals than outgoing signals.

nageswararao

#3 Post by nageswararao » Wed Nov 28, 2007 6:28 am

When I am using the above mentioned open boundary conditions i.e., nudging and radiation I am getting lower temperature values at some points along southern and easternboundaries.
Why this was happening?
How can I overcome from this and get good results at boundaries also?
For Indian ocean what should be the nudging time scale.......? and how can I give " stronger nudging on incoming signals than outgoing signals" ?

Thanks in advance.

With best regards,
G.NageswaraRao.

User avatar
kate
Posts: 3678
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

#4 Post by kate » Wed Nov 28, 2007 6:41 pm

My Northeast Pacific values:

Code: Select all

! Nudging/relaxation time scales, inverse scales will be computed
! internally, [1:Ngrids].

       TNUDG == 2*360.0d0                    ! days
       ZNUDG == 0.0d0                      ! days
      M2NUDG == 0.0d0                      ! days
      M3NUDG == 360.0d0                      ! days

! Factor between passive (outflow) and active (inflow) open boundary
! conditions, [1:Ngrids]. If OBCFAC > 1, nudging on inflow is stronger
! than on outflow (recommended).

      OBCFAC == 120.0d0                      ! nondimensional
These values give 360 days on "outgoing" stuff and 3 days on "incoming" stuff. The outgoing/incoming switch is based on a very local phase speed and that can be a quite noisy field if one were to plot it.

This reminds me that Sasha showed a better boundary condition at the most recent ROMS meeting. That's what we were all drooling over. Will those slides ever become available?

cecilia
Posts: 41
Joined: Thu Aug 16, 2007 9:10 pm
Location: DGF - UChile
Contact:

#5 Post by cecilia » Wed Nov 28, 2007 10:42 pm

Thanks Kate,

I would like to review some papers on that open boundary conditions. Do you know some key references ?

Bye

nageswararao

#6 Post by nageswararao » Thu Nov 29, 2007 7:08 am

Thanks Kate for ur reply.
But why I am low temperature values at some points along southern and eastern boudaries after some years of run.......????
I am using the following values .......
TNUDG == 2*15.0d0 ! days
ZNUDG == 0.0d0 ! days
M2NUDG == 0.0d0 ! days
M3NUDG == 0.0d0 ! days

! Factor between passive (outflow) and active (inflow) open boundary
! conditions, [1:Ngrids]. If OBCFAC > 1, nudging on inflow is stronger
! than on outflow (recommended).

OBCFAC == 0.0d0 ! nondimensional

Thanks in advance.

With best regards,
G.NageswaraRao.

User avatar
kate
Posts: 3678
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

#7 Post by kate » Thu Nov 29, 2007 7:54 pm

See above - it is recommended that OBCFAC be greater than 1. Do you have boundary values from somewhere to nudge to? For just tracers or momentum too? Which of your boundary options are turned on?

There should be comments in the boundary condition code pointing to the original references. I learned what little I know from Dave Chapman many moons ago - just be consistent between your boundary numerical scheme and the interior scheme. Sasha - any tips?

User avatar
robertson
Site Admin
Posts: 121
Joined: Wed Feb 26, 2003 3:12 pm
Location: IMCS, Rutgers University

#8 Post by robertson » Thu Nov 29, 2007 8:30 pm

Presentations from the 2007 ROMS workshop at UCLA can be found here:

http://www.myroms.org/index.php?page=ROMS_2007_agenda

Electronic versions of the posters that were presented can be found here:

http://www.myroms.org/Workshops/ROMS200 ... s/posters/

nageswararao

#9 Post by nageswararao » Fri Nov 30, 2007 10:24 am

For reference, I had used the .in file of benchmark test case. I had given boundary netcdf file extracted from climatology file for both tracers and momentum. I had turned on the following options for south and eastern boundaries.
#define SOUTH_TNUDGING
#define EAST_TNUDGING
#define SOUTH_TRADIATION
#define SOUTH_M3RADIATION
#define SOUTH_M3NUDGING
#define EAST_TRADIATION
#define EAST_M3RADIATION
#define EAST_M3NUDGING
along with tidal boundary conditions.

Thanks in advance.

With regards,
G.NageswaraRao.

User avatar
kate
Posts: 3678
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

#10 Post by kate » Fri Nov 30, 2007 6:05 pm

It looks like your cpp flags match mine. Now check to make sure you have sensible values for TNUDG, M3NUDG and OBCFAC. Why don't you start from my values and tweak from there? I'm especially dubious of setting any of them to zero.

nageswararao

#11 Post by nageswararao » Thu Dec 06, 2007 5:42 am

Thanks Kate. I will do what u said.....
But please clarify me this doubt.
TNUDG == 2*360.0d0 ! days
ZNUDG == 0.0d0 ! days
M2NUDG == 0.0d0 ! days
M3NUDG == 360.0d0 ! days
In the above values, TNUDG == 2*360.0d0 and M3NUDG == 360.0d0 means what?
Is the boundary values of tracers and momentum are nudged to climatological values at a time scale of 360 days. Can u please tell what it will actually do?
I want to give the model 2days of nudging scale. ie, it has to relax the boundary values to climatology for every 2days.
And another question is, while reading a paper "Arabian Sea and Bay of Bengal exchange of salt and tracers in an ocean model " T.G. Jensen, I came across one sentence " A relaxation towards an Indonesian Throughflow of 10 Sv and an outflow of 40 Sv along 30S, from Africa to 39E is used. East of that longitude the model inflow is allowed to evolve freely" How can I implement this in ROMS-2.2 model. Mine grid is 30-140E,30S-30N.
I hope u will answer my questions.
Thanks in advance.

With regards,
G.NageswaraRao.

User avatar
kate
Posts: 3678
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

#12 Post by kate » Thu Dec 06, 2007 5:25 pm

nageswararao wrote:In the above values, TNUDG == 2*360.0d0 and M3NUDG == 360.0d0 means what?
This means that each tracer has a timescale of 360 days on outgoing signals. To get a timescale of 2 days on incoming signals, leave this and set OBCFAC to 180. Remember OBCFAC is the ratio of the two.
And another question is, while reading a paper "Arabian Sea and Bay of Bengal exchange of salt and tracers in an ocean model " T.G. Jensen, I came across one sentence " A relaxation towards an Indonesian Throughflow of 10 Sv and an outflow of 40 Sv along 30S, from Africa to 39E is used. East of that longitude the model inflow is allowed to evolve freely" How can I implement this in ROMS-2.2 model. Mine grid is 30-140E,30S-30N.
This used to be really easy in the SPEM days, where you had a streamfunction for the barotropic flow. Now, you will have to figure out barotropic flows which add up to these values and apply them somehow. Perhaps others here can be more helpful.[/i]

nageswararao

#13 Post by nageswararao » Mon Dec 31, 2007 5:31 am

Hi Kate,
I had tried all possible nudging time scales from monthly to daily. But still I am getting cold temperatures at boundaries. In my setup, I am relaxing my salinity to climatology(define SRELAXATION). Without any boundary conditions it is relaxing properly (by seeing the monthly mean output) but when I had given the boundary conditions, nudging time scales along with salinity relaxation, salinity monthly outputs are different and consistently high in values.
Is SRELAXATION, the correct cppdefs condition to relax salinity to climatology? or anything else or more.......
Whats going on in the model when I give the boundary conditions?
I am not understanding............
Please help me.

With best regards and Happy new Year,
G.NageswaraRao.

User avatar
wilkin
Posts: 503
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

#14 Post by wilkin » Wed Jan 02, 2008 2:50 pm

SRELAXATION is for relaxing surface salinity to observed (in the climatology file) as a parameterization of the surface freshwater flux. In cppdefs.h see the comment:
** SRELAXATION use if salinity relaxation as a freshwater flux **

If you want to nudge the 3D model solution to a climatology you need TCLM_NUDGING.

Search cppdefs.h for "climatology" and you will find the options:

** OPTIONS for reading and processing of climatological fields: **
** TCLIMATOLOGY use if processing tracers climatology **

** OPTIONS to nudge climatology data (primarily in sponge areas): **
** TCLM_NUDGING use if nudging tracers climatology **

You need both TCLM_NUDGING to activate the nudging, and you set the time scales in ocean*.in. TCLIMATOLOGY or ANA_TCLIMA control where ROMS looks for the climatological data (a netcdf file, or an analytical function).
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

nageswararao

#15 Post by nageswararao » Thu Jan 03, 2008 5:03 am

From ur discussion, I came to know that SRELAXATION is the one I am looking for. Because, TCLIM_NUDGING, TCLIMATOLOGY will be for both temperature and salinity. Another, thing is that I want to relax my surface salinity itself.
The main things I want to know is that
1. will SRELAXATION look for the nudging time scales ?
2. Why that cold temperatures are coming at open boundary when I give boundary conditions?

Please help me in these aspects.

With regards,
G.NageswaraRao.

User avatar
wilkin
Posts: 503
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

#16 Post by wilkin » Thu Jan 03, 2008 1:41 pm

Your first question regarding the setting of the time scales is easily answered if you simply look in the code. Find where the SRELAXATION option is used:

cd ROMS/Nonlinear
grep SRELAXATION *.F

It is in get_data.F and set_vbc.F.
get_data.F clearly relates to loading the surface salinity data.
set_vbc.F is "set vertical boundary condition" so browse this file looking for the SRELAXATION option. After various declarations we see a line of code

Code: Select all

elif defined SRELAXATION
          stflx(i,j,isalt)=-Tnudg(isalt,ng)*Hz(i,j,N(ng))*              &
     &                     (t(i,j,N(ng),nrhs,isalt)-sss(i,j))
which makes it clear that Tnudg(isalt) from ocean.in sets the nudging timescale. Tnudg(salt) is the second tracer nudging timescale in ocean.in. Tnudg(temperature) is the first.

With regards to your open boundary problems, I doubt SRELAXATION is what you want. I suspect you are confusing:

1. surface relaxation for resetting surface salt and heat fluxes
2. boundary nudging e.g. WEST_TNUDGING in conjunction with the radiation open boundary scheme (which is the heading of this Forum thread), and
3. 3-D nudging activated by TCLM_NUDGING and TCLIMATOLOGY, optionally made spatially varying with a user-specific ana_nudgcoef.h in the Functionals directory

Options 1 and 3 above get the nudging data from a user analytical formulation in ana_tclima.h or from the 3D climatology file CLMNAME set in ocean.in

Option 2 gets the nudging data from a user analytical formulation in ana_tobc.h or from the boundary file BRYNAME set in ocean.in.

When you use boundary nudging you say the model solution is misbehaving. I suggest you look closely at your boundary data file or boundary analytical code to see whether you are asking ROMS to nudge toward something sensible. If you have not set either of these for your application, you are nudging toward 0 salt and 0 temperature (the default in ana_tobc.h).

What your code is actually doing (as opposed to what you thought you asked for) is easily checked by viewing e.g. Build/analytical.f90 and Build/get_data.f90. You will see what options are active after all the cppflags are processed.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

FengZhou
Posts: 52
Joined: Wed Apr 07, 2004 10:48 pm
Location: 2nd Institute of Oceanography,SOA

Re: how to radiate and damping out waves ?

#17 Post by FengZhou » Tue Dec 30, 2008 1:45 am

1. surface relaxation for resetting surface salt and heat fluxes

Options 1 and 3 above get the nudging data from a user analytical formulation in ana_tclima.h or from the 3D climatology file CLMNAME set in ocean.in
Hi, John,

I feel that the SRELAXATION restores the modeled SSS to the SSS in forcing file when I have read the Build/get_data.f90. Am I right?

see
CALL get_2dfld (ng, iNLM, idSSSc, ncFRCid(idSSSc,ng), &
& nFfiles(ng), FRCname(1,ng), update(1), &
& LBi, UBi, LBj, UBj, 2, 1, &
& GRID(ng) % rmask(LBi,LBj), &
& FORCES(ng) % sssG(LBi,LBj,1))

Post Reply