Changeset 15500 for NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE
- Timestamp:
- 2021-11-12T19:02:10+01:00 (3 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/DIA/diaharm_fast.F90
r15491 r15500 134 134 INTEGER :: jh, i1, i2, jgrid 135 135 INTEGER :: j2d, j3d 136 REAL(WP) :: sec2start 136 REAL(WP) :: sec2start,sec2start_old 137 137 CHARACTER (len=40) :: tmp_name 138 138 !!-------------------------------------------------------------------- … … 144 144 145 145 IF ( ln_diaharm_update_nodal_daily ) THEN 146 IF (MOD(kt,nint(86400./rdt)) == 0) THEN 146 !IF (MOD(kt,nint(86400./rdt)) == 0) THEN 147 148 149 IF( nsec_day == NINT(0.5_wp * rdt) .OR. kt == nit000 ) THEN 147 150 DO jh = 1, nb_ana 151 !JT anau(jh) = 3.141579*utide ( ntide_sub(jh) )/180. 152 !JT anav(jh) = 3.141579*v0tide( ntide_sub(jh) )/180. 148 153 anau(jh) = utide ( ntide_sub(jh) ) 149 154 anav(jh) = v0tide( ntide_sub(jh) ) … … 194 199 c(1) = 1.0 195 200 196 sec2start = nint( (fjulday-fjulday_startharm)*86400._wp ) 201 sec2start_old = nint( (fjulday-fjulday_startharm)*86400._wp ) 202 sec2start = nsec_day - NINT(0.5_wp * rdt) 197 203 !IF(lwp) WRITE(numout,*) "ztime NEW", kt, sec2start, fjulday_startharm 198 204 … … 200 206 c(2*jh ) = anaf(jh)*cos( sec2start*om_tide(jh) + anau(jh) + anav(jh) ) 201 207 c(2*jh+1) = anaf(jh)*sin( sec2start*om_tide(jh) + anau(jh) + anav(jh) ) 208 209 IF(lwp) WRITE(numout,*) 'diaharm_fast: analwave,',kt,tname(jh),sec2start,sec2start/3600.,sec2start_old,sec2start_old/3600,c(2*jh),c(2*jh+1),om_tide(jh),anau(jh),anav(jh) 202 210 ENDDO 203 211 … … 378 386 lk_diaharm_3D = .TRUE. ! to run 3d 379 387 388 ln_diaharm_store = .TRUE. 389 380 390 IF(lwp) WRITE(numout,*) 381 391 IF(lwp) WRITE(numout,*) 'harm_init : initialization of harmonic analysis of tides' … … 449 459 450 460 ! JT 451 452 461 453 462 … … 622 631 623 632 fjulday_startharm=fjulday !Set this at very start and store 633 !JT this is a mistake - only works on daily cycles, should use fjulnsec_dayday 624 634 625 635 IF (lwp) THEN … … 629 639 WRITE(numout,*) 'ANA U', anau 630 640 WRITE(numout,*) 'ANA V', anav 631 WRITE(numout,*) fjulday_startharm 641 WRITE(numout,*) 'fjulday',fjulday 642 WRITE(numout,*) 'fjulday_startharm',fjulday_startharm 643 WRITE(numout,*) 'nsec_day',nsec_day 644 WRITE(numout,*) 'kt',kt 632 645 WRITE(numout,*) '--------------------------' 633 646 ENDIF … … 779 792 IF( iom_use(TRIM(tmp_name)) ) THEN 780 793 IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(h_out2D) 794 IF(lwp) WRITE(numout,*) "harm_ana_out_names", tmp_name,tname(jh),' ',om_tide(jh), (2*rpi/3600.)/om_tide(jh),"hr" 781 795 CALL iom_put( TRIM(tmp_name), h_out2D(:,:) ) 782 796 ELSE -
NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/SBC/tide_mod.F90
r15490 r15500 21 21 PUBLIC tide_harmo ! called by tideini and diaharm modules 22 22 PUBLIC tide_init_Wave ! called by tideini and diaharm modules 23 PUBLIC tide_init_calendar_options ! called by tideini and diaharm modules 23 24 24 25 ! davbyr: increase maximum number of harmonics from 19 to 34 … … 40 41 REAL(wp) :: sh_I, sh_x1ra, sh_N ! 41 42 43 44 !JT origin angles 45 REAL(wp) :: sh_T_o, sh_s_o, sh_h_o, sh_p_o, sh_p1_o, sh_N_o ! astronomic angles 46 !REAL(wp) :: sh_xi_o, sh_nu_o, sh_nuprim_o, sh_nusec_o, sh_R_o ! 47 !REAL(wp) :: sh_I_o, sh_x1ra_o ! 48 !JT origin angles 49 42 50 !!JT 43 51 INTEGER(KIND=8) :: days_since_origin … … 63 71 64 72 65 SUBROUTINE tide_harmo( pomega, pvt, put , pcor, ktide ,kc) 66 67 !! Externally called by sbctide.F90/sbc_tide 68 !! Externally named: omega_tide, v0tide, utide, ftide, ntide, nb_harmo 69 !!---------------------------------------------------------------------- 70 !!---------------------------------------------------------------------- 71 INTEGER , DIMENSION(kc), INTENT(in ) :: ktide ! Indice of tidal constituents 72 INTEGER , INTENT(in ) :: kc ! Total number of tidal constituents 73 REAL(wp), DIMENSION(kc), INTENT(out) :: pomega ! pulsation in radians/s 74 REAL(wp), DIMENSION(kc), INTENT(out) :: pvt, put, pcor ! 75 !!---------------------------------------------------------------------- 76 ! 73 SUBROUTINE tide_init_calendar_options 77 74 78 75 INTEGER :: ios … … 143 140 ENDIF 144 141 142 IF ( ln_tide_compress ) CALL astronomic_angle_origin 143 144 END SUBROUTINE tide_init_calendar_options 145 146 147 SUBROUTINE tide_harmo( pomega, pvt, put , pcor, ktide ,kc) 148 149 !! Externally called by sbctide.F90/sbc_tide 150 !! Externally named: omega_tide, v0tide, utide, ftide, ntide, nb_harmo 151 !!---------------------------------------------------------------------- 152 !!---------------------------------------------------------------------- 153 INTEGER , DIMENSION(kc), INTENT(in ) :: ktide ! Indice of tidal constituents 154 INTEGER , INTENT(in ) :: kc ! Total number of tidal constituents 155 REAL(wp), DIMENSION(kc), INTENT(out) :: pomega ! pulsation in radians/s 156 REAL(wp), DIMENSION(kc), INTENT(out) :: pvt, put, pcor ! 157 !!---------------------------------------------------------------------- 158 ! 159 160 ! INTEGER :: ios 161 162 163 ! ln_tide_drift = .FALSE. 164 ! ln_tide_compress = .FALSE. 165 166 ! NAMELIST/nam_tides360/ ln_tide_drift,ln_tide_compress,ln_astro_verbose,& 167 ! & nn_tide_orig_yr,nn_tide_orig_mn,nn_tide_orig_dy 168 169 ! ! read in Namelist. 170 ! !!---------------------------------------------------------------------- 171 ! ! 172 ! REWIND ( numnam_ref ) ! Read Namelist nam_diatmb in referdiatmbence namelist : TMB diagnostics 173 ! READ ( numnam_ref, nam_tides360, IOSTAT=ios, ERR= 901 ) 174 !901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_tides360 in reference namelist' ) 175 176 ! REWIND( numnam_cfg ) ! Namelist nam_diatmb in configuration namelist TMB diagnostics 177 ! READ ( numnam_cfg, nam_tides360, IOSTAT = ios, ERR = 902 ) 178 !902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_tides360 in configuration namelist' ) 179 ! IF(lwm) WRITE ( numond, nam_tides360 ) 180 181 182 ! IF( lwp ) THEN 183 ! WRITE(numout,*) " " 184 ! WRITE(numout,*) "tide_harmo: nam_tides360 - 360 day tides " 185 ! WRITE(numout,*) "~~~~~~~~~~~~~~~~~~~~~" 186 ! WRITE(numout,*) " tides360: allow tides to drift through year: ln_tide_drift = ",ln_tide_drift 187 ! WRITE(numout,*) " tides360: Compress tides, so around a 360 day year: ln_tide_compress = ",ln_tide_compress 188 ! WRITE(numout,*) " tides360: USE ln_tide_compress WITH CARE. INCOMPLETE." 189 ! WRITE(numout,*) " tides360: Increase output verbosity: ln_astro_verbose = ",ln_astro_verbose 190 ! !WRITE(numout,*) " tides360: Calculate time between origin and gregorian and 360 manually: ln_tide_drift_time_cont_manual = ",ln_tide_drift_time_cont_manual 191 ! WRITE(numout,*) " tides360: 360 day origin date year: nn_tide_orig_yr = ",nn_tide_orig_yr 192 ! WRITE(numout,*) " tides360: 360 day origin date month: nn_tide_orig_mn = ",nn_tide_orig_mn 193 ! WRITE(numout,*) " tides360: 360 day origin date day: nn_tide_orig_dy = ",nn_tide_orig_dy 194 ! WRITE(numout,*) " " 195 ! ENDIF 196 197 ! 198 ! IF( nleapy == 30 ) THEN 199 ! IF ( ln_tide_drift .AND. ln_tide_compress ) THEN 200 ! CALL ctl_stop( 'tide_harmo: nam_tides360: if 360 day calendar ln_tide_drift and ln_tide_compress cannot be true' ) 201 ! ENDIF 202 ! 203 204 ! IF ( ln_tide_drift ) THEN 205 ! WRITE(numout,*) " tides360: Tides continuous so equinoctal tides drift through the year," 206 ! WRITE(numout,*) " as the S2-K2 beating occurs 5 days later every year." 207 ! ENDIF 208 209 ! IF ( ln_tide_compress ) THEN 210 ! WRITE(numout,*) " tides360: The Tropical Year (and so some tidal periods) are compressed," 211 ! WRITE(numout,*) " so the tides repeat with an annual cycle, so the " 212 ! WRITE(numout,*) " the S2-K2 beating is fixed relative to the calendar, but the " 213 ! WRITE(numout,*) " M2 period varies slightly." 214 ! WRITE(numout,*) " Use with care, as this requires more work." 215 ! ENDIF 216 217 ! IF ( ( .NOT. ln_tide_drift ) .AND. ( .NOT. ln_tide_compress ) ) THEN 218 ! WRITE(numout,*) " tides360: Use the default NEMO tide code, where the tides are reset " 219 ! WRITE(numout,*) " at the beginning of each month, leading to a slight discontinuity" 220 ! WRITE(numout,*) " in the tides, and making tidal analysis difficult." 221 ! ENDIF 222 223 ! ELSE 224 ! WRITE(numout,*) " tides360: Gregorian calendar so using standard tides" 225 ! ENDIF 226 145 227 CALL astronomic_angle 146 228 CALL tide_pulse( pomega, ktide ,kc ) 147 229 CALL tide_vuf ( pvt, put, pcor, ktide ,kc ) 230 148 231 ! 149 232 END SUBROUTINE tide_harmo … … 263 346 INTEGER :: init_doy_inc_l,yg_is_leap_mod,doy_grg 264 347 INTEGER,DIMENSION(12) :: idayt, idays 265 INTEGER :: inc, ji 266 INTEGER :: ios 267 268 269 INTEGER :: yr_grg_2, mn_grg_2, dy_grg_2 270 REAL(wp) :: sec_grg_2 271 REAL(wp) :: fjulday_org !: current julian day 348 !INTEGER :: ji 349 350 !REAL(wp) :: fjulday_org !: current julian day 272 351 ! REAL(wp) :: days_since_origin_ymds2ju 273 352 INTEGER(KIND=8) :: days_since_origin_ymds2ju_int 274 353 275 REAL(wp) :: current_one_year276 REAL(wp) :: tmpju277 354 278 355 … … 554 631 555 632 556 IF (ln_tide_compress) THEN557 yr_wrk = nyear558 mn_wrk = nmonth559 dy_wrk = nday560 ENDIF633 !IF (ln_tide_compress) THEN 634 ! yr_wrk = nyear 635 ! mn_wrk = nmonth 636 ! dy_wrk = nday 637 !ENDIF 561 638 562 639 ELSE … … 671 748 672 749 750 751 752 753 754 SUBROUTINE astronomic_angle_origin 755 !!---------------------------------------------------------------------- 756 !! tj is time elapsed since 1st January 1900, 0 hour, counted in julian 757 !! century (e.g. time in days divide by 36525) 758 !!---------------------------------------------------------------------- 759 REAL(wp) :: cosI, p, q, t2, t4, sin2I, s2, tgI2, P1, sh_tgn2, at1, at2 760 REAL(wp) :: zqy , zsy, zday, zdj, zhfrac 761 762 763 764 765 766 ! New variables defined for new code 767 INTEGER :: yr_wrk,mn_wrk,dy_wrk !JT 768 769 770 771 ! for gregorian calendars, work with the model gregorian dates 772 yr_wrk = nn_tide_orig_yr 773 mn_wrk = nn_tide_orig_mn 774 dy_wrk = nn_tide_orig_dy 775 776 777 ! 778 zqy = AINT( (yr_wrk-1901.)/4. ) ! leap years since 1901 779 zsy = yr_wrk - 1900. ! years since 1900 780 ! 781 zdj = dayjul( yr_wrk, mn_wrk, dy_wrk ) ! day number of year 782 zday = zdj + zqy - 1. ! day number of year + No of leap yrs 783 ! i.e. what would doy if every year = 365 day?? 784 ! 785 zhfrac = nsec_day / 3600. ! The seconds of the day/3600 786 787 788 ! 789 !---------------------------------------------------------------------- 790 ! Sh_n Longitude of ascending lunar node 791 !---------------------------------------------------------------------- 792 sh_N_o=(259.1560564-19.328185764*zsy-.0529539336*zday-.0022064139*zhfrac)*rad 793 !---------------------------------------------------------------------- 794 ! T mean solar angle (Greenwhich time) 795 !---------------------------------------------------------------------- 796 sh_T_o=(180.+zhfrac*(360./24.))*rad 797 !---------------------------------------------------------------------- 798 ! h mean solar Longitude 799 !---------------------------------------------------------------------- 800 sh_h_o=(280.1895014-.238724988*zsy+.9856473288*zday+.0410686387*zhfrac)*rad 801 !---------------------------------------------------------------------- 802 ! s mean lunar Longitude 803 !---------------------------------------------------------------------- 804 sh_s_o=(277.0256206+129.38482032*zsy+13.176396768*zday+.549016532*zhfrac)*rad 805 !---------------------------------------------------------------------- 806 ! p1 Longitude of solar perigee 807 !---------------------------------------------------------------------- 808 sh_p1_o=(281.2208569+.01717836*zsy+.000047064*zday+.000001961*zhfrac)*rad 809 !---------------------------------------------------------------------- 810 ! p Longitude of lunar perigee 811 !---------------------------------------------------------------------- 812 sh_p_o=(334.3837214+40.66246584*zsy+.111404016*zday+.004641834*zhfrac)*rad 813 814 815 816 IF(ln_astro_verbose .AND. lwp) THEN 817 WRITE(numout,*) 818 WRITE(numout,*) 'tide_mod_astro_ang_orig,yr_wrk,mn_wrk,dy_wrk,nsec_day,=',yr_wrk,mn_wrk,dy_wrk,nsec_day 819 WRITE(numout,*) 'tide_mod_astro_ang_orig,sh_N_o,sh_T_o,sh_h_o,sh_s_o,sh_p1_o,sh_p_o,', sh_N_o,sh_T_o,sh_h_o,sh_s_o,sh_p1_o,sh_p_o 820 WRITE(numout,*) 'tide_mod_astro_ang_orig,zqy ,zdj,zsy,zday,zhfrac,rad,', zqy ,zdj,zsy,zday,zhfrac,rad 821 822 WRITE(numout,*) '~~~~~~~~~~~~~~ ' 823 ENDIF 824 825 826 827 sh_N_o = MOD( sh_N_o ,2*rpi ) 828 sh_s_o = MOD( sh_s_o ,2*rpi ) 829 sh_h_o = MOD( sh_h_o, 2*rpi ) 830 sh_p_o = MOD( sh_p_o, 2*rpi ) 831 sh_p1_o= MOD( sh_p1_o,2*rpi ) 832 833 834 ! cosI = 0.913694997 -0.035692561 *cos(sh_N_o) 835 ! 836 ! 837 ! 838 !! REAL(wp) :: cosI, p, q, t2, t4, sin2I, s2, tgI2, P1, sh_tgn2, at1, at2 839 !! REAL(wp) :: zqy , zsy, zday, zdj, zhfrac 840 ! 841 ! 842 ! sh_I_o = ACOS( cosI ) 843 ! 844 ! sin2I = sin(sh_I_o) 845 ! sh_tgn2 = tan(sh_N_o/2.0) 846 ! 847 ! at1=atan(1.01883*sh_tgn2) 848 ! at2=atan(0.64412*sh_tgn2) 849 ! 850 ! sh_xi_o=-at1-at2+sh_N 851 ! 852 ! IF( sh_N_o > rpi ) sh_xi_o=sh_xi_o-2.0*rpi 853 ! 854 ! sh_nu_o = at1 - at2 855 ! 856 ! !---------------------------------------------------------------------- 857 ! ! For constituents l2 k1 k2 858 ! !---------------------------------------------------------------------- 859 ! 860 ! tgI2 = tan(sh_I_o/2.0) 861 ! P1 = sh_p_o-sh_xi_o 862 ! 863 ! t2 = tgI2*tgI2 864 ! t4 = t2*t2 865 ! sh_x1ra_o = sqrt( 1.0-12.0*t2*cos(2.0*P1)+36.0*t4 ) 866 ! 867 ! p = sin(2.0*P1) 868 ! q = 1.0/(6.0*t2)-cos(2.0*P1) 869 ! sh_R = atan(p/q) 870 ! 871 ! p = sin(2.0*sh_I)*sin(sh_nu) 872 ! q = sin(2.0*sh_I)*cos(sh_nu)+0.3347 873 ! sh_nuprim_o = atan(p/q) 874 ! 875 ! s2 = sin(sh_I_o)*sin(sh_I_o) 876 ! p = s2*sin(2.0*sh_nu_o) 877 ! q = s2*cos(2.0*sh_nu_o)+0.0727 878 ! sh_nusec_o = 0.5*atan(p/q) 879 880 881 882 ! 883 END SUBROUTINE astronomic_angle_origin 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 673 899 SUBROUTINE tide_pulse( pomega, ktide ,kc ) 674 900 !!---------------------------------------------------------------------- … … 763 989 764 990 765 !offset(1) = 0.10789890_wp766 !offset(2) = 1.10897897_wp767 !offset(3) = 2.11005903_wp768 !offset(4) = 0.00000000_wp769 !offset(5) = 3.47632710_wp770 !offset(6) = 0.16751976_wp771 !offset(7) = -0.05503165_wp772 !offset(8) = 0.94604842_wp773 !offset(9) = 6.10534877_wp774 !offset(10) = 0.21579780_wp775 !offset(11) = 0.00000000_wp776 !offset(12) = 0.00000000_wp777 !offset(13) = 0.00000000_wp778 !offset(14) = 0.00000000_wp779 !offset(15) = 3.14159265_wp780 !offset(16) = 0.21833313_wp781 !offset(17) = 5.50043837_wp782 !offset(18) = 2.24841149_wp783 !offset(19) = 0.01800173_wp784 785 !v0linearintercept(1) = 0.11044027_wp786 !v0linearintercept(2) = 1.11152799_wp787 !v0linearintercept(3) = 2.11261570_wp788 !v0linearintercept(4) = 0.00000000_wp789 !v0linearintercept(5) = 3.49727335_wp790 !v0linearintercept(6) = 0.17784035_wp791 !v0linearintercept(7) = 6.21578523_wp792 !v0linearintercept(8) = 0.93368764_wp793 !v0linearintercept(9) = 6.10534496_wp794 !v0linearintercept(10) = 0.22088055_wp795 !v0linearintercept(11) = 0.00000000_wp796 !v0linearintercept(12) = 0.00000000_wp797 !v0linearintercept(13) = 0.00000000_wp798 !v0linearintercept(14) = 0.00000000_wp799 !v0linearintercept(15) = 3.14159265_wp800 801 !v0linearintercept(1) = v0linearintercept(1) - 0.000000_wp802 !v0linearintercept(2) = v0linearintercept(2) - 0.000000_wp803 !v0linearintercept(3) = v0linearintercept(3) - 0_wp804 !v0linearintercept(4) = v0linearintercept(4) - 0.165795_wp805 !v0linearintercept(5) = v0linearintercept(5) + 2.821252_wp806 !v0linearintercept(6) = v0linearintercept(6) + 0.479504_wp807 !v0linearintercept(7) = v0linearintercept(7) - 2.175621_wp808 !v0linearintercept(8) = v0linearintercept(8) + 1.900267_wp809 !v0linearintercept(9) = v0linearintercept(9) + 0.107633_wp810 !v0linearintercept(10) = v0linearintercept(10) - 0.000000_wp811 !v0linearintercept(11) = v0linearintercept(11) - 0.000000_wp812 !v0linearintercept(12) = v0linearintercept(12) - 0.225730_wp813 !v0linearintercept(13) = v0linearintercept(13) - 0.238641_wp814 !v0linearintercept(14) = v0linearintercept(14) - 3.005851_wp815 !v0linearintercept(15) = v0linearintercept(15) - 0.000000_wp816 817 !v0linearintercept(1) = 0.11044026999999999_wp818 !v0linearintercept(2) = 1.11152798999999990_wp819 !v0linearintercept(3) = 2.11261570000000010_wp820 !v0linearintercept(4) = -0.16579500000000000_wp821 !v0linearintercept(5) = 6.31852534999999980_wp822 !v0linearintercept(6) = 0.65734435000000002_wp823 !v0linearintercept(7) = 4.04016423000000020_wp824 !v0linearintercept(8) = 2.83395464000000000_wp825 !v0linearintercept(9) = 6.21297795999999990_wp826 !v0linearintercept(10) = 0.22088055000000001_wp827 !v0linearintercept(11) = 0.00000000000000000_wp828 !v0linearintercept(12) = -0.22572999999999999_wp829 !v0linearintercept(13) = -0.23864099999999999_wp830 !v0linearintercept(14) = -3.00585099999999980_wp831 !v0linearintercept(15) = 3.14159265000000020_wp832 833 v0linearintercept( 1) = 0.2208805500_wp - (rpi* 68.0_wp/180.0_wp) ! M2 1834 v0linearintercept( 2) = 3.1186126191_wp ! N2 2835 v0linearintercept( 3) = 0.9305155436_wp ! 2N2 3836 v0linearintercept( 4) = 0.0194858941_wp ! S2 4837 v0linearintercept( 5) = -2.5213114949_wp ! K2 5838 v0linearintercept( 6) = 6.5970532125_wp ! K1 6839 v0linearintercept( 7) = 1.1115279900_wp ! O1 7840 v0linearintercept( 8) = 0.1104402700_wp ! Q1 8841 ! v0linearintercept( 9) = 4.2269096542_wp ! P1 9842 !v0linearintercept( 9) = -2.0351042402_wp ! P1 9 compress3843 !v0linearintercept( 9) = -2.0351042402_wp - 2.6179938779914944 ! P1 9 compress4844 845 v0linearintercept( 9) = rpi* 345.0_wp/180.0_wp - (rpi* 140.0_wp/180.0_wp) ! P1 9 compress4846 847 v0linearintercept(10) = 3.1415926500_wp ! M4 10848 v0linearintercept(11) = 0.0000000000_wp ! Mf 11849 v0linearintercept(12) = 0.0000000000_wp ! Mm 12850 v0linearintercept(13) = 0.0000000000_wp ! Msqm 13851 v0linearintercept(14) = 0.0000000000_wp ! Mtm 14852 v0linearintercept(15) = -0.0230244122_wp ! S1 15853 v0linearintercept(16) = 4.2565208698_wp ! MU2 16854 v0linearintercept(17) = 6.5001767059_wp ! NU2 17855 v0linearintercept(18) = 0.0000000000_wp - (rpi* 113.0_wp/180.0_wp) ! L2 18856 v0linearintercept(19) = 0.0092971808_wp ! T2 19 + rpi/2.857 858 !v0linearintercept(1) = v0linearintercept(1) - 0.034975_wp ! M2859 !v0linearintercept(2) = v0linearintercept(2) - 0.030244_wp ! N2860 !v0linearintercept(3) = v0linearintercept(3) - 0.036046_wp ! 2N2861 !v0linearintercept(4) = v0linearintercept(4) + 0.002092_wp ! S2862 !v0linearintercept(5) = v0linearintercept(5) - 0.273826_wp ! K2863 !v0linearintercept(6) = v0linearintercept(6) - 0.144677_wp ! K1864 !v0linearintercept(7) = v0linearintercept(7) + 0.031938_wp ! O1865 !v0linearintercept(8) = v0linearintercept(8) - 0.812030_wp ! Q1866 !v0linearintercept(9) = v0linearintercept(9) + 2.109118_wp ! P1867 !v0linearintercept(10) = v0linearintercept(10) + 0.070021_wp ! M4868 !v0linearintercept(11) = v0linearintercept(11) - 0.000000_wp ! Mf869 !v0linearintercept(12) = v0linearintercept(12) - 0.000000_wp ! Mm870 !v0linearintercept(13) = v0linearintercept(13) - 0.000000_wp ! Msqm871 !v0linearintercept(14) = v0linearintercept(14) - 0.000000_wp ! Mtm872 !v0linearintercept(15) = v0linearintercept(15) - 0.035676_wp ! S1873 !v0linearintercept(16) = v0linearintercept(16) + 0.007598_wp ! MU2874 !v0linearintercept(17) = v0linearintercept(17) - 0.043060_wp ! NU2875 !v0linearintercept(18) = v0linearintercept(18) + 0.023561_wp ! L2876 !v0linearintercept(19) = v0linearintercept(19) + 0.025624_wp ! T2877 878 v0linearintercept(1) = v0linearintercept(1) - (rpi*2.003909_wp/180.0_wp) ! M2879 v0linearintercept(2) = v0linearintercept(2) - (rpi*1.732874_wp/180.0_wp) ! N2880 v0linearintercept(3) = v0linearintercept(3) - (rpi*2.065265_wp/180.0_wp) ! 2N2881 v0linearintercept(4) = v0linearintercept(4) + (rpi*0.119842_wp/180.0_wp) ! S2882 v0linearintercept(5) = v0linearintercept(5) - (rpi*15.689068_wp/180.0_wp) ! K2883 v0linearintercept(6) = v0linearintercept(6) - (rpi*8.289390_wp/180.0_wp) ! K1884 v0linearintercept(7) = v0linearintercept(7) + (rpi*1.829931_wp/180.0_wp) ! O1885 v0linearintercept(8) = v0linearintercept(8) - (rpi*46.525902_wp/180.0_wp) ! Q1886 v0linearintercept(9) = v0linearintercept(9) + (rpi*120.843575_wp/180.0_wp) ! P1887 v0linearintercept(10) = v0linearintercept(10) + (rpi*4.011896_wp/180.0_wp) ! M4888 v0linearintercept(11) = v0linearintercept(11) - (rpi*0.000000_wp/180.0_wp) ! Mf889 v0linearintercept(12) = v0linearintercept(12) - (rpi*0.000000_wp/180.0_wp) ! Mm890 v0linearintercept(13) = v0linearintercept(13) - (rpi*0.000000_wp/180.0_wp) ! Msqm891 v0linearintercept(14) = v0linearintercept(14) - (rpi*0.000000_wp/180.0_wp) ! Mtm892 v0linearintercept(15) = v0linearintercept(15) - (rpi*2.044069_wp/180.0_wp) ! S1893 v0linearintercept(16) = v0linearintercept(16) + (rpi*0.435315_wp/180.0_wp) ! MU2894 v0linearintercept(17) = v0linearintercept(17) - (rpi*2.467160_wp/180.0_wp) ! NU2895 v0linearintercept(18) = v0linearintercept(18) + (rpi*1.349939_wp/180.0_wp) ! L2896 v0linearintercept(19) = v0linearintercept(19) + (rpi*1.468170_wp/180.0_wp) ! T2897 898 899 ! wave data.900 901 !Wave( 1) = tide( 'M2' , 0.242297 , 2 , 2 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 )902 !Wave( 2) = tide( 'N2' , 0.046313 , 2 , 2 , -3 , 2 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 )903 !Wave( 3) = tide( '2N2' , 0.006184 , 2 , 2 , -4 , 2 , 2 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 )904 !Wave( 4) = tide( 'S2' , 0.113572 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )905 !Wave( 5) = tide( 'K2' , 0.030875 , 2 , 2 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 235 )906 !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !907 !Wave( 6) = tide( 'K1' , 0.142408 , 1 , 1 , 0 , 1 , 0 , 0 , -90 , 0 , 0 , -1 , 0 , 0 , 227 )908 !Wave( 7) = tide( 'O1' , 0.101266 , 1 , 1 , -2 , 1 , 0 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 )909 !Wave( 8) = tide( 'Q1' , 0.019387 , 1 , 1 , -3 , 1 , 1 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 )910 !Wave( 9) = tide( 'P1' , 0.047129 , 1 , 1 , 0 , -1 , 0 , 0 , +90 , 0 , 0 , 0 , 0 , 0 , 0 )911 !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !912 !Wave(10) = tide( 'M4' , 0.000000 , 4 , 4 , -4 , 4 , 0 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 )913 !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !914 !Wave(11) = tide( 'Mf' , 0.042017 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 )915 !Wave(12) = tide( 'Mm' , 0.022191 , 0 , 0 , 1 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 73 )916 !Wave(13) = tide( 'Msqm' , 0.000667 , 0 , 0 , 4 , -2 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 )917 !Wave(14) = tide( 'Mtm' , 0.008049 , 0 , 0 , 3 , 0 , -1 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 )918 !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !919 !Wave(15) = tide( 'S1' , 0.000000 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )920 !Wave(16) = tide( 'MU2' , 0.005841 , 2 , 2 , -4 , 4 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 )921 !Wave(17) = tide( 'NU2' , 0.009094 , 2 , 2 , -3 , 4 , -1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 )922 !Wave(18) = tide( 'L2' , 0.006694 , 2 , 2 , -1 , 2 , -1 , 0 , +180 , 2 , -2 , 0 , 0 , 0 , 215 )923 !Wave(19) = tide( 'T2' , 0.006614 , 2 , 2 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )924 925 !name list926 ! clname(1)='Q1'927 ! clname(2)='O1'928 ! clname(3)='P1'929 ! clname(4)='S1'930 ! clname(5)='K1'931 ! clname(6)='2N2'932 ! clname(7)='MU2'933 ! clname(8)='N2'934 ! clname(9)='NU2'935 ! clname(10)='M2'936 ! clname(11)='L2'937 ! clname(12)='T2'938 ! clname(13)='S2'939 ! clname(14)='K2'940 ! clname(15)='M4'941 942 ! ktide 8,7,9,15943 944 !ktide =945 !8946 !7947 !9948 !15949 !6950 !3951 !16952 !2953 !17954 !1955 !18956 !19957 !4958 !5959 !10960 961 962 963 964 965 966 967 968 969 970 971 972 !NEMO4973 974 ! clname(1)='Q1'975 ! clname(2)='O1'976 ! clname(3)='P1'977 ! clname(4)='S1'978 ! clname(5)='K1'979 ! clname(6)='2N2'980 ! clname(7)='MU2'981 ! clname(8)='N2'982 ! clname(9)='NU2'983 ! clname(10)='M2'984 ! clname(11)='L2'985 ! clname(12)='T2'986 ! clname(13)='S2'987 ! clname(14)='K2'988 ! clname(15)='M4'989 ! ktide = [10,9,11,12,8,23,21,15,22,14,18,19,16,17,28]990 991 992 v0linearintercept( 1) = 0.1104402700_wp ! Q1 8993 v0linearintercept( 2) = 1.1115279900_wp ! O1 7994 v0linearintercept( 3) = rpi* 345.0_wp/180.0_wp - (rpi* 140.0_wp/180.0_wp) ! P1 9 compress4995 v0linearintercept( 4) = -0.0230244122_wp ! S1 15996 v0linearintercept( 5) = 6.5970532125_wp ! K1 6997 v0linearintercept( 6) = 0.9305155436_wp ! 2N2 3998 v0linearintercept( 7) = 4.2565208698_wp ! MU2 16999 v0linearintercept( 8) = 3.1186126191_wp ! N2 21000 v0linearintercept( 9) = 6.5001767059_wp ! NU2 171001 v0linearintercept(10) = 0.2208805500_wp - (rpi* 68.0_wp/180.0_wp) ! M2 11002 v0linearintercept(11) = 0.0000000000_wp - (rpi* 113.0_wp/180.0_wp) ! L2 181003 v0linearintercept(12) = 0.0092971808_wp ! T2 19 + rpi/2.1004 v0linearintercept(13) = 0.0194858941_wp ! S2 41005 v0linearintercept(14) = -2.5213114949_wp ! K2 51006 v0linearintercept(15) = 3.1415926500_wp ! M4 101007 1008 1009 1010 v0linearintercept( 1) = v0linearintercept( 1) - (rpi*46.525902_wp/180.0_wp) ! Q11011 v0linearintercept( 2) = v0linearintercept( 2) + (rpi*1.829931_wp/180.0_wp) ! O11012 v0linearintercept( 3) = v0linearintercept( 3) + (rpi*120.843575_wp/180.0_wp) ! P11013 v0linearintercept( 4) = v0linearintercept( 4) - (rpi*2.044069_wp/180.0_wp) ! S11014 v0linearintercept( 5) = v0linearintercept( 5) - (rpi*8.289390_wp/180.0_wp) ! K11015 v0linearintercept( 6) = v0linearintercept( 6) - (rpi*2.065265_wp/180.0_wp) ! 2N21016 v0linearintercept( 7) = v0linearintercept( 7) + (rpi*0.435315_wp/180.0_wp) ! MU21017 v0linearintercept( 8) = v0linearintercept( 8) - (rpi*1.732874_wp/180.0_wp) ! N21018 v0linearintercept( 9) = v0linearintercept( 9) - (rpi*2.467160_wp/180.0_wp) ! NU21019 v0linearintercept(10) = v0linearintercept(10) - (rpi*2.003909_wp/180.0_wp) ! M21020 v0linearintercept(11) = v0linearintercept(11) + (rpi*1.349939_wp/180.0_wp) ! L21021 v0linearintercept(12) = v0linearintercept(12) + (rpi*1.468170_wp/180.0_wp) ! T21022 v0linearintercept(13) = v0linearintercept(13) + (rpi*0.119842_wp/180.0_wp) ! S21023 v0linearintercept(14) = v0linearintercept(14) - (rpi*15.689068_wp/180.0_wp) ! K21024 v0linearintercept(14) = v0linearintercept(15) + (rpi*4.011896_wp/180.0_wp) ! M4991 ! !offset(1) = 0.10789890_wp 992 ! !offset(2) = 1.10897897_wp 993 ! !offset(3) = 2.11005903_wp 994 ! !offset(4) = 0.00000000_wp 995 ! !offset(5) = 3.47632710_wp 996 ! !offset(6) = 0.16751976_wp 997 ! !offset(7) = -0.05503165_wp 998 ! !offset(8) = 0.94604842_wp 999 ! !offset(9) = 6.10534877_wp 1000 ! !offset(10) = 0.21579780_wp 1001 ! !offset(11) = 0.00000000_wp 1002 ! !offset(12) = 0.00000000_wp 1003 ! !offset(13) = 0.00000000_wp 1004 ! !offset(14) = 0.00000000_wp 1005 ! !offset(15) = 3.14159265_wp 1006 ! !offset(16) = 0.21833313_wp 1007 ! !offset(17) = 5.50043837_wp 1008 ! !offset(18) = 2.24841149_wp 1009 ! !offset(19) = 0.01800173_wp 1010 1011 ! !v0linearintercept(1) = 0.11044027_wp 1012 ! !v0linearintercept(2) = 1.11152799_wp 1013 ! !v0linearintercept(3) = 2.11261570_wp 1014 ! !v0linearintercept(4) = 0.00000000_wp 1015 ! !v0linearintercept(5) = 3.49727335_wp 1016 ! !v0linearintercept(6) = 0.17784035_wp 1017 ! !v0linearintercept(7) = 6.21578523_wp 1018 ! !v0linearintercept(8) = 0.93368764_wp 1019 ! !v0linearintercept(9) = 6.10534496_wp 1020 ! !v0linearintercept(10) = 0.22088055_wp 1021 ! !v0linearintercept(11) = 0.00000000_wp 1022 ! !v0linearintercept(12) = 0.00000000_wp 1023 ! !v0linearintercept(13) = 0.00000000_wp 1024 ! !v0linearintercept(14) = 0.00000000_wp 1025 ! !v0linearintercept(15) = 3.14159265_wp 1026 1027 ! !v0linearintercept(1) = v0linearintercept(1) - 0.000000_wp 1028 ! !v0linearintercept(2) = v0linearintercept(2) - 0.000000_wp 1029 ! !v0linearintercept(3) = v0linearintercept(3) - 0_wp 1030 ! !v0linearintercept(4) = v0linearintercept(4) - 0.165795_wp 1031 ! !v0linearintercept(5) = v0linearintercept(5) + 2.821252_wp 1032 ! !v0linearintercept(6) = v0linearintercept(6) + 0.479504_wp 1033 ! !v0linearintercept(7) = v0linearintercept(7) - 2.175621_wp 1034 ! !v0linearintercept(8) = v0linearintercept(8) + 1.900267_wp 1035 ! !v0linearintercept(9) = v0linearintercept(9) + 0.107633_wp 1036 ! !v0linearintercept(10) = v0linearintercept(10) - 0.000000_wp 1037 ! !v0linearintercept(11) = v0linearintercept(11) - 0.000000_wp 1038 ! !v0linearintercept(12) = v0linearintercept(12) - 0.225730_wp 1039 ! !v0linearintercept(13) = v0linearintercept(13) - 0.238641_wp 1040 ! !v0linearintercept(14) = v0linearintercept(14) - 3.005851_wp 1041 ! !v0linearintercept(15) = v0linearintercept(15) - 0.000000_wp 1042 1043 ! !v0linearintercept(1) = 0.11044026999999999_wp 1044 ! !v0linearintercept(2) = 1.11152798999999990_wp 1045 ! !v0linearintercept(3) = 2.11261570000000010_wp 1046 ! !v0linearintercept(4) = -0.16579500000000000_wp 1047 ! !v0linearintercept(5) = 6.31852534999999980_wp 1048 ! !v0linearintercept(6) = 0.65734435000000002_wp 1049 ! !v0linearintercept(7) = 4.04016423000000020_wp 1050 ! !v0linearintercept(8) = 2.83395464000000000_wp 1051 ! !v0linearintercept(9) = 6.21297795999999990_wp 1052 ! !v0linearintercept(10) = 0.22088055000000001_wp 1053 ! !v0linearintercept(11) = 0.00000000000000000_wp 1054 ! !v0linearintercept(12) = -0.22572999999999999_wp 1055 ! !v0linearintercept(13) = -0.23864099999999999_wp 1056 ! !v0linearintercept(14) = -3.00585099999999980_wp 1057 ! !v0linearintercept(15) = 3.14159265000000020_wp 1058 1059 ! v0linearintercept( 1) = 0.2208805500_wp - (rpi* 68.0_wp/180.0_wp) ! M2 1 1060 ! v0linearintercept( 2) = 3.1186126191_wp ! N2 2 1061 ! v0linearintercept( 3) = 0.9305155436_wp ! 2N2 3 1062 ! v0linearintercept( 4) = 0.0194858941_wp ! S2 4 1063 ! v0linearintercept( 5) = -2.5213114949_wp ! K2 5 1064 ! v0linearintercept( 6) = 6.5970532125_wp ! K1 6 1065 ! v0linearintercept( 7) = 1.1115279900_wp ! O1 7 1066 ! v0linearintercept( 8) = 0.1104402700_wp ! Q1 8 1067 ! ! v0linearintercept( 9) = 4.2269096542_wp ! P1 9 1068 ! !v0linearintercept( 9) = -2.0351042402_wp ! P1 9 compress3 1069 ! !v0linearintercept( 9) = -2.0351042402_wp - 2.6179938779914944 ! P1 9 compress4 1070 1071 ! v0linearintercept( 9) = rpi* 345.0_wp/180.0_wp - (rpi* 140.0_wp/180.0_wp) ! P1 9 compress4 1072 1073 ! v0linearintercept(10) = 3.1415926500_wp ! M4 10 1074 ! v0linearintercept(11) = 0.0000000000_wp ! Mf 11 1075 ! v0linearintercept(12) = 0.0000000000_wp ! Mm 12 1076 ! v0linearintercept(13) = 0.0000000000_wp ! Msqm 13 1077 ! v0linearintercept(14) = 0.0000000000_wp ! Mtm 14 1078 ! v0linearintercept(15) = -0.0230244122_wp ! S1 15 1079 ! v0linearintercept(16) = 4.2565208698_wp ! MU2 16 1080 ! v0linearintercept(17) = 6.5001767059_wp ! NU2 17 1081 ! v0linearintercept(18) = 0.0000000000_wp - (rpi* 113.0_wp/180.0_wp) ! L2 18 1082 ! v0linearintercept(19) = 0.0092971808_wp ! T2 19 + rpi/2. 1083 1084 ! !v0linearintercept(1) = v0linearintercept(1) - 0.034975_wp ! M2 1085 ! !v0linearintercept(2) = v0linearintercept(2) - 0.030244_wp ! N2 1086 ! !v0linearintercept(3) = v0linearintercept(3) - 0.036046_wp ! 2N2 1087 ! !v0linearintercept(4) = v0linearintercept(4) + 0.002092_wp ! S2 1088 ! !v0linearintercept(5) = v0linearintercept(5) - 0.273826_wp ! K2 1089 ! !v0linearintercept(6) = v0linearintercept(6) - 0.144677_wp ! K1 1090 ! !v0linearintercept(7) = v0linearintercept(7) + 0.031938_wp ! O1 1091 ! !v0linearintercept(8) = v0linearintercept(8) - 0.812030_wp ! Q1 1092 ! !v0linearintercept(9) = v0linearintercept(9) + 2.109118_wp ! P1 1093 ! !v0linearintercept(10) = v0linearintercept(10) + 0.070021_wp ! M4 1094 ! !v0linearintercept(11) = v0linearintercept(11) - 0.000000_wp ! Mf 1095 ! !v0linearintercept(12) = v0linearintercept(12) - 0.000000_wp ! Mm 1096 ! !v0linearintercept(13) = v0linearintercept(13) - 0.000000_wp ! Msqm 1097 ! !v0linearintercept(14) = v0linearintercept(14) - 0.000000_wp ! Mtm 1098 ! !v0linearintercept(15) = v0linearintercept(15) - 0.035676_wp ! S1 1099 ! !v0linearintercept(16) = v0linearintercept(16) + 0.007598_wp ! MU2 1100 ! !v0linearintercept(17) = v0linearintercept(17) - 0.043060_wp ! NU2 1101 ! !v0linearintercept(18) = v0linearintercept(18) + 0.023561_wp ! L2 1102 ! !v0linearintercept(19) = v0linearintercept(19) + 0.025624_wp ! T2 1103 1104 ! v0linearintercept(1) = v0linearintercept(1) - (rpi*2.003909_wp/180.0_wp) ! M2 1105 ! v0linearintercept(2) = v0linearintercept(2) - (rpi*1.732874_wp/180.0_wp) ! N2 1106 ! v0linearintercept(3) = v0linearintercept(3) - (rpi*2.065265_wp/180.0_wp) ! 2N2 1107 ! v0linearintercept(4) = v0linearintercept(4) + (rpi*0.119842_wp/180.0_wp) ! S2 1108 ! v0linearintercept(5) = v0linearintercept(5) - (rpi*15.689068_wp/180.0_wp) ! K2 1109 ! v0linearintercept(6) = v0linearintercept(6) - (rpi*8.289390_wp/180.0_wp) ! K1 1110 ! v0linearintercept(7) = v0linearintercept(7) + (rpi*1.829931_wp/180.0_wp) ! O1 1111 ! v0linearintercept(8) = v0linearintercept(8) - (rpi*46.525902_wp/180.0_wp) ! Q1 1112 ! v0linearintercept(9) = v0linearintercept(9) + (rpi*120.843575_wp/180.0_wp) ! P1 1113 ! v0linearintercept(10) = v0linearintercept(10) + (rpi*4.011896_wp/180.0_wp) ! M4 1114 ! v0linearintercept(11) = v0linearintercept(11) - (rpi*0.000000_wp/180.0_wp) ! Mf 1115 ! v0linearintercept(12) = v0linearintercept(12) - (rpi*0.000000_wp/180.0_wp) ! Mm 1116 ! v0linearintercept(13) = v0linearintercept(13) - (rpi*0.000000_wp/180.0_wp) ! Msqm 1117 ! v0linearintercept(14) = v0linearintercept(14) - (rpi*0.000000_wp/180.0_wp) ! Mtm 1118 ! v0linearintercept(15) = v0linearintercept(15) - (rpi*2.044069_wp/180.0_wp) ! S1 1119 ! v0linearintercept(16) = v0linearintercept(16) + (rpi*0.435315_wp/180.0_wp) ! MU2 1120 ! v0linearintercept(17) = v0linearintercept(17) - (rpi*2.467160_wp/180.0_wp) ! NU2 1121 ! v0linearintercept(18) = v0linearintercept(18) + (rpi*1.349939_wp/180.0_wp) ! L2 1122 ! v0linearintercept(19) = v0linearintercept(19) + (rpi*1.468170_wp/180.0_wp) ! T2 1123 1124 1125 ! ! wave data. 1126 1127 ! !Wave( 1) = tide( 'M2' , 0.242297 , 2 , 2 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 1128 ! !Wave( 2) = tide( 'N2' , 0.046313 , 2 , 2 , -3 , 2 , 1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 1129 ! !Wave( 3) = tide( '2N2' , 0.006184 , 2 , 2 , -4 , 2 , 2 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 1130 ! !Wave( 4) = tide( 'S2' , 0.113572 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 1131 ! !Wave( 5) = tide( 'K2' , 0.030875 , 2 , 2 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , -2 , 0 , 235 ) 1132 ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 1133 ! !Wave( 6) = tide( 'K1' , 0.142408 , 1 , 1 , 0 , 1 , 0 , 0 , -90 , 0 , 0 , -1 , 0 , 0 , 227 ) 1134 ! !Wave( 7) = tide( 'O1' , 0.101266 , 1 , 1 , -2 , 1 , 0 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 ) 1135 ! !Wave( 8) = tide( 'Q1' , 0.019387 , 1 , 1 , -3 , 1 , 1 , 0 , +90 , 2 , -1 , 0 , 0 , 0 , 75 ) 1136 ! !Wave( 9) = tide( 'P1' , 0.047129 , 1 , 1 , 0 , -1 , 0 , 0 , +90 , 0 , 0 , 0 , 0 , 0 , 0 ) 1137 ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 1138 ! !Wave(10) = tide( 'M4' , 0.000000 , 4 , 4 , -4 , 4 , 0 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) 1139 ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 1140 ! !Wave(11) = tide( 'Mf' , 0.042017 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 1141 ! !Wave(12) = tide( 'Mm' , 0.022191 , 0 , 0 , 1 , 0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 73 ) 1142 ! !Wave(13) = tide( 'Msqm' , 0.000667 , 0 , 0 , 4 , -2 , 0 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 1143 ! !Wave(14) = tide( 'Mtm' , 0.008049 , 0 , 0 , 3 , 0 , -1 , 0 , 0 , -2 , 0 , 0 , 0 , 0 , 74 ) 1144 ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 1145 ! !Wave(15) = tide( 'S1' , 0.000000 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 1146 ! !Wave(16) = tide( 'MU2' , 0.005841 , 2 , 2 , -4 , 4 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 1147 ! !Wave(17) = tide( 'NU2' , 0.009094 , 2 , 2 , -3 , 4 , -1 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 78 ) 1148 ! !Wave(18) = tide( 'L2' , 0.006694 , 2 , 2 , -1 , 2 , -1 , 0 , +180 , 2 , -2 , 0 , 0 , 0 , 215 ) 1149 ! !Wave(19) = tide( 'T2' , 0.006614 , 2 , 2 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 1150 1151 ! !name list 1152 ! ! clname(1)='Q1' 1153 ! ! clname(2)='O1' 1154 ! ! clname(3)='P1' 1155 ! ! clname(4)='S1' 1156 ! ! clname(5)='K1' 1157 ! ! clname(6)='2N2' 1158 ! ! clname(7)='MU2' 1159 ! ! clname(8)='N2' 1160 ! ! clname(9)='NU2' 1161 ! ! clname(10)='M2' 1162 ! ! clname(11)='L2' 1163 ! ! clname(12)='T2' 1164 ! ! clname(13)='S2' 1165 ! ! clname(14)='K2' 1166 ! ! clname(15)='M4' 1167 1168 ! ! ktide 8,7,9,15 1169 1170 ! !ktide = 1171 ! !8 1172 ! !7 1173 ! !9 1174 ! !15 1175 ! !6 1176 ! !3 1177 ! !16 1178 ! !2 1179 ! !17 1180 ! !1 1181 ! !18 1182 ! !19 1183 ! !4 1184 ! !5 1185 ! !10 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 ! !NEMO4 1199 1200 !! clname(1)='Q1' 1201 !! clname(2)='O1' 1202 !! clname(3)='P1' 1203 !! clname(4)='S1' 1204 !! clname(5)='K1' 1205 !! clname(6)='2N2' 1206 !! clname(7)='MU2' 1207 !! clname(8)='N2' 1208 !! clname(9)='NU2' 1209 !! clname(10)='M2' 1210 !! clname(11)='L2' 1211 !! clname(12)='T2' 1212 !! clname(13)='S2' 1213 !! clname(14)='K2' 1214 !! clname(15)='M4' 1215 !! ktide = [10,9,11,12,8,23,21,15,22,14,18,19,16,17,28] 1216 1217 1218 ! v0linearintercept( 1) = 0.1104402700_wp ! Q1 8 1219 ! v0linearintercept( 2) = 1.1115279900_wp ! O1 7 1220 ! v0linearintercept( 3) = rpi* 345.0_wp/180.0_wp - (rpi* 140.0_wp/180.0_wp) ! P1 9 compress4 1221 ! v0linearintercept( 4) = -0.0230244122_wp ! S1 15 1222 ! v0linearintercept( 5) = 6.5970532125_wp ! K1 6 1223 ! v0linearintercept( 6) = 0.9305155436_wp ! 2N2 3 1224 ! v0linearintercept( 7) = 4.2565208698_wp ! MU2 16 1225 ! v0linearintercept( 8) = 3.1186126191_wp ! N2 2 1226 ! v0linearintercept( 9) = 6.5001767059_wp ! NU2 17 1227 ! v0linearintercept(10) = 0.2208805500_wp - (rpi* 68.0_wp/180.0_wp) ! M2 1 1228 ! v0linearintercept(11) = 0.0000000000_wp - (rpi* 113.0_wp/180.0_wp) ! L2 18 1229 ! v0linearintercept(12) = 0.0092971808_wp ! T2 19 + rpi/2. 1230 ! v0linearintercept(13) = 0.0194858941_wp ! S2 4 1231 ! v0linearintercept(14) = -2.5213114949_wp ! K2 5 1232 ! v0linearintercept(15) = 3.1415926500_wp ! M4 10 1233 1234 1235 1236 ! v0linearintercept( 1) = v0linearintercept( 1) - (rpi*46.525902_wp/180.0_wp) ! Q1 1237 ! v0linearintercept( 2) = v0linearintercept( 2) + (rpi*1.829931_wp/180.0_wp) ! O1 1238 ! v0linearintercept( 3) = v0linearintercept( 3) + (rpi*120.843575_wp/180.0_wp) ! P1 1239 ! v0linearintercept( 4) = v0linearintercept( 4) - (rpi*2.044069_wp/180.0_wp) ! S1 1240 ! v0linearintercept( 5) = v0linearintercept( 5) - (rpi*8.289390_wp/180.0_wp) ! K1 1241 ! v0linearintercept( 6) = v0linearintercept( 6) - (rpi*2.065265_wp/180.0_wp) ! 2N2 1242 ! v0linearintercept( 7) = v0linearintercept( 7) + (rpi*0.435315_wp/180.0_wp) ! MU2 1243 ! v0linearintercept( 8) = v0linearintercept( 8) - (rpi*1.732874_wp/180.0_wp) ! N2 1244 ! v0linearintercept( 9) = v0linearintercept( 9) - (rpi*2.467160_wp/180.0_wp) ! NU2 1245 ! v0linearintercept(10) = v0linearintercept(10) - (rpi*2.003909_wp/180.0_wp) ! M2 1246 ! v0linearintercept(11) = v0linearintercept(11) + (rpi*1.349939_wp/180.0_wp) ! L2 1247 ! v0linearintercept(12) = v0linearintercept(12) + (rpi*1.468170_wp/180.0_wp) ! T2 1248 ! v0linearintercept(13) = v0linearintercept(13) + (rpi*0.119842_wp/180.0_wp) ! S2 1249 ! v0linearintercept(14) = v0linearintercept(14) - (rpi*15.689068_wp/180.0_wp) ! K2 1250 ! v0linearintercept(14) = v0linearintercept(15) + (rpi*4.011896_wp/180.0_wp) ! M4 1025 1251 1026 1252 … … 1050 1276 IF ( ln_tide_compress ) THEN 1051 1277 1052 pvt(jh) = mod( ( (v0linearslope(jh)*days_since_origin) + v0linearintercept( ktide(jh) ) ), 2*rpi)-(2*rpi) 1278 v0linearintercept(jh) = sh_T_o * Wave( ktide(jh) )%nT & 1279 & + sh_s_o * Wave( ktide(jh) )%ns & 1280 & + sh_h_o * Wave( ktide(jh) )%nh & 1281 & + sh_p_o * Wave( ktide(jh) )%np & 1282 & + sh_p1_o* Wave( ktide(jh) )%np1 & 1283 & + Wave( ktide(jh) )%shift * rad 1284 1285 1286 1287 !JT pvt(jh) = mod( ( (v0linearslope(jh)*days_since_origin) + v0linearintercept( ktide(jh) ) ), 2*rpi)-(2*rpi) 1288 pvt(jh) = mod( ( (v0linearslope(jh)*days_since_origin) + v0linearintercept( jh ) ), 2*rpi)-(2*rpi) 1053 1289 ELSE 1054 1290 pvt(jh) = sh_T * Wave( ktide(jh) )%nT & … … 1059 1295 & + Wave( ktide(jh) )%shift * rad 1060 1296 ENDIF 1297 1298 1299 1061 1300 ! 1062 1301 ! Phase correction u due to nodal motion. Units are radian: … … 1068 1307 & + sh_R * Wave( ktide(jh) )%R 1069 1308 1309 1310 1311 1312 1313 !JT 1314 pvt(jh) = mod( pvt(jh), 2*rpi) 1315 put(jh) = mod( put(jh), 2*rpi) 1316 !JT 1317 1318 1070 1319 ! Nodal correction factor: 1071 1320 pcor(jh) = nodal_factort( Wave( ktide(jh) )%nformula ) … … 1077 1326 IF(ln_astro_verbose .AND. lwp) THEN 1078 1327 DO jh = 1, kc 1079 WRITE(numout,*) 'astro tide_vuf 3 :',jh,pvt(jh), put(jh), pcor(jh)1328 WRITE(numout,*) 'astro tide_vuf 3,',jh,Wave(ktide(jh))%cname_tide, pomega(jh),2*rpi/(3600.0_wp*pomega(jh)),pvt(jh), put(jh), pcor(jh), mod(pvt(jh),2*rpi), mod(put(jh),2*rpi), 2*rpi 1080 1329 END DO 1081 1330 ENDIF -
NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/SBC/tideini.F90
r14266 r15500 96 96 ! 97 97 CALL tide_init_Wave 98 ! JT Read namelist for 360 day tides, and calc astro angles for origin if using tide compress option 99 CALL tide_init_calendar_options 100 ! JT 98 101 ! 99 102 nb_harmo=0
Note: See TracChangeset
for help on using the changeset viewer.