Stretching parameters - vertical coordinates

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
bru

Stretching parameters - vertical coordinates

#1 Unread post by bru »

I am trying to manipulate those two parameters: theta_s and theta_b which control surface and bottom sigma-coordinates. I have fixed theta_b=0, so the resolution all goes to the surface as theta_s is increased. While I'm playing with theta_s, I have encountered problems that I can't figure out. For example, I'm running ROMS on Mediterranean Basin with theta_s=5 (I have read somewhere that it is optimum to select reasonable values, ie theta_s <= 5). The model gives good results.

But if I choose to change theta_s and give a lower value such as theta_s=3 (I have read that for steep bathymetry theta_s should be lower than 3), the model blows up rapidly. How come? Has anyone got an idea about that ?

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

#2 Unread post by arango »

Usually, it requires several runs to get the appropriate values of the stretching parameters theta_s and theta_b. One of the most common set-up problems reported is that users try to put all the levels near the surface. This is not recommended :!: In terrain-following coordinates models, you need to provide enough levels at the bottom of your grid. Specially if your application has as complicated bathymetry as the Mediterranean. If more resolution is needed to resolve surface processes, you need to increase the number of vertical levels. You must not increase the surface resolution at the expense of very coarse bottom level distribution. The ocean is continuous, you cannot separate its vertical processes in such a trivial way.

Another aspect to consider is that the SPLINES option transforms the vertical coordinate in a way similar to finite volume. You can get catastrophic results if your bottom resolution is very coarse. This is fine in estuaries and relatively shallow regions, if you are not interested in bottom layer dynamics. However, I have my reservations there too. In a basin like the Mediterranean the story is quite different. Nowadays, we can afford finer horizontal and vertical resolutions due to advances in computer technology and the relatively inexpensive disk space.

The value of these parameters can change according to the application. You need to avoid using higher values of theta_s. The higher its value the more nonlinear the vertical transformation. This should be avoided because it affects the accuracy of the ROMS algorithms. We usually recommend a value theta_s=5 and theta_b=0.4. Also, values like theta_s=3 and theta_b=0.4 work very well.

Notice that every time that you change theta_s and theta_b, you need to regenerate all the NetCDF files of the model in which the fields depend on the depth of vertical grid points. This includes initial conditions, climatological conditions, lateral boundary conditions, and data assimilation fields.

Remember that the vertical CFL conditions can be violated by changing the vertical distribution of levels, bottom friction, and vertical mixing. Therefore, the model can blow-up if either horizontal and vertical CFL conditions are violated. Very fine vertical resolution requires smaller time-step in most cases.

I usually use the Matlab script scoord.m to determine the appropriate number of levels for an application given the bathymetry and the values for the stretching parameters. This script is distributed in the Matlab tree, see directory matlab/tools.

Good luck, :)

debcox
Posts: 15
Joined: Tue Mar 09, 2004 3:21 pm
Location: University of New South Wales, Australia

Re: Stretching parameters - vertical coordinates

#3 Unread post by debcox »

In my current application of the model, I am not applying a surface wind stress and would sometimes like more resolution in the bottom boundary layer, but not at the surface. Using theta_s and theta_b it seems possible to increase the resolution at the surface only or at both surface and bottom. Is it possible to define a vertical coordinate system with increased resolution at the bottom only?

thanks,

Deborah

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

#4 Unread post by arango »

Yes, use theta_b=1. Several matlab scripts (scoord.m, scoord2.m, and scoord3.m) are provided in my matlab tree tar file, so you can plot the vertical level distribution as a function of the bathymetry (h), number of vertical levels (N), and vertical stretching coordinates parameters (theta_s, theta_b, Tcline).

I just realized that Matlab scripts are not clearly located in the ROMS web site. Anyway, here is the link:

http://www.myroms.org/software/Processi ... lab.tar.gz

Good luck

debcox
Posts: 15
Joined: Tue Mar 09, 2004 3:21 pm
Location: University of New South Wales, Australia

#5 Unread post by debcox »

Thanks Hernan, found the matlab scripts.

Maybe I am missing something obvious, but if I set theta_b=1 I can only get increased resolution at both the bottom (where I do need it) and the surface (where I don't).

I could just modify the existing function to get the kind of vertical coordinate distribution I would like - are there any potential problems in doing this?

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

#6 Unread post by arango »

Well that depends on the value of theta_s. You can experiment with the Matlab scripts and different values for theta_s and Tcline until you get the desired vertical level distribution.

On principle, it is very trivial to change the vertical strectching coordinates. ROMS has a generic horizontal and vertical coordinate system. The horizontal coordinates are orthogonal and curvilinear so you can have Cartesian, polar, spherical and other special cases. The vertical coordinates are in terms of vertical grid positions (depths: z_r and z_w) and vertical grid-cell thicknesses (Hz). This means that you can have pretty much any vertical level distribution providing that the transition is smooth between grid cells. That is, you need to provide a rational to compute z_r, z_w, and Hz every time-step as a function of bathymetry (h) and free-surface (Zt_avg1).

This is done in the model in two routines set_depth.F and set_scoord.F.

Good luck

wmartin
Posts: 17
Joined: Fri Jul 09, 2004 7:40 pm
Location: Nature Conservancy

Getting resolution a the bottom

#7 Unread post by wmartin »

I have the same situation, i.e. no surface forcing but a lot going on at the bottom. I have used a simple parabolic form: Cs = (1-s)^2 -1, without any problems. You can tweak the exponent to change the mix. However, I switched back to the standard formula just to stay in sync with other people working on similar problems. If somthing starts going funny I didn't want to have something so non-standard in my setup.

Wayne

Post Reply