/*============================================================================
PGSBOX 4.3 - an implementation of the FITS WCS standard.
Copyright (C) 1997-2007, Mark Calabretta
This file is part of PGSBOX.
PGSBOX is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
PGSBOX 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 Lesser General Public License for
more details.
You should have received a copy of the GNU Lesser General Public License
along with PGSBOX. If not, see .
Correspondence concerning PGSBOX may be directed to:
Internet email: mcalabre@atnf.csiro.au
Postal address: Dr. Mark Calabretta
Australia Telescope National Facility, CSIRO
PO Box 76
Epping NSW 1710
AUSTRALIA
Author: Mark Calabretta, Australia Telescope National Facility
http://www.atnf.csiro.au/~mcalabre/index.html
$Id: cpgsbox.c,v 4.3 2007/12/27 05:49:14 cal103 Exp $
*===========================================================================*/
#include
#include "cpgsbox.h"
/* Fortran name mangling. */
#include
#define pgsbok_ F77_FUNC(pgsbok, PGSBOK)
#define pglbok_ F77_FUNC(pglbok, PGLBOK)
void pgsbok_(const float blc[2], const float trc[2], char idents[3][80],
const char opt[2], const int *labctl, const int *labden,
const int ci[7], const int gcode[2], const double *tiklen,
const int *ng1, const double *grid1, const int *ng2,
const double *grid2, const int *doeq, nlfunc_t nlfunc,
const int *nlc, const int *nli, const int *nld, char *nlcprm,
int *nliprm, double *nldprm, const int *nc, int *ic,
double cache[][4], int *ierr);
void pglbok_(char idents[3][80], const char opt[2], const int *labctl,
const int *labden, const int ci[7], const int gcode[2],
const double *tiklen, const int *ng1, const double *grid1,
const int *ng2, const double *grid2, const int *doeq,
const int *nc, int *ic, double cache[][4], int *ierr);
void cpgsbox(
const float blc[2],
const float trc[2],
char (*idents)[80],
const char opt[2],
int labctl,
int labden,
const int ci[7],
const int gcode[2],
double tiklen,
int ng1,
const double *grid1,
int ng2,
const double *grid2,
int doeq,
nlfunc_t nlfunc,
int nlc,
int nli,
int nld,
char nlcprm[],
int nliprm[],
double nldprm[],
int nc,
int *ic,
double cache[][4],
int *ierr)
{
char ids[3][80];
int j, k;
/* Convert variable length strings to fixed-length char arrays. */
k = 0;
for (j = 0; j < 3; j++) {
if (strlen(idents[j]) > 80) {
strncpy(ids[j], idents[j], 80);
} else {
strcpy(ids[j], idents[j]);
for (k = strlen(idents[j]); k < 80; k++) {
ids[j][k] = ' ';
}
}
}
pgsbok_(blc, trc, ids, opt, &labctl, &labden, ci, gcode, &tiklen, &ng1,
grid1, &ng2, grid2, &doeq, nlfunc, &nlc, &nli, &nld, nlcprm, nliprm,
nldprm, &nc, ic, cache, ierr);
return;
}
/*==========================================================================*/
void cpglbox(
char (*idents)[80],
const char opt[2],
int labctl,
int labden,
const int ci[7],
const int gcode[2],
double tiklen,
int ng1,
const double *grid1,
int ng2,
const double *grid2,
int doeq,
int nc,
int *ic,
double cache[][4],
int *ierr)
{
char ids[3][80];
int j, k;
/* Convert variable length strings to fixed-length char arrays. */
k = 0;
for (j = 0; j < 3; j++) {
if (strlen(idents[j]) > 80) {
strncpy(ids[j], idents[j], 80);
} else {
strcpy(ids[j], idents[j]);
for (k = strlen(idents[j]); k < 80; k++) {
ids[j][k] = ' ';
}
}
}
pglbok_(ids, opt, &labctl, &labden, ci, gcode, &tiklen, &ng1, grid1, &ng2,
grid2, &doeq, &nc, ic, cache, ierr);
return;
}