We've been working with a number of the test cases since the recent update (we are currently on 299) and have found a problem with the existing Kelvin wave demo. The kelvin.h file included with the model sets EAST_FSRADIATION and EAST_M2RADIATION. However,the Kelvin test case also provides analytical values for the eastern open boundary in ana_fsobc.h and ana_m2obc.h.
The problem is that the fields for the boundary structure, zeta_east, ubar_east, and vbar_east are never defined unless EAST_FSOBC and EAST_M2FSOBC are set, and these are not set in globaldefs for EAST_FSRADIATION and EAST_M2RADIATION (unless nudging is also set). For this reason, someone trying the Kelvin test for the first time will not be able to compile it unless they define EAST_FSOBC and EAST_M2FSOBC in the kelvin header file or pass them directly to the precompiler in their build script.
I suspect that the best solution would be to drop the eastern analytical open boundary conditions entirely from the kelvin demo and let the radiation condition do its thing, my own tests indicate that this does not significantly change the results.
Kelvin Demo Compile Fails
- CharlesJames
- Posts: 43
- Joined: Thu May 24, 2007 12:12 pm
- Location: South Australian Research and Development Institute
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: Kelvin Demo Compile Fails
Yes, the definition and allocation of boundary arrays is very strict now and controlled by internal CPP options. There are several expressions in the analytical functions that are not actually used. However, it is a good idea to retain them in case that the configuration for such test cases is changed and use such boundaries. This problem is now fixed.
Please update your code
Please update your code