New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
2013WP/INGV-Basic-Reliability-tests (diff) – NEMO

Changes between Initial Version and Version 1 of 2013WP/INGV-Basic-Reliability-tests


Ignore:
Timestamp:
2013-11-12T16:24:47+01:00 (10 years ago)
Author:
poddo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2013WP/INGV-Basic-Reliability-tests

    v1 v1  
     1= ''' INGV-2 Action in the 2013 WP ''' = [[BR]] 
     2 
     3Perform basic coherency/consistency tests. NEMO-technical report. 
     4 
     5In 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. 
     6 
     7== No Motion case == 
     8The 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.[[BR]] 
     9 
     10=== Case 1 === [[BR]] 
     11 
     12  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: 
     13 
     14 * no-slip condition; 
     15 * vorlat; 
     16 * energy & enstrophy scheme; 
     17 * centered advection; 
     18 * bi-laplacian operators 
     19 
     20have been checked. 
     21 
     22The NEMO results are independent from those options. The results are not shown. 
     23 
     24=== Case 2 === [[BR]] 
     25 
     26Introducing 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. 
     27[[Image(Fig_bathy_seamount.png)]] 
     28[[Image(sea_mountain_res.png)]] 
     29 
     30=== Case 3 (Realistic Geometry) === [[BR]] 
     31 
     32The 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. 
     33[[Image(Fig_bathy_adri.png)]] 
     34[[Image(adri_res.png)]] 
     35 
     36'''References:''' [[BR]] 
     37 
     38Blumberg, 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 
     39 
     40C Ezer, T., Arango, H., Shchepetkin A.F., Developments in terrain-following ocean models: intercomparisonsn of numerical aspects. Ocean Modelling 4 249-267. 
     41 
     42Mellor, G. L., L-Y. Oey, T. Ezer, 1998: Sigma Coordinate Pressure Gradient Errors and the Seamount Problem. J. Atmos. Oceanic Technol., 15, 1122-1131. 
     43 
     44'''Annex-1''' 
     45Differences with standard GYRE namelist 
     46 
     47{{{ 
     48nn_itend    =    4032   !  last  time step 
     49nn_write    =     144   !  frequency of write in the output file   (modulo referenced to nn_it000) 
     50ln_zco      = .false.    !  z-coordinate - full    steps   (T/F)      ("key_zco" may also be defined) 
     51ln_zps      = .true.   !  z-coordinate - partial steps   (T/F) 
     52nn_bathy    =    1      !  compute (=0) or read (=1) the bathymetry file 
     53nn_msh      =    1      !  create (=1) a mesh file or not (=0) 
     54rn_hmin     =    3.     !  min depth of the ocean (>0) or min number of ocean level (<0) 
     55rn_rdt      =  300.     !  time step for the dynamics (and tracer if nn_acc=0) 
     56nn_baro     =  100      !  number of barotropic time step            ("key_dynspg_ts") 
     57rn_utau0    =   0.0e0   !  uniform value for the i-stress 
     58rn_shlat    =    2.     !  shlat = 0  !  0 < shlat < 2  !  shlat = 2  !  2 < shlat 
     59ln_vorlat   = .true.   !  consistency of vorticity boundary condition with analytical eqs. 
     60nn_eos      =   0       !  type of equation of state and Brunt-Vaisala frequency 
     61ln_traadv_cen2   =  .true.  !  2nd order centered scheme 
     62ln_traldf_hor    =  .true.  !  horizontal (geopotential)   (needs "key_ldfslp" when ln_sco=T) 
     63rn_aht_0         =  100.    !  horizontal eddy diffusivity for tracers [m2/s] 
     64ln_dynadv_cen2= .true. !  flux form - 2nd order centered scheme 
     65ln_dynvor_ene = .false.  !  energy    conserving scheme   
     66ln_dynvor_een = .true. !  energy & enstrophy scheme 
     67ln_hpg_zps  = .true.   !  z-coordinate - partial steps (interpolation) 
     68rn_ahm_0_lap     = 100.   !  horizontal laplacian eddy viscosity   [m2/s] 
     69}}} 
     70