Vertical diffusion

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
meiw
Posts: 8
Joined: Fri Oct 12, 2007 5:59 pm
Location: University of California, Irvine

Vertical diffusion

#1 Unread post by meiw »

Hi all,

I am now using ROMS to do some preliminary tests. I found a problem with vertical diffusion in a very simple experiment.

I started from a simple domain (a cube) with constant temperature and no salinity, nor flow. This is clearly steady and nothing happens. Then I added a constant positive surface net heat flux, homogeneous over the domain, with a constant diffusion coefficient. I should simply see a (diffusive) heat flux from the top layers downwards. Here is the problem: some layers at first get actually a decrease in temperature (this reduction is not big, but it's there, and physically it does not make sense), despite the positive heat flux from the top. Clearly, the problem is in the vertical diffusive flux, because there is no other term in the heat equation.

Looking into the code, it seems to me that the problem is the fact that the vertical derivative at the top layer is set to be zero (subroutine “step3d_t_tile”), while it should not be zero if there is a surface heat flux. The problem is then that when it computes the second order derivative, proportional to (T'(k)-T'(k-1) ) where T' is the first order derivative and k refers to the layer considered, it finds a negative value (which means UPWARD flux, while in this configuration I should only have downward flux).

Does anybody know the answer?

BTW: Could anybody tell me how to upload the figures?

Thanks a lot,
Wei

jcwarner
Posts: 1182
Joined: Wed Dec 31, 2003 6:16 pm
Location: USGS, USA

#2 Unread post by jcwarner »

do you have splines activated?
if so, try it without splines.

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

#3 Unread post by arango »

How are you specifying the surface net heat flux? Are you using an analytical expression in ana_stflux.h? If so, you need to do in terms of kinematic flux with Celsius m/s units. That is, you need 1/(rho0*Cp) if your surface forcing is in W/m2.
Looking into the code, it seems to me that the problem is the fact that the vertical derivative at the top layer is set to be zero (subroutine “step3d_t_tile”), while it should not be zero if there is a surface heat flux...
Yes, that's correct. However, you are looking in the wrong place. The surface and bottom boundary conditions for tracers are applied in the predictor step in routine pre_step3d.F.

meiw
Posts: 8
Joined: Fri Oct 12, 2007 5:59 pm
Location: University of California, Irvine

#4 Unread post by meiw »

Thank you so much for your quick responses!
jcwarner wrote:do you have splines activated?
if so, try it without splines.
Yes, I activated SPLINES. I will try the experiment without SPLINES.
arango wrote:How are you specifying the surface net heat flux? Are you using an analytical expression in ana_stflux.h? If so, you need to do in terms of kinematic flux with Celsius m/s units. That is, you need 1/(rho0*Cp) if your surface forcing is in W/m2.
Looking into the code, it seems to me that the problem is the fact that the vertical derivative at the top layer is set to be zero (subroutine “step3d_t_tile”), while it should not be zero if there is a surface heat flux...
Yes, that's correct. However, you are looking in the wrong place. The surface and bottom boundary conditions for tracers are applied in the predictor step in routine pre_step3d.F.
I define the surface net heat flux as 5.88e-5 degC m/s, which is equivalent to about 240 W/m2.

It's true that the surface boundary conditions for tracers are applied in pre_step3d.F. But the calculation of vertical diffusion and thus the calculation of temperatures in different vertical layers are carried out in step3d_t.F.

Thanks again!

Wei

meiw
Posts: 8
Joined: Fri Oct 12, 2007 5:59 pm
Location: University of California, Irvine

#5 Unread post by meiw »

jcwarner wrote:do you have splines activated?
if so, try it without splines.
The temperatures in all layers increase with time when I have SPLINES undefined. Thanks very much again.

Best,
Wei

Post Reply