Equilibrium argument V_c (radians) for every catalog
constituent at day number dnum. s,h,p,N are taken in radians
(deg-mod-360 -> rad); the result is left un-modded (cos/sin are
periodic). The ±pi/2 diurnal signs are load-bearing.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | dnum | |||
| real(kind=wp), | intent(out) | :: | v_arg(TIDES_CATALOG_SIZE) |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | private | :: | h | ||||
| real(kind=wp), | private | :: | h_deg | ||||
| real(kind=wp), | private | :: | half_pi | ||||
| real(kind=wp), | private | :: | n_deg | ||||
| real(kind=wp), | private | :: | p | ||||
| real(kind=wp), | private | :: | p_deg | ||||
| real(kind=wp), | private | :: | s | ||||
| real(kind=wp), | private | :: | s_deg |
pure subroutine equilibrium_arguments(dnum, v_arg) !! Equilibrium argument `V_c` (radians) for every catalog !! constituent at day number `dnum`. s,h,p,N are taken in radians !! (deg-mod-360 -> rad); the result is left un-modded (cos/sin are !! periodic). The ±pi/2 diurnal signs are load-bearing. real(wp), intent(in) :: dnum real(wp), intent(out) :: v_arg(TIDES_CATALOG_SIZE) real(wp) :: s_deg, h_deg, p_deg, n_deg real(wp) :: s, h, p real(wp) :: half_pi call mean_longitudes(dnum, s_deg, h_deg, p_deg, n_deg) s = s_deg*TIDE_DEG2RAD h = h_deg*TIDE_DEG2RAD p = p_deg*TIDE_DEG2RAD half_pi = 0.5_wp*TIDE_PI v_arg(1) = 2.0_wp*(h - s) ! M2 v_arg(2) = 0.0_wp ! S2 v_arg(3) = -3.0_wp*s + 2.0_wp*h + p ! N2 v_arg(4) = 2.0_wp*h ! K2 v_arg(5) = h + half_pi ! K1 (+pi/2) v_arg(6) = -2.0_wp*s + h - half_pi ! O1 (-pi/2) v_arg(7) = -h - half_pi ! P1 (-pi/2) v_arg(8) = -3.0_wp*s + h + p - half_pi ! Q1 (-pi/2) v_arg(9) = 2.0_wp*s ! MF v_arg(10) = s - p ! MM end subroutine equilibrium_arguments