roms river LwSrc problem
roms river LwSrc problem
Hi all,
I am currently experiencing some model behavior associated with LwScr which I dont understand. I am using LwSrc option to include a point river source. This works fine in terms of inflating the cell (as set in step2d_LF_AM3.h).
However, the associated vertical tracer flux does drive the temperature and salinity towards zero regardless of what variables river_temp, and river_salt are set to. Values for Tsrc and Qsrc are read in correctly in step2d_LF_AM3.h and step3d_t and vertical temp and salt transport are calculated and added to the vertical flux. It seems as if the inflation of the cell drives the temperature and salinity changes to a large extent.
I should say this all works fine when using LuvSrc. However, here I am generally experiencing model blowups due to large horizontal momentum associated with the river transport as some stage.
Has anyone experienced similar behavior ?
Thanks
Frank
I am currently experiencing some model behavior associated with LwScr which I dont understand. I am using LwSrc option to include a point river source. This works fine in terms of inflating the cell (as set in step2d_LF_AM3.h).
However, the associated vertical tracer flux does drive the temperature and salinity towards zero regardless of what variables river_temp, and river_salt are set to. Values for Tsrc and Qsrc are read in correctly in step2d_LF_AM3.h and step3d_t and vertical temp and salt transport are calculated and added to the vertical flux. It seems as if the inflation of the cell drives the temperature and salinity changes to a large extent.
I should say this all works fine when using LuvSrc. However, here I am generally experiencing model blowups due to large horizontal momentum associated with the river transport as some stage.
Has anyone experienced similar behavior ?
Thanks
Frank
Re: roms river LwSrc problem
I haven't used LwSrc, but do use LuvSrc. Is the model truly blowing up or are you violating the ROMS "speed limit" with your river inputs? For something like the Copper River, I had to split it over three cells and impose the flow as being uniform in depth. I might even have had to dredge out those cells where it is coming in, increasing the depth. Plus I increased the speed limit for that domain.
Re: roms river LwSrc problem
Hi Kate
thanks for your reply - for the LuvSrc case: I would have thought the model blew up due to violating the speed limit which is caused by large river runoff (btw does roms has a hard-coded speed limit ?).
I was able to handle this by increasing river depth (and methods similar as you describe). However, I was looking for a more robust method of applying river sources as we are dealing with a large number of rivers and potentially different model resolutions. For this reason I started playing around with LwSrc which works well as it inflates the rho cell according to the volume transport and hence reduces horizontal momentum compared to LuvSrc which makes this methods very stable. Unfortunately I was then dealing with typical overshooting in the advection scheme which results in negative salt and temp values. Hence I increased salinity in river_salt but then realized this didnt change the resulting salinity at all (hence my first post).
i am aware I could use MPDATA to alleviate negative tracer values but would like to understand why salt and temp values for river source using LwSrc are trending towards zero.
cheers
Frank
thanks for your reply - for the LuvSrc case: I would have thought the model blew up due to violating the speed limit which is caused by large river runoff (btw does roms has a hard-coded speed limit ?).
I was able to handle this by increasing river depth (and methods similar as you describe). However, I was looking for a more robust method of applying river sources as we are dealing with a large number of rivers and potentially different model resolutions. For this reason I started playing around with LwSrc which works well as it inflates the rho cell according to the volume transport and hence reduces horizontal momentum compared to LuvSrc which makes this methods very stable. Unfortunately I was then dealing with typical overshooting in the advection scheme which results in negative salt and temp values. Hence I increased salinity in river_salt but then realized this didnt change the resulting salinity at all (hence my first post).
i am aware I could use MPDATA to alleviate negative tracer values but would like to understand why salt and temp values for river source using LwSrc are trending towards zero.
cheers
Frank
Re: roms river LwSrc problem
Yes, the speed limit is in mod_scalars.F:
I can't answer your other question.
Code: Select all
#ifdef NWGOA
real(r8) :: max_speed = 80.0_r8 ! m/s
#else
real(r8) :: max_speed = 20.0_r8 ! m/s
#endif
Re: roms river LwSrc problem
thanks - this is very helpful! My simulations using LuvSrc are now very stable. What is the reason of default max_speed set to 20m/s?
Re: roms river LwSrc problem
The goal is to pick a value that's not likely to happen in normal running, yet is smaller than the infinity/NaN of blowing up. This way, you can save a restart record as things are going bad to see if you can make sense of the troubles - before the NaN has filled your entire domain.
Re: roms river LwSrc problem
Frank,
Hernan and I have looked in to this a bit further, and this has raised concerns that the LwSrc option is not implemented correctly. In the LwSrc option a modification should be made to the vertical advective flux in such a way that the subsequent flux divergence introduces the corresponding tracer flux.
ROMS predictor/corrector algorithm for advection requires steps in both pre_step3d.F and step3d_t.F to implement advection. While there is code in both these routines for the LuvSrc option, pre_step3d.F lacks code for the LwSrc option.
On first glance this would appear to be a serious bug, and we need to make some time in our schedule to look at this more closely and carefully. Until we (or someone else in the user community) resolves this, I would strongly caution against using the LwSrc option for river sources.
John.
Hernan and I have looked in to this a bit further, and this has raised concerns that the LwSrc option is not implemented correctly. In the LwSrc option a modification should be made to the vertical advective flux in such a way that the subsequent flux divergence introduces the corresponding tracer flux.
ROMS predictor/corrector algorithm for advection requires steps in both pre_step3d.F and step3d_t.F to implement advection. While there is code in both these routines for the LuvSrc option, pre_step3d.F lacks code for the LwSrc option.
On first glance this would appear to be a serious bug, and we need to make some time in our schedule to look at this more closely and carefully. Until we (or someone else in the user community) resolves this, I would strongly caution against using the LwSrc option for river sources.
John.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: roms river LwSrc problem
This is from May 2020.
I am testing river with both LuvSrc and LwSrc. I found this issue persists.
LuvSrc -> max speed blowup, but tracers can be correctly imposed as point sources.
LwSrc -> more stable but tracers (T/S) cannot be correctly imposed. No matter what values I set for T and S, the value they input to the river is ~0.
Can anyone answer this?
I am testing river with both LuvSrc and LwSrc. I found this issue persists.
LuvSrc -> max speed blowup, but tracers can be correctly imposed as point sources.
LwSrc -> more stable but tracers (T/S) cannot be correctly imposed. No matter what values I set for T and S, the value they input to the river is ~0.
Can anyone answer this?
Re: roms river LwSrc problem
I have corrected code that passes my simple tests for all tracer advection schemes. Contact me if you want to test it in advance or its addition to the public code.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu