subroutine get_EUV_spectrum(qunit,fl)
use mod_global_parameters
integer, intent(in) :: qunit
type(te_fluid), intent(in) :: fl
character(20) :: datatype
integer :: mass
character (30) :: ion
double precision :: logTe,lineCent,sigma_PSF,spaceRsl,wlRsl,wslit
double precision :: xslit,arcsec
datatype='spectrum_euv'
arcsec=7.25d7/unit_length
call get_line_info(spectrum_wl,ion,mass,logTe,lineCent,spaceRsl,wlRsl,&
sigma_PSF,wslit)
if (mype==0) print *,&
'###################################################'
select case(spectrum_wl)
case (1354)
if (mype==0) print *, 'Systhesizing EUV spectrum (observed by IRIS).'
case (263,264,192,255)
if (mype==0) print *,&
'Systhesizing EUV spectrum (observed by Hinode/EIS).'
case default
call MPISTOP('Wrong wavelength!')
end select
if (spectrum_window_max<=spectrum_window_min) then
call MPISTOP('Wrong spectrum window!')
endif
if (mype==0) write(*,'(a,f8.3,a)') ' Wavelength: ',lineCent,' Angstrom'
if (mype==0) print *, 'Unit of EUV flux: DN s^-1 pixel^-1'
if (dat_resolution) then
if (mype==0) then
write(*,'(a,f5.3,a,f5.1,a)') ' Supposed pixel: ',wlRsl,&
' Angstrom x ',spaceRsl*725.0, ' km'
print *, 'Unit of wavelength: Angstrom (0.1 nm) '
if (SI_unit) then
write(*,'(a,f8.1,a)') ' Unit of length: ',unit_length/1.d6,' Mm'
else
write(*,'(a,f8.1,a)') ' Unit of length: ',unit_length/1.d8,' Mm'
endif
write(*,'(a,f8.1,a)') ' Supposed width of slit: ',wslit*725.0,' km'
endif
call get_spectrum_datresol(qunit,datatype,fl)
else
if (mype==0) then
print *, 'Unit of wavelength: Angstrom (0.1 nm) '
if (activate_unit_arcsec) then
write(*,'(a,f5.3,a,f5.1,a)') ' Pixel: ',wlRsl,' Angstrom x ',&
spaceRsl*725.0, ' km'
print *, 'Unit of length: arcsec (~725 km)'
write(*,'(a,f8.1,a)') ' Location of slit: xI1 = ',location_slit,&
' arcsec'
write(*,'(a,f8.1,a)') ' Width of slit: ',wslit,' arcsec'
else
if (SI_unit) then
if (mype==0) write(*,'(a,f8.1,a)') ' Unit of length: ',&
unit_length/1.d6,' Mm'
else
if (mype==0) write(*,'(a,f8.1,a)') ' Unit of length: ',&
unit_length/1.d8,' Mm'
endif
write(*,'(a,f8.1,a)') ' Location of slit: xI1 = ',location_slit,&
' Unit_length'
write(*,'(a,f8.1,a)') ' Width of slit: ',wslit*725.d0,' km'
endif
endif
if (mype==0) print *, 'Direction of the slit: parallel to xI2 vector'
if (coordinate==cartesian .or. coordinate==spherical) then
call get_spectrum(qunit,datatype,fl)
else
call MPISTOP&
("EUV spectrum synthesis: support for sperical coordinates is to be added!")
endif
endif
if (mype==0) print *,&
'###################################################'
end subroutine get_EUV_spectrum