CNES / aviso-fes

FES is the last version of the FES (Finite Element Solution) tide model.
https://cnes.github.io/aviso-fes
BSD 3-Clause "New" or "Revised" License
59 stars 24 forks source link

MSf tide incorrectly added as short period tide #30

Closed remkos closed 1 month ago

remkos commented 1 month ago

The MSf tide is included twice in the table of constituents, once as MSF, once as MSF_LP.

The first is in the code considered as short period tide, the second as long period tide, even though it is indicated that the frequencies are in fact the same.

While the MSf tide is indeed a result of the interaction between M2 and S2, it clearly is a fortnightly tide, with a period of 13.77 days. So why was MSf added as a short period tide?

From grep -i msf prediction.c:

   * MSf = M₂ - S₂
   * WARNING: Same frequency as MSf LP : 2s -2h
    "MSF", 0, 0, 2, -2, 0, 0, 0, 0, 2, -2, 0, 0, SP_TIDE, _f_m2, &w[MSF]);
   * MSf_LP = 2nd order LP equi in atlas FES2014c
   * WARNING: Same frequency as MSf Non Linear wave : 2s -2h
    "MSF_LP", 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, LP_TIDE, _f_mm, &w[MSF_LP]);

Note that this was actually already once fixed by commit 63f1979 for release 2.9.3, after an earlier issue raised on version 2.9.3: https://bitbucket.org/cnes_aviso/fes/issues/13/why-is-msf-characterised-as-short-period But then SP_TIDE it was reintroduced by commit ccbd2d8.

locarrere commented 1 month ago

Hello, this a question of vocabulary. Yes MSf frequency is fortnighlty so this a long period frequency, but as you mentioned it as 2 different components. We name MSf as SP_TIDE, to take into account the part due to non linear interactions of M2 and S2: we provide a dynamic map for this component and it is processed as other dynamic SP tides in the libfes prediction code.

And we name MSf long-period or MSf LP_TIDE, the long-period tide component forced by the corresponding LP tidal potential and this part is treated as LP in the code: MSf LP tidal signal is computed as an equilibrium LP tide in the lpe_minus_n_waves() + set_w2nd() routines (Doodson coefficients).

Note that we also added the possibility to provide an external LP MSf through the MSF_LP wave parameter (which can then be either computed as equilibrium tide or dynamic tide depending on the content of the input MSF_LP files provided).

So MSf shall be the part due to non linear interactions between M2 and S2, and MSf_LP, the LP tide forced by the MSf astronomical potential (LP equilibrium tide).

remkos commented 1 month ago

Dear @locarrere. I do understand your answer, that it is a lot about how you consider the M2+S2 interaction, whether that is inherently a short-period tide, or effectively a long-period tide. Of course, this does not matter when you add the short and long-period tides (outputs h and h_long_period produced by fes_core().

But I would think that most people would argue that the M2+S2 interaction that presents itself with fortnightly period is a long-period tide, so that it should be included in the variable h_long_period returned by fes_core(). Obviously it is a non-equilibrium one, so is not part of the lpe_minus_n_waves(). And somebody doing a spectral analysis of the short period tides in h would not expect fortnightly components, only diurnal and semi-diurnal ones.

One way are the other, the labelling of the variable h_long_period is hugely confusing if MSf (the M2+S2 interaction) is kept as short-period.

fbriol commented 1 month ago

We have understood your issue better and have made the necessary changes to address your comments.

Before releasing the new 2.9.7 package, we need to update the example files. We are currently in the process of doing so.

Thank you for your feedback.

Best regards, Frédéric