bishop_gradB Subroutine

private pure subroutine bishop_gradB(bmag, bpol, invRpol, th_bish, ltheta, rmajor, dp, bi, gradB)

FIXME : Add documentation

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(-ntgrid:) :: bmag
real, intent(in), dimension(-ntgrid:) :: bpol
real, intent(in), dimension(-ntgrid:) :: invRpol
real, intent(in), dimension(-ntgrid:) :: th_bish
real, intent(in), dimension(-ntgrid:) :: ltheta
real, intent(in), dimension(-ntgrid:) :: rmajor
real, intent(in) :: dp
real, intent(in) :: bi
real, intent(out), dimension(-ntgrid:,:) :: gradB

Contents

Source Code


Source Code

  pure subroutine bishop_gradB(bmag, Bpol, invRpol, th_bish, ltheta, rmajor, dp, bi, gradB)
    implicit none
    real, dimension(-ntgrid:), intent (in) :: bmag, bpol, invRpol
    real, dimension(-ntgrid:), intent (in) :: th_bish, ltheta, rmajor
    real, intent(in) :: dp, bi
    real, dimension(-ntgrid:,:), intent(out) :: gradB
    real :: bp
    integer :: i
    do i = -nth, nth
       bp = -bpol(i)
       gradB(i, 1) = (bp / bmag(i)) * (bp * invRpol(i) + dp * rmajor(i) &
            - bi**2 * sin(th_bish(i)) / (rmajor(i)**3 * bp)) !dBdrho
    end do
    call gradl(ltheta, bmag, gradB(:, 2), 0., nth) !dBdl
    gradB(:, 3) = 0.0
  end subroutine bishop_gradB