Skip to main content

test (c47b2)

Test commands: Commands to test various conditions in CHARMM


Syntax of the TEST commands:

TEST FIRSt [TOL real] [STEP real] [UNIT int] [MASS int] [atom-selection]
(0.005) (0.0001) (6) (0)

[ CRYStal [ HOMOgeneous ] ]

TEST SECOnd [TOL real] [STEP real] [UNIT int] [2xatom-selection]
(0.005) (0.0001) (OUTU (6))


TEST CONNectvity [SUBSet atom-selection] [COMMon atom-selection] [PRINt]


TEST PARAmeter TRIGonometry { DIHEdral }
{ CDIHedral }
{ VDIHedral }
{ IMPRoper }



GETHeap integer

TEST INITialization


TEST NOCOmmunication { READ UNIT int STEP int MEMO int }
{ WRITE UNIT int STEP int MEMO int }


TEST MEMOry ACCUmulate [ALLOcations]/[DEALlocations]
RESEt [ALLOcations]/[DEALlocations]
NODIe [ALLOcations]/[DEALlocations]
DIE [ALLOcations]/[DEALlocations]
PRDBase [ALLOcations]/[DEALlocations] [SUCCesses]/[FAILures]
PFLY [ALLOcations]/[DEALlocations]
COMParison [NOFIle] [NOPRocedure] [NONAme] [NOTYpe] [NORAnk]
[NOSIze] [INSEnsitive] [VERBose]

The TEST FIRSt command, tests the first derivative of the
energy by finite differences. It uses the GETE subroutine, so that before
this command is invoked, the UPDAte command must be invoked. Since
two energy evaluations are done for each degree of freedom, an atom
selection should be used for large systems. The TOL keyword may be
used to list only those terms which differ by more than a particular
tolerance factor. The STEP keyword gives the finite difference step
size in angstroms. The MASS integer value determines how mass weighting
will be used with regards to rigid or SHAKE constraints (0= no mass
weighting, 1= mass weighting, -1=ignore water hydrogen masses).
This command is analogous to the second derivative test command under
the vibrational analysis (VIBRAN:: WRITE SECOnd derivatives CARD
The CRYStal keyword also causes the forces along the crystal
degrees of freedom to be checked. The HOMOgeneous keyword causes the
causes all of the atoms to be scaled in a homogeneous fashion when
the box size/shape changes.

The TEST SECOnd command, tests the second derivative of the
energy by finite difference of the forces. It is thus assumed that the
first derivative is right. UPDAte should be invoked before use. Selection is
allowed. The elements of the 2nd derivative matrix computed are the first
selection by the second selection in size. If only one selection is specified
then the the components of the 2nd derivative matrix corresponding to this
selection is constructed. If no selection is given, then the whole
3Nx(3N+1)/2 second derivative matrix is created by analytic and
finite difference methods. So don't use a too big system (a few hundred
atoms depending on your computer). TOL and STEP have the same meaning than

The TEST COORdinates command will test to insure that all
coordinates are in range and defined. The comparison coordinates may be

The TEST CONNectivity command tests the structure for proper
connectivity between the selected set of atoms. This is to facilitate
finding loose pieces of a molecule after a DELEte ATOM command. The
algorithm checks to make sure that some connective bonding, bonds,
angles or torsions, exist between atoms in the selection SUBSet and
atoms in the COMMon set selection. For example, if a sequence of
amino acid residues, say 1-5, were selected as the SUBSet and only residue
5 was selected for the COMMon set the CONNectivity between the two sets
is true. If, say, residue 10 was selected for the common set then the
test would prove false and the message "One disconnected segment found"
would be printed.

The TEST PSF command tests most of the data in the structure file.
The data is sorted and duplications are found as well.

The TEST PARAmeter command write out the tables used by energy
routines. DIHEdral, CDIHedral and IMPRoper TRIGonometry tables are the
parameters listed in the order they are stocked. Number,
Force-constant, Periodicity, Reference Angle, Cosine and sine are
listed. The VDIHedral option lists the dihedral energy term series as
they are used in the PARVect dihedral energy routines. Term-number,
Parameter-number (cf DIHEdral), Force-constant, Periodicity,
Reference Angle, Cosine and sine are listed. TEST PARAmeter is mostly
for developing purposes. An unknown option will be ignored.

The TEST HEAP command causes the heap data to be printed
between non-miscellaneous commands. This will continue until
job termination. This makes it easy to see where space allocation
went wrong during program development. The TEST STACk command performs
the same function for stack space usage.

The GETHeap routine allocates and then frees a block of memory
specified in words. This command is used to prevent fragmentation of
memory, or to preallocate disk space for a long run that will need
space later.

The TEST INITialization command will initialize just about
everything. Its use is in testing the program when making major
changes or additions.

The RESEt command deletes all atoms and calls the initialization
routine. It should be called before TEST INIT to reset everything.

The TEST NOCOmmunication performs parallel run reading data
from memory instead. TEST NOCO WRITE command has to be performed on a
single CPU and writes all the necessary data from memory to a file
specified by UNIT keyword. The STEP keyword specifies the number of
steps for which the information will be saved to a file. MEMOry
keyword reserves the memory needed for this operation. TEST NOCO READ
has the same parameters as WRITE, but the complete information is
stored to the memory from the file for the number of steps specified
with the STEP keyword. TEST NOCO CLOSe has to be specified after WRITE
command and before STOP.

The TEST STAMp command outputs a time stamp in microsecond
precision of the following events:

level= 0 - OFF
-1 - from input script
1 - report from dynamics
2 - report from paral1 routines
4 - report from paral3 routines

NOTE: It is possible to combine reports, ie level=6 is the same as
level.eq.4 or level.eq.2

The TEST MEMOry subcommand is mainly intended as a developers' tool.
It allows for information on memory allocations and deallocations in CHARMM
to be accumulated in databases, printed out, and analyzed.
TEST MEMOry ACCUmulate begins the compilation of databases containing
information on the memory allocated and/or deallocated for arrays during a CHARMM run.
The databases for failed allocations/deallocations are also accumulated.
TEST MEMOry RESEt reinitializes the allocation/deallocation databases.
TEST MEMOry NODIe globally disables the termination of a run on memory
allocation/deallocation errors.
TEST MEMOry DIE re-enables the termination of a run on memory errors.
TEST MEMOry PRDBase prints the databases of successfully/unsuccessfully
allocated/deallocated arrays. By default, it prints both successes and failures.
TEST MEMOry PFLY prints information about allocations/deallocations
at runtime (i.e. "on the fly").
By default, all of the above commands apply to both allocations and
deallocations. Allocations-only and deallocations-only can be specified with
the ALLOcation and DEALlocation options, respectively.
TEST MEMOry COMParison does a comparison of the allocation and deallocation
databases and checks for discrepancies. By default, it uses the following information
in the comparisons:
1) filename 2) procedure name 3) array name 4) array type 5) array rank 6) array size.
Any of these can be omitted from the comparison criteria by use of the following
corresponding command options:
1) NOFIle 2) NOPRoc 3) NONAme 4) NOTYpe 5) NORAnk and 6) NOSIze.
By default, the comparisons are done in a case-sensitive manner for 1), 2), and 3).
(The literal strings appearing in the code are used for these criteria.)
The 'INSEnsitive' option makes these comparisons case-insensitive.
When 'NOSIze' or 'NOTYpe' are used, the memory usage data (size and bytes) in
the comparisons is of course unreliable.

TEST MEMOry ACCUmulate ALLOcations ! begins compilation of allocation DBs
TEST MEMOry ACCUmulate DEALlocations ! begins compilation of deallocation DB's
TEST MEMOry ACCUmulate ! begins compilation of all allocs & deallocs
(above equivalent to TEST MEMORY ACCUmulate ALLOcate DEALlocate)
TEST MEMOry ACCUmulate STOP !stops compilation of all DBs
TEST MEMOry ACCUmulate STOP ALLOC !stops compilation of allocation DBs
TEST MEMOry PRDB ALLOC FAIL !prints out DB of failed allocations only
TEST MEMOry PRDB !print out all DBs
TEST MEMOry PFLY DEALloc !prints out all deallocations on the fly
TEST MEMOry NODIe ALLOc !disables termination on allocation error
TEST MEMOry COMP NOFIle INSEnsitive !performs comparison of allocation and
! deallocation databases, without regard to filename or case