INGV-2 Action in the 2013 WP =
Perform basic coherency/consistency tests. NEMO-technical report.
In order to evaluate the NEMO model behaviors, in terms of numerical noise propagation and reproduction of very simple analytical solutions, some simple test cases have been designed and corresponding simulations performed.
No Motion case
The simplest analytical solution to reproduce is the no motion case. Irrespective of the numerical schemes adopted (implicit, explicit or semi-implicit) to solve the primitive equations, model parameterizations and discretizzation techniques (full step, sigma or partial steps), in case of homogeneous density field and in absence of external forcing the ocean should be characterized by the absence of motion. However due to derivatives accuracy and/or discretizzation methods (implicit semi-implicit or explicit) we know that numerical solution differs from the analytical solution. The model code should be designed in a way that the differences between the two solutions remain confined and do not act as a physical process.
Case 1 ===
In the most simple case, a cube (flat bottom) with homogeneous density field, the NEMO code fulfill the requirements. Some noise appears as a consequence of the implicit scheme used to solve the vertical physics of the active tracers (with the explicit scheme the numerical solution perfectly matches the analytical solution) but it remains confined and close to the truncation error several order of magnitude lower than the physical processes. Starting from Gyre namelist also different options for:
- no-slip condition;
- vorlat;
- energy & enstrophy scheme;
- centered advection;
- bi-laplacian operators
have been checked.
The NEMO results are independent from those options. The results are not shown.
Case 2 ===
Introducing a bathymetric gradient produces the amplification of the numerical noise in case of implicit vertical physics for the active tracers. For the second experiment, the bathymetry have been designed as in Mellor et al (1998) or Ezer et al (2002). This is the "classical" Sea Mountain case designed to study the hydrostatic pressure gradient errors in sigma coordinate. We have used the same geometry (Figure-1) but with close lateral boundaries, no surface forcing and initial condition characterized by no motion and homogeneous density field. In order to evaluate NEMO behavior we compared NEMO results with results from an equivalent implementation of the Princeton Ocean Model (POM, Blumberg and Mellor 1987). Where Possible the difference between the two codes have been minimized, setting the NEMO configuration as much as possible similar to POM (Annex-1). In this experiment NEMO code seems to have less numerical noise than POM. Figure-2.
Figure.1 Seamountain Bathymetry
Figure.2 Top-left panel: SSH from NEMO simulation after 14 days. Top-right panel: SSH from POM simulation after 14 days. Middle-left panel: SSH from NEMO simulation after 7 days. Middle-right panel: SSH from POM simulation after 7 days. Bottom panel: time series of potential temperature (initialized at 15) for NEMO (blu line) and POM (red line)
Case 3 (Realistic Geometry)
The third experiment is done using a realistic bathymetry for the Northern Adriatic Sea; T and S are still homogeneous. The bathymetry is shown in figure-3. With realistic bathymetry, even if NEMO better preserve T and S (Temperature bottom panel Fig.3), there is a strange pattern in the SSH field that oscillate in time. There are large and small scale noise. A 2-point numerical noise is evident as the SSH field appears as purple (the combination of red and blu in adiacent grid boxes). A large scale propagation of the induced numerical noise is also evident as a wave propagating from the deeper west part toward the centre of the basin. Different tests have been done using the same bathymetric file but varying the number of vertical levels (from 31 to 89, letting the model to decide the distribution). Also in this case the namelist setup is as similar as possible to POM.
FIgure.3 Adriatic Bathymetry.
Figure.4 Top-left panel: SSH from NEMO simulation after 14 days. Top-right panel: SSH from POM simulation after 14 days. Middle-left panel: SSH from NEMO simulation after 7 days. Middle-right panel: SSH from POM simulation after 7 days. Bottom-left panel: SSH from NEMO simulation after 1 hr. Bottom-right panel: SSH from POM simulation after 1 hr.
References:
Blumberg, A. F., and G. L. Mellor (1987), A description of a three-dimensional coastal ocean circulation model, in Three-Dimensional Coastal Ocean Models, Coastal Estuarine Sci. Ser., vol. 4, edited by N. Neaps, pp. 1 - 16, AGU, Washington
C Ezer, T., Arango, H., Shchepetkin A.F., Developments in terrain-following ocean models: intercomparisonsn of numerical aspects. Ocean Modelling 4 249-267.
Mellor, G. L., L-Y. Oey, T. Ezer, 1998: Sigma Coordinate Pressure Gradient Errors and the Seamount Problem. J. Atmos. Oceanic Technol., 15, 1122-1131.
Annex-1 Differences with standard GYRE namelist
nn_itend = 4032 ! last time step nn_write = 144 ! frequency of write in the output file (modulo referenced to nn_it000) ln_zco = .false. ! z-coordinate - full steps (T/F) ("key_zco" may also be defined) ln_zps = .true. ! z-coordinate - partial steps (T/F) nn_bathy = 1 ! compute (=0) or read (=1) the bathymetry file nn_msh = 1 ! create (=1) a mesh file or not (=0) rn_hmin = 3. ! min depth of the ocean (>0) or min number of ocean level (<0) rn_rdt = 300. ! time step for the dynamics (and tracer if nn_acc=0) nn_baro = 100 ! number of barotropic time step ("key_dynspg_ts") rn_utau0 = 0.0e0 ! uniform value for the i-stress rn_shlat = 2. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat ln_vorlat = .true. ! consistency of vorticity boundary condition with analytical eqs. nn_eos = 0 ! type of equation of state and Brunt-Vaisala frequency ln_traadv_cen2 = .true. ! 2nd order centered scheme ln_traldf_hor = .true. ! horizontal (geopotential) (needs "key_ldfslp" when ln_sco=T) rn_aht_0 = 100. ! horizontal eddy diffusivity for tracers [m2/s] ln_dynadv_cen2= .true. ! flux form - 2nd order centered scheme ln_dynvor_ene = .false. ! energy conserving scheme ln_dynvor_een = .true. ! energy & enstrophy scheme ln_hpg_zps = .true. ! z-coordinate - partial steps (interpolation) rn_ahm_0_lap = 100. ! horizontal laplacian eddy viscosity [m2/s]
Attachments (4)
- Fig_bathy_seamount.png (23.4 KB) - added by poddo 7 years ago.
- sea_mountain_res.png (18.7 KB) - added by poddo 7 years ago.
- Fig_bathy_adri.png (55.1 KB) - added by poddo 7 years ago.
- adri_res.png (227.2 KB) - added by poddo 7 years ago.
Download all attachments as: .zip