src/gray_equil.f90: fix compilation on intel compilers

This commit is contained in:
Michele Guerini Rocco 2024-10-31 21:52:06 +01:00
parent 9d09c99314
commit e9e3a4d697
Signed by: rnhmjoj
GPG Key ID: BFBAF4C975F76450

View File

@ -14,16 +14,16 @@ module gray_equil
type, abstract :: abstract_equil
! Generic equilibrium interface
real(wp_) :: psi_a = 0 ! Poloidal flux at the edge minus flux on axis, ψ_a
real(wp_) :: phi_a = 0 ! Toroidal flux at the edge (r=a), Φ_a
real(wp_) :: b_axis = 0 ! Value of B_φ at the magnetic axis (used in J_cd def)
real(wp_) :: b_centre = 0 ! Value of B_φ at R_centre (used in Jcd_astra def)
real(wp_) :: r_centre = 1 ! Alternative reference radius for B_φ
real(wp_) :: sgn_bphi = 0 ! Sign of B_φ (>0 means counter-clockwise)
real(wp_) :: axis(2) = [0, 0] ! Magnetic axis position (R, z)
real(wp_) :: r_range(2) = [-comp_huge, comp_huge] ! R range of the equilibrium domain
real(wp_) :: z_range(2) = [-comp_huge, comp_huge] ! z range of the equilibrium domain
real(wp_) :: z_boundary(2) = [0, 0] ! z range of the plasma boundary
real(wp_) :: psi_a ! Poloidal flux at the edge minus flux on axis, ψ_a
real(wp_) :: phi_a ! Toroidal flux at the edge (r=a), Φ_a
real(wp_) :: b_axis ! Value of B_φ at the magnetic axis (used in J_cd def)
real(wp_) :: b_centre ! Value of B_φ at R_centre (used in Jcd_astra def)
real(wp_) :: r_centre ! Alternative reference radius for B_φ
real(wp_) :: sgn_bphi ! Sign of B_φ (>0 means counter-clockwise)
real(wp_) :: axis(2) ! Magnetic axis position (R, z)
real(wp_) :: r_range(2) ! R range of the equilibrium domain
real(wp_) :: z_range(2) ! z range of the equilibrium domain
real(wp_) :: z_boundary(2) ! z range of the plasma boundary
! Flux average splines (see `flux_average`)
type(spline_simple) :: spline_area, spline_volume
@ -136,6 +136,11 @@ module gray_equil
procedure :: flux_contour => vacuum_flux_contour
end type
! Interface for custom type constructor
interface vacuum
procedure :: vacuum_init
end interface
type, extends(abstract_equil) :: numeric_equil
! Numerical equilibrium
@ -1218,6 +1223,23 @@ contains
! Vacuum
!
pure function vacuum_init() result(self)
! function arguments
type(vacuum) :: self
self%psi_a = 0
self%phi_a = 0
self%b_axis = 0
self%b_centre = 0
self%r_centre = 1
self%sgn_bphi = 0
self%axis = [0, 0]
self%r_range = [-comp_huge, comp_huge]
self%z_range = [-comp_huge, comp_huge]
self%z_boundary = [0, 0]
end function vacuum_init
pure subroutine vacuum_pol_flux(self, R, z, psi_n, dpsidr, dpsidz, &
ddpsidrr, ddpsidzz, ddpsidrz)
! function arguments