As it is our intention to upgrade over time (or fix if necessary) the tools supplied in the CUTEr package, a mechanism for keeping an installed system up to date, and to install newer instances of the tools, is required. This is the role of the update_cuter script. If all goes well, you should not have to use update_cuter immediately. Announcements of bug-fixes and enhancements will be posted and indicated on the website. There are two forms of the command.
In its first form, update_cuter takes two command-line options, as follows
prompt% update_cuter filename
where filename is the name of the file to upgrade, possibly specified with a path. Suppose, for example, that the file ufn.f has been improved so as to perform its task faster, upgrading your current instance of CUTEr is achieved by typing
prompt% update_cuter ufn.f
at the command prompt. This command first copies the new source file to proper location, which is in this case $CUTER/common/src/tools. If there are currently both single and double precision instances, you will be asked to choose which you would like to update; if there is only one instance under $MYCUTER, the precision will be chosen accordingly. The script then casts and compiles the incoming file, and finally updates the CUTEr library ($MYCUTER/double/lib/libcuter.a). Of course, corresponding actions are performed depending on the type of filename: if it is a script, it is only cast, and stored in its proper place, and if it is a documentation file, it is simply moved to $CUTER/common/doc.
In its second form, update_cuter takes three command-line options, described as follows
prompt% update_cuter -a filename
where filename is the name of a file describing a list of CUTEr files to be upgraded. The file filename should contain
/home/upgrade
$CUTER/common/src/tools/ufn.f
$CUTER/build/scripts/install_cuter
compiler.cry.unc.f90
sdknit.pro
but exactly the same result would be produced by the simpler file
/home/upgrade
ufn.f
install_cuter
compiler.cry.unc.f90
sdknit.pro
or by the deliberately confusing file
/home/upgrade
/usr/share/junk/ufn.f
/home/upgrade/install_cuter
/home/downgrade/compiler.cry.unc.f90
/opt/degrade/sdknit.pro
As above, CUTEr copies these files from /home/upgrade to their proper location, prompts for the precision required (if necessary), casts and, where necessary, compiles the incoming files, and updates the specified instance stored under $MYCUTER.
The additional command-line option -m forces update_cuter to simply move the files to their proper location and to skip compilation. Help may be obtained from update_cuter through either of the -h, -help or -help flags.
To summarize, the complete synopsis of update_cuter is as follows
update_cuter [-h | -help | -help] [-m] [-a listFile | newFile]
In the situation where CUTEr has been unpacked but no further installation steps were performed, or all current instances were deleted, update_cuter still can move the updated source files to their proper location, skipping the compilation phase. The same syntax as above can be used.
Caution: attention should be paid to the fact that update_cuter works by source-ing the UNIX commands from the file $MYCUTER/precision/config/cmds (where precision is the required precision) and that these commands define the temporary directory used during compilation phase. In most cases, this temporary directory is simply /tmp. This temporary directory must not be the same as that specified in the first line of update_cuter's input file (/home/upgrade in the examples above).