The most frequently used operators of NCO are probably the averagers and concatenators. Because there are so many permutations of averaging (e.g., across files, within a file, over the record dimension, over other dimensions, with or without weights and masks) and of concatenating (across files, along the record dimension, along other dimensions), there are currently no fewer than five operators which tackle these two purposes: ncra, ncea, ncwa, ncrcat, and ncecat. These operators do share many capabilities 1, but each has its unique specialty. Two of these operators, ncrcat and ncecat, are for concatenating hyperslabs across files. The other two operators, ncra and ncea, are for averaging hyperslabs across files 2. First, let's describe the concatenators, then the averagers.
[1] Currently ncea and ncrcat are symbolically linked to the ncra executable, which behaves slightly differently based on its invocation name (i.e., ‘argv[0]’). These three operators share the same source code, but merely have different inner loops.
[2] The third averaging operator, ncwa, is the most sophisticated averager in NCO. However, ncwa is in a different class than ncra and ncea because it can only operate on a single file per invocation (as opposed to multiple files). On that single file, however, ncwa provides a richer set of averaging options—including weighting, masking, and broadcasting.