passive tracer with bry,init conditions & top/bottom fluxes

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

passive tracer with bry,init conditions & top/bottom fluxes

#1 Unread post by PhilipT »

Hi all, i am using ROMS3.3 and i am wondering if with this version i can add a passive tracer and study it's behavior using initial, and (horizontal/vertical) boundary conditions. (for example the same way as temperature).

Is it possible with this version? If yes, what would be the logical way or steps to do it?
If not, what would you suggest version wise speaking for such a simulation?

Thank you in advance! :roll:
Last edited by PhilipT on Fri Jun 12, 2015 7:07 pm, edited 1 time in total.

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

Re: pasive tracer with bry,init conditions & top/bottom flux

#2 Unread post by kate »

I expect that you can use passive tracers with that version - they've been around a while. I say try it and see. On the other hand, if you upgrade to the latest we'll have a better chance of answering specific questions.

PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

Re: passive tracer with bry,init conditions & top/bottom flu

#3 Unread post by PhilipT »

So , i defined T_PASSIVE and ANA_BPFLUX,ANA_SPFLUX for zero surface and bottom fluxes.
Also, NPT==1 and Hout(inert)==T.
Insert the dye_01 at a specific location (zero everywhere and 10 to a certain location) in the init.nc and dye_(east,west,nort,south)_01=0 everywhere in the boundary file.
It seems to run pretty well but at some point after a year of run i get a huge error coming in the domain from the southern boundary giving huge negative and positive values for the tracer field.

Is this related to viewtopic.php?t=3599 ??

Is there something that i can do to avoid this abnormal behavior?

Thanks
F.

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

Re: passive tracer with bry,init conditions & top/bottom flu

#4 Unread post by kate »

You told us of your vertical boundary conditions on the passive tracer, but not the lateral boundary conditions. What are you using? For this, it might depend on the ROMS version - did you end up updating or going with your 3.3?

PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

Re: passive tracer with bry,init conditions & top/bottom flu

#5 Unread post by PhilipT »

I still try with ROMS3.3.
I download the latest one also and working on that.
My lateral bry are all set to zero having the same dimension with temp and salt.
It behaves really good, but after a year when the concentration get low, a huge error comes in from the boundary where the tracer exits due to the circulation.

https://www.dropbox.com/s/dkqjnsec2ck1a ... r.avi?dl=0

here is a video 23seconds with fixed colorbar.

thanks

PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

Re: passive tracer with bry,init conditions & top/bottom flu

#6 Unread post by PhilipT »

I have noticed that the problem starts exactly after one year.
Somehow it seems that the model needs to place something in, after one year from deployment!

There is something that i am missing in order to stop this behavior!

Any idea?

Thanks

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

Re: passive tracer with bry,init conditions & top/bottom flu

#7 Unread post by wilkin »

You say
My lateral bry are all set to zero having the same dimension with temp and salt
which are open boundary values but what are your open boundary conditions?

Are they clamped, gradient, or radiation on the inert tracers?

If you update your code you will have much greater control on these settings, because you can set e.g. radiation/nudging on the active tracers (temp and salt) and clamp the passive dye (though radiation plus strong nudging to zero might be better).

With ROMS3.3 I think you are locked in to having the same conditions on all tracers.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

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

Re: passive tracer with bry,init conditions & top/bottom flu

#8 Unread post by kate »

If you are having a problem after exactly one year, one might also ask exactly how you are setting the boundary values to zero. Is it a netcdf file? What is your calendar like - repeating after a year? Ending after a year? Show us the "ncdump -h" on it.

PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

Re: passive tracer with bry,init conditions & top/bottom flu

#9 Unread post by PhilipT »

About the boundary conditions i defined:

#define WESTERN_WALL
#undef SPONGE
#define EAST_VOLCONS
#define SOUTH_VOLCONS
#define NORTH_VOLCONS
#define EAST_FSGRADIENT
#define EAST_M2RADIATION
#define EAST_M2NUDGING
#define EAST_M3RADIATION
#define EAST_M3NUDGING
#define EAST_TRADIATION
#define EAST_TNUDGING
#define SOUTH_FSGRADIENT
#define SOUTH_M2RADIATION
#define SOUTH_M2NUDGING
#define SOUTH_M3RADIATION
#define SOUTH_M3NUDGING
#define SOUTH_TRADIATION
#define SOUTH_TNUDGING
#define NORTH_FSGRADIENT
#define NORTH_M2RADIATION
#define NORTH_M2NUDGING
#define NORTH_M3RADIATION
#define NORTH_M3NUDGING
#define NORTH_TRADIATION
#define NORTH_TNUDGING



About the boundary file, my boundary conditions are monthly:

dimensions:
xi_rho = 346 ;
xi_u = 345 ;
xi_v = 346 ;
eta_rho = 344 ;
eta_u = 344 ;
eta_v = 343 ;
s_rho = 30 ;
s_w = 31 ;
bry_time = 60 ;
variables:
double bry_time(bry_time) ;
bry_time:long_name = "open boundary conditions time" ;
bry_time:units = "days since 0000-01-01 00:00:00" ;
bry_time:field = "bry_time, scalar, series" ;
double zeta_west(bry_time, eta_rho) ;
zeta_west:long_name = "free-surface western boundary condition" ;
zeta_west:units = "meter" ;
zeta_west:field = "zeta_west, scalar, series" ;
zeta_west:time = "bry_time" ;
double zeta_east(bry_time, eta_rho) ;
zeta_east:long_name = "free-surface eastern boundary condition" ;
zeta_east:units = "meter" ;
zeta_east:field = "zeta_east, scalar, series" ;
zeta_east:time = "bry_time" ;
double zeta_south(bry_time, xi_rho) ;
zeta_south:long_name = "free-surface southern boundary condition" ;
zeta_south:units = "meter" ;
zeta_south:field = "zeta_south, scalar, series" ;
zeta_south:time = "bry_time" ;
double zeta_north(bry_time, xi_rho) ;
zeta_north:long_name = "free-surface northern boundary condition" ;
zeta_north:units = "meter" ;
zeta_north:field = "zeta_north, scalar, series" ;
zeta_north:time = "bry_time" ;
double ubar_west(bry_time, eta_u) ;
ubar_west:long_name = "2D u-momentum western boundary condition" ;
ubar_west:units = "meter second-1" ;
ubar_west:field = "ubar_west, scalar, series" ;
ubar_west:time = "bry_time" ;
double ubar_east(bry_time, eta_u) ;
ubar_east:long_name = "2D u-momentum eastern boundary condition" ;
ubar_east:units = "meter second-1" ;
ubar_east:field = "ubar_east, scalar, series" ;
ubar_east:time = "bry_time" ;
double ubar_south(bry_time, xi_u) ;
ubar_south:long_name = "2D u-momentum southern boundary condition" ;
ubar_south:units = "meter second-1" ;
ubar_south:field = "ubar_south, scalar, series" ;
ubar_south:time = "bry_time" ;
double ubar_north(bry_time, xi_u) ;
ubar_north:long_name = "2D u-momentum northern boundary condition" ;
ubar_north:units = "meter second-1" ;
ubar_north:field = "ubar_north, scalar, series" ;
ubar_north:time = "bry_time" ;
double vbar_west(bry_time, eta_v) ;
vbar_west:long_name = "2D v-momentum western boundary condition" ;
vbar_west:units = "meter second-1" ;
vbar_west:field = "vbar_west, scalar, series" ;
vbar_west:time = "bry_time" ;
double vbar_east(bry_time, eta_v) ;
vbar_east:long_name = "2D v-momentum eastern boundary condition" ;
vbar_east:units = "meter second-1" ;
vbar_east:field = "vbar_east, scalar, series" ;
vbar_east:time = "bry_time" ;
double vbar_south(bry_time, xi_v) ;
vbar_south:long_name = "2D v-momentum southern boundary condition" ;
vbar_south:units = "meter second-1" ;
vbar_south:field = "vbar_south, scalar, series" ;
vbar_south:time = "bry_time" ;
double vbar_north(bry_time, xi_v) ;
vbar_north:long_name = "2D v-momentum northern boundary condition" ;
vbar_north:units = "meter second-1" ;
vbar_north:field = "vbar_north, scalar, series" ;
vbar_north:time = "bry_time" ;
double u_west(bry_time, s_rho, eta_u) ;
u_west:long_name = "3D u-momentum western boundary condition" ;
u_west:units = "meter second-1" ;
u_west:field = "u_west, scalar, series" ;
u_west:time = "bry_time" ;
double u_east(bry_time, s_rho, eta_u) ;
u_east:long_name = "3D u-momentum eastern boundary condition" ;
u_east:units = "meter second-1" ;
u_east:field = "u_east, scalar, series" ;
u_east:time = "bry_time" ;
double u_south(bry_time, s_rho, xi_u) ;
u_south:long_name = "3D u-momentum southern boundary condition" ;
u_south:units = "meter second-1" ;
u_south:field = "u_south, scalar, series" ;
u_south:time = "bry_time" ;
double u_north(bry_time, s_rho, xi_u) ;
u_north:long_name = "3D u-momentum northern boundary condition" ;
u_north:units = "meter second-1" ;
u_north:field = "u_north, scalar, series" ;
u_north:time = "bry_time" ;
double v_west(bry_time, s_rho, eta_v) ;
v_west:long_name = "3D v-momentum western boundary condition" ;
v_west:units = "meter second-1" ;
v_west:field = "v_west, scalar, series" ;
v_west:time = "bry_time" ;
double v_east(bry_time, s_rho, eta_v) ;
v_east:long_name = "3D v-momentum eastern boundary condition" ;
v_east:units = "meter second-1" ;
v_east:field = "v_east, scalar, series" ;
v_east:time = "bry_time" ;
double v_south(bry_time, s_rho, xi_v) ;
v_south:long_name = "3D v-momentum southern boundary condition" ;
v_south:units = "meter second-1" ;
v_south:field = "v_south, scalar, series" ;
v_south:time = "bry_time" ;
double v_north(bry_time, s_rho, xi_v) ;
v_north:long_name = "3D v-momentum northern boundary condition" ;
v_north:units = "meter second-1" ;
v_north:field = "v_north, scalar, series" ;
v_north:time = "bry_time" ;
double temp_west(bry_time, s_rho, eta_rho) ;
temp_west:long_name = "potential temperature western boundary condition" ;
temp_west:units = "Celsius" ;
temp_west:field = "temp_west, scalar, series" ;
temp_west:time = "bry_time" ;
double temp_east(bry_time, s_rho, eta_rho) ;
temp_east:long_name = "potential temperature eastern boundary condition" ;
temp_east:units = "Celsius" ;
temp_east:field = "temp_east, scalar, series" ;
temp_east:time = "bry_time" ;
double temp_south(bry_time, s_rho, xi_rho) ;
temp_south:long_name = "potential temperature southern boundary condition" ;
temp_south:units = "Celsius" ;
temp_south:field = "temp_south, scalar, series" ;
temp_south:time = "bry_time" ;
double temp_north(bry_time, s_rho, xi_rho) ;
temp_north:long_name = "potential temperature northern boundary condition" ;
temp_north:units = "Celsius" ;
temp_north:field = "temp_north, scalar, series" ;
temp_north:time = "bry_time" ;
double salt_west(bry_time, s_rho, eta_rho) ;
salt_west:long_name = "salinity western boundary condition" ;
salt_west:units = "PSU" ;
salt_west:field = "salt_west, scalar, series" ;
salt_west:time = "bry_time" ;
double salt_east(bry_time, s_rho, eta_rho) ;
salt_east:long_name = "salinity eastern boundary condition" ;
salt_east:units = "PSU" ;
salt_east:field = "salt_east, scalar, series" ;
salt_east:time = "bry_time" ;
double salt_south(bry_time, s_rho, xi_rho) ;
salt_south:long_name = "salinity southern boundary condition" ;
salt_south:units = "PSU" ;
salt_south:field = "salt_south, scalar, series" ;
salt_south:time = "bry_time" ;
double salt_north(bry_time, s_rho, xi_rho) ;
salt_north:long_name = "salinity northern boundary condition" ;
salt_north:units = "PSU" ;
salt_north:field = "salt_north, scalar, series" ;
salt_north:time = "bry_time" ;
float dye_north_01(bry_time, s_rho, xi_rho) ;
dye_north_01:long_name = "dye concentration, type dye_north_01" ;
dye_north_01:units = "kilogram meter-3" ;
dye_north_01:time = "bry_time" ;
dye_north_01:field = "dye_north_01,scalar, series" ;
float dye_south_01(bry_time, s_rho, xi_rho) ;
dye_south_01:long_name = "dye concentration, type dye_south_01" ;
dye_south_01:units = "kilogram meter-3" ;
dye_south_01:time = "bry_time" ;
dye_south_01:field = "dye_south_01,scalar, series" ;
float dye_east_01(bry_time, s_rho, eta_rho) ;
dye_east_01:long_name = "dye concentration, type dye_east_01" ;
dye_east_01:units = "kilogram meter-3" ;
dye_east_01:time = "bry_time" ;
dye_east_01:field = "dye_east_01,scalar, series" ;
float dye_west_01(bry_time, s_rho, eta_rho) ;
dye_west_01:long_name = "dye concentration, type dye_west_01" ;
dye_west_01:units = "kilogram meter-3" ;
dye_west_01:time = "bry_time" ;
dye_west_01:field = "dye_west_01,scalar, series" ;

// global attributes:
:title = "" ;
:history = "BOUNDARY file, 1.0 " ;
:type = "BOUNDARY FORCING file" ;
:source = "" ;
:out_file = "" ;
:grd_file = "" ;
}



Yes, it seems that i am locked with the same bry for all tracers!

Thanks
thanks!

PhilipT
Posts: 11
Joined: Thu Apr 03, 2014 6:23 pm
Location: GATECH

Re: passive tracer with bry,init conditions & top/bottom flu

#10 Unread post by PhilipT »

Still i have no idea what was that happening BUT there is no problem after upgrading to ROMS3.6!

Thanks

Post Reply