[fitsbits] exceeding buffer limit?

Atakan Gurkan hatokan at yahoo.com
Mon Jul 22 21:33:27 EDT 2002


Hi,
I am using FITS format to take snapshots for a program.However, I can
only write 40 files. This is suspicious because NIOBUF is 40, but I am
closing the files each time I finish writing them. My subroutine that
deals with snapshots looks like this:

void take_snapshot(struct star *s, struct cluster c, struct code_par
cp){
	static int snapshot_count = 0;
	int snapshot_period = 3;

	fitsfile *fptr;
	int status;
	long firstrow, firstelem;
	int tfields;       /* table will have n columns */
	long nrows;	

	char extname[] = "CLUSTER_STARS";          /* extension name */
	char filename[128];
	char *ttype[] = { "Mass"};
	char *tform[] = { "1D"};
	char *tunit[] = { "Nbody"};
	
	double *mass;

	unsigned long i, N;


	snapshot_count++;
	if ( (snapshot_count%snapshot_period) ){
		return;
	}

	printf("taking snapshot %05d\n", snapshot_count/snapshot_period);
	N = c.NSTAR;
	mass = malloc((N+2)*sizeof(double));

	for(i=0; i<=N+1; i++){
		mass[i] = s[i].m;
	
	}

	status = 0;
	tfields = 4;
	nrows = N+2;
	sprintf(filename, "!snapshot%05d", snapshot_count/snapshot_period);

	fits_create_file(&fptr, filename, &status);
	sprintf(filename, "snapshot%05d", snapshot_count/snapshot_period);
	fits_open_file(&fptr, filename, READWRITE, &status);

	fits_create_tbl(fptr, BINARY_TBL, nrows, tfields, ttype, tform,
                tunit, extname, &status);
	fits_update_key(fptr, TLONG, "NSTAR", &(N), 
			"No of Stars", &status);

	firstrow  = 1;  /* first row in table to write   */
	firstelem = 1;  /* first element in row  (ignored in ASCII tables) */

	fits_write_col(fptr, TDOUBLE, 1, firstrow, firstelem, nrows, mass,
                   &status);
	
        free(mass);
	fits_close_file(fptr, &status);

	printerror(status);
}

I removed a few lines to make it shorter.
printerror() is from cookbook.c

it dies with the message:
FITSIO status = 115: NULL input pointer
failed to create new file (already exists?):
snapshot00040

I would really appreciate if someone could provide some insight.
Thank you,

Atakan Gurkan



More information about the fitsbits mailing list