3 SUBROUTINE rt_hand_side_dtheta(neq, theta, yin, fout)
10 INTEGER,
INTENT(IN):: neq
11 REAL(KIND=rprec),
INTENT(IN):: theta
12 REAL(KIND=rprec),
DIMENSION(neq),
INTENT(IN) :: yin
13 REAL(KIND=rprec),
DIMENSION(neq),
INTENT(OUT):: fout
15 REAL(KIND=rprec) :: s_eval, phi_eval, theta_eval,
20 s_eval = yin(2*i-1); theta_eval = theta
22 CALL reset_coords(s_eval, theta_eval, phi_eval)
23 s_nb(i) = s_eval; phi_nb(i) = phi_eval
24 theta_nb(i) = theta_eval
27 CALL dbs3vd(0, 0, 0, isize, s_nb, theta_nb, phi_nb, ks, ku,
28 & kv, s_knots, u_knots, v_knots, is, itht, iphi, br_coef,
29 & br_s_nb, is_uniformx, is_uniformy, is_uniformz )
31 CALL dbs3vd(0, 0, 0, isize, s_nb, theta_nb, phi_nb, ks, ku,
32 & kv, s_knots, u_knots, v_knots, is, itht, iphi, bphi_coef,
33 & bphi_s_nb, is_uniformx, is_uniformy, is_uniformz )
35 CALL dbs3vd(0, 0, 0, isize, s_nb, theta_nb, phi_nb, ks, ku,
36 & kv, s_knots, u_knots, v_knots, is, itht, iphi, bz_coef,
37 & bz_s_nb, is_uniformx, is_uniformy, is_uniformz )
39 CALL dbs3vd(0, 0, 0, isize, s_nb, theta_nb, phi_nb, ks, ku,
40 & kv, s_knots, u_knots, v_knots, is, itht, iphi, r_coef,
41 & r_s_nb, is_uniformx, is_uniformy, is_uniformz )
44 s_eval = s_nb(i); theta_eval = theta_nb(i)
46 drds_s_nb(i) = dbs3dr(1, 0, 0, s_eval, theta_eval, phi_eval,
47 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, r_coef)
48 drdtht_s_nb(i) = dbs3dr(0, 1, 0, s_eval, theta_eval, phi_eval,
49 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, r_coef)
50 drdphi_s_nb(i) = dbs3dr(0, 0, 1, s_eval, theta_eval, phi_eval,
51 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, r_coef)
52 dzds_s_nb(i) = dbs3dr(1, 0, 0, s_eval, theta_eval, phi_eval,
53 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, z_coef)
54 dzdtht_s_nb(i) = dbs3dr(0, 1, 0, s_eval, theta_eval, phi_eval,
55 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, z_coef)
56 dzdphi_s_nb(i) = dbs3dr(0, 0, 1, s_eval, theta_eval, phi_eval,
57 & ks, ku, kv, s_knots, u_knots, v_knots, is, itht, iphi, z_coef)
61 jac = drds_s_nb(i)*dzdtht_s_nb(i) - drdtht_s_nb(i)*dzds_s_nb(i)
62 bs = r_s_nb(i)*(dzdtht_s_nb(i)*br_s_nb(i) -
63 & drdtht_s_nb(i)*bz_s_nb(i)) + bphi_s_nb(i)*(
64 & drdtht_s_nb(i)*dzdphi_s_nb(i) - drdphi_s_nb(i)*dzdtht_s_nb(i))
65 bu = r_s_nb(i)*(drds_s_nb(i)*bz_s_nb(i) -
66 & dzds_s_nb(i)*br_s_nb(i)) + bphi_s_nb(i)*(
67 & drdphi_s_nb(i)*dzds_s_nb(i) - drds_s_nb(i)*dzdphi_s_nb(i))
69 IF (bu == zero) stop
'BU becomes zero for some orbit!'
71 fout(2*i) = (jac*bv)/bu
74 END SUBROUTINE rt_hand_side_dtheta