---
name: "ncrcat"
section: "1"
platform: "linux"
package: "nco"
version: "5.3.3-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ncrcat"
---

# ncrcat(1)

netCDF Record Concatenator

## NAME

ncrcat - netCDF Record Concatenator

## SYNTAX

ncrcat \[-3\] \[-4\] \[-5\] \[-6\] \[-7\] \[-A\] \[--bfr *sz\_byt*\] \[-C\] \[-c\] \[--cb *y1,y2,m1,m2,tpd*\] \[--cmp *cmp\_sng*\] \[--cnk\_byt *sz\_byt*\] \[--cnk\_csh *sz\_byt*\] \[--cnk\_dmn  *nm,sz\_lmn*\] \[--cnk\_map  *map*\] \[--cnk\_min *sz\_byt*\] \[--cnk\_plc  *plc*\] \[--cnk\_scl  *sz\_lmn*\]*\[-D* *dbg\_lvl*\] \[-d  *dim*,\[ *min*\]\[,\[ *max*\]\]\[,\[ *stride*\[\[,\[ *subcycle*\[\[,\[ *interleave*\]\]\]\]\]\] \[-F\] \[--fl\_fmt=fmt\] \[-G *gpe\_dsc*\] \[-g   *grp*\[,...\]\] \[--glb *att\_name=* *att\_val*\]\] \[-H\] \[-h\] \[--hdr\_pad *sz\_byt*\] \[-L  *dfl\_lvl*\] \[-l  *path*\] \[--mro\] \[--msa\] \[-n *loop\]* \[--no\_cll\_msr\] \[--no\_frm\_trm\] \[--no\_tmp\_fl\] \[-O\] \[-p *path*\] \[--ppc  *var1*\[, *var2*\[,...\]\]= *prc*\]\] \[-R\] \[-r\] \[--ram\_all\] \[--rec\_apn\] \[-t *thr\_nbr*\] \[--uio\] \[--unn\] \[-v  *var*\[,...\]\] \[-X  *box*\] \[-x\]  *input-files* *output-file*

## DESCRIPTION

**ncrcat** concatenates record variables across an arbitrary number of input files. The final record dimension is by default the sum of the lengths of the record dimensions in the input files.

Input files may vary in size, but each must have a record dimension. The record coordinate, if any, should be monotonic (or else non-fatal warnings may be generated). Hyperslabs of the record dimension which include more than one file are handled correctly. **ncra** supports the  *stride* argument to the  **-d** hyperslab option for the record dimension only,  *stride* is not supported for non-record dimensions.

**ncrcat** applies special rules to ARM convention time fields (e.g., **time\_offset**).

## EXAMPLES

Concatenate files  **85.nc**, **86.nc**,  ...  **89.nc** along the record dimension, and store the results in  **8589.nc**:

ncrcat 85.nc 86.nc 87.nc 88.nc 89.nc 8589.nc\
 ncrcat 8\[56789\].nc 8589.nc\
 ncrcat -n 5,2,1 85.nc 8589.nc

These three methods produce identical answers.

Assume the files  **85.nc**, **86.nc**,  ...  **89.nc** each contain a record coordinate  *time* of length 12 defined such that the third record in  **86.nc** contains data from March 1986, etc. NCO knows how to hyperslab the record dimension across files. Thus, to concatenate data from December, 1985--February, 1986:

ncrcat -d time,11,13 85.nc 86.nc 87.nc 8512\_8602.nc\
 ncrcat -F -d time,12,14 85.nc 86.nc 87.nc 8512\_8602.nc

The file  **87.nc** is superfluous, but does not cause an error. The  **-F** turns on the Fortran (1-based) indexing convention.

The following uses the  *stride* option to concatenate all the March temperature data from multiple input files into a single output file

ncrcat -F -d time,3,,12 -v temperature 85.nc 86.nc 87.nc 858687\_03.nc

Assume the  *time* coordinate is incrementally numbered such that January, 1985 = 1 and December, 1989 = 60. Assuming  **??** only expands to the five desired files, the following concatenates June, 1985--June, 1989:

ncrcat -d time,6.,54. ??.nc 8506\_8906.nc

## CAVEAT

**ncrcat** does not re-scale packed data (i.e., data stored using the **scale\_factor** and **add\_offset** attributes recommended by the Unidat and CF conventions. **ncrcat** just copies the data directly from the input files. It copies the relevant metadata (i.e.,  **scale\_factor** and  **add\_offset** attributes) from the first file.  Concatenating multiple datasets packed with different scales is beyond its capabilities (concatenating data packed with the same scales in multiple files works fine).  The workaround for cases where the scales change among files is to first unpack the data in all the file using  **ncpdq,** then to concatenate the unpacked data using **ncrcat,** and finally to repack the result using **ncpdq.**

## AUTHOR

**NCO** manual pages written by Charlie Zender and originally formatted by Brian Mays.

## REPORTING BUGS

Report bugs to \<http://sf.net/bugs/?group\_id=3331\>.

## COPYRIGHT

Copyright © 1995-present Charlie Zender\
 This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO

The full documentation for **NCO** is maintained as a Texinfo manual called the  **NCO Users Guide.** Because  **NCO** is mathematical in nature, the documentation includes TeX-intensive portions not viewable on character-based displays.  Hence the only complete and authoritative versions of the  **NCO Users Guide** are the PDF (recommended), DVI, and Postscript versions at \<http://nco.sf.net/nco.pdf\>, \<http://nco.sf.net/nco.dvi\>, and \<http://nco.sf.net/nco.ps\>, respectively. HTML and XML versions are available at \<http://nco.sf.net/nco.html\> and \<http://nco.sf.net/nco.xml\>, respectively.

If the **info** and **NCO** programs are properly installed at your site, the command

-

  **info nco**

should give you access to the complete manual, except for the TeX-intensive portions.

[**ncap2**(1)](/ncap2/1.md), [**ncatted**(1)](/ncatted/1.md), [**ncbo**(1)](/ncbo/1.md), [**ncclimo**(1)](/ncclimo/1.md), [**nces**(1)](/nces/1.md), [**ncecat**(1)](/ncecat/1.md), [**ncflint**(1)](/ncflint/1.md), [**ncz2psx**(1)](/ncz2psx/1.md), [**ncks**(1)](/ncks/1.md), [**nco**(1)](/nco/1.md), [**ncpdq**(1)](/ncpdq/1.md), [**ncra**(1)](/ncra/1.md), [**ncrcat**(1)](/ncrcat/1.md), [**ncremap**(1)](/ncremap/1.md), [**ncrename**(1)](/ncrename/1.md), [**ncwa**(1)](/ncwa/1.md)

## HOMEPAGE

The  **NCO** homepage at \<http://nco.sf.net\> contains more information.
