Adding tides to EAS5 System..
1) Run settings
2) First results
3) Harmonic analysis tools
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 150s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equationsnn_baro = 50 !*jc Number of iterations of barotropic modenn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2)
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 240s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .TRUE. ! Forward integration of barotropic equationsnn_baro = 100 ! Number of iterations of barotropic modenn_bt_flt = 2 ! Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro
!-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 2.5e-3 !*jc bottom turbulent kinetic energy background (m3/s2)
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 150s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equationsnn_baro = 50 !*jc Number of iterations of barotropic modenn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2)
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 150s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equationsnn_baro = 50 !*jc Number of iterations of barotropic modenn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2)
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 240s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .TRUE. ! Forward integration of barotropic equationsnn_baro = 100 ! Number of iterations of barotropic modenn_bt_flt = 2 ! Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro
!-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 2.5e-3 !*jc bottom turbulent kinetic energy background (m3/s2)
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Daily fields + Hourly fields: ssh and sea surface velocities => TOT ~ 215 G/yr
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
● Daily fields + Hourly fields: ssh and sea surface velocities => TOT ~ 215 G/yr
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 150s (~5 days/yr)
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equationsnn_baro = 50 !*jc Number of iterations of barotropic modenn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2)
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 240s (~4 days/yr)
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .TRUE. ! Forward integration of barotropic equationsnn_baro = 100 ! Number of iterations of barotropic modenn_bt_flt = 2 ! Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro
!-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 2.5e-3 ! bottom turbulent kinetic energy background (m3/s2)
Adding tides to EAS5 System..
1) Run settings
2) First results
3) Harmonic analysis tools
First results● GOOD NEWS: clear tidal signal!
May 2015 – TriesteS
SH
[m]
First results● GOOD NEWS: clear tidal signal!
May 2015 – TriesteS
SH
[m]
[Effects of tidal motion on the Mediterranean Sea General Circulation, Valentina Agresti, 2018]
First results● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
May 2015 – (lat: 36.002183 lon:-5.238527)
SS
H [m
]
First results
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
May 2015 – Tarifa
SS
H [m
]
First results
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
May 2015 - Tarifa
SS
H [m
]
First results
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
Algeciras
May 2015 - Algeciras
SS
H [m
]
First results
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
Tarifa
In-situ obsEAS1: RMS=5.83, Bias=-0.01 cmEAS3 : RMS=5.68, Bias=0.01 cm
● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
Algeciras
May 2015 - Algeciras
SS
H [m
]
May 2015 - Algeciras
SS
H [m
]
First results● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
HP: - Boundary conditions (Atlantic tides)
- Time interval (hourly mean Vs hourly snapshot )
Adding tides to EAS5 System..
1) Run settings
2) First results
3) Harmonic analysis tools
Harmonic analysis● key_diaharm (NEMO Harmonic analysis of tidal constituents)
X Restart capability NOT implemented X Problems with output rebuild
Harmonic analysis● Python Tools for Tidal Analysis (Salish Sea MEOPAR Project)
....# function for fitting 8 frequenciesdef octuple(x, M2amp, M2pha, K1amp, K1pha, O1amp, O1pha, S2amp, S2pha, P1amp, P1pha, N2amp, N2pha, Q1amp, Q1pha, K2amp, K2pha): return (M2amp*np.cos(M2freq*x-M2pha*np.pi/180.)+ K1amp*np.cos(K1freq*x-K1pha*np.pi/180.)+ O1amp*np.cos(O1freq*x-O1pha*np.pi/180.)+ S2amp*np.cos(S2freq*x-S2pha*np.pi/180.)+ P1amp*np.cos(P1freq*x-P1pha*np.pi/180.)+ N2amp*np.cos(N2freq*x-N2pha*np.pi/180.)+ Q1amp*np.cos(Q1freq*x-Q1pha*np.pi/180.)+ K2amp*np.cos(K2freq*x-K2pha*np.pi/180.))....fitted, cov = curve_fit(octuple,time[ts:te],ssh[ts:te])
X Nodal corrections required..(found in ocean.output)if fitted[0] < 0: fitted[0] = -fitted[0] fitted[1] = fitted[1]+180 M2_amp.append(fitted[0]*M2ft) pha = fitted[1]+M2uvt if pha > 360: pha=pha-360 elif pha < 0: pha = pha+360 M2_pha.append(pha)
Harmonic analysis● TUGO-m Tidal ToolBox (Allain 2016)
X Installation problems ?
● V. Agresti (2018). “Effects of tidal motion on the Mediterranean Sea General Circulation”.
● Tsimplis, MN, R Proctor, and RA Flather (1995). “A two-dimensional tidal model for the Mediterranean Sea”. Journal of Geophysical Research: Oceans 100.C8, pp. 16223–16239.
● Gurvan Madec and the NEMO team (2016), “NEMO Ocean Engine v3.6”.
● Python Tools for Tidal Analysis (Salish Sea MEOPAR Project):
https://nbviewer.jupyter.org/urls/bitbucket.org/salishsea/analysis/raw/tip/compare_tides/Analysis8Components.ipynb
https://salishsea-meopar-docs.readthedocs.io/en/latest/tidalcurrents/tidal_current_tools.html#python-tools-for-tidal-analysis
● Damien J. Allain (2019), “TUGOm Tidal ToolBox”
References
Run settings● Tides RUN (2015-2017)
● NEMO Namelist:
!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!----------------------------------------------------------------------- ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equations ln_bt_av = .TRUE. ! Time filtering of barotropic variables ln_bt_nn_auto = .FALSE. ! Set nn_baro automatically to be just below ! a user defined maximum courant number (rn_bt_cmax) nn_baro = 50 !*jc Number of iterations of barotropic mode ! during rn_rdt seconds. Only used if ln_bt_nn_auto=F rn_bt_cmax = 0.8 ! Maximum courant number allowed if ln_bt_nn_auto=T nn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro " "/
Control RUN (2015-2017)
● NEMO Namelist:
!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!----------------------------------------------------------------------- ln_bt_fw = .TRUE. ! Forward integration of barotropic equations ln_bt_av = .TRUE. ! Time filtering of barotropic variables ln_bt_nn_auto = .FALSE. ! Set nn_baro automatically to be just below ! a user defined maximum courant number (rn_bt_cmax) nn_baro = 100 ! Number of iterations of barotropic mode ! during rn_rdt seconds. Only used if ln_bt_nn_auto=F rn_bt_cmax = 0.8 ! Maximum courant number allowed if ln_bt_nn_auto=T nn_bt_flt = 2 ! Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro " "/
Run settings● Tides RUN (2015-2017)
● NEMO Namelist: !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------
nn_bfr = 2 ! type of bottom friction : = 0 : free slip, = 1 : linear friction ! = 2 : nonlinear friction rn_bfri1 = 4.e-4 ! bottom drag coefficient (linear case) rn_bfri2 = 1.e-5 ! bottom drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_bfri2_max = 1.e-1 ! max. bottom drag coefficient (non linear case and ln_loglayer=T) rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2) rn_bfrz0 = 1.e-2 ! bottom roughness [m] if ln_loglayer=T ln_bfr2d = .false. ! horizontal variation of the bottom friction coef (read a 2D mask file ) rn_bfrien = 50. ! local multiplying factor of bfr (ln_bfr2d=T) rn_tfri1 = 4.e-4 ! top drag coefficient (linear case) rn_tfri2 = 2.5e-3 ! top drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_tfri2_max = 1.e-1 ! max. top drag coefficient (non linear case and ln_loglayer=T) rn_tfeb2 = 0.0 ! top turbulent kinetic energy background (m2/s2) rn_tfrz0 = 3.e-3 ! top roughness [m] if ln_loglayer=T ln_tfr2d = .false. ! horizontal variation of the top friction coef (read a 2D mask file ) rn_tfrien = 50. ! local multiplying factor of tfr (ln_tfr2d=T)
ln_bfrimp = .false. ! implicit bottom friction (requires ln_zdfexp = .false. if true) ln_loglayer = .true. ! logarithmic formulation (non linear case)/
Control RUN (2015-2017)
● NEMO Namelist:!-----------------------------------------------------------------------&nambfr ! bottom friction!----------------------------------------------------------------------- nn_bfr = 2 ! type of bottom friction : = 0 : free slip, = 1 : linear friction ! = 2 : nonlinear friction rn_bfri1 = 4.e-4 ! bottom drag coefficient (linear case) rn_bfri2 = 1.e-5 ! bottom drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_bfri2_max = 1.e-1 ! max. bottom drag coefficient (non linear case and ln_loglayer=T) rn_bfeb2 = 2.5e-3 ! bottom turbulent kinetic energy background (m2/s2) rn_bfrz0 = 1.e-2 ! bottom roughness [m] if ln_loglayer=T ln_bfr2d = .false. ! horizontal variation of the bottom friction coef (read a 2D mask file ) rn_bfrien = 50. ! local multiplying factor of bfr (ln_bfr2d=T) rn_tfri1 = 4.e-4 ! top drag coefficient (linear case) rn_tfri2 = 2.5e-3 ! top drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_tfri2_max = 1.e-1 ! max. top drag coefficient (non linear case and ln_loglayer=T) rn_tfeb2 = 0.0 ! top turbulent kinetic energy background (m2/s2) rn_tfrz0 = 3.e-3 ! top roughness [m] if ln_loglayer=T ln_tfr2d = .false. ! horizontal variation of the top friction coef (read a 2D mask file ) rn_tfrien = 50. ! local multiplying factor of tfr (ln_tfr2d=T)
ln_bfrimp = .false. ! implicit bottom friction (requires ln_zdfexp = .false. if true) ln_loglayer = .true. ! logarithmic formulation (non linear case)/
First results● GOOD NEWS: clear tidal signal!● BAD NEWS: Amplitude is too small...
HP: - Boundary conditions (Atlantic tides)
- Time interval (hourly mean Vs hourly snapshot )
01 May 2015 - MonacoS
SH
[m]
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Daily fields + Hourly fields: ssh and sea surface velocities => TOT ~ 215 G/yr
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
● Daily fields + Hourly fields: ssh and sea surface velocities => TOT ~ 215 G/yr
Run settingsTides RUN (2015-2017)
● key_tide (M2, S2, N2, K1, O1, Q1, K2, P1)
● Modified Bathymetry (Croatian coast)
● Hourly fields: ssh and sea surface velocities
● Timestep: 150s
● NEMO Namelist:!-----------------------------------------------------------------------&namsplit ! time splitting parameters ("key_dynspg_ts")!-----------------------------------------------------------------------ln_bt_fw = .FALSE. !*jc Forward integration of barotropic equationsnn_baro = 50 !*jc Number of iterations of barotropic modenn_bt_flt = 1 !*jc Time filter choice ! = 0 None ! = 1 Boxcar over nn_baro barotropic steps ! = 2 Boxcar over 2*nn_baro !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2)
Control RUN (2015-2017)
● Modified Bathymetry (Croatian coast)
Run settings● Tides RUN (2015-2017)
● NEMO Namelist: !-----------------------------------------------------------------------&nambfr ! bottom friction!-----------------------------------------------------------------------
nn_bfr = 2 ! type of bottom friction : = 0 : free slip, = 1 : linear friction ! = 2 : nonlinear friction rn_bfri1 = 4.e-4 ! bottom drag coefficient (linear case) rn_bfri2 = 1.e-5 ! bottom drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_bfri2_max = 1.e-1 ! max. bottom drag coefficient (non linear case and ln_loglayer=T) rn_bfeb2 = 0. !*jc bottom turbulent kinetic energy background (m3/s2) rn_bfrz0 = 1.e-2 ! bottom roughness [m] if ln_loglayer=T ln_bfr2d = .false. ! horizontal variation of the bottom friction coef (read a 2D mask file ) rn_bfrien = 50. ! local multiplying factor of bfr (ln_bfr2d=T) rn_tfri1 = 4.e-4 ! top drag coefficient (linear case) rn_tfri2 = 2.5e-3 ! top drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_tfri2_max = 1.e-1 ! max. top drag coefficient (non linear case and ln_loglayer=T) rn_tfeb2 = 0.0 ! top turbulent kinetic energy background (m2/s2) rn_tfrz0 = 3.e-3 ! top roughness [m] if ln_loglayer=T ln_tfr2d = .false. ! horizontal variation of the top friction coef (read a 2D mask file ) rn_tfrien = 50. ! local multiplying factor of tfr (ln_tfr2d=T)
ln_bfrimp = .false. ! implicit bottom friction (requires ln_zdfexp = .false. if true) ln_loglayer = .true. ! logarithmic formulation (non linear case)/
Control RUN (2015-2017)
● NEMO Namelist:!-----------------------------------------------------------------------&nambfr ! bottom friction!----------------------------------------------------------------------- nn_bfr = 2 ! type of bottom friction : = 0 : free slip, = 1 : linear friction ! = 2 : nonlinear friction rn_bfri1 = 4.e-4 ! bottom drag coefficient (linear case) rn_bfri2 = 1.e-5 ! bottom drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_bfri2_max = 1.e-1 ! max. bottom drag coefficient (non linear case and ln_loglayer=T) rn_bfeb2 = 2.5e-3 ! bottom turbulent kinetic energy background (m2/s2) rn_bfrz0 = 1.e-2 ! bottom roughness [m] if ln_loglayer=T ln_bfr2d = .false. ! horizontal variation of the bottom friction coef (read a 2D mask file ) rn_bfrien = 50. ! local multiplying factor of bfr (ln_bfr2d=T) rn_tfri1 = 4.e-4 ! top drag coefficient (linear case) rn_tfri2 = 2.5e-3 ! top drag coefficient (non linear case). Minimum coeft if ln_loglayer=T rn_tfri2_max = 1.e-1 ! max. top drag coefficient (non linear case and ln_loglayer=T) rn_tfeb2 = 0.0 ! top turbulent kinetic energy background (m2/s2) rn_tfrz0 = 3.e-3 ! top roughness [m] if ln_loglayer=T ln_tfr2d = .false. ! horizontal variation of the top friction coef (read a 2D mask file ) rn_tfrien = 50. ! local multiplying factor of tfr (ln_tfr2d=T)
ln_bfrimp = .false. ! implicit bottom friction (requires ln_zdfexp = .false. if true) ln_loglayer = .true. ! logarithmic formulation (non linear case)/