src/gray_equil.f90: fix compilation on intel compilers
This commit is contained in:
parent
9d09c99314
commit
e9e3a4d697
@ -14,16 +14,16 @@ module gray_equil
|
|||||||
|
|
||||||
type, abstract :: abstract_equil
|
type, abstract :: abstract_equil
|
||||||
! Generic equilibrium interface
|
! Generic equilibrium interface
|
||||||
real(wp_) :: psi_a = 0 ! Poloidal flux at the edge minus flux on axis, ψ_a
|
real(wp_) :: psi_a ! 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_) :: phi_a ! 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_axis ! 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_) :: b_centre ! Value of B_φ at R_centre (used in Jcd_astra def)
|
||||||
real(wp_) :: r_centre = 1 ! Alternative reference radius for B_φ
|
real(wp_) :: r_centre ! Alternative reference radius for B_φ
|
||||||
real(wp_) :: sgn_bphi = 0 ! Sign of B_φ (>0 means counter-clockwise)
|
real(wp_) :: sgn_bphi ! Sign of B_φ (>0 means counter-clockwise)
|
||||||
real(wp_) :: axis(2) = [0, 0] ! Magnetic axis position (R₀, z₀)
|
real(wp_) :: axis(2) ! Magnetic axis position (R₀, z₀)
|
||||||
real(wp_) :: r_range(2) = [-comp_huge, comp_huge] ! R range of the equilibrium domain
|
real(wp_) :: r_range(2) ! R range of the equilibrium domain
|
||||||
real(wp_) :: z_range(2) = [-comp_huge, comp_huge] ! z range of the equilibrium domain
|
real(wp_) :: z_range(2) ! z range of the equilibrium domain
|
||||||
real(wp_) :: z_boundary(2) = [0, 0] ! z range of the plasma boundary
|
real(wp_) :: z_boundary(2) ! z range of the plasma boundary
|
||||||
|
|
||||||
! Flux average splines (see `flux_average`)
|
! Flux average splines (see `flux_average`)
|
||||||
type(spline_simple) :: spline_area, spline_volume
|
type(spline_simple) :: spline_area, spline_volume
|
||||||
@ -136,6 +136,11 @@ module gray_equil
|
|||||||
procedure :: flux_contour => vacuum_flux_contour
|
procedure :: flux_contour => vacuum_flux_contour
|
||||||
end type
|
end type
|
||||||
|
|
||||||
|
! Interface for custom type constructor
|
||||||
|
interface vacuum
|
||||||
|
procedure :: vacuum_init
|
||||||
|
end interface
|
||||||
|
|
||||||
|
|
||||||
type, extends(abstract_equil) :: numeric_equil
|
type, extends(abstract_equil) :: numeric_equil
|
||||||
! Numerical equilibrium
|
! Numerical equilibrium
|
||||||
@ -1218,6 +1223,23 @@ contains
|
|||||||
! Vacuum
|
! 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, &
|
pure subroutine vacuum_pol_flux(self, R, z, psi_n, dpsidr, dpsidz, &
|
||||||
ddpsidrr, ddpsidzz, ddpsidrz)
|
ddpsidrr, ddpsidzz, ddpsidrz)
|
||||||
! function arguments
|
! function arguments
|
||||||
|
Loading…
Reference in New Issue
Block a user