I took a stab at coding up the relevant components but I quickly got quite confused about what one would need to add. The key thing is adding the calculation to `src/mode/gyre_mode.fpp`. I've just tried adding this, which at least compiles:
Code: Select all
function splitting (this)
class(mode_t), intent(in) :: this
real(WP) :: splitting
integer :: k
real(WP) :: dbeta_dx(this%n_k)
real(WP) :: Omega_rot(this%n_k)
! Evaluate rotational splitting. Based on eqns 3.354-3.357 of
! [Aer2010]
if (this%l /= 0) then
do k = 1, this%n_k
dbeta_dx(k) = this%dbeta_dx(k)
associate ( &
ml => this%cx%ml, &
pt => this%gr%pt(k))
Omega_rot(k) = ml%coeff(I_OMEGA_ROT, pt)
end associate
end do
splitting = integrate(this%gr%pt%x, dbeta_dx*Omega_rot)
else
splitting = 0._WP
end if
! Finish
return
end function splitting
Anyway, I'll now start having a look at how to make this callable in the summary output.