Changeset 11768
- Timestamp:
- 2019-10-23T11:58:40+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE/tide.h90
r11722 r11768 1 !!===================================================================== 2 !! *** Include file tide.h90 *** 3 !!====================================================================== 4 !! History : 3.2 ! 2007 (O. Le Galloudec) Original code 5 !! ! 2019 (S. Mueller, N. Bruneau) Alternative parameter set 1 6 !!---------------------------------------------------------------------- 2 !! History : 3.2 ! 2007 (O. Le Galloudec) Original code 7 !! 8 !! ** Purpose : Inclusion of alternative variants of tidal-constituent 9 !! parameter definitions during code preprocessing: the default 10 !! variant includes the 34 constituents available in the FES2014 11 !! version of the Finite Element Solution - Global Tide data 12 !! product 13 !! (https://www.aviso.altimetry.fr/en/data/products/auxiliary-products/global-tide-fes.html); 14 !! also available is the default parameter set available in 15 !! previous NEMO versions 16 !! 17 !! ** References : 18 !! S58) Schureman, P. (1958): Manual of Harmonic Analysis and 19 !! Prediction of Tides (Revised (1940) Edition (Reprinted 1958 20 !! with corrections). Reprinted June 2001). U.S. Department of 21 !! Commerce, Coast and Geodetic Survey Special Publication 22 !! No. 98. Washington DC, United States Government Printing 23 !! Office. 317 pp. DOI: 10.25607/OBP-155. 24 !! CT71) Cartwright, D. E. and Tayler, R. J. (1971): New computations of 25 !! the Tide-generating Potential. Geophys. J. R. astr. Soc. 23, 26 !! pp. 45-74. DOI: 10.1111/j.1365-246X.1971.tb01803.x 27 !! CE73) Cartwright, D. E. and Edden, A. C. (1973): Corrected Tables of 28 !! Tidal Harmonics. Geophys. J. R. astr. Soc. 33, 29 !! pp. 253-264. DOI: 10.1111/j.1365-246X.1973.tb03420.x 30 !! FES2014) FES (Finite element Solution) - Global 31 !! tide. https://www.aviso.altimetry.fr/en/data/products/auxiliary-products/global-tide-fes.html 32 !! 3 33 !!---------------------------------------------------------------------- 4 34 35 !!---------------------------------------------------------------------- 36 !! NEMO/OCE 4.0 , NEMO Consortium (2019) 37 !! $Id$ 38 !! Software governed by the CeCILL license (see ./LICENSE) 39 !!---------------------------------------------------------------------- 5 40 #ifndef TIDE_VAR_0 6 ! !! name_tide , equitide , nt , ns , nh , np , np1 , shift , nksi , nnu0 , nnu1 , nnu2 , R , formula !! 7 ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !! 8 tide_components( 1) = tide( 'M2' , 0.242297 , 2 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 9 tide_components( 2) = tide( 'N2' , 0.046313 , 2 , -3 , 2 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 10 tide_components( 3) = tide( '2N2' , 0.006184 , 2 , -4 , 2 , 2 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 11 tide_components( 4) = tide( 'S2' , 0.113572 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 12 tide_components( 5) = tide( 'K2' , 0.030875 , 2 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 235 ) 13 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 14 tide_components( 6) = tide( 'K1' , 0.142408 , 1 , 0 , 1 , 0 , 0 , -90 , 0 , 0 , -1 , 0 , 0 , 227 ) 15 tide_components( 7) = tide( 'O1' , 0.101266 , 1 , -2 , 1 , 0 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 ) 16 tide_components( 8) = tide( 'Q1' , 0.019387 , 1 , -3 , 1 , 1 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 ) 17 tide_components( 9) = tide( 'P1' , 0.047129 , 1 , 0 , -1 , 0 , 0 , +90 , 0 , 0 , 0 , 0 , 0 , 0 ) 18 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 19 tide_components(10) = tide( 'M4' , 0.000000 , 4 , -4 , 4 , 0 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) 20 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 21 tide_components(11) = tide( 'Mf' , 0.042017 , 0 , 2 , 0 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 22 tide_components(12) = tide( 'Mm' , 0.022191 , 0 , 1 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 73 ) 23 tide_components(13) = tide( 'Msqm' , 0.000667 , 0 , 4 , -2 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 24 tide_components(14) = tide( 'Mtm' , 0.008049 , 0 , 3 , 0 , -1 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 25 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 26 tide_components(15) = tide( 'S1' , 0.000000 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 27 tide_components(16) = tide( 'MU2' , 0.005841 , 2 , -4 , 4 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 28 tide_components(17) = tide( 'NU2' , 0.009094 , 2 , -3 , 4 , -1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 29 tide_components(18) = tide( 'L2' , 0.006694 , 2 , -1 , 2 , -1 , 0 , +180 , 2 , -2 , 0 , 0 , 0 , 215 ) 30 tide_components(19) = tide( 'T2' , 0.006614 , 2 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 41 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 42 ! | Name | Equilibrium | nt | ns | nh | np | np1 | Phase | nxi | nnu0 | nnu1 | nnu2 | R | Nodal | Equilibrium | Parameters source | Notes | 43 ! | | tide | | | | | | shift | | | | | | correction | tide | | | 44 ! | | | | | | | | | | | | | | formula | source/comment | | | 45 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 46 ! | Long-period tidal constituents | 47 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 48 tide_components( 1) = tide( 'Mf' , 0.042054_wp , 0 , 2 , 1 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) ! CE73 | S54 (Table 2, A6) | | 49 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 50 tide_components( 2) = tide( 'Mm' , 0.022187_wp , 0 , 1 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 73 ) ! CE73 | S54 (Table 2, A2) | | 51 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 52 tide_components( 3) = tide( 'Ssa' , 0.019572_wp , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! CE73 | S54 (Table 2, B6) | | 53 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 54 tide_components( 4) = tide( 'Mtm' , 0.008052_wp , 0 , 3 , 0 , -1 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) ! CE73 | FES2014 (prediction | | 55 ! | | | | | | | | | | | | | | | | algorithm); S54 | | 56 ! | | | | | | | | | | | | | | | | (Table 2, A7) | | 57 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 58 tide_components( 5) = tide( 'MSf' , 0.003677_wp , 0 , 2 , -2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 73 ) ! CE73 | S54 (Table 2, A5) | | 59 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 60 tide_components( 6) = tide( 'MSqm' , 0.001287_wp , 0 , 4 , -2 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) ! CE73 | FES2014 (prediction | | 61 ! | | | | | | | | | | | | | | | | algorithm); S54 | | 62 ! | | | | | | | | | | | | | | | | (Table 2, A12) | | 63 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 64 tide_components( 7) = tide( 'Sa' , 0.000000_wp , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! Meteorological | S54 (Table 2, B64) | | 65 ! | | | | | | | | | | | | | | | tide only | | | 66 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 67 ! | Diurnal tidal constituents | 68 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 69 tide_components( 8) = tide( 'K1' , -0.142486_wp , 1 , 0 , 1 , 0 , 0 , 90 , 0 , 0 , -1 , 0 , 0 , 227 ) ! CE73 | S54 (Table 2) | Note 1 | 70 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 71 tide_components( 9) = tide( 'O1' , 0.101316_wp , 1 , -2 , 1 , 0 , 0 , 90 , 2 , -1 , 0 , 0 , 0 , 75 ) ! CE73 | S54 (Table 2, A14) | | 72 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 73 tide_components(10) = tide( 'P1' , 0.047152_wp , 1 , 0 , -1 , 0 , 0 , 90 , 0 , 0 , 0 , 0 , 0 , 0 ) ! CE73 | S54 (Table 2, B14) | | 74 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 75 tide_components(11) = tide( 'Q1' , 0.019396_wp , 1 , -3 , 1 , 1 , 0 , 90 , 2 , -1 , 0 , 0 , 0 , 75 ) ! CE73 | S54 (Table 2, A15) | | 76 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 77 tide_components(12) = tide( 'J1' , -0.007967_wp , 1 , 1 , 1 , -1 , 0 , 90 , 0 , -1 , 0 , 0 , 0 , 76 ) ! CE73 | S54 (Table 2, A24) | Note 1 | 78 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 79 tide_components(13) = tide( 'S1' , 0.000000_wp , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! Meteorological | S54 (Table 2, B71) | | 80 ! | | | | | | | | | | | | | | | tide only | | | 81 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 82 ! | Semidiurnal tidal constituents | 83 ! +--------+-------------+-----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 84 tide_components(14) = tide( 'M2' , 0.244081_wp , 2 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A39) | | 85 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 86 tide_components(15) = tide( 'S2' , 0.110242_wp , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! CE73 | S54 (Table 2, B39) | | 87 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 88 tide_components(16) = tide( 'N2' , 0.046732_wp , 2 , -3 , 2 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A40) | | 89 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 90 tide_components(17) = tide( 'K2' , 0.030905_wp , 2 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 235 ) ! CE73 | S54 (Table 2) | | 91 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 92 tide_components(18) = tide( 'nu2' , 0.008877_wp , 2 , -3 , 4 , -1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A43) | | 93 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 94 tide_components(19) = tide( 'mu2' , 0.007463_wp , 2 , -4 , 4 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A45) | | 95 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 96 tide_components(20) = tide( '2N2' , 0.006184_wp , 2 , -4 , 2 , 2 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A42) | | 97 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 98 tide_components(21) = tide( 'L2' , -0.006899_wp , 2 , -1 , 2 , -1 , 0 , 0 , 2 , -2 , 0 , 0 , -1 , 215 ) ! CE73 | S54 (Table 2) | Note 1 | 99 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 100 tide_components(22) = tide( 'T2' , 0.006655_wp , 2 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! CE73 | S54 (Table 2, B40) | | 101 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 102 tide_components(23) = tide( 'eps2' , 0.001804_wp , 2 , -5 , 4 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | FES2014 (prediction | | 103 ! | | | | | | | | | | | | | | | | algorithm) | | 104 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 105 tide_components(24) = tide( 'lam2' , -0.001800_wp , 2 , -1 , 0 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! CE73 | S54 (Table 2, A44) | Note 1 | 106 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 107 tide_components(25) = tide( 'R2' , -0.000952_wp , 2 , 0 , 1 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! CE73 | S54 (Table 2, B41) | Note 1 | 108 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 109 ! | Terdiurnal tidal constituents | 110 ! +--------+-------------+-----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 111 tide_components(26) = tide( 'M3' , -0.003192_wp , 3 , -3 , 3 , 0 , 0 , 180 , 3 , -3 , 0 , 0 , 0 , 149 ) ! CT71 | S54 (Table 2, A82) | Note 2 | 112 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 113 ! | Compound tides | 114 ! +--------+-------------+-----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 115 tide_components(27) = tide( 'MKS2' , 0.000000_wp , 2 , -2 , 4 , 0 , 0 , 0 , 2 , -2 , 0 , -2 , 0 , 4 ) ! Compound tide | FES2014 (prediction | | 116 ! | | | | | | | | | | | | | | | | algorithm) | | 117 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 118 tide_components(28) = tide( 'MN4' , 0.000000_wp , 4 , -5 , 4 , 1 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) ! Compound tide | S54 (Table 2a) | | 119 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 120 tide_components(29) = tide( 'MS4' , 0.000000_wp , 4 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) ! Compound tide | FES2014 (prediction | Note 3 | 121 ! | | | | | | | | | | | | | | | | algorithm); S54 | | 122 ! | | | | | | | | | | | | | | | | (Table 2a) | | 123 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 124 ! | Overtides | 125 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 126 tide_components(30) = tide( 'M4' , 0.000000_wp , 4 , -4 , 4 , 0 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) ! Overtide | S54 | | 127 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 128 tide_components(31) = tide( 'N4' , 0.000000_wp , 4 , -6 , 4 , 2 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) ! Overtide | FES2014 (prediction | | 129 ! | | | | | | | | | | | | | | | | algorithm) | | 130 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 131 tide_components(32) = tide( 'S4' , 0.000000_wp , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ! Overtide | S54 | | 132 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 133 tide_components(33) = tide( 'M6' , 0.000000_wp , 6 , -6 , 6 , 0 , 0 , 0 , 6 , -6 , 0 , 0 , 0 , 18 ) ! Overtide | S54 | | 134 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 135 tide_components(34) = tide( 'M8' , 0.000000_wp , 8 , -8 , 8 , 0 , 0 , 0 , 8 , -8 , 0 , 0 , 0 , 20 ) ! Overtide | S54 | | 136 ! +--------+--------------+----+----+----+----+-----+-------+-----+------+------+------+----+------------+----------------+-----------------------+--------+ 137 ! Note 1: the phase shift from Table 2 of S54 has been adjusted to accomodate the negative sign of the equilibrium-tide value derived from CE73. 138 ! Note 2: the phase shift from Table 2 of S54 has been adjusted to accomodate the negative sign of the equilibrium-tide value derived from CT71. 139 ! Note 3: the nodal correction factor formulas from FES2014 and S54 differ; here, the version from FES2014 has been selected. 31 140 #else 32 141 ! !! name_tide , equitide , nt , ns , nh , np , np1 , shift , nksi , nnu0 , nnu1 , nnu2 , R , formula !! -
NEMO/branches/2019/dev_r10742_ENHANCE-12_SimonM-Tides/src/OCE/TDE/tide_mod.F90
r11764 r11768 670 670 zf = zf * zf1 * zf1 671 671 ! 672 CASE( 20 ) !== formula 20, compound waves ( 78 x 78 x 78 x 78 ) 673 zf1 = nodal_factort(78) 674 zf = zf1 * zf1 * zf1 * zf1 675 ! 672 676 CASE( 73 ) !== formule 73 673 677 zs = sin(sh_I)
Note: See TracChangeset
for help on using the changeset viewer.