File: flames_midas_def.h

package info (click to toggle)
cpl-plugin-uves 6.1.3+dfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 23,128 kB
  • sloc: ansic: 171,056; sh: 4,359; python: 3,002; makefile: 1,322
file content (439 lines) | stat: -rw-r--r-- 21,573 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
/*
 * This file is part of the ESO UVES Pipeline
 * Copyright (C) 2004,2005 European Southern Observatory
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
 */

/*
 * $Author: amodigli $
 * $Date: 2011-12-08 13:56:55 $
 * $Revision: 1.4 $
 * $Name: not supported by cvs2svn $
 * $Log: not supported by cvs2svn $
 * Revision 1.3  2010/09/24 09:32:02  amodigli
 * put back QFITS dependency to fix problem spot by NRI on FIBER mode (with MIDAS calibs) data
 *
 * Revision 1.1  2009/04/14 07:01:07  amodigli
 * added to CVS (moded from flames tree)
 *
 * Revision 1.19  2007/10/01 17:19:50  amodigli
 * added scdprs
 *
 * Revision 1.18  2007/06/22 14:52:18  jmlarsen
 * Exported dtype_to_cpltype function
 *
 * Revision 1.17  2007/06/08 15:38:08  jmlarsen
 * Added option to not automatically propagate NAXIS
 *
 * Revision 1.16  2007/06/06 08:17:33  amodigli
 * replace tab with 4 spaces
 *
 * Revision 1.15  2007/06/04 11:26:40  jmlarsen
 * Added SCKGETC_fsp for cpl_frameset pointers
 *
 * Revision 1.14  2007/05/30 12:06:03  amodigli
 * #include<fitsio.h>
 *
 * Revision 1.13  2007/05/29 14:39:50  jmlarsen
 * Readded 3d table functions but map them to simple (2d) table functions
 *
 * Revision 1.12  2007/05/29 13:46:23  jmlarsen
 * Removed 3d table column stubs which were not needed for FLAMES
 *
 * Revision 1.11  2007/04/10 07:31:13  jmlarsen
 * Added TCTID
 *
 * Revision 1.10  2007/04/03 11:05:33  jmlarsen
 * Implemented table module
 *
 * Revision 1.9  2007/03/26 12:40:52  jmlarsen
 * Converted SCTDIS calls
 *
 * Revision 1.8  2007/03/23 13:44:37  jmlarsen
 * Implemented SCKWR- functions
 *
 * Revision 1.7  2007/03/23 10:10:15  jmlarsen
 * Implemented catalog interface
 *
 * Revision 1.6  2007/03/05 09:40:31  jmlarsen
 * Added SCDCOP
 *
 * Revision 1.5  2007/02/27 14:09:31  jmlarsen
 * Extended interface of uves_find_property
 *
 * Revision 1.4  2007/01/31 13:14:57  jmlarsen
 * Initial implementation of SCFGET
 *
 * Revision 1.3  2007/01/29 13:09:57  jmlarsen
 * Work on conversion to CPL
 *
 * Revision 1.2  2007/01/15 14:00:23  jmlarsen
 * Imported FLAMES sources from MIDAS pipeline
 *
 * Revision 1.1  2007/01/10 08:06:10  jmlarsen
 * Added source files
 *
 * Revision 1.1  2006/10/20 06:42:09  jmlarsen
 * Moved FLAMES source to flames directory
 *
 * Revision 1.78  2006/10/12 11:37:28  jmlarsen
 * Temporarily disabled FLAMES code generation
 *
 */
#ifndef FLAMES_MIDAS_DEF_H
#define FLAMES_MIDAS_DEF_H

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif
#include <uves_cpl_size.h>
/*-----------------------------------------------------------------------------
                    Includes
 -----------------------------------------------------------------------------*/
#include <fitsio.h>
#include <cpl.h>
/*-----------------------------------------------------------------------------
                                   Typedefs
 -----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
                             Defines
 -----------------------------------------------------------------------------*/
/* Definitions not used by FLAMES are commented out */
/* from flames_uves.h */
#define MAREMMA 2

/* Data types */
#define D_OLD_FORMAT    0
#define D_I1_FORMAT     1               /* I*1 = 1 byte                 */
#define D_I2_FORMAT     2               /* I*2 = 16 bit integer         */
#define D_UI2_FORMAT  102               /* I*2 = 16 bit unsigned integer */
#define D_I4_FORMAT     4               /* I*4 = 32 bit integer         */
#define D_R4_FORMAT    10               /* R*4 = 32 bit floating point  */
#define D_R8_FORMAT    18               /* R*8 = 64 bit floating point  */
//#define D_L1_FORMAT    21               /* L*1 = 1 byte logical         */
//#define D_L2_FORMAT    22               /* L*2 = 16 bit logical         */
#define D_L4_FORMAT    24               /* L*4 = 32 bit logical         */
#define D_C_FORMAT     30               /* 1 byte character             */
//#define D_X_FORMAT     40               /* 1 byte flags                 */
//#define D_P_FORMAT     50               /* pointers                     */



/*  Filetypes */
//#define F_OLD_TYPE      0               /* use old type of files        */
#define F_IMA_TYPE      1               /* type no. for image files     */
//#define F_ASC_TYPE      2               /* type no. for ASCII files     */
#define F_TBL_TYPE      3               /* type no. for table files     */
//#define F_FIT_TYPE      4               /* type no. for fit files       */
//#define F_FIMA_TYPE     11              /* type no. for FITS images     */
//#define F_FTBL_TYPE     13              /* type no. for FITS tables     */
//#define F_FFIT_TYPE     14              /* type no. for FITS fit files  */



/* Opening modes */
//#define F_TRANS      0          /* table transposed format */
//#define F_RECORD     1          /* table record format */
#define F_I_MODE     0          /* map file for input only    */
#define F_O_MODE     1          /* map file for output        */
#define F_IO_MODE    2          /* map file for updating      */
//#define F_U_MODE     2          /* map file for updating      */
//#define F_X_MODE     9          /* create/map virtual memory  */
//#define F_H_MODE     7          /* create header file only */
//#define F_FO_MODE    11         /* map FITS file for output   */

/* May be combined with */
//#define F_MAP_FORCE 0x10        /* Force the mapping (modifier)         */
//#define F_EIO_FORCE 0x20        /* Force the elementary i/o (modifier)*/
//#define F_ALL_FORCE 0x40        /* Force the allocated values   */

/* Table i/o modes */
#define F_D_MODE     2          /* map for descriptors only */

/* From midas_def.h */
#define TEXT_LEN      84





/* init, end */
#define SCSPRO(name) flames_midas_scspro(name)
#define SCSEPI() flames_midas_scsepi()

/* error handling */

/* display text */
#define SCTPUT(msg) flames_midas_sctput(msg, __func__, __FILE__, __LINE__)

/* access keywords */
#define SCKGETC(key, felem, maxvals, actvals, values) flames_midas_sckgetc(key, felem, maxvals, actvals, values)
#define SCKGETC_fs(key, felem, maxvals, actvals, values)  flames_midas_sckgetc_fs(key, felem, maxvals, actvals, values)
#define SCKGETC_fsp(key, felem, maxvals, actvals, values) flames_midas_sckgetc_fsp(key, felem, maxvals, actvals, values)
#define SCKFND(key, type, noelem, bytelem) flames_midas_sckfnd(key, type, noelem, bytelem)
#define SCKFND_double(key, type, noelem, bytelem) flames_midas_sckfnd_double(key, type, noelem, bytelem)
#define SCKFND_float(key, type, noelem, bytelem) flames_midas_sckfnd_float(key, type, noelem, bytelem)
#define SCKFND_int(key, type, noelem, bytelem) flames_midas_sckfnd_int(key, type, noelem, bytelem)
#define SCKFND_string(key, type, noelem, bytelem) flames_midas_sckfnd_string(key, type, noelem, bytelem)

#define SCKRDD(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdd(key, felem, maxvals, actvals, values, unit, null)
#define SCKRDC(key, noelem, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdc(key, noelem, felem, maxvals, actvals, values, unit, null)
#define SCKRDI(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdi(key, felem, maxvals, actvals, values, unit, null)
#define SCKRDR(key, felem, maxvals, actvals, values, unit, null) flames_midas_sckrdr(key, felem, maxvals, actvals, values, unit, null)

#define SCKWRC(key, noelem, values, felem, maxval, unit) flames_midas_sckwrc(key, noelem, values, felem, maxval, unit)
#define SCKWRD(key, values, felem, maxval, unit) flames_midas_sckwrd(key, values, felem, maxval, unit)
#define SCKWRI(key, values, felem, maxval, unit) flames_midas_sckwri(key, values, felem, maxval, unit)

/* manipulate catalogues */
#define SCCADD(catfile, name, ident) flames_midas_sccadd(catfile, name, ident)
#define SCCCRE(catfile, type, flag)  flames_midas_scccre(catfile, type, flag)
#define SCCFND(catfile, frmno, frame) flames_midas_sccfnd(catfile, frmno, frame)
#define SCCGET(catfile, flag, name, ident, no) flames_midas_sccget(catfile, flag, name, ident, no)
#define SCCSHO(catfile, noent, last) flames_midas_sccsho(catfile, noent, last)

/* access bulk data frames (bdf) */
#define SCFINF(name, fno, ibuf) flames_midas_scfinf(name, fno, ibuf)
#define SCFCRE(name, dattype, iomode, filtype, size, imno) flames_midas_scfcre(name, dattype, iomode, filtype, size, imno)
#define SCFOPN(name, dattype, newopn, filtype, imno) flames_midas_scfopn(name, dattype, newopn, filtype, imno)
#define SCFCLO(imno) flames_midas_scfclo(imno)
#define SCFPUT(imno, felem, size, bufadr) flames_midas_scfput(imno, felem, size, bufadr)
#define SCFGET(imno, felem, size, actsize, bufadr) flames_midas_scfget(imno, felem, size, actsize, bufadr)

/* access descriptors */
#define SCDFND(imno, descr, type, noelem, bytelem) flames_midas_scdfnd(imno, descr, type, noelem, bytelem) 
#define SCDPRS(imno, descr, type, noelem, bytelem) flames_midas_scdprs(imno, descr, type, noelem, bytelem) 
#define SCDRDI(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdi(imno, descr, felem, maxvals, actvals, values, unit, null)
#define SCDRDD(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdd(imno, descr, felem, maxvals, actvals, values, unit, null)
#define SCDWRI(imno, descr, values, felem, nval, unit) flames_midas_scdwri(imno, descr, values, felem, nval, unit)
#define SCDWRD(imno, descr, values, felem, nval, unit) flames_midas_scdwrd(imno, descr, values, felem, nval, unit)
#define SCDWRR(imno, descr, values, felem, nval, unit) flames_midas_scdwrr(imno, descr, values, felem, nval, unit)
#define SCDWRC(imno, descr, noelm, values, felem, nval, unit) flames_midas_scdwrc(imno, descr, noelm, values, felem, nval, unit)
#define SCDCOP(from, to, mask) flames_midas_scdcop(from, to, mask)
#define SCDCOP_nonaxis(from, to, mask) flames_midas_scdcop_nonaxis(from, to, mask)
#define SCDDEL(imno, descr) flames_midas_scddel(imno, descr)
#define SCDRDR(imno, descr, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdr(imno, descr, felem, maxvals, actvals, values, unit, null)
#define SCDRDC(imno, descr, noelem, felem, maxvals, actvals, values, unit, null) flames_midas_scdrdc(imno, descr, noelem, felem, maxvals, actvals, values, unit, null)
/* note: SCDGETC is same as SCDRDC with noelem = number of bytes per data value = 1 */
#define SCDGETC(imno, descr, felem, maxvals, actvals, values) SCDRDC(imno, descr, 1, felem, maxvals, actvals, values, NULL, NULL)

/* table access */
#define TCTOPN(name, mode, tid) flames_midas_tctopn(name, mode, -1, tid)
#define TCTCLO(tid) flames_midas_tctclo(tid)
#define TCCSER(tid, colref, column) flames_midas_tccser(tid, colref, column)
#define TCIGET(tid, column, row) flames_midas_tciget(tid, column, row)

#define TCERDD(tid, row, column, value, null) flames_midas_tcerdd(tid, row, column, value, null)

#define TCBGET(tid, column, dtype, items, bytes) flames_midas_tcbget(tid, column, dtype, items, bytes)

#define TCCINI(tid, dtype, alen, form, unit, label, column) flames_midas_tccini(tid, dtype, alen, form, unit, label, column)
#define TCDGET(tid, store) flames_midas_tcdget(tid, store)

#define TCERDC(tid, row, column, values, null) flames_midas_tcerdc(tid, row, column, values, null)
#define TCERDI(tid, row, column, values, null) flames_midas_tcerdi(tid, row, column, values, null)
#define TCERDR(tid, row, column, values, null) flames_midas_tcerdr(tid, row, column, values, null)
#define TCEWRC(tid, row, column, value) flames_midas_tcewrc(tid, row, column, value)
#define TCEWRD(tid, row, column, value) flames_midas_tcewrd(tid, row, column, value)
#define TCEWRI(tid, row, column, value) flames_midas_tcewri(tid, row, column, value)
#define TCEWRR(tid, row, column, value) flames_midas_tcewrr(tid, row, column, value)

#define TCARDC(tid, row, col, index, items, value) flames_midas_tcardc(tid, row, col, index, items, value)
#define TCARDD(tid, row, col, index, items, value) flames_midas_tcardd(tid, row, col, index, items, value)
#define TCARDI(tid, row, col, index, items, value) flames_midas_tcardi(tid, row, col, index, items, value)
#define TCARDR(tid, row, col, index, items, value) flames_midas_tcardr(tid, row, col, index, items, value)
#define TCAWRC(tid, row, col, index, items, value) flames_midas_tcawrc(tid, row, col, index, items, value)
#define TCAWRD(tid, row, col, index, items, value) flames_midas_tcawrd(tid, row, col, index, items, value)
#define TCAWRI(tid, row, col, index, items, value) flames_midas_tcawri(tid, row, col, index, items, value)
#define TCAWRR(tid, row, col, index, items, value) flames_midas_tcawrr(tid, row, col, index, items, value)

#define TCFGET(tid, column, form, dtype) flames_midas_tcfget(tid, column, form, dtype)
#define TCLGET(tid, column, label) flames_midas_tclget(tid, column, label)
#define TCLSER(tid, label, column) flames_midas_tclser(tid, label, column)
#define TCSGET(tid, row, value) flames_midas_tcsget(tid, row, value)
#define TCSPUT(tid, row, value) flames_midas_tcsput(tid, row, value)

/* TCTINI  -->  TCTOPN */
#define TCTINI(name, mode, allrow, tid) flames_midas_tctopn(name, mode, allrow, tid)

#define TCUGET(tid, column, unit) flames_midas_tcuget(tid, column, unit)

#define flames_midas_fail() flames_midas_fail_macro(__FILE__, __func__, __LINE__)
#define flames_midas_error(status) flames_midas_error_macro(__FILE__, __func__, __LINE__, status)

/*-----------------------------------------------------------------------------
                                   Prototypes
 -----------------------------------------------------------------------------*/

/* init, end */
int flames_midas_scspro(const char *name);
int flames_midas_scsepi(void);
int flames_midas_fail_macro(const char *file, const char *function, int line);
int flames_midas_error_macro(const char *file, const char *function, int line,
                 int status);

/* error handling */


/* access keywords */
int flames_midas_sckgetc(const char *key, 
             int felem, int maxvals, 
             int *actvals, char *values);
int flames_midas_sckgetc_fs(const cpl_frameset *key, 
             int felem, int maxvals, 
             int *actvals, const cpl_frameset **values);

int flames_midas_sckgetc_fsp(cpl_frameset **key, 
             int felem, int maxvals, 
             int *actvals, cpl_frameset ***values);

int flames_midas_sckrdd(const double *key, int felem, int maxvals, 
            int *actvals, double *values, int *unit, int *null);
int flames_midas_sckrdi(const int *key, int felem, int maxvals, 
            int *actvals, int *values, int *unit, int *null);
int flames_midas_sckrdr(const float *key, int felem, int maxvals, 
            int *actvals, float *values, int *unit, int *null);
int flames_midas_sckrdc(const char *key, int noelem, int felem, int maxvals, 
            int *actvals, char *values, int *unit, int *null);

int flames_midas_sckwri(int *key, const int *values, 
            int felem, int maxval, int *unit);
int flames_midas_sckwrd(double *key, const double *values, 
            int felem, int maxval, int *unit);
int flames_midas_sckwrc(char *key, int noelem,
            const char *values, int felem, int maxvals, int *unit);

int flames_midas_sckfnd_double(const double *key, char *type, int *noelem, int *bytelem);
int flames_midas_sckfnd_float(const float *key, char *type, int *noelem, int *bytelem);
int flames_midas_sckfnd_int(const int *key, char *type, int *noelem, int *bytelem);
int flames_midas_sckfnd_string(const char *key, char *type, int *noelem, int *bytelem);


/* display text */
int flames_midas_sctput(const char *msg, 
            const char *func, const char *file, int line);

/* access bulk data frames (bdf) */
int flames_midas_scfopn(const char *name, int dattype, int newopn, int filtype, int *imno);
int flames_midas_scfclo(int imno);
int flames_midas_scfcre(const char *name, int dattype, int iomode, int filtype, 
            int size, int *imno);
int flames_midas_scfinf(const char *name, int fno, int *ibuf);
int flames_midas_scfget(int imno, int felem, int size, int *actsize, char *bufadr);
int flames_midas_scfput(int imno, int felem, int size, const char *bufadr);

/* access descriptors */
int flames_midas_scdfnd(int imno, const char *descr, 
            char *type, int *noelem, int *bytelem);

int flames_midas_scdprs(int imno, const char *descr, 
            char *type, int *noelem, int *bytelem);

int flames_midas_scdrdi(int imno, const char *descr, 
            int felem, int maxvals,
            int *actvals, int *values,
            int *unit, int *null);
int flames_midas_scdrdd(int imno, const char *descr, 
            int felem, int maxvals,
            int *actvals, double *values,
            int *unit, int *null);
int flames_midas_scdrdr(int imno, const char *descr, 
            int felem, int maxvals,
            int *actvals, float *values,
            int *unit, int *null);
int flames_midas_scdrdc(int imno, const char *descr, 
            int noelem,
            int felem, int maxvals,
            int *actvals, char *values,
            int *unit, int *null);

int flames_midas_scdwri(int imno, const char *descr, const int *values, 
            int felem, int nval, const int *unit);
int flames_midas_scdwrd(int imno, const char *descr, const double *values, 
            int felem, int nval, const int *unit);

int flames_midas_scdwrr(int imno, const char *descr, const float *values, 
            int felem, int nval, const int *unit);
int flames_midas_scdwrc(int imno, const char *descr, int noelm, const char *values, 
            int felem, int nval, const int *unit);

int flames_midas_scdcop(int from, int to, int mask);
int flames_midas_scdcop_nonaxis(int from, int to, int mask);

int flames_midas_scddel(int imno, const char *descr);

/* tables */
int flames_midas_tctopn(const char *name, int mode, int allrow, int *tid);
int flames_midas_tctclo(int tid);
int flames_midas_tccser(int tid, const char *colref, int *column);
int flames_midas_tciget(int tid, int *column, int *row);

int flames_midas_tcardc(int tid, int row, int col, int index, int items, char *value);
int flames_midas_tcardd(int tid, int row, int col, int index, int items, double *value);
int flames_midas_tcardi(int tid, int row, int col, int index, int items, int *value);
int flames_midas_tcardr(int tid, int row, int col, int index, int items, float *value);
int flames_midas_tcawrc(int tid, int row, int col, int index, int items, const char *value);
int flames_midas_tcawrd(int tid, int row, int col, int index, int items, const double *value);
int flames_midas_tcawri(int tid, int row, int col, int index, int items, const int *value);
int flames_midas_tcawrr(int tid, int row, int col, int index, int items, const float *value);
int flames_midas_tcbget(int tid, int column, int *dtype, int *items, int *bytes);
int flames_midas_tcdget(int tid, int *store);
int flames_midas_tcfget(int tid, int column, char *form, int *dtype);
int flames_midas_tclget(int tid, int column, char *label);
int flames_midas_tcuget(int tid, int column, char *unit);
int flames_midas_tclser(int tid, const char *label, int *column);
int flames_midas_tccini(int tid, int dtype, int alen,
                        const char *form, const char *unit, const char *label,
                        int *column);
int flames_midas_tcerdc(int tid, int row, int column, char *values, int *null);
int flames_midas_tcerdi(int tid, int row, int column, int *values, int *null);
int flames_midas_tcerdr(int tid, int row, int column, float *values, int *null);
int flames_midas_tcerdd(int tid, int row, int column,
            double *value, int *null);
int flames_midas_tcewrc(int tid, int row, int column, const char *value);
int flames_midas_tcewri(int tid, int row, int column, const int *value);
int flames_midas_tcewrr(int tid, int row, int column, const float *value);
int flames_midas_tcewrd(int tid, int row, int column, const double *value);
int flames_midas_tcsget(int tid, int row, int *value);
int flames_midas_tcsput(int tid, int row, const int *value);

/* catalogs */
int flames_midas_sccsho(const cpl_frameset *catfile,
                        int *noent, 
                        int *last);

int flames_midas_sccget(const cpl_frameset *catfile,
                        int flag,
                        char *name, char *ident, 
                        int *no);

int flames_midas_sccfnd(const cpl_frameset *catfile, 
                        int frmno, 
                        char *frame);
int flames_midas_scccre(cpl_frameset **catfile, 
                        int type,
                        int flag);
int flames_midas_sccadd(cpl_frameset *catfile,
            const char *name,
            const char *ident);

/* Other */
cpl_type
flames_midas_image_dtype_to_cpltype(int dtype);


#endif