Sediment bedload output issue

Bug reports, work arounds and fixes

Moderators: arango, robertson

Post Reply
Message
Author
fdufois
Posts: 6
Joined: Sat Nov 26, 2016 6:16 pm
Location: uwa

Sediment bedload output issue

#1 Unread post by fdufois »

Hi,
My issue might happen only with my compiler but I thought it was still worth reporting.

My model was randomly blowing up while writing the bedload average output (surprisingly it had no issue with the history output). It seems to me that the output bedload fluxes are not given (nor initialized) along the boundaries (the bedload itself is, but not the output variables bedldu and bedldv).

I just wrote a quick workaround in sed_bedload.F (see below). I know it is a bit sloppy, and there is probably a better way to do it using the right set of indices, and setting it to the right values rather than 0, but I'm relatively new to ROMS and it works for me in the meantime.

Cheers,
Francois

!-----------------------------------------------------------------------
! Output bedload fluxes.
!-----------------------------------------------------------------------
!
cff=0.5_r8/dt(ng)
DO j=JstrR,JendR
DO i=Istr,IendR
bedldu(i,j,ised)=FX(i,j)*(pn(i-1,j)+pn(i,j))*cff
END DO
END DO
DO j=Jstr,JendR
DO i=IstrR,IendR
bedldv(i,j,ised)=FE(i,j)*(pm(i,j-1)+pm(i,j))*cff
END DO
END DO

!EVERYTHING 0 at boundaries

IF (DOMAIN(ng)%Western_Edge(tile)) THEN
DO j=Jstrm1,Jendp1
bedldu(Istr-1,j,ised)=0.
bedldv(Istr-1,j,ised)=0.
END DO
END IF

IF (DOMAIN(ng)%Eastern_Edge(tile)) THEN
DO j=Jstrm1,Jendp1
bedldu(Iend+1,j,ised)=0.
bedldv(Iend+1,j,ised)=0.
END DO
END IF


IF (DOMAIN(ng)%Southern_Edge(tile)) THEN
DO i=Istrm1,Iendp1
bedldu(i,Jstr-1,ised)=0.
bedldv(i,Jstr-1,ised)=0.

END DO
END IF

IF (DOMAIN(ng)%Northern_Edge(tile)) THEN
DO i=Istrm1,Iendp1
bedldu(i,Jend+1,ised)=0.
bedldv(i,Jend+1,ised)=0.
END DO
END IF

END DO

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

Re: Sediment bedload output issue

#2 Unread post by jcwarner »

it is good to see that you can figure out the code, but i really dont see why those BC's would be needed. The bedldu is at u points, and the bedldv is at v points. So the call

DO j=JstrR,JendR
DO i=Istr,IendR
bedldu(i,j,ised)=FX(i,j)*(pn(i-1,j)+pn(i,j))*cff

would do all the u points. there is no need to add
bedldu(Istr-1,j,ised)=0.

because that point is never written out. that would be at a u=0 point, and that is a ghost point.
so if this fixed something, then something else was not correct and this helped to remove a nan or something.

-j

fdufois
Posts: 6
Joined: Sat Nov 26, 2016 6:16 pm
Location: uwa

Re: Sediment bedload output issue

#3 Unread post by fdufois »

Not sure what's going on then...
I actually don't have any issue with bedldu along western and eastern boundaries or with bedldv along northern and southern boundaries.
Only bedldu along N and S and bedldv along E and W boundaries have issues (I showed bedldu along the northern boundary and bedldv along the western boundary after and before my fix in attached figures).

I'm getting a bit confused but after a few tests ((i)putting all bedldu and bedldv to 1. within the loop that you mentioned, or (ii)trying to force the bedload to be 0 everywhere upfront (bedld_x and bedld_y=0 , or tau_wav=tau_mean=0 at the beginning)) I feel that it is actually FX and FE that are not defined everywhere.

(i) with this test, my outputs are as expected, i.e 1 everywhere in the netcdf file.
(ii) with this test, in the netcdf file bedldu and bedldv are 0 everywhere except along the boundaries.

I'm struggling to navigate through the code and the indices but I feel that FX(i,JstrR), FX(i,JendR),FE(IstrR,j) and FE(IendR,j) should be defined and doesn't seem to be. I'm using the Soulsby formulation, and my boundaries are closed. Any comments?

Cheers,

Francois
Attachments
bedldv along western boundary after modif
bedldv along western boundary after modif
bdc_w_bedldv_after.gif (7.13 KiB) Viewed 2454 times
bedldu along northern boundary after modif
bedldu along northern boundary after modif
bdc_n_bedldu_after.gif (7.2 KiB) Viewed 2454 times
bedldv along western boundary before modif
bedldv along western boundary before modif
bdc_w_bedldv.gif (11.59 KiB) Viewed 2454 times
bedldu along northern boundary before modif
bedldu along northern boundary before modif

Post Reply