1 | #ifndef MAD_EXTRN_F_H |
---|
2 | #define MAD_EXTRN_F_H |
---|
3 | |
---|
4 | /* |
---|
5 | * Fortran types in C |
---|
6 | */ |
---|
7 | |
---|
8 | #ifndef MAD_TYPES_F_H |
---|
9 | #include "mad_types_f.h" |
---|
10 | #endif |
---|
11 | |
---|
12 | /* |
---|
13 | * Called by Fortran |
---|
14 | */ |
---|
15 | |
---|
16 | // from mad_cmdpar.c |
---|
17 | #define comm_para comm_para_ |
---|
18 | #define get_string get_string_ |
---|
19 | #define get_value get_value_ // ** |
---|
20 | #define get_vector get_vector_ |
---|
21 | |
---|
22 | // from mad_const.c |
---|
23 | #define next_constraint next_constraint_ |
---|
24 | #define next_constr_namepos next_constr_namepos_ |
---|
25 | #define next_global next_global_ |
---|
26 | |
---|
27 | // from mad_elem.c |
---|
28 | #define element_name element_name_ |
---|
29 | #define el_par_vector el_par_vector_ |
---|
30 | #define get_node_vector get_node_vector_ |
---|
31 | |
---|
32 | // from mad_elemerr.c |
---|
33 | #define node_al_errors node_al_errors_ |
---|
34 | #define node_fd_errors node_fd_errors_ |
---|
35 | |
---|
36 | // from mad_err.c |
---|
37 | #define augmentfwarn augmentfwarn_ |
---|
38 | #define geterrorflag geterrorflag_ |
---|
39 | #define seterrorflagfort seterrorflagfort_ |
---|
40 | |
---|
41 | // from mad_eval.c |
---|
42 | #define pro_input pro_input_ |
---|
43 | |
---|
44 | // from mad_gxx11c.c |
---|
45 | #define wopen wopen_ |
---|
46 | #define wclose wclose_ |
---|
47 | #define wclrwk wclrwk_ |
---|
48 | #define wpl wpl_ |
---|
49 | #define wfa wfa_ |
---|
50 | #define wswn wswn_ |
---|
51 | #define wtx wtx_ |
---|
52 | #define wwait wwait_ |
---|
53 | #define wsetci wsetci_ |
---|
54 | #define wsetls wsetls_ |
---|
55 | #define wstring wstring_ |
---|
56 | #define cbyt cbyt_ |
---|
57 | #define mydtime mydtime_ |
---|
58 | |
---|
59 | // from mad_inter.c |
---|
60 | #define interpolate_node interpolate_node_ |
---|
61 | #define reset_interpolation reset_interpolation_ |
---|
62 | |
---|
63 | // from mad_match.c |
---|
64 | #define mtcond mtcond_ |
---|
65 | #define mtputconsname mtputconsname_ |
---|
66 | |
---|
67 | // from mad_node.c |
---|
68 | #define advance_node advance_node_ // * |
---|
69 | #define advance_to_pos advance_to_pos_ |
---|
70 | #define current_node_name current_node_name_ |
---|
71 | #define node_name node_name_ |
---|
72 | #define node_string node_string_ |
---|
73 | #define node_value node_value_ // ** |
---|
74 | #define retreat_node retreat_node_ |
---|
75 | #define store_node_value store_node_value_ |
---|
76 | #define store_node_vector store_node_vector_ |
---|
77 | |
---|
78 | // from mad_option.c |
---|
79 | #define get_option get_option_ // * |
---|
80 | #define set_option set_option_ |
---|
81 | #define set_cont_sequence set_cont_sequence_ |
---|
82 | #define set_sequence set_sequence_ |
---|
83 | |
---|
84 | // from mad_orbit.c |
---|
85 | #define f_ctof f_ctof_ |
---|
86 | |
---|
87 | // from mad_plot.c |
---|
88 | #define get_title get_title_ |
---|
89 | #define get_version get_version_ |
---|
90 | #define plot_option plot_option_ |
---|
91 | |
---|
92 | // from mad_ptc.c |
---|
93 | #define augmentcountmomtabs augmentcountmomtabs_ |
---|
94 | #define makemomentstables makemomentstables_ |
---|
95 | #define minimum_acceptable_order minimum_acceptable_order_ |
---|
96 | #define select_ptc_idx select_ptc_idx_ |
---|
97 | |
---|
98 | // from mad_rand.c |
---|
99 | #define frndm frndm_ |
---|
100 | #define grndm grndm_ |
---|
101 | |
---|
102 | // from mad_rplot.cpp |
---|
103 | #define newrplot newrplot_ |
---|
104 | #define plottrack plottrack_ |
---|
105 | #define plottwiss plottwiss_ |
---|
106 | #define rplotfinish rplotfinish_ |
---|
107 | #define rviewer rviewer_ |
---|
108 | #define madxv_setfctnname madxv_setfctnname_ |
---|
109 | #define madxv_setknobname madxv_setknobname_ |
---|
110 | #define madxv_setfunctionat madxv_setfunctionat_ |
---|
111 | |
---|
112 | // from mad_seq.c |
---|
113 | #define restart_sequ restart_sequ_ |
---|
114 | |
---|
115 | // from mad_table.c |
---|
116 | // warning:augment_counts is provided by madx_ptc_knobs.f90 |
---|
117 | #define augment_count augment_count_ |
---|
118 | #define augmentcountonly augmentcountonly_ |
---|
119 | #define table_length table_length_ |
---|
120 | #define table_exists table_exists_ |
---|
121 | #define table_column_exists table_column_exists_ |
---|
122 | #define table_header_exists table_header_exists_ |
---|
123 | #define double_from_table_header double_from_table_header_ |
---|
124 | #define double_from_table_row double_from_table_row_ // * |
---|
125 | #define string_from_table_row string_from_table_row_ |
---|
126 | #define double_to_table_row double_to_table_row_ |
---|
127 | #define string_to_table_row string_to_table_row_ |
---|
128 | #define double_to_table_curr double_to_table_curr_ // ** |
---|
129 | #define vector_to_table_curr vector_to_table_curr_ |
---|
130 | #define string_to_table_curr string_to_table_curr_ |
---|
131 | #define comment_to_table_curr comment_to_table_curr_ |
---|
132 | #define double_table double_table_ |
---|
133 | #define make_map_table make_map_table_ |
---|
134 | #define reset_count reset_count_ |
---|
135 | #define sector_out sector_out_ |
---|
136 | #define table_length table_length_ |
---|
137 | #define table_range table_range_ |
---|
138 | |
---|
139 | // from mad_track.c |
---|
140 | #define deletetrackstrarpositions deletetrackstrarpositions_ |
---|
141 | #define getcurrentcmdname getcurrentcmdname_ |
---|
142 | #define getnumberoftracks getnumberoftracks_ |
---|
143 | #define gettrack gettrack_ |
---|
144 | #define next_start next_start_ |
---|
145 | #define track_pteigen track_pteigen_ |
---|
146 | |
---|
147 | // from mad_twiss.c |
---|
148 | #define copy_twiss_data copy_twiss_data_ |
---|
149 | #define embedded_twiss embedded_twiss_ |
---|
150 | #define get_disp0 get_disp0_ |
---|
151 | #define get_twiss_data get_twiss_data_ |
---|
152 | |
---|
153 | // from mad_util.c |
---|
154 | #define intrac intrac_ |
---|
155 | |
---|
156 | // from mad_var.c |
---|
157 | #define set_variable set_variable_ |
---|
158 | #define get_variable get_variable_ |
---|
159 | #define next_vary next_vary_ |
---|
160 | |
---|
161 | // from mad_vec.c |
---|
162 | #define vdot vdot_ // * |
---|
163 | #define vmod vmod_ |
---|
164 | |
---|
165 | /* |
---|
166 | * Provided by Fortran |
---|
167 | */ |
---|
168 | |
---|
169 | // from mad_init_f.F90 |
---|
170 | void mad_init_f_(void); |
---|
171 | |
---|
172 | // from dynap.f90 |
---|
173 | void dynap_(F_DOUBLE eigen, F_DOUBLE coords, F_INTEGER turns, F_INTEGER npart, F_DOUBLE distvect, |
---|
174 | F_DOUBLE zn, F_DOUBLE dq, F_DOUBLE onelog, F_DOUBLE turnnumber); |
---|
175 | |
---|
176 | // from emit.f90 |
---|
177 | void emit_(F_DOUBLE deltap, F_DOUBLE tol, F_DOUBLE orbit0, F_DOUBLE disp0, F_DOUBLE rt, |
---|
178 | F_DOUBLE u0, F_DOUBLE emit_v, F_DOUBLE nemit_v, F_DOUBLE bmax, F_DOUBLE gmax, |
---|
179 | F_DOUBLE dismax, F_DOUBLE tunes, F_DOUBLE sig_v, F_DOUBLE pdamp); |
---|
180 | |
---|
181 | // from gxx11.f90(Unix) |
---|
182 | // or gxx11ps.f90(Windows) |
---|
183 | void gxterm_(void); |
---|
184 | |
---|
185 | // from ibsdb.f90 |
---|
186 | void ibs_(void); |
---|
187 | |
---|
188 | // from match.f90 |
---|
189 | void collect_(F_INTEGER ncon, F_DOUBLE fsum, F_DOUBLE fvect); |
---|
190 | void mtlmdf_(F_INTEGER ncon, F_INTEGER nvar, F_DOUBLE tol, F_INTEGER calls, |
---|
191 | F_INTEGER call_lim, F_DOUBLE vect, F_DOUBLE dvect, F_DOUBLE fun_vec, |
---|
192 | F_DOUBLE diag, F_DOUBLE w_ifjac, F_DOUBLE w_ipvt, F_DOUBLE w_qtf, |
---|
193 | F_DOUBLE w_iwa1, F_DOUBLE w_iwa2, F_DOUBLE w_iwa3, F_DOUBLE w_iwa4, |
---|
194 | F_DOUBLE xold); |
---|
195 | void mtmigr_(F_INTEGER ncon, F_INTEGER nvar, F_INTEGER strategy, F_DOUBLE tol, |
---|
196 | F_INTEGER calls, F_INTEGER call_lim, F_DOUBLE vect, F_DOUBLE dvect, |
---|
197 | F_DOUBLE fun_vect, F_DOUBLE w_iwa1, F_DOUBLE w_iwa2, F_DOUBLE w_iwa3, |
---|
198 | F_DOUBLE w_iwa4, F_DOUBLE w_iwa5, F_DOUBLE w_iwa6, F_DOUBLE w_iwa7, F_DOUBLE w_iwa8); |
---|
199 | void mtsimp_(F_INTEGER ncon, F_INTEGER nvar, F_DOUBLE tol, F_INTEGER calls, F_INTEGER call_lim, |
---|
200 | F_DOUBLE vect, F_DOUBLE dvect, F_DOUBLE fun_vect, F_DOUBLE w_iwa1, F_DOUBLE w_iwa2, |
---|
201 | F_DOUBLE w_iwa3); |
---|
202 | |
---|
203 | // from matchjc.f90 |
---|
204 | void mtsvd_(F_INTEGER M, F_INTEGER N, F_DOUBLE fjac, F_DOUBLE SV, F_DOUBLE U, F_DOUBLE VT); |
---|
205 | void mtjac_(F_INTEGER ncon, F_INTEGER nvar, F_INTEGER strategy, F_DOUBLE cool, F_DOUBLE balance, |
---|
206 | F_DOUBLE random, F_INTEGER nrep, F_INTEGER bisec, F_DOUBLE cond, F_INTEGER match_mode, |
---|
207 | F_DOUBLE tol, F_INTEGER calls, F_INTEGER call_lim, F_DOUBLE vect, F_DOUBLE dvect, |
---|
208 | F_DOUBLE fun_vec, F_DOUBLE w_ifjac, F_DOUBLE w_iwa4, F_DOUBLE fval, F_DOUBLE xstart, |
---|
209 | F_DOUBLE xold); |
---|
210 | |
---|
211 | // from matchsa.f90 |
---|
212 | void mtsa_(F_INTEGER ncon, F_INTEGER nvar, F_DOUBLE tol, F_INTEGER calls, F_INTEGER call_lim, |
---|
213 | F_DOUBLE vect, F_DOUBLE fun_vect, F_INTEGER iseed, F_INTEGER iprint, F_DOUBLE lb, |
---|
214 | F_INTEGER nacp, F_DOUBLE ub, F_DOUBLE xopt, F_DOUBLE c, F_DOUBLE vm, F_DOUBLE xp); |
---|
215 | |
---|
216 | // from orbf.f90 |
---|
217 | void setup_(F_DOUBLE resp, F_DOUBLE a, F_INTEGER im, F_INTEGER ic, F_INTEGER nm, F_INTEGER nc); |
---|
218 | void setupi_(F_INTEGER resp, F_INTEGER a, F_INTEGER im, F_INTEGER ic, F_INTEGER nm, F_INTEGER nc); |
---|
219 | void prdmat_(F_DOUBLE a, F_INTEGER nc, F_INTEGER nm); |
---|
220 | void primat_(F_INTEGER a, F_INTEGER nc, F_INTEGER nm); |
---|
221 | void micit_(F_DOUBLE a, F_CHARACTER conm, F_DOUBLE xin, F_DOUBLE cin, F_DOUBLE res, F_INTEGER nx, |
---|
222 | F_REAL rms, F_INTEGER im, F_INTEGER ic, F_INTEGER iter, F_INTEGER ny, F_REAL ax, |
---|
223 | F_REAL cinx, F_REAL xinx, F_REAL resx, F_REAL rho, F_REAL ptop, F_REAL rmss, F_REAL xrms, |
---|
224 | F_REAL xptp, F_REAL xiter, F_INTEGER ifail); |
---|
225 | void haveit_(F_DOUBLE a, F_DOUBLE xin, F_DOUBLE cin, F_DOUBLE res, F_INTEGER nx, F_INTEGER im, |
---|
226 | F_INTEGER ic, F_DOUBLE cb, F_DOUBLE xmeas, F_DOUBLE xres, F_DOUBLE y, F_DOUBLE z, |
---|
227 | F_DOUBLE xd); |
---|
228 | void svddec_m_(F_DOUBLE a, F_DOUBLE svdmat, F_DOUBLE umat, F_DOUBLE vmat, F_DOUBLE wmat, F_DOUBLE utmat, |
---|
229 | F_DOUBLE vtmat, F_DOUBLE wtmat, F_DOUBLE ws, F_DOUBLE wvec, F_INTEGER sortw, |
---|
230 | F_DOUBLE sngcut, F_DOUBLE sngval, F_INTEGER im, F_INTEGER ic, F_INTEGER iflag, |
---|
231 | F_INTEGER sing, F_INTEGER dbg); |
---|
232 | void svddec_c_(F_DOUBLE a, F_DOUBLE svdmat, F_DOUBLE umat, F_DOUBLE vmat, F_DOUBLE wmat, F_DOUBLE utmat, |
---|
233 | F_DOUBLE vtmat, F_DOUBLE wtmat, F_DOUBLE ws, F_DOUBLE wvec, F_INTEGER sortw, |
---|
234 | F_DOUBLE sngcut, F_DOUBLE sngval, F_INTEGER im, F_INTEGER ic, F_INTEGER iflag, |
---|
235 | F_INTEGER sing, F_INTEGER dbg); |
---|
236 | void svdcorr_m_(F_DOUBLE a, F_DOUBLE svdmat, F_DOUBLE umat, F_DOUBLE vmat, F_DOUBLE wmat, F_DOUBLE utmat, |
---|
237 | F_DOUBLE vtmat, F_DOUBLE wtmat, F_DOUBLE xin, F_DOUBLE xc, F_DOUBLE xout, F_DOUBLE xa, |
---|
238 | F_DOUBLE xb, F_DOUBLE xpred, F_DOUBLE ws, F_DOUBLE wvec, F_INTEGER sortw, F_INTEGER nx, |
---|
239 | F_INTEGER im, F_INTEGER ic, F_INTEGER iflag, F_INTEGER dbg); |
---|
240 | void svdcorr_c_(F_DOUBLE a, F_DOUBLE svdmat, F_DOUBLE umat, F_DOUBLE vmat, F_DOUBLE wmat, F_DOUBLE utmat, |
---|
241 | F_DOUBLE vtmat, F_DOUBLE wtmat, F_DOUBLE xin, F_DOUBLE xc, F_DOUBLE xout, F_DOUBLE xa, |
---|
242 | F_DOUBLE xb, F_DOUBLE xpred, F_DOUBLE ws, F_DOUBLE wvec, F_INTEGER sortw, F_INTEGER nx, |
---|
243 | F_INTEGER im, F_INTEGER ic, F_INTEGER iflag, F_INTEGER dbg); |
---|
244 | |
---|
245 | // from plot.f90 |
---|
246 | void pesopt_(F_INTEGER ierr); |
---|
247 | void pefill_(F_INTEGER ierr); |
---|
248 | void pemima_(void); |
---|
249 | void plotit_(F_INTEGER initfl); |
---|
250 | |
---|
251 | // from resindex.f90 |
---|
252 | void res_index_(F_LOGICAL skew, F_INTEGER mynorder, F_INTEGER myn1, F_INTEGER myn2, F_INTEGER indexa, |
---|
253 | F_INTEGER mynres); |
---|
254 | |
---|
255 | // from sodd.f90 |
---|
256 | void soddin_(F_INTEGER ierr); |
---|
257 | |
---|
258 | // from survey.f90 |
---|
259 | void survey_(void); |
---|
260 | void survtest_(void); |
---|
261 | |
---|
262 | // from toucheck.f90 |
---|
263 | void touschek_(void); |
---|
264 | |
---|
265 | // from trrun.f90 |
---|
266 | void trrun_(F_INTEGER switch_, F_INTEGER turns, F_DOUBLE orbit0, F_DOUBLE rt, F_INTEGER part_id, |
---|
267 | F_INTEGER last_turn, F_DOUBLE last_pos, F_DOUBLE z, F_DOUBLE dxt, F_DOUBLE dyt, |
---|
268 | F_DOUBLE last_orbit, F_DOUBLE eigen, F_DOUBLE coords, F_INTEGER e_flag, |
---|
269 | F_INTEGER code_buf, F_DOUBLE l_buf); |
---|
270 | |
---|
271 | // from twiss.f90 |
---|
272 | void tmrefe_(F_DOUBLE rf); |
---|
273 | void tmrefo_(F_INTEGER kobs, F_DOUBLE orbit0, F_DOUBLE orbit, F_DOUBLE rt); |
---|
274 | void twiss_(F_DOUBLE rt, F_DOUBLE disp0, F_INTEGER tab_name, F_INTEGER sector_tab_name); |
---|
275 | void twcpin_(F_DOUBLE rt, F_DOUBLE disp0, F_DOUBLE r0mat, F_INTEGER error); |
---|
276 | |
---|
277 | // from util.f90 |
---|
278 | void getclor_(F_DOUBLE orbit0, F_DOUBLE rt, F_DOUBLE tt, F_INTEGER error); |
---|
279 | |
---|
280 | // from wrap.f90 |
---|
281 | void w_ptc_addknob_(F_INTEGER fibre); |
---|
282 | void w_ptc_addknob_i_(F_INTEGER paramn); |
---|
283 | void w_ptc_addmoment_(F_INTEGER x, F_INTEGER px, F_INTEGER y, F_INTEGER py, F_INTEGER t, F_INTEGER dp, |
---|
284 | F_INTEGER tableIA, F_INTEGER columnIA, F_INTEGER parametric); |
---|
285 | void w_ptc_addpush_(F_INTEGER tabname, F_INTEGER colname, F_INTEGER polinomial, F_INTEGER monomial); |
---|
286 | void w_ptc_align_(void); |
---|
287 | void w_ptc_putbeambeam_(void); |
---|
288 | void w_ptc_create_layout_(void); |
---|
289 | void w_ptc_create_universe_(void); |
---|
290 | void w_ptc_dumpmaps_(void); |
---|
291 | void w_ptc_end_(void); |
---|
292 | void w_ptc_enforce6d_(F_INTEGER level); |
---|
293 | void w_ptc_eplacement_(F_INTEGER elementidx, F_INTEGER rf); |
---|
294 | void w_ptc_export_xml_(F_INTEGER filename); |
---|
295 | void w_ptc_getnfieldcomp_(F_INTEGER fibreidx, F_INTEGER ncomp, F_DOUBLE nval); |
---|
296 | void w_ptc_getsfieldcomp_(F_INTEGER fibreidx, F_INTEGER ncomp, F_DOUBLE nval); |
---|
297 | void w_ptc_moments_(F_INTEGER no); |
---|
298 | void w_ptc_move_to_layout_(void); |
---|
299 | void w_ptc_normal_(void); |
---|
300 | void w_ptc_open_gino_(F_INTEGER scriptname); |
---|
301 | void w_ptc_printframes_(F_INTEGER scriptname); |
---|
302 | void w_ptc_printlayout_rootm_(F_INTEGER filename); |
---|
303 | void w_ptc_read_errors_(void); |
---|
304 | void w_ptc_refresh_k_(void); |
---|
305 | void w_ptc_refreshtables_(void); |
---|
306 | void w_ptc_script_(F_INTEGER scriptname); |
---|
307 | void w_ptc_setaccel_method_(F_INTEGER method); |
---|
308 | void w_ptc_setdebuglevel_(F_INTEGER level); |
---|
309 | void w_ptc_setexactmis_(F_INTEGER method); |
---|
310 | void w_ptc_setfieldcomp_(F_INTEGER fibreidx); |
---|
311 | void w_ptc_setfringe_(F_INTEGER method); |
---|
312 | void w_ptc_setknobvalue_(F_INTEGER fible); |
---|
313 | void w_ptc_setnocavity_(F_INTEGER method); |
---|
314 | void w_ptc_setradiation_(F_INTEGER method); |
---|
315 | void w_ptc_settime_(F_INTEGER method); |
---|
316 | void w_ptc_settotalpath_(F_INTEGER method); |
---|
317 | void w_ptc_track_(F_INTEGER max_obs); |
---|
318 | void w_ptc_track_everystep_(F_INTEGER max_obs); |
---|
319 | void w_ptc_trackline_(F_INTEGER max_obs); |
---|
320 | void w_ptc_twiss_(F_INTEGER tab_name, F_INTEGER summary_name); |
---|
321 | void w_ptc_writeparresults_(F_INTEGER filename); |
---|
322 | |
---|
323 | // from madx_ptc_distrib.f90 |
---|
324 | void w_ptc_getmomentstabcol_(F_INTEGER n, F_CHARACTER tabn, F_CHARACTER coln); |
---|
325 | int w_ptc_getnmoments_(void); |
---|
326 | |
---|
327 | // from madx_ptc_knobs.f90 |
---|
328 | void w_ptc_rviewer_(void); |
---|
329 | |
---|
330 | #endif |
---|