Hi,
I am Luz García, working at the Ocean Modelling group of the Spanish Institute of Oceanography in A Coruña, Spain. We have been running for several years a realistic configuration of ROMS for NW Iberia using the Agrif
one way nesting capabilities. In the last weeks, we have been trying to adapt our nested configuration (refined!) to run with the last ROMS Rutgers version (v. 3.7 downloaded the 2014/03/18). We have experienced several problems in setting up the realistic configuration and ensuring volume conservation in the refined grid, we would like to share with you some of our findings on possible bugs, as well as some doubts hoping that we would get some feedback.
First of all, the CPP options related to nesting we are using are:
Code: Select all
#define NESTING
#define ONE_WAY
#undef TIME_INTERP_FLUX
#undef NO_CORRECT_TRACER
And these are the comments/questions
1) Subroutine
nesting.F (revision 719)
1.1)After reading
this post and Hernan's answer, I got convinced that there was a bug in the calculation of zeta, but then I got confused after reading the comments on Zt_avg1
here. Is the SOLVE3D portion of the code correct or should we comment it??
1.2) I think there is a bug in line 2318. We have
Code: Select all
CALL exchange_v2d_tile (rg, tile, &
& LBiR, UBiR, LBjR, UBjR, &
& OCEAN(rg)%ubar(:,:,k))
but we should have
Code: Select all
CALL exchange_v2d_tile (rg, tile, &
& LBiR, UBiR, LBjR, UBjR, &
& OCEAN(rg)%vbar(:,:,k))
1.3)Possible bug in line 2365. We have
Code: Select all
CALL mp_exchange3d (rg, tile, model, 2, &
& LBiR, UBiR, LBjR, UBjR, 1, N(rg), &
& NghostPoints, &
& EWperiodic(rg), NSperiodic(rg), &
& OCEAN(rg)%u(:,:,:,nstp(rg)), &
& OCEAN(rg)%u(:,:,:,nstp(rg)))
but we should have
Code: Select all
CALL mp_exchange3d (rg, tile, model, 2, &
& LBiR, UBiR, LBjR, UBjR, 1, N(rg), &
& NghostPoints, &
& EWperiodic(rg), NSperiodic(rg), &
& OCEAN(rg)%u(:,:,:,nstp(rg)), &
& OCEAN(rg)%v(:,:,:,nstp(rg)))
2) For a total refinement nesting (all OBs of the fine grid are inside the coarse grid), we would not expect that a climatology would be needed for the finer grid, since all the necessary information should be provided at the boundaries by the solution at the coarser grid (nesting option Nest for the OBC in the fine grid). However, we get a configuration error for not providing a climatology at the resolution of the finer grid.
We think that this problem is solved by just adding the following conditional loop
Code: Select all
IF (.not.(RefinedGrid(ng).and.RefineScale(ng).gt.0)) THEN
at around
line 862 in
get_data.F when the netcdf climatology file is read and including and END IF at line 947.
A similar procedure must be done in subroutine
set_data.F by adding
Code: Select all
IF (.not.(RefinedGrid(ng).and.RefineScale(ng).gt.0)) THEN
in line 1132 and END IF in line 1219.
We are not sure if this is the best way to avoid the problem or if it is reflecting that something is wrong in our configuration, but with these corrections the simulation at least runs.
We are still struggling to get it run, specially with volume conservation at the fine grid. Any hint or ideas would be much appreciated.
Thanks a lot,
Luz García