Created
June 21, 2025 17:19
-
-
Save pukpr/0465a8bbedc76f4b2dc87a7cdfdd3072 to your computer and use it in GitHub Desktop.
Reduced tide summation including mixed terms
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function Tide_Sum_Custom (Template : in Data_Pairs; | |
| Constituents : in Long_Periods_Amp_Phase; | |
| Periods : in Long_Periods; | |
| Ref_Time : in Long_Float := 0.0; | |
| Scaling : in Long_Float := 1.0; | |
| Cos_Phase : in Boolean := True; | |
| Year_Len : in Long_Float := Year_Length; | |
| Integ: in Long_Float := 0.0; | |
| Ext_Forcing : in Data_Pairs := Empty_Data; | |
| Ext_Factor : in Long_Float := 0.0; | |
| Ext_Phase : in Long_Float := 0.0; | |
| Ext_Amp : in Long_Float := 0.0 | |
| ) return Data_Pairs is | |
| Pi : Long_Float := Ada.Numerics.Pi; | |
| Time : Long_Float; | |
| Res : Data_Pairs := Template; | |
| D, A, T : Long_Float; | |
| TF : Long_Float; | |
| pragma Unreferenced (Integ, Scaling, Cos_Phase, Ext_Forcing, Ext_Factor, Ext_Phase, Ext_Amp); | |
| begin | |
| for I in Template'Range loop | |
| Time := Template(I).Date + Ref_Time; | |
| declare -- uses 18.6y and 173 | |
| use Ada.Numerics.Long_Elementary_Functions; | |
| L : Amp_Phase renames Constituents(2); | |
| Freq : Long_Float := Year_Len / Periods(2); | |
| HF : Amp_Phase renames Constituents(5); | |
| HP : Long_Float := Year_Len / Periods(5); | |
| NF : Amp_Phase renames Constituents(11); | |
| NP : Long_Float := Year_Len / Periods(11); | |
| begin | |
| D := L.Amplitude*(Cos(2.0*Pi*Freq*Time + L.Phase + | |
| HF.Amplitude*Cos(2.0*Pi*HP*Time + HF.Phase) + | |
| NF.Amplitude*Cos(2.0*Pi*NP*Time + NF.Phase) | |
| )); | |
| end; | |
| declare | |
| use Ada.Numerics.Long_Elementary_Functions; | |
| L : Amp_Phase renames Constituents(9); | |
| Freq : Long_Float := Year_Len / Periods(9); | |
| PF : Amp_Phase renames Constituents(14); | |
| PP : Long_Float := Year_Len / (2.0*Periods(14)); | |
| EF : Amp_Phase renames Constituents(15); -- arbitrary | |
| begin --ampA*(ABS(SIN(freq*$A18+$E$13*ABS(SIN(freq*($A18+$E$14)))+phaseA)))) | |
| A := L.Amplitude*(Cos(2.0*Pi*Freq*Time + L.Phase + | |
| PF.Amplitude*Abs(Cos(2.0*Pi*PP*Time + | |
| EF.Amplitude*Abs(Cos(2.0*Pi*PP*Time + | |
| EF.Phase)) + | |
| PF.Phase)) | |
| )); | |
| end; | |
| declare | |
| use Ada.Numerics.Long_Elementary_Functions; | |
| L : Amp_Phase renames Constituents(7); | |
| Freq : Long_Float := Year_Len / Periods(7); | |
| begin --ampA*(ABS(SIN(freq*$A18+$E$13*ABS(SIN(freq*($A18+$E$14)))+phaseA)))) | |
| T := L.Amplitude*Cos(2.0*Pi*Freq*Time + L.Phase); | |
| end; | |
| declare | |
| A1 : Long_Float renames Constituents(16).Amplitude; | |
| A2 : Long_Float renames Constituents(17).Amplitude; | |
| A3 : Long_Float renames Constituents(18).Amplitude; | |
| A4 : Long_Float renames Constituents(19).Amplitude; | |
| D1 : Long_Float renames Constituents(20).Amplitude; | |
| D2 : Long_Float renames Constituents(21).Amplitude; | |
| D3 : Long_Float renames Constituents(22).Amplitude; | |
| D4 : Long_Float renames Constituents(23).Amplitude; | |
| DA2 : Long_Float renames Constituents(24).Amplitude; | |
| D2A2 : Long_Float renames Constituents(25).Amplitude; | |
| D2A : Long_Float renames Constituents(26).Amplitude; | |
| DA3 : Long_Float renames Constituents(27).Amplitude; | |
| D3A : Long_Float renames Constituents(28).Amplitude; | |
| begin | |
| TF := T + A1*A + A2*A**2 + A3*A**3 + A4*A**4 + | |
| D1*D + D2*D**2 + D3*D**3 + D4*D**4 + | |
| DA2*D*(A**2) + D2A2*(D**2)*(A**2) + D2A*(D**2)*A + | |
| DA3*D*(A**3) + D3A*(D**3)*A ; | |
| Res(I) := (Time, TF); | |
| end; | |
| end loop; | |
| return Res; | |
| end Tide_Sum_Custom; | |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Overfitting the non-LTE part, with extra 4.4 etc factors
[] NINO4
Status: 9 2 0.76369 0.20023 # 2300
DTW 0.7636851484 0.2002198185 9 1
0.09273405782:dLOD: 365.24249840000:Yr: nino4.dat
PS C:\Users\paul\github\pukpr\GEM-LTE\run> ../backup component_artificial_n4pt58short1pt77_cust8overnight_mf1_n34dtwCCfilter_n4_biquad_N34_N4cDTWccWOW1try2_bend1harmALL44f_2plus1a
Status: 10 2 0.77095 0.04102 # 20
CC 0.7709526587 0.0410194356 10 1
0.09261611703:dLOD: 365.24249840000:Yr: nino4.dat
PS C:\Users\paul\github\pukpr\GEM-LTE\run> ../restore component_artificial_n4pt58short1pt77_cust8overnight_mf1_n34dtwCCfilter_n4_biquad_N34_N4cDTWccWOW1try2_bend1harmALL44f_2plus1c