138 & observed, sigma, weight, first_index)
145 CHARACTER (len=path_length),
INTENT(in) :: sxrch_file
146 TYPE (signal_pointer),
DIMENSION(:),
INTENT(inout) :: signals
147 INTEGER,
INTENT(inout) :: signals_created
148 REAL (rprec),
DIMENSION(:),
INTENT(in) :: observed
149 REAL (rprec),
DIMENSION(:),
INTENT(in) :: sigma
150 REAL (rprec),
DIMENSION(:),
INTENT(in) :: weight
151 INTEGER,
INTENT(inout) :: first_index
155 INTEGER,
PARAMETER :: n_sxrchd_keyword = 10
159 CHARACTER(len=data_name_length),
DIMENSION(1:n_sxrchd_keyword) :: &
161 TYPE(signal_dot_file) :: sxrch_dot_file_ref
162 INTEGER :: current_profile
163 REAL (rprec) :: start_time
166 start_time = profiler_get_start_time()
169 sxrchd_keyword(1) =
'sxr_chord_XYZ'
170 sxrchd_keyword(2) =
'sxr_chord_RPhiDegZ'
171 sxrchd_keyword(3) =
'sxr_chord_XYZ_geo'
172 sxrchd_keyword(4) =
'sxr_chord_RPhiDegZ_geo'
173 sxrchd_keyword(5) =
'sxr_chord_XYZ_xics_emiss'
174 sxrchd_keyword(6) =
'sxr_chord_RPhiDegZ_xics_emiss'
175 sxrchd_keyword(7) =
'sxr_chord_XYZ_xics_ti'
176 sxrchd_keyword(8) =
'sxr_chord_RPhiDegZ_xics_ti'
177 sxrchd_keyword(9) =
'sxr_new_profile'
178 sxrchd_keyword(10) =
'end_of_file'
199 CASE (
'sxr_chord_XYZ',
'sxr_chord_XYZ_xics_emiss')
203 & observed, sigma, weight, &
204 & current_profile, first_index, &
207 CASE (
'sxr_chord_RPhiDegZ',
'sxr_chord_RPhiDegZ_xics_emiss')
209 &
'RPHiDegZ', signals, &
211 & observed, sigma, weight, &
212 & current_profile, first_index, &
215 CASE (
'sxr_chord_XYZ_geo')
219 & observed, sigma, weight, &
220 & current_profile, first_index, &
223 CASE (
'sxr_chord_RPhiDegZ_geo')
225 &
'RPHiDegZ', signals, &
227 & observed, sigma, weight, &
228 & current_profile, first_index, &
231 CASE (
'sxr_chord_XYZ_xics_ti')
235 & observed, sigma, weight, &
236 & current_profile, first_index, &
239 CASE (
'sxr_chord_RPhiDegZ_xics_ti')
241 &
'RPHiDegZ', signals, &
243 & observed, sigma, weight, &
244 & current_profile, first_index, &
247 CASE (
'sxr_new_profile')
248 current_profile = current_profile + 1
257 CALL profiler_set_stop_time(
'sxrch_dot_read', start_time)
292 & observed, sigma, weight, &
293 & current_profile, first_index, &
299 USE v3_utilities,
only: err_fatal
304 TYPE (signal_dot_file),
INTENT(inout) :: sxrch_dot_file_ref
305 CHARACTER (len=*),
INTENT(in) :: coordinate_type
306 TYPE (signal_pointer),
DIMENSION(:),
INTENT(inout) :: signals
307 INTEGER,
INTENT(inout) :: signals_created
308 REAL (rprec),
DIMENSION(:),
INTENT(in) :: observed
309 REAL (rprec),
DIMENSION(:),
INTENT(in) :: sigma
310 REAL (rprec),
DIMENSION(:),
INTENT(in) :: weight
311 INTEGER,
INTENT(in) :: current_profile
312 INTEGER,
INTENT(inout) :: first_index
313 LOGICAL,
INTENT(in) :: use_geo
314 LOGICAL,
INTENT(in) :: is_ti
317 REAL(rprec),
DIMENSION(3) :: xcart_i, xcart_f
318 CHARACTER (len=data_short_name_length) :: chord_name
321 REAL (rprec) :: start_time
324 start_time = profiler_get_start_time()
328 CALL err_fatal(
'sxrch_dot_parse_chord_new: created signals' // &
329 &
' exceeds v3fit_max_diagnostics')
342 &
'Expected geometric factor for sxrem chord')
347 CALL signal_construct(sxrem_obj, chord_name, chord_name,
'eVm', &
348 & observed(signals_created + 1), &
349 & sigma(signals_created + 1), &
350 & weight(signals_created + 1), &
356 CALL signal_construct(sxrem_obj, chord_name, chord_name,
'arb', &
357 & observed(signals_created + 1), &
358 & sigma(signals_created + 1), &
359 & weight(signals_created + 1), &
364 signals(signals_created + 1)%p => sxrem_obj
366 signals_created = signals_created + 1
370 IF (first_index .eq. -1)
THEN
371 first_index = signals_created
374 CALL profiler_set_stop_time(
'sxrch_dot_parse_chord', start_time)