Find the logical angles for given PEST angles on all specified surfaces.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n_s | |||
| real, | intent(in) | :: | s(n_s) | |||
| integer, | intent(in) | :: | n_tz | |||
| real, | intent(in) | :: | tz_pest(2,n_tz) | |||
| real, | intent(out) | :: | tz_out(2,n_tz,n_s) |
SUBROUTINE find_pest_angles_2D(n_s, s, n_tz, tz_pest, tz_out) ! MODULES USE MODgvec_MHD3D_vars, ONLY: LA_base USE MODgvec_Transform_SFL, ONLY: find_pest_angles ! INPUT/OUTPUT VARIABLES ------------------------------------------------------------------------------------------------------! INTEGER, INTENT(IN) :: n_s, n_tz REAL, INTENT(IN) :: s(n_s), tz_pest(2, n_tz) REAL, INTENT(OUT) :: tz_out(2, n_tz, n_s) ! LOCAL VARIABLES -------------------------------------------------------------------------------------------------------------! INTEGER :: i_s ! index variable REAL, ALLOCATABLE :: LA(:, :) ! DoFs of Fourier series for each requested flux surface, shape (LA_base%f%modes, n_s) ! CODE ------------------------------------------------------------------------------------------------------------------------! ALLOCATE(LA(LA_base%f%modes, n_s)) !$OMP PARALLEL DO SCHEDULE(STATIC) DEFAULT(SHARED) & !$OMP PRIVATE(i_s) DO i_s=1,n_s ! evaluate spline to get the fourier dofs LA(:, i_s) = LA_base%s%evalDOF2D_s(s(i_s), LA_base%f%modes, 0, functional%minimizer%vars%dofs(0)%LA) END DO !$OMP END PARALLEL DO CALL find_pest_angles(n_s, LA_base%f, LA, n_tz, tz_pest, tz_out) DEALLOCATE(LA) END SUBROUTINE find_pest_angles_2D