source: PSPA/madxPSPA/src/mad_extrn_f.h @ 465

Last change on this file since 465 was 430, checked in by touze, 11 years ago

import madx-5.01.00

File size: 11.9 KB
Line 
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
170void mad_init_f_(void);
171
172// from dynap.f90
173void 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
177void 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)
183void gxterm_(void);
184
185// from ibsdb.f90
186void ibs_(void);
187
188// from match.f90
189void collect_(F_INTEGER ncon, F_DOUBLE fsum, F_DOUBLE fvect);
190void 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);
195void 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);
199void 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
204void mtsvd_(F_INTEGER M, F_INTEGER N, F_DOUBLE fjac, F_DOUBLE SV, F_DOUBLE U, F_DOUBLE VT);
205void 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
212void 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
217void setup_(F_DOUBLE resp, F_DOUBLE a, F_INTEGER im, F_INTEGER ic, F_INTEGER nm, F_INTEGER nc);
218void setupi_(F_INTEGER resp, F_INTEGER a, F_INTEGER im, F_INTEGER ic, F_INTEGER nm, F_INTEGER nc);
219void prdmat_(F_DOUBLE a, F_INTEGER nc, F_INTEGER nm);
220void primat_(F_INTEGER a, F_INTEGER nc, F_INTEGER nm);
221void 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);
225void 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);
228void 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);
232void 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);
236void 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);
240void 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
246void pesopt_(F_INTEGER ierr);
247void pefill_(F_INTEGER ierr);
248void pemima_(void);
249void plotit_(F_INTEGER initfl);
250
251// from resindex.f90
252void 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
256void soddin_(F_INTEGER ierr);
257
258// from survey.f90
259void survey_(void);
260void survtest_(void);
261
262// from toucheck.f90
263void touschek_(void);
264
265// from trrun.f90
266void 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
272void tmrefe_(F_DOUBLE rf);
273void tmrefo_(F_INTEGER kobs, F_DOUBLE orbit0, F_DOUBLE orbit, F_DOUBLE rt);
274void twiss_(F_DOUBLE rt, F_DOUBLE disp0, F_INTEGER tab_name, F_INTEGER sector_tab_name);
275void twcpin_(F_DOUBLE rt, F_DOUBLE disp0, F_DOUBLE r0mat, F_INTEGER error);
276
277// from util.f90
278void getclor_(F_DOUBLE orbit0, F_DOUBLE rt, F_DOUBLE tt, F_INTEGER error);
279
280// from wrap.f90
281void w_ptc_addknob_(F_INTEGER fibre);
282void w_ptc_addknob_i_(F_INTEGER paramn);
283void 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);
285void w_ptc_addpush_(F_INTEGER tabname, F_INTEGER colname, F_INTEGER polinomial, F_INTEGER monomial);
286void w_ptc_align_(void);
287void w_ptc_putbeambeam_(void);
288void w_ptc_create_layout_(void);
289void w_ptc_create_universe_(void);
290void w_ptc_dumpmaps_(void);
291void w_ptc_end_(void);
292void w_ptc_enforce6d_(F_INTEGER level);
293void w_ptc_eplacement_(F_INTEGER elementidx, F_INTEGER rf);
294void w_ptc_export_xml_(F_INTEGER filename);
295void w_ptc_getnfieldcomp_(F_INTEGER fibreidx, F_INTEGER ncomp, F_DOUBLE nval);
296void w_ptc_getsfieldcomp_(F_INTEGER fibreidx, F_INTEGER ncomp, F_DOUBLE nval);
297void w_ptc_moments_(F_INTEGER no);
298void w_ptc_move_to_layout_(void);
299void w_ptc_normal_(void);
300void w_ptc_open_gino_(F_INTEGER scriptname);
301void w_ptc_printframes_(F_INTEGER scriptname);
302void w_ptc_printlayout_rootm_(F_INTEGER filename);
303void w_ptc_read_errors_(void);
304void w_ptc_refresh_k_(void);
305void w_ptc_refreshtables_(void);
306void w_ptc_script_(F_INTEGER scriptname);
307void w_ptc_setaccel_method_(F_INTEGER method);
308void w_ptc_setdebuglevel_(F_INTEGER level);
309void w_ptc_setexactmis_(F_INTEGER method);
310void w_ptc_setfieldcomp_(F_INTEGER fibreidx);
311void w_ptc_setfringe_(F_INTEGER method);
312void w_ptc_setknobvalue_(F_INTEGER fible);
313void w_ptc_setnocavity_(F_INTEGER method);
314void w_ptc_setradiation_(F_INTEGER method);
315void w_ptc_settime_(F_INTEGER method);
316void w_ptc_settotalpath_(F_INTEGER method);
317void w_ptc_track_(F_INTEGER max_obs);
318void w_ptc_track_everystep_(F_INTEGER max_obs);
319void w_ptc_trackline_(F_INTEGER max_obs);
320void w_ptc_twiss_(F_INTEGER tab_name, F_INTEGER summary_name);
321void w_ptc_writeparresults_(F_INTEGER filename);
322
323// from madx_ptc_distrib.f90
324void w_ptc_getmomentstabcol_(F_INTEGER n, F_CHARACTER tabn, F_CHARACTER coln);
325int  w_ptc_getnmoments_(void);
326
327// from madx_ptc_knobs.f90
328void w_ptc_rviewer_(void);
329
330#endif
Note: See TracBrowser for help on using the repository browser.