several checks on the code's behavior are made in 
CheckSanity.c

NDEBUG is set when debugging is turned off, and is 
undefined when the debug version is built
#if !defined(NDEBUG)
	ChkSumCon(0);
#endif

==================================================================

MALLOC macro in cddefines.h, expanded as malloc or MyMalloc

==================================================================
pclint - command line points to std.lnt, which points to 
co-msc60.lnt (ms vs c compiler)
options.lnt (my options)

edit options.lnt to change user options, like which routines do not return 

pc lint tool
command: c:\u\pclint\lint-nt.exe
arguments -i"c:\u\lint" -u std.lnt env-vc6.lnt $(FilePath) <= vc6
arguments -i"c:\u\lint" -u std.lnt env-vc6.lnt $(ItemPath) <= vc7
initial directory $(FileDir) <= vc6
initial directory $(ItemDir) <= vc7
check "use output window"

entire project, same except
arguments -i"c:\u\pclint" -u std.lnt env-vc6.lnt project.lnt

to test entire project, must have list of all files in project in file project.lnt, 
to do this cd to source dir and do
ls *.c > project.lnt

pc lint options:
-passes(2) or -passes[2] do two passes on the source (section 9.2.2)
-function( exit, cdEXIT ) cdEXIT exits, section 10.1, Function Mimicry (-function)

==================================================================

LC Lint arguments
now called splint

init file in .splintrc
what dir must it go in?

arguments on vs6
command: C:\u\lclint-2.5q\bin\lclint.exe
arguments: -weak -floatdouble -I$(FileDir) $(FilePath)
init dir: $(FileDir)
select use output window

arguments on dotnet
+ignorequals -compdef -retvalint -predboolint -formatconst -realcompare +boolint +charintliteral $(ItemPath) 
init dir: $(ItemDir)
select use output window

==================================================================
unit integration checks:
there are currently two.  The emission line array is tested in routine LineSet1
where a fake emission line with local emissivty 1e-10, label "Unit", wavelength 1,
is passed through the lines arrays.   It is then checked at the end of the calculation
in routine PrtFinal.

a similar test is done with the continuum transfer arrays.  the continuum is actually
defined wth rfield.nflux points, the loops are always up to < rfield.nflux.  In metdif
the local emissivty at [rfield.nflux] is set to 1e-10f, and then passed through the
continuum transfer arrays.  This is also checked in PrtFinal.

the number is actually 1e-10 so that it does not overflow on 32-bit machines.

==================================================================
/* following routine provides a debugging hook into the main line array 
 * loops over whole array and finds every line that matches length,
 * the wavelength, the argument to the function
 * put breakpoint inside if test */
long debugLine( long int length )


==================================================================
photoionization rate:
 * GammaPrtRate will print photo rates for all shells of a ion and element 

==================================================================
trace convergence number
number indicates level of trace, 
 gt 3 includes ConvIoniz
 3 

==================================================================
all changes in code have timestamp like
>>>chng 99 dec 06
no space inside >>>chng but spaces all around date

==================================================================
lint

lclint options
lclint -weak -floatdouble -DSEEK_END <files>
old options -retvalint +boolint $(FilePath)

pclint 

single file "arguments" -i"C:\U\PCLINT" -u std.lnt env-vc6.lnt $(FilePath)

project
	Command:            C:\LINT\LINT-NT.EXE
    Arguments           -i"C:\LINT" std.lnt env-vc6.lnt project.lnt
	Initial Directory   $(FileDir)

    This will require that the file that you are currently editing reside
    in a directory that contains a file called 'project.lnt'.
	ls *.c >project.lnt
