In the case of analytic equilibrium without a limiter contour, the simple limiter was built incorrectly due to an unnecessary conversion from cm (the equilibrium data are already in metre).
63 lines
3.6 KiB
Fortran
63 lines
3.6 KiB
Fortran
module const_and_precisions
|
|
implicit none
|
|
public
|
|
|
|
!------------------------------------------------------------------------
|
|
! Common precisions
|
|
!------------------------------------------------------------------------
|
|
integer, parameter :: i4 = selected_int_kind (9) ! Integer*4
|
|
integer, parameter :: i8 = selected_int_kind (18) ! Integer*8
|
|
integer, parameter :: r4 = selected_real_kind (6, 37) ! Real*4
|
|
integer, parameter :: r8 = selected_real_kind (15, 300) ! Real*8
|
|
integer, parameter :: wp_ = r8 ! Work precision
|
|
|
|
!------------------------------------------------------------------------
|
|
! Arithmetic constants
|
|
!------------------------------------------------------------------------
|
|
integer, parameter :: izero = 0 ! Integer 0
|
|
real(wp_), parameter :: zero = 0.0_wp_ ! Real 0
|
|
real(wp_), parameter :: half = 0.5_wp_ ! Real 1/2
|
|
real(wp_), parameter :: one = 1.0_wp_ ! Real 1
|
|
real(wp_), parameter :: two = 2.0_wp_ ! Real 2
|
|
real(wp_), parameter :: pi = 3.141592653589793_wp_ ! pi
|
|
real(wp_), parameter :: pihalf = 1.57079632679489661923_wp_ ! pi/2
|
|
real(wp_), parameter :: sqrt_pi = 1.772453850905516_wp_ ! sqrt(pi)
|
|
real(wp_), parameter :: degree = pi/180.0_wp_ ! 1° = pi/180
|
|
real(wp_), parameter :: emn1 = 0.367879441171442_wp_ ! exp(-1)
|
|
complex(wp_), parameter :: im = (0.0_wp_,1.0_wp_) ! Imaginary unit
|
|
complex(wp_), parameter :: czero = (0.0_wp_,0.0_wp_) ! Complex zero
|
|
complex(wp_), parameter :: cunit = (1.0_wp_,0.0_wp_) ! Complex one
|
|
|
|
!------------------------------------------------------------------------
|
|
! Computer constants
|
|
!------------------------------------------------------------------------
|
|
real(wp_), parameter :: comp_eps = epsilon(one) ! Smallest number larger than 1
|
|
real(wp_), parameter :: comp_tiny = tiny(one) ! Smallest positive number
|
|
real(wp_), parameter :: comp_huge = huge(one) ! Largest positive number
|
|
|
|
!------------------------------------------------------------------------
|
|
! Physical constants (SI)
|
|
!------------------------------------------------------------------------
|
|
real (wp_), parameter :: e_ = 1.602176487e-19_wp_ ! Elementary charge, C
|
|
real (wp_), parameter :: me_ = 9.10938215e-31_wp_ ! Electron mass, kg
|
|
real (wp_), parameter :: c_ = 2.99792458e8_wp_ ! Speed of light, m/s
|
|
real (wp_), parameter :: mu0_ = 4.0e-7_wp_ * pi ! Magnetic permeability of vacuum, H/m
|
|
|
|
!------------------------------------------------------------------------
|
|
! Physical constants (CGS)
|
|
!------------------------------------------------------------------------
|
|
real (wp_), parameter :: ccgs_ = c_*1.e2_wp_ ! Speed of light in a vacuum, cm/s
|
|
real (wp_), parameter :: mecgs_ = me_*1.e3_wp_ ! Electron mass, g
|
|
real (wp_), parameter :: ecgs_ = e_*c_*10._wp_ ! Elementary charge, statcoul
|
|
|
|
!------------------------------------------------------------------------
|
|
! Useful definitions
|
|
!------------------------------------------------------------------------
|
|
real(wp_), parameter :: kev_ = 1.e3_wp_*e_ ! 1 keV, J
|
|
real(wp_), parameter :: mc2_ = me_*c_**2/kev_ ! Electron rest energy, keV
|
|
real(wp_), parameter :: mu0inv = 1._wp_/mu0_ ! Inverse magnetic permeability of vacuum, m/H
|
|
real(wp_), parameter :: wce1_ = e_/me_ ! ECR (angular) frequency / magnetic field, rad/s/T
|
|
real(wp_), parameter :: cm = 0.01_wp_ ! Converts cm to m
|
|
|
|
end module const_and_precisions
|