As NetCDF is shipped with ncdump
and ncgen
to handle NetCDF files, ETSF_IO is shipped with its own binary program etsf_io
. This utility is made to handle some high level actions on ETSF files.
etsf_io man page
etsf_io
is called with the mandatory -a
option (or --action
) to define what action will be done by the program. Follows the little help returned by etsf_io --help
:
Usage: etsf_io [-h | -a action] [[-i file]...] [[-f flag]...] [-o file] [arguments] Handle ETSF files, see --action option. -h --help : show this little help. -a --action value : give the action to perform. Possible action may be: * 'merge' to gather several files that have been splitted. * 'content' to get the name of specifications the file matches. * 'check' to check the validity of the file against specifications. -o --output-file file : give the path to the output ETSF file. -i --input-file file : give the path for an input file. This option can be used one or several times. -l --list : when action is check, it give the list of available flags. -f --flag value : give a flag name (get valid names from -l option). Examples: Merge three files, etsf_io -a merge -i file1.nc -i file2.nc -i file3.nc -o output.nc Get the contents of file test.nc, etsf_io -a contents test.nc Get the list of flags for validity checks, etsf_io -a check -l Checks with two flags, etsf_io -a check -f flag1 -f flag2 test.nc
Action merge
The merge action can read several ETSF files and create a new one, copying all variables that are not splitted and merging those that have a split definition. If there is not enough input file to create a full unsplitted array, the new file will contains some new split informations resulting from the merge. This routine also copy headers and attributes, as for all none-ETSF variables and dimensions.
An example of usage could be:
$ ./etsf_io -a merge -i output_proc1-etsf.nc -i output_proc2-etsf.nc -o output-etsf.nc
where output_proc1-etsf.nc
and output_proc2-etsf.nc
are two files generated by a distributed run on two processors.
Action content
The file is analised by etsf_io
and produce a human readable list of matching specifications for the given file. When a specification is not matched, a reason is given.
An example of usage could be:
$ ./etsf_io -a content output-etsf.nc Analyse file 'output-etsf.nc' - No - wavefunctions_data. given reason, 'primitive_vectors' -> Variable not found - No - scalar_field_data. given reason, 'primitive_vectors' -> Variable not found - No - crystallographic_data. given reason, 'primitive_vectors' -> Variable not found
Action check
Check if the given file match a given specification. It raise an error if there is an error and return 1 (or should since Fortran has no return value). It returns 0 if the file matches (or shouild because of Fortran). These problems make this action unusable at the present time.