
alpha.f:

	2003.02.21

		-arguments added:
			INTEGER IBETH,IBETH1,IPHI,IPHI1,JORTH,MYID,
				NCOMP,NX,NY,NZ
			INTEGER*2 IOCC(NAT)
			COMPLEX CXALDS(NAT,3),CXALOS(NAT,3),
				CXSC(NAT,3,3),CXSCR1(NAT,3),
				CXZC(NX+1,NY+1,NZ+1,6),
				CXZW(2*NX,2*NY,2*NZ,3+MXMEM)

		-added common block M6/ to get at parameter CMETHD (for 
		 ESELF)
		
		-local variables added:
		 	INTEGER M,N,P (somewhat superfluous)
			INTEGER INFO,MINVIWRK(3)
			REAL SHAPEL(3)
			COMPLEX CX33(3,3),CXRLOC(MXCOMP+1,3),
				MINVZWRK(3)

	2002.02.31

		-fixed common/m6 access so that variable CMETHD is read
		 correctly

	2003.04.24

		-adding to argument list:
		 CHARACTER CSHAPE*6
		 REAL SHPAR(6)

		-added new local variables in double precision to mesh
		 with the GEOM_FACT routine (though geom_fact not included 
		 in DDSCAT v6.01):
		 DOUBLE PRECISION ASHAP(3),LSHAP(3)

	2003.06.20

		-added arguments
		 INTEGER MXNAT,NAT0
		 INTEGER*2 IXYZ(MXNAT,3)

	2003.06.22

		-changed scratch space array to CXRLOC(MXCOMP+1,3,3)
		-changed to tensor treatment for SHAPEL(3,3)
		-added local variable
		 REAL SHAPELT(3,3)

-----------

DDSCAT.f:

	2003.02.19

		-added INCLUDE 'mpif.h'

		-added local variable:
		 INTEGER MPI_COMM_WORLD
		 which must be uncommented *only* if MPI is not being used

		-added local variables:
		 INTEGER IBETH, IBETH1, IERR, MYID, NBETH, NUMPROCS 
		 CHARACTER CMSGNM*70

		-added MPI initialization and finalization calls: MPI_INIT,
		 MPI_COMM_RANK, MPI_COMM_SIZE, MPI_FINALIZE

		-added conditional statements so that the slave processes
		 (MYID!=0) will not write redundant information to files
		 or to the standard output. Also only the master process
		 will read in the input parameters, set up the target, etc.

		-added call to subroutine SHARE1 (in mpi_subs.f)
		 for the master process to share the input/target information
		 with the slave processes

		-added call to subroutine SHARE2 (in mpi_subs.f)
		 for the master process to share the information from 
		 subroutine DIELEC with the slave processes

		-changed loop over orientations so that the different 
		 combinations of angles BETA and THETA are divided up as 
		 equally as possible among the parallel processes. To 
		 accomplish this, combined the loops over BETA and THETA
		 into a single loop over all the possible combinations. For
		 the most efficient division of work among the parallel 
		 processes, NBETH = NBETA*NTHETA should be an integer 
		 multiple of the number of parallel processes.

		-added call to subroutine COLSUM (in mpi_subs.f)
		 to collect the partial sums over target orientation from 
		 the parallel processes

	2003.02.21

		-local variables added:
		 	COMPLEX CXALDS(MXN3),CXALOS(MXN3),CXRLOC(MXCOMP+1,3)

		-updated argument list in call to subroutine GETFML

	2003.04.14

		-changed format line 9045 to match change made in 
		 writesca.f format line 9056

	2003.04.24

		-added CSHAPE,SHPAR to GETFML argument list
		-added SHPAR to SHARE1 argument list

	2003.06.22

		-changed scratch space array to CXRLOC(MXCOMP+1,3,3) 
		

-----------

extend.f:

	2002.04.03

		-changed IF(IOCC().EQ.1) to IF(IOCC().GE.1) although
		 unnecessary because subroutine EXTEND called before
	 	 subroutine DPSURF (doubly unnecessary b/c dpsurf not 
		 included in current incarnation of DDSCAT)


-----------

getfml.f:

	2003.02.21

		-arguments added:
			INTEGER IBETH,IBETH1,IPHI1,MYID,NCOMP
			COMPLEX CXALDS(NAT,3),CXALOS(NAT,3)

		-added calls to REDUCE for the off-diagonal elements
		 of polarizabilities CXALOF. Since this hadn't been 
		 done before, I wonder if there are other locations 
		 in the code where CXALOF is mistreated.

		-updated calls to ALPHA with new arguments.

		-question about the statement (line ~ 340)
		 "Compute dipole polarizabilities for this direction of
		  propagation.  Note that prescription now being used for
		  dipole polarizabilities is independent of polarization of
		  the incident electric field, therefore we need only call
		  ALPHA once for each new direction of incidence."

		-moved first call to ALPHA back inside the loop over the 
		 polarization states - it had been moved out, and the 
		 above statement put in place. But I think the above 
		 statement is incorrect, and the polarizability calculations 
		 do still depend upon polarization state.

		-also commented out calls to subroutine RESTORE, as the above 
		 changes made them invalid. I think that is the only place 
		 the RESTORE subroutine was used.

	2002.04.03

		-changed IF(IOCC().EQ.1) to IF(IOCC().GT.0) in two 
		 locations (but these were commented out, so no change
		 effectively)

	2003.04.24

		-adding to argument list:
		 CHARACTER CSHAPE*6
		 REAL SHPAR(6)

		-updated argument list in calls to ALPHA

	2003.06.20

		-updated calls to alpha to include new arguments mentioned above

----------

nuller.f:

	2003.04.03

		-modified so that only multiplies the quantity to be 
		 nulled by IOCC() when IOCC()==0, so as not to assume 
		 that IOCC() for occupied sites is exactly 1.

----------

reduce.f:

	2003.04.03

		-changed IF(IOCC().EQ.1) to IF(IOCC().GE.1)

----------

version.f:

	2003.02.18

		-changed version from 6.0 to 6.01

----------

writesca.f:

	2003.02.24

		-removed variable DX from the write statements accessing 
		 format line 9030: to be re-added on implementing noncubic 
		 treatment

	2003.04.14

		-changed format line 9056 to allow for errors that would 
		 cause any of Qext, Qabs, Qsca to be negative and still 
		 leave qtable readable

