🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
libirbem.h
1/*
2%***************************************************************************************************
3% Copyright 2006, T.P. O'Brien
4%
5% This file is part of IRBEM-LIB.
6%
7% IRBEM-LIB is free software: you can redistribute it and/or modify
8% it under the terms of the GNU Lesser General Public License as published by
9% the Free Software Foundation, either version 3 of the License, or
10% (at your option) any later version.
11%
12% IRBEM-LIB is distributed in the hope that it will be useful,
13% but WITHOUT ANY WARRANTY; without even the implied warranty of
14% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15% GNU Lesser General Public License for more details.
16%
17% You should have received a copy of the GNU Lesser General Public License
18% along with IRBEM-LIB. If not, see <http://www.gnu.org/licenses/>.
19%
20prototype C header file for access to generic .dll or .so file
21e.g., onera_desp_lib.dll
22Paul O'Brien paul.obrien@aero.org
23 */
24
25
26void irbem_fortran_version1_(int *version);
27void get_irbem_ntime_max1_(int *ntime_max);
28void get_igrf_version_(int *igrf_version);
29
30void make_lstar1_(int *ntime, int *kext,
31 int *options,int *sysaxes,
32 int *iyear,int *idoy,
33 double *UT,double *x1,
34 double *x2,double *x3,
35 double *maginput, double *Lm,
36 double *Lstar, double *Blocal,
37 double *Bmin, double *J,
38 double *MLT);
39
40void landi2lstar1_(int *ntime, int *kext,
41 int *options,int *sysaxes,
42 int *iyear,int *idoy,
43 double *UT,double *x1,
44 double *x2,double *x3,
45 double *maginput, double *Lm,
46 double *Lstar, double *Blocal,
47 double *Bmin, double *J,
48 double *MLT);
49
50void landi2lstar_shell_splitting1_(int *ntime, int *nipa, int *kext,
51 int *options,int *sysaxes,
52 int *iyear,int *idoy,
53 double *UT,double *x1,
54 double *x2,double *x3,
55 double *alpha,
56 double *maginput, double *Lm,
57 double *Lstar, double *Blocal,
58 double *Bmin, double *J,
59 double *MLT);
60
61void empiricallstar1_(int *ntime, int *kext,
62 int *options,int *iyear,int *idoy,
63 double *maginput, double *Lm,
64 double *J, double *Lstar);
65
66void make_lstar_shell_splitting1_(int *ntime,
67 int *Nipa,
68 int *kext,
69 int *options,
70 int *sysaxes,
71 int *iyear,
72 int *idoy,
73 double *UT,
74 double *x1,
75 double *x2,
76 double *x3,
77 double *alpha,
78 double *maginput,
79 double *Lm,
80 double *Lstar,
81 double *Blocal,
82 double *Bmin,
83 double *J,
84 double *MLT);
85
86void drift_shell1_(int *kext, int *options,
87 int *sysaxes, int *iyear,
88 int *idoy, double * UT,
89 double *x1, double *x2, double *x3,
90 double *maginput,
91 double *Lm,
92 double *Lstar,
93 double *Blocal,
94 double *Bmin,
95 double *J,
96 double *posit,
97 int *ind);
98
99void drift_bounce_orbit1_(int *kext, int *options,
100 int *sysaxes, int *iyear,
101 int *idoy, double * UT,
102 double *x1, double *x2, double *x3, double *alpha,
103 double *maginput,
104 double *Lm,
105 double *Lstar,
106 double *Blocal,
107 double *Bmin,
108 double *Bmir,
109 double *J,
110 double *posit,
111 int *ind);
112
113void drift_bounce_orbit2_1_(int *kext, int *options,
114 int *sysaxes, int *iyear,
115 int *idoy, double * UT,
116 double *x1, double *x2, double *x3, double *alpha,
117 double *maginput, double *R0,
118 double *Lm,
119 double *Lstar,
120 double *Blocal,
121 double *Bmin,
122 double *Bmir,
123 double *J,
124 double *posit,
125 int *ind, double *hmin, double *hmin_lon);
126
127void trace_field_line1_(int *kext, int *options,
128 int *sysaxes, int *iyear,
129 int *idoy, double * UT,
130 double *x1, double *x2, double *x3,
131 double *maginput,
132 double *Lm,
133 double *Blocal,
134 double *Bmin,
135 double *J,
136 double *posit,
137 int *ind);
138
139void trace_field_line2_1_(int *kext, int *options,
140 int *sysaxes, int *iyear,
141 int *idoy, double * UT,
142 double *x1, double *x2, double *x3,
143 double *maginput, double *R0,
144 double *Lm,
145 double *Blocal,
146 double *Bmin,
147 double *J,
148 double *posit,
149 int *ind);
150
151void trace_field_line_towards_earth1_(int *kext, int *options,
152 int *sysaxes, int *iyear,
153 int *idoy, double * UT,
154 double *x1, double *x2, double *x3,
155 double *maginput,
156 double *ds,
157 double *posit,
158 int *ind);
159
160void get_field1_(int *kext, int *options,
161 int *sysaxes,
162 int *iyear,int *idoy,
163 double *UT,double *x1,
164 double *x2,double *x3,
165 double *maginput,
166 double *Bgeo,
167 double *B);
168
169void get_field_multi_(int *ntime, int *kext, int *options,
170 int *sysaxes,
171 int *iyear,int *idoy,
172 double *UT,double *x1,
173 double *x2,double *x3,
174 double *maginput,
175 double *Bgeo,
176 double *B);
177
178void find_mirror_point1_(int *kext,
179 int *options,
180 int *sysaxes,
181 int *iyear,int *idoy,
182 double *UT,double *x1,
183 double *x2,double *x3,
184 double *alpha,
185 double *maginput,
186 double *Blocal,
187 double *Bmirror,
188 double *xGEO);
189
190void find_foot_point1_(int *kext,
191 int *options,
192 int *sysaxes,
193 int *iyear,int *idoy,
194 double *UT,double *x1,
195 double *x2,double *x3,
196 double *stop_alt,
197 int *hemi_flag,
198 double *maginput,
199 double *xfoot,
200 double *Bfoot,
201 double *Bfootmag);
202
203void get_hemi1_(int *kext,
204 int *options,
205 int *sysaxes,
206 int *iyear,int *idoy,
207 double *UT,double *x1,
208 double *x2,double *x3,
209 double *maginput,
210 int *xHEMI);
211
212void get_hemi_multi_(int *ntime,int *kext,
213 int *options,
214 int *sysaxes,
215 int *iyear,int *idoy,
216 double *UT,double *x1,
217 double *x2,double *x3,
218 double *maginput,
219 int *xHEMI);
220
221void get_bderivs_(int *ntime,int *kext,
222 int *options,
223 int *sysaxes,
224 double *dX,
225 int *iyear,int *idoy,
226 double *UT,double *x1,
227 double *x2,double *x3,
228 double *maginput,
229 double *Bgeo,double *Bmag,
230 double *gradBmag, double *diffB);
231
232void compute_grad_curv_curl_(int *ntime,
233 double *Bgeo,double *Bmag,
234 double *gradBmag, double *diffB,
235 double *grad_par, double *grad_perp,
236 double *grad_drift, double *curvature,
237 double *Rcurv, double *curv_drift,
238 double *curlB, double *divB);
239
240void lstar_phi1_(int *ntime,int *whichinv,
241 int *options,
242 int *iyear,int *idoy,
243 double *Lstar, double *Phi);
244
245void find_magequator1_(int *kext,
246 int *options,
247 int *sysaxes,
248 int *iyear,int *idoy,
249 double *UT,double *x1,
250 double *x2,double *x3,
251 double *maginput,
252 double *Bmin,
253 double *xGEO);
254
255void get_mlt1_(int *iyr, int *idoy,
256 double *UT, double *xGEO, double *MLT);
257
258void fly_in_nasa_aeap1_(int *ntime, int *sysaxes,
259 int *whichm, int *whatf,
260 int *Nene, double *energy,
261 int *iyear, int *idoy, double *UT,
262 double *x1,double *x2, double *x3,
263 double *flux);
264
265void get_ae8_ap8_flux_(int *ntime, int *whichm, int *whatf,
266 int *Nene, double *energy,
267 double *BBo, double *L, double *flux);
268
269void fly_in_afrl_crres1_(int *ntime, int *sysaxes,
270 int *whichm, int *whatf,
271 int *nene, double *energy,
272 int *iyear, int *idoy, double *UT,
273 double *x1, double *x2, double *x3,
274 double *Ap15,
275 double *flux,
276 char *ascii_path,
277 int *strlen);
278
279void get_crres_flux_(int *ntime, int *whichm, int *whatf,
280 int *nene, double *energy,
281 double *BBo,double *L, double *Ap15,
282 double *flux,
283 char *ascii_path,
284 int *strlen);
285
286void sgp4_tle1_(int *runtype,double *startsfe,double *stopsfe,double *deltasec,
287 char *InFileByte,int *strlenIn,
288 char *OutFileByte,int *strlenOut);
289
290void sgp4_ele1_(int *sysaxes,
291 int *Yr,int *Mon,int *Day,int *Hr,int *Minute,double *Sec,
292 double *e1, double *e2, double *e3, double *e4, double *e5, double *e6,
293 int *ele_opts,
294 double *startsfe,double *stopsfe,double *deltasec,
295 int *outYr,int *outDoy, double *outSec,
296 double *x1, double *x2, double *x3);
297
298void coord_trans_vec1_(int *ntime, int *sysaxesIN,int *sysaxesOUT,
299 int *iyr,int *idoy,double *secs,
300 double *xINV,double *xOUTV);
301
302void rv2coe_(double *R, double *V,
303 double *P, double *A, double *Ecc, double *Incl, double *Omega,
304 double *Argp, double *Nu, double *M, double *ArgLat,
305 double *TrueLon, double *LonPer);
306
307void fly_in_ige1_(int *launch_year, int *duration,
308 int *whichm, int *whatf,
309 int *nene, double *energy,
310 double *Lower_flux, double *Mean_flux, double *Upper_flux);
311
312void fly_in_meo_gnss1_(int *launch_year, int *duration,
313 int *whichm, int *whatf,
314 int *nene, double *energy,
315 double *Lower_flux, double *Mean_flux, double *Upper_flux);
316
317void nrlmsise00_(int *ntime,int *whichAp,
318 int *DOY,double *UT,double *ALT,double *LAT,double *LON,
319 double *F107A,double *F107,double *AP,double *Dens,double *Temp);
320
321void msise90_(int *ntime,int *whichAp,
322 int *DOY,double *UT,double *ALT,double *LAT,double *LON,
323 double *F107A,double *F107,double *AP,double *Dens,double *Temp);
324
325void msis86_(int *ntime,int *whichAp,
326 int *DOY,double *UT,double *ALT,double *LAT,double *LON,
327 double *F107A,double *F107,double *AP,double *Dens,double *Temp);
328
329void shieldose2_(int *IDET, int *INUC,
330 int *IMAX, int *IUNT,
331 double *Zin, double *EMINS, double *EMAXS,
332 double *EMINP, double *EMAXP, int *NPTSP,
333 double *EMINE, double *EMAXE, int *NPTSE,
334 int *JSMAX, int *JPMAX, int *JEMAX,
335 double *EUNIT, double *DURATN,
336 double *ESin, double *SFLUXin,
337 double *EPin, double *PFLUXin,
338 double *EEin, double *EFLUXin,
339 double *SolDose, double *ProtDose,
340 double *ElecDose, double *BremDose,
341 double *TotDose);
342