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.
tide_FES14.h90 in branches/UKMO/r8395_India_uncoupled/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

source: branches/UKMO/r8395_India_uncoupled/NEMOGCM/NEMO/OPA_SRC/SBC/tide_FES14.h90 @ 10685

Last change on this file since 10685 was 10685, checked in by jcastill, 5 years ago

Changes as Ash's files

File size: 8.2 KB
Line 
1   !!----------------------------------------------------------------------
2   !! History :  3.2  !  2007  (O. Le Galloudec)  Original code
3   !!----------------------------------------------------------------------
4   !! TIDES ADDED  ! 2017 (Nico Bruneau)
5   !! Following this document that seems to match implemented code
6   !!    https://docs.lib.noaa.gov/rescue/cgs_specpubs/QB275U35no981924.pdf
7   !! see page 189 for some proposed values
8   !!
9   !! The convention which seems to have been chosen is the Shureman one and
10   !! not the Cartwright and Tayer (1971)
11   !! This is probably due to the fact the Schureman has a solar calendar
12   !! while Cartwright and Tayer is based on a lunar calendar
13   !!
14   !! Therefore the coefficient are not the Doodson number but the one
15   !! defined by Schureman. For example :
16   !! M2 : Doodson   : 2  0 0 0 0 0
17   !!      Schureman : 2 -2 2 0 0 0
18   !!
19   !! Components 1-34 are for FES 2014
20   !! Components >= 35 are the one that were initially present in NEMO and not in FES14
21   !!                  keep in mind than equitide coefficient have been ajusted for the
22   !!                  34 FES 2014 constituents
23   !!
24   !! The different coefficient are as follows
25   !!   - nt   = T  = Number of Julian centuries (36625 days) from Greenwich mean noon on December 31, 1899.
26   !!               = Hour angle of mean sun
27   !!   - ns   = s  = mean longitude of the moon
28   !!   - nh   = h  = mean longitude of the sun
29   !!   - np   = p  = mean longitude of the lunar perigee
30   !!   - np1  = p1 = mean longitude of the solar perigee
31   !!   - shift appears in table as a bias in degree
32   !!   - nksi Coefficient for the longitude in moon's orbit of lunar intersection
33   !!   - nu0 Coefficient for the right ascension of lunar intersection
34   !!   - nu1 Coefficient for the term in argument of lunisolar constituent K1
35   !!   - nu2 Coefficient for the term in argument of lunisolar constituent K2
36   !!   - R = ???
37   !!   - Formula = Nodal factor function; see the table of Schureman. Implemented in tide_mod.F90
38   !!
39   !! The equitide parameter seems to be the equilibrium tide amplitude corrected
40   !! with the C_n^m coefficient: see Cartwright and Tayer (1971) equation 12
41   !! and Table 2
42   !! As an example in their Table 4c (p66), M2 (200000) has an amplitude of
43   !! around 0.63186 m
44   !! Table 2, give us a correction of m = 2, n = 2 (semi-diurnal)
45   !! 0.63186*3*sqrt( 5 / 96 / pi ) = 0.24407
46   !! very close to the one define originally here : 0.242297
47   !! Third order terms are neglected
48   !!
49   !! So to correct (to match what is implemented in sbctide.F90 - take care CT71 uses co-latitude):
50   !!    - long wave : Amplitude from CT71 * [ -1   * sqrt( 5 /  4 / pi ) ]
51   !!    - diurnal   : Amplitude from CT71 * [ -3/2 * sqrt( 5 / 24 / pi ) ]
52   !!    - semi-diur : Amplitude from CT71 * [  3   * sqrt( 5 / 96 / pi ) ]
53   !!
54   !! ATTENTION: convention seems to be to have a positive coefficient and a 180 shift to
55   !!            represent negative value. to be confirmed though.
56   !!
57   !! All equtide were computed using the last epocs from Cartwright and Tayer (1971) multiply by
58   !! the corresponding coefficient of their table 2
59   !!
60   !! nutide is used to compute tide potential - it uses a different formulation depending of nutide
61   !! see sbctide.F90 in function tide_init_potential
62   !!
63   !! Some random note
64   !! in cnes fes tool:
65   !!        Msf has nksi = 2 and nnu0 = -2 which is reverse from Schureman (I kept the Schureman one)
66   !!
67   !!----------------------------------------------------------------------
68   !
69   !             !! name_tide , equitide , nutide , nt , ns , nh , np , np1 , shift , nksi , nnu0 , nnu1 , nnu2 , R , formula !!
70   !             !!           !          !        !    !    !    !    !     !       !      !      !      !      !   !         !!
71   !
72   ! Long Period Tides
73   Wave( 1) = tide(  'SA'     , 0.003103 ,    0   ,  0 ,  0 ,  1 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,    0    )
74   Wave( 2) = tide(  'SSA'    , 0.019523 ,    0   ,  0 ,  0 ,  2 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,    0    )
75   Wave( 3) = tide(  'MM'     , 0.022191 ,    0   ,  0 ,  1 ,  0 , -1 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,   73    )
76   Wave( 4) = tide(  'MF'     , 0.042023 ,    0   ,  0 ,  2 ,  0 ,  0 ,  0  ,    0  , -2   ,  0   ,  0   ,  0   , 0 ,   74    )
77   Wave( 5) = tide(  'MTM'    , 0.008042 ,    0   ,  0 ,  3 ,  0 , -1 ,  0  ,    0  , -2   ,  0   ,  0   ,  0   , 0 ,   74    )
78   Wave( 6) = tide(  'MSF'    , 0.003671 ,    0   ,  0 ,  2 , -2 ,  0 ,  0  ,    0  , -2   ,  2   ,  0   ,  0   , 0 ,   78    )
79   Wave( 7) = tide(  'MSQM'   , 0.001293 ,    0   ,  0 ,  4 , -2 ,  0 ,  0  ,    0  , -2   ,  0   ,  0   ,  0   , 0 ,   74    )
80   !
81   ! Diurnal Tides
82   Wave( 8) = tide(  'K1'     ,-0.142442 ,    1   ,  1 ,  0 ,  1 ,  0 ,  0  ,  -90  ,  0   ,  0   , -1   ,  0   , 0 ,   227   )
83   Wave( 9) = tide(  'O1'     , 0.101277 ,    1   ,  1 , -2 ,  1 ,  0 ,  0  ,  +90  ,  2   , -1   ,  0   ,  0   , 0 ,    75   )
84   Wave(10) = tide(  'Q1'     , 0.019383 ,    1   ,  1 , -3 ,  1 ,  1 ,  0  ,  +90  ,  2   , -1   ,  0   ,  0   , 0 ,    75   )
85   Wave(11) = tide(  'P1'     , 0.047145 ,    1   ,  1 ,  0 , -1 ,  0 ,  0  ,  +90  ,  0   ,  0   ,  0   ,  0   , 0 ,     0   )
86   Wave(12) = tide(  'S1'     ,-0.001116 ,    1   ,  1 ,  0 ,  0 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,     0   )
87   Wave(13) = tide(  'J1'     ,-0.007961 ,    1   ,  1 ,  1 ,  1 , -1 ,  0  ,  -90  ,  0   , -1   ,  0   ,  0   , 0 ,    76   )
88   !
89   ! Semi-Diurnal Tides
90   Wave(14) = tide(  'M2'     , 0.244083 ,    2   ,  2 , -2 ,  2 ,  0 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
91   Wave(15) = tide(  'N2'     , 0.046720 ,    2   ,  2 , -3 ,  2 ,  1 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
92   Wave(16) = tide(  'S2'     , 0.113565 ,    2   ,  2 ,  0 ,  0 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,     0   )
93   Wave(17) = tide(  'K2'     , 0.030875 ,    2   ,  2 ,  0 ,  2 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   , -2   , 0 ,   235   )
94   Wave(18) = tide(  'L2'     , 0.006903 ,    2   ,  2 , -1 ,  2 , -1 ,  0  , +180  ,  2   , -2   ,  0   ,  0   , 0 ,   215   )
95   Wave(19) = tide(  'T2'     , 0.006644 ,    2   ,  2 ,  0 , -1 ,  0 ,  1  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,     0   )
96   Wave(20) = tide(  'R2'     , 0.000950 ,    2   ,  2 ,  0 ,  1 ,  0 , -1  , +180  ,  2   ,  0   ,  0   ,  0   , 0 ,     0   )
97   !
98   Wave(21) = tide(  'MU2'    , 0.007451 ,    2   ,  2 , -4 ,  4 ,  0 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
99   Wave(22) = tide(  'NU2'    , 0.008873 ,    2   ,  2 , -3 ,  4 , -1 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
100   Wave(23) = tide( '2N2'     , 0.006176 ,    2   ,  2 , -4 ,  2 ,  2 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
101   Wave(24) = tide(  'MKS2'   , 0.000000 ,    2   ,  2 , -2 ,  4 ,  0 ,  0  ,    0  ,  2   , -2   ,  0   , -2   , 0 ,     4   )
102   Wave(25) = tide(  'LA2'    , 0.001800 ,    2   ,  2 , -1 ,  0 ,  1 ,  0  , +180  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
103   Wave(26) = tide(  'EPS2'   , 0.001796 ,    2   ,  2 , -5 ,  4 ,  1 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
104   !
105   ! Harmonic and others
106   Wave(27) = tide(  'M3'     , 0.000000 ,    3   ,  3 , -3 ,  3 ,  0 ,  0  ,    0  ,  3   , -3   ,  0   ,  0   , 0 ,   149   )
107   Wave(28) = tide(  'M4'     , 0.000000 ,    4   ,  4 , -4 ,  4 ,  0 ,  0  ,    0  ,  4   , -4   ,  0   ,  0   , 0 ,     1   )
108   Wave(29) = tide(  'M6'     , 0.000000 ,    6   ,  6 , -6 ,  6 ,  0 ,  0  ,    0  ,  6   , -6   ,  0   ,  0   , 0 ,    18   )
109   Wave(30) = tide(  'M8'     , 0.000000 ,    8   ,  8 , -8 ,  8 ,  0 ,  0  ,    0  ,  8   , -8   ,  0   ,  0   , 0 ,    20   )
110   Wave(31) = tide(  'N4'     , 0.000000 ,    4   ,  4 , -6 ,  4 ,  2 ,  0  ,    0  ,  4   , -4   ,  0   ,  0   , 0 ,     1   )
111   Wave(32) = tide(  'S4'     , 0.000000 ,    4   ,  4 ,  0 ,  0 ,  0 ,  0  ,    0  ,  0   ,  0   ,  0   ,  0   , 0 ,     0   )
112   Wave(33) = tide(  'MN4'    , 0.000000 ,    4   ,  4 , -5 ,  4 ,  1 ,  0  ,    0  ,  4   , -4   ,  0   ,  0   , 0 ,     1   )
113   Wave(34) = tide(  'MS4'    , 0.000000 ,    4   ,  4 , -2 ,  2 ,  0 ,  0  ,    0  ,  2   , -2   ,  0   ,  0   , 0 ,    78   )
114   !
Note: See TracBrowser for help on using the repository browser.