There are two versions of the amr code:
1) amr_mpi - this is the recommended version and can be built with mpi.
2) amr - this is an older version of the code which uses a different
gravity algorithm (lower noise but less well-suited to good parallel performance).
To use cvs, it first must be installed on the local system. If the system has access to the NCSA afs namespace, then set the CVSROOT variable as follows:
setenv CVSROOT /afs/ncsa/projects/lca/cvsroot
If you are using a system without afs, you may still use cvs but you must do two things: (a) replace ssh with rsh (this can be done for example by copying ssh to ~/bin/rsh as long as ~/bin appears early on in your path), and (b) setting CVSROOT to:
setenv CVSROOT :ext:my_ncsa_login@modi4.ncsa.uiuc.edu:/afs/ncsa/projects/lca/cvsroot
where my_ncsa_login is to be placed by your ncsa login name.
In either case, it is useful to set CVSROOT in your .cshrc file for future reference. Once this is setup, you may extract the code with:
cvs checkout amr_mpi
This will create a local subdirectory "amr_mpi" which will contain the source code. You only need to do this checkout once to create a local copy of the repository. From here on (while in the amr_mpi subdirectory) simply use the command:
cvs update
to get the latest version of the code. It will merge changes/bugfixes made by other people who have the CVS copy of the code with your local copy. If you have made changes/bugfixes to the code, then merge it with the repository using:
cvs commit
This will pop up a 'vi' editor window in which you should type a complete description of the changes you've made and then merge your changes into the central repository where others can pick them up using "cvs update". It is important to make your descriptions readable and complete because if your changes introduce bugs or cause the code to misbehave then people can use:
cvs history
to see what changes have been made and to remove those changes in order
to recover the code to a usable state. Also, only do "cvs commit"
when your changes are completed and the resulting code is in working condition;
otherwise people who do an 'update' will end up with broken code.
There is a way around this (code branches), but we won't get into that
right now.
cvs checkout inits