I think there's a typo/bug in the new code added for the lateral boundary conditions for the vertical mixing coefficients in lmd_vmix.F. On the eastern edge of a tile:
574 IF (DOMAIN(ng)%Eastern_Edge(tile)) THEN
575 DO j=Jstr,Jend
576 DO itrc=1,NAT
577 Akt(Iend-1,j,k,itrc)=Akt(Iend,j,k,itrc)
578 END DO
579 Akv(Iend-1,j,k)=Akv(Iend,j,k)
580 END DO
I'm pretty sure the two instances of "Iend-1" on the left hand side should be "Iend+1". A few lines further down in the code the index appears to be correct (Iend+1) for the southeast and northeast corners.
This block of code is also in gls_corstep.F and my25_corstep.F. I imagine it needs to be changed there as well, but I only tested it for an idealized test case I have that uses KPP. There was only a very small change in my test case, but I was tracking down why it wasn't exactly the same as before (it is now).
Typo in ROMS/Nonlinear/lmd_vmix.F
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: Typo in ROMS/Nonlinear/lmd_vmix.F
Yes, indeed. Thank you! I will have to check if the boundary values of Akt are used in the numerical kernel. I think that this was done for output purposes.