subroutine identify_transition(n_stark, stark_pi, stark_sigma, &
stark_intens, stark_wavel, line_lambda0)
! Determines the type of transition from user defined inputs
integer, intent(out) :: n_stark
integer, dimension(:), allocatable, intent(out) :: stark_pi, stark_sigma
real(FLoat64), dimension(:), allocatable, intent(out) :: stark_intens, stark_wavel
real(Float64), dimension(3), intent(out) :: line_lambda0
if (inputs%lambdamin > 620.0d0 .and. inputs%lambdamax < 680.0d0 ) then
! Assigns stark variables to balmer alpha transition
n_stark = 15
initial_state = 3
final_state = 2
line_lambda0 = [ 656.28d0, 656.104d0, 656.045d0 ]
!"Tritium Diagnostics by Balmer-alpha emission" CH Skinner 1993
allocate(stark_intens(n_stark))
stark_intens = &
[ 1.000d0, 18.00d0, 16.00d0, 1681.d0, 2304.d0, &
729.0d0, 1936.d0, 5490.d0, 1936.d0, 729.0d0, &
2304.d0, 1681.d0, 16.00d0, 18.00d0, 1.000d0 ]
allocate(stark_wavel(n_stark))
stark_wavel = &
[-2.20200d-07,-1.65200d-07,-1.37700d-07,-1.10200d-07, &
-8.26400d-08,-5.51000d-08,-2.75600d-08, 0.00000d0, &
2.75700d-08, 5.51500d-08, 8.27400d-08, 1.10300d-07, &
1.38000d-07, 1.65600d-07, 2.20900d-07 ]
allocate(stark_pi(n_stark))
stark_pi = &
[1, 0 , 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1]
allocate(stark_sigma(n_stark))
stark_sigma = 1 - stark_pi
if(inputs%verbose.ge.1) then
write(*, '(a)') "---- Atomic Transition ----"
write(*, '(T2, a)') "Balmer-alpha: 3 -> 2"
write(*, '(T2, "H/D/T wavelengths: [", f8.3, ",", f8.3, ",", f8.3, "] nm")') line_lambda0
write(*,*) ''
endif
else if (inputs%lambdamin > 103.0d0 .and. inputs%lambdamax < 136.0d0) then
! Assigns stark varibales to Lyman alpha transition
n_stark = 3
initial_state = 2
final_state = 1
line_lambda0 = [ 121.57d0, 121.53d0, 121.52d0 ]
! "Ultra-sensitive Detection of Hydrogen Isotopes by Lyman-alpha RIS"
! Yasuhiro Miyake et al 2012
allocate(stark_intens(n_stark))
stark_intens = [ 1.000d0, 2.000d0, 1.000d0 ]
allocate(stark_wavel(n_stark))
stark_wavel = [ -8.25800d-8, 0.00000d0, 8.25800d-8 ]
allocate(stark_pi(n_stark))
stark_pi = [1, 0, 1]
allocate(stark_sigma(n_stark))
stark_sigma = 1 - stark_pi
if(inputs%verbose.ge.1) then
write(*, '(a)') "---- Atomic Transition ----"
write(*, '(T2, a)') "Lyman-alpha: 2 -> 1"
write(*, '(T2, "H/D/T wavelengths: [", f8.3, ",", f8.3, ",", f8.3, "] nm")') line_lambda0
write(*,*) ''
endif
endif
end subroutine identify_transition