104 SUBROUTINE ece_dot_read(ece_file, signals, signals_created, &
105 & observed, sigma, weight, first_index)
112 CHARACTER (len=path_length),
INTENT(in) :: ece_file
113 TYPE (signal_pointer),
DIMENSION(:),
INTENT(inout) :: signals
114 INTEGER,
INTENT(inout) :: signals_created
115 REAL (rprec),
DIMENSION(:),
INTENT(in) :: observed
116 REAL (rprec),
DIMENSION(:),
INTENT(in) :: sigma
117 REAL (rprec),
DIMENSION(:),
INTENT(in) :: weight
118 INTEGER,
INTENT(inout) :: first_index
122 INTEGER,
PARAMETER :: n_ece_keyword = 3
126 CHARACTER(len=data_name_length),
DIMENSION(1:n_ece_keyword) :: &
128 TYPE(signal_dot_file) :: ece_dot_file_ref
129 INTEGER :: current_profile
130 REAL (rprec) :: start_time
133 start_time = profiler_get_start_time()
136 ece_keyword(1) =
'ece_chord_XYZ'
137 ece_keyword(2) =
'ece_chord_RPhiDegZ'
138 ece_keyword(3) =
'end_of_file'
156 CASE (
'ece_chord_XYZ')
158 & signals, signals_created, &
159 & observed, sigma, weight, &
162 CASE (
'ece_chord_RPhiDegZ')
164 & signals, signals_created, &
165 & observed, sigma, weight, &
175 CALL profiler_set_stop_time(
'ece_dot_read', start_time)
205 & signals, signals_created, observed, &
206 & sigma, weight, first_index)
211 USE v3_utilities,
only: err_fatal
216 TYPE (signal_dot_file),
INTENT(inout) :: ece_dot_file_ref
217 CHARACTER (len=*),
INTENT(in) :: coordinate_type
218 TYPE (signal_pointer),
DIMENSION(:),
INTENT(inout) :: signals
219 INTEGER,
INTENT(inout) :: signals_created
220 REAL (rprec),
DIMENSION(:),
INTENT(in) :: observed
221 REAL (rprec),
DIMENSION(:),
INTENT(in) :: sigma
222 REAL (rprec),
DIMENSION(:),
INTENT(in) :: weight
223 INTEGER,
INTENT(inout) :: first_index
227 REAL(rprec),
DIMENSION(3) :: xcart_i
228 REAL(rprec),
DIMENSION(3) :: xcart_f
229 CHARACTER (len=data_short_name_length) :: chord_name
230 REAL (rprec) :: resonance
231 REAL (rprec) :: start_time
234 start_time = profiler_get_start_time()
238 CALL err_fatal(
'ece_dot_parse_chord_new: created signals' // &
239 &
' exceeds v3fit_max_diagnostics')
244 & chord_name, xcart_i, xcart_f)
248 &
'Expected resonance for ECE chord')
250 ece_obj =>
ece_class(xcart_i, xcart_f, resonance)
251 CALL signal_construct_new(ece_obj, chord_name, chord_name,
'arb', &
252 & observed(signals_created + 1), &
253 & sigma(signals_created + 1), weight(signals_created + 1), &
257 signals(signals_created + 1)%p => ece_obj
258 signals_created = signals_created + 1
262 IF (first_index .eq. -1)
THEN
263 first_index = signals_created
266 CALL profiler_set_stop_time(
'ece_dot_parse_chord', start_time)