# $Id: CDFputdata,v 1.1 1993/09/08 21:42:28 mintha Exp $ # # Write data to a CDF file # # $Log: CDFputdata,v $ # Revision 1.1 1993/09/08 21:42:28 mintha # Initial revision # "CDFputdata" <- function(info, var, data, start=NULL, count=NULL) { if(is.character(var)) var <- match(var, names(info), nomatch=-1)-2 if(var <0 || var > info$global$numvars) stop("Variable specified does not exist\n") varinfo <- info[[var+2]] # # set up the defaults for start and count # if(is.null(start)) start <- rep(1, length(varinfo$dims)) if(is.null(count)) count <- rep(-1, length(varinfo$dims)) for(ctr in seq(to = length(varinfo$dims))){ if(count[ctr] == -1) count[ctr] <- dim(data)[ctr] if(count[ctr]+start[ctr]-1 > varinfo$dims[ctr]) stop("Dimensions of data given do not match CDF variable") } datasize <- prod(count) type <- varinfo$type if(type == 2) data <- as.character(data) if(type == 5) data <- as.single(data) if(type == 6) data <- as.double(data) wrote <- .C("cdf_write_data", as.integer(info$global$ncid), as.integer(var), as.integer(varinfo$type), as.integer(rev(start-1)), as.integer(rev(count)), data) }