*********************************************************** Brief history of SAPT package updates =========================================================== Developers: please append description of all your changes to the end of this file with dates *********************************************************** Symmetry-Adapted Perturbation Theory FORTRAN code (SAPT95) =========================================================== -- Date -- -- Revision -- -- Version -- -- revised -- -- logged by -- -- number -- ** October 1993 SAPT_1.0 Accepted by METECC code repository. Reference: B. Jeziorski, R. Moszynski, A. Ratkiewicz, S. Rybak, K. Szalewicz, and H.L. Williams ``SAPT: A Program for Many-Body Symmetry-Adapted Perturbation Theory Calculations of Intermolecular Interaction Energies" in Methods and Techniques in Computational Chemistry, Volume B, Medium-Size Systems, edited by E. Clementi, (STEF, Cagliari 1993), p.79. Note: For information on running these programs, see "Input/Output Documentation" in the same reference. ** June 21, 1995 KSZ SAPT95_2.0 Extensive optimization performed by Staszek Kucharski on most time consuming routines. Modification of E^22_disp triples subroutine by Paul Wormer and Bogumil Jeziorski and introduced by Krzysztof Szalewicz. ** October 15, 1995 HLW SAPT95_2.1 _beta_ Major Changes: Added extensive changes to transformation program for monoplus methodology. Added g94 interface for SGI-PC computers. Added examples subdirectory for testing and benchmarking. Made changes to the main script. ** June 12, 1996 KSZ,HLW SAPT96 Major Changes: Added optimizations by Staszek Kucharski of E12exch component Extensive modifications of output by KSZ including improved summary table Added rewrite of e111exch by HLW Further modifications to transformation to allow monoplus method to be used with gaussian Changes to SAPT script ************************************************************************* SAPT2000 updates (information missing yet) ************************************************************************* ************************************************************************* This portion of the file lists updates with respect to the last version of SAPT2000 ************************************************************************* Changes made by Wojtek Cencek in connection with his new CC code Date: ????????????? ******************************************************************** TRAN -------------- atmtr.F: - fort.72, fort.72.1, fort.72.2,... changed to f72.000.001, f72.000.002,... (variables namefinal, namefinal1,namefinaln) io.F: - final2e, final2e2, ... changed to f2e.000.001, f2e.000.002, ... (variable f2enames) - added subroutine nr2asc converting a number to the corresponding string trans.F: - final2e changed to f2e.000.001 - file 'nfiles' is always created, even if TWOGIGAMAX is not defined (needed by the cc interface) SAPT -------------- b.F: - subroutine getamp eliminated: replaced by newget (new file format) m.F: - final2e, final2e2, ... changed to f2e.000.001, f2e.000.002, ... (variable f2enames) - common /amplts/ added (i/o numbers of amplitude files) - arrays locs,locd contain now the i/o numbers of the new amplitude files instead of interma record numbers; the new i/o routine (newget) uses this information - added subroutine nr2asc converting a number to the corresponding string e13.F: - subroutine gampoovv replaced by new version (new file format) e2.F: - subroutine gampvovo replaced by new version (new file format) e22t94.F: - subroutine gampvvoo replaced by new version (new file format) chf.F: - final2e, final2e2, ... changed to f2e.000.001, f2e.000.002, ... (variable f2enames) getamp.F (new file): - contains new i/o subroutines CC ------------ Extensive changes including: - the source is built around the parallel version; program runs in the sequential mode unless compiled with the -DUSEMPI option - instead of one large direct access interma (intermb) file, each intermediate/amplitude type is stored in a separate sequential file; name like ixijkl_o.000 refers to an intermediate of the type ixijkl from the odd-numbered iterations; sapt only needs locd* and locs* files - getamp/putamp and all other complicated i/o stuff (ampinf,mapda etc.) are replaced with two very simples routines newget/newput - sorting of v^3o integrals is now a separate program (sort) - integrals <= v^2o^2 are extracted from final2e (now f2e.000.001), sorted and written to sequential files by a separate program called 'int' - all the calls to get2el within cc are replaced with the calls to newget MISC ------------ A new directory misc/ccintf contains two interfaces between tran and cc: 'int' extracts and sorts various types of 2-el integrals (<=v^2o^2) from final2e (now f2e.000.001); 'sort' sorts v^3o integrals and puts them in ccsorta.000.001, ccsortb.000.001 ************************************************************************* Changes made by R. Bukowski when porting the code to SunOS strauss.udel.edu 5.9 Beta sun4u sparc SUNW,Sun-Fire Date: Nov. 18, 2002 ************************************************************************* The following changes were made to make the package run on our SUN (strauss). The most important issue is that Fortran 90 had to be used in order to process the INTEGER*1 variables, and the unpacking routines had to be slightly reworked. atmol1024: ---------- 1. f90 does not like the way bit operations have been used until now. The constructs of the type iand(ijkl2(iw),imask) where imask=255 is integer*4 and ijkl2 is integer*1 had to be replaced by ijkl24 where ijkl24 is a result of the substitution ijkl24 = ijkl2(iw). Thus, in scf.f each line similar to ij=ibits(ijkl(iw),20,12)+ishft(iand(ijkl2(iw),imask),12) is now replaced by two lines ijkl24 = ijkl2(iw) ij=ibits(ijkl(iw),20,12)+ishft(ijkl24,12) The problem with f90 is that both arguments of iand have to be of the same length. It has not been tested whether or not this projection method will work on other systems, but it does not matter, since these other systems use different preprocessor paths anyway. 2. forsgi.f has been renamed to forsgi.F and the preprocessor path has been added for SUNF90 with a new timing routine (CPUTYD_) based on the ETIME function. Makefile.sgi and Makefile.sunf90 (newly created) were modified accordingly. All this because mclock routine is not available on SUN. 3. Makefile.sunf90 has been created, with the compilation command f90 -c -O5 tran ------ 1. In unpack.F, the special SUNF90 path has been created with the SUNF90-specific routines unpack10 and unpack10a. See p. 1 of atmol1024 remarks. 2. f90 does not like shorthand data initializations of the type logical first/.true./ Statements of this type in ATMINI and ATMININEW have been replaced by logical first data first /.true./ 3. The compilation options for tran (and the rest of SAPT2002 for now) have been set to -fast. This last option makes it possible to use blas routines through -xlic_lib=sunperf linker option. 4. The f90-specific memory allocation has been employed, looking like #ifdef DYNAMALLOC #ifdef SUNF90 REAL cr(:) ALLOCATABLE cr #else POINTER (iptr,cr) DIMENSION cr(1) #endif #endif in the declaration stage and the following lines instead of malloc: #ifdef SUNF90 allocate (cr(memtran)) if(allocated(cr)) then write(6,*)'f90 allocated',memtran,' words' else write(6,*)'f90 allocation failed' endif #endif 5. The old mysterious problem of the itype matrix being overwritten after a call to atmtr (which has been suppressing transformations of some integral types) has been tracked down to the fact, that the common BLKINN, used to read the records of ATMOL1024 integral file, was too short. The GET entry of the FIND routine in atmio.f assumed that this common to be 511*8=4088-bytes long, whereas in reality it only had 312*(8+4+1)+4=4060 bytes. To fix this problem in the transformation, a fake 7-element integer*4 matrix has been added to the common BLKINN in atmtr.F (it should carry over to the other points in the program where BLKINN is used). In principle though, this problem should be fixed at the level of ATMOL1024, where it first occurs when the integral records are written by integw. Each such record now seems to contain 28 useless bytes (in addition to the usefull stuff, of course). The reading performed in SCF seems not to be affected, either, since in scf.f the common BLKIN is large (at least 1024*real*8 ) due to some other functions it performs. Only in tran the common BLKINN was too small. 6. Timing routine: the SUNF90 option added to timit portion using the "etime" mechanism. Somewhat similar to the analogous change in atmol1024, ccsdt, and sapt modules. ccsdt program and interfaces (misc/ccintf/sort,int) --------------------------------------------------- 1. The unpack10 routine in sort.F and stuff.F has been given a SUNF90 path, as described above. 2. In int.f, it was detected that the dynamically allocated matrix tab1 was not declared in the dimension statement (a matrix tab was declared instead). While this was probably incosequential even on SGI, it has been corrected after consultation with Wojtek. 3. The SUNF90 memory allocation has been introduced in int.F, and the SUNF90 option has been added to the list of platforms for which the malloc-type set of proceure calles is executed. 4. The file unpack.F in ~cc equipped with the SUNF90 path. 5. In whole.F, the function SECOND has been augmented with the ETIME-based option valid for DECALPHA, SUN, and SUNF90: c----------------------------------------------------------------------- #ifndef LINUX REAL FUNCTION second() #if defined(DECALPHA) || defined(SUN) || defined(SUNF90) real*4 tarray(2), etime second = etime(tarray) #else second = float(mclock())*1.0E-2 #endif RETURN END #endif 6. In newr.F, subrotuines readbf1 and readbf2 are never used. The common /info/info(6),inf present in these routines conflicted with with the function info declared in whole.F. The common in these routines has been commented out. Discuss with Wojtek what these routines are for. 7. F90-style memory allocation done in mcc.F, similar to that in tran and ~/misc/ccintf/int.F. Compall script: ---------------- 1. An new target added, sunf90, causing a definition -DSUNF90, recognized by the preprocessor. The additions for the FFLAGS made where appropriate. 2. SUN (and at least Strauss) does not like a ";" after the BEGIN statement in awk, i.e., all statements of the type awk 'BEGIN {n=0}; /MAIN_SAPT_DIR=/ {n=1}; { if( n == 0) print }' SAPT > ooo had to have the ";" removed from after "BEGIN {n=0};". 3. FFLAGS and LDFLAGS for f90 have been set to -fast. It defaults to -dalign -depend -fns -fsimple=1 -ftrap=%none -libmil -native -nofstore -O4 -xlibmopt Out of these options, the important ones seem to be -dalign (enables the use of -xlic_lib=sunperf for blas routines), -O4 (optimization; there is also a -O5, however), and -ftrap=%none (prevents arithmetic exceptions from stopping the program). Different compilation options should be tried, possibly leadnig to a faster code. 4. At the end of Compall, added update of permissions (a+r, a+rx) for all important files. sapt module ------------- 1. The file unpack10.F updated with the SUNF90 paths for unpack10, unpack10a, and joinindx. 2. Sun's fortran does not like a "d" as an optional comment character in first coulmn. There is no compiler option which would activate such lines. The "d" comments have been replaced by the regular "c" ones in e12.F, e3.F, e4.F, e122.F, e14.F, e1s.F, e13old.F. 3. F90-style memory allocation done in m.F, similar to that in tran and ~/misc/ccintf/int.F, and ccsdt/mcc.F. 4. Compilation of sapt with -O5 -dalign (i.e., no -ftrap=%none), tried initially before -fast was finally adopted, resulted in some random "arithmetic exception" errors in E13_pol_resp code, occurring generally at different places (different monomers, for example), but seemingly around calls to readen procedure. This (and the earlier problems with E13 and E21 fixed by Konrad) may still indicate some kind of error in these routines.... 5. Procedure gampvvoo from e22t94.F (not used now) has been renamed into gampvvoo_old. It has to be in the file, since when it is commented out, interanl compiler error occurs on AIX. Clean script ------------ modifeid to really clean up after cc (rmve macro didn't work with multiple wildcards). ************************************************************************* Changes made by W. Cencek: correction to memory allocation in cc Date: Nov. 22, 2002 (e-mail from WC put in by RB - more detailed explanation pending) ************************************************************************* I fixed the error discovered by Isaac in He2 calculation on strauss. In cc, some obsolete memory checks (for nonexisting routines) were made, which caused the program to stop the execution for cases with large v compared to o. ************************************************************************* Changes made by R. Bukowski to Compall script (mostly for SP3 brainerd) Date: Nov. 22, 2002 ************************************************************************* -Error fixed in the part setting permissions. In the case atmol1024 directory is not present, the script will no longer make the entire disk executable, as it happened to Alston. -Clean script again: wildcards do not work with rmve function anyway. Relaced by rm -f in all such cases. -Proper way of passing definitions to the C preprocessor on AIX has been in IBM documentation and implemented. The compilation line should look like xlf -c -O file.F -WF,-DIBM32,-DDYNAMALLOC i.e., the arguments are passed using the -WF option (W passes arguments and F stands for the cpp preprocessor), and no spaces are allowed in the string being passed (use commas instead). The separate preprocessing has been removed. -a variable CFALGS has been introduced in Compall right before compilation of Wojtek's cc interfaces to allow flawless compilation of malloc.c for int and ccsdt. CFLAGS=-64 for SGI -q64 for 64-bit IBM, and is empty for other systems. -on brainerd, LDFLAGS had to be updated with -q64 option before linking interfaces -atmol1024 compilation changed to allow 64-bit. ibm32 and ibm64 makefiles introduced in atmol1024 directory and lib_IBM. -HOWEVER, THE malloc ROUTINE IN tran (and possibey also in other modules) STILL DOES NOT WORK CORRECTLY in 64-bit mode. The allocation seems to succeed, but the first attemt to write to cr results in segmentation fault. Did not occur in the test program though... Possible we will have to use the f90-style memory allocation, like in sunf90 case. On brainerd, the code tested only on the BER example with atmol and in the 32-bit mode. -BLAS='-lbals' wouldn't work on brainerd, replaced by -lessl ************************************************************************* Cosmetic changes made by R. Bukowski Date: Dec. 4, 2002 ************************************************************************* -remnants of a "d" in first column removed from atmtr.F (wouldn't compile on strauss with teh CADPAC=YES activated). -error-like looking debug messages removed (commented out) in trans.F. ************************************************************************* Changes made by R. Bukowski Date: Jan. 24,25 2003 ************************************************************************* -unpacking of Gamess integrals in atmtr.F, ptrans.F (presort) done with a call to the universal procedure unpckgms containing algorithm consistent with the latest (14JAN2003) version of Gamess. Unnecessary Gamess declarations removed from the atmtr, psort modules, only commented out for now... (not needed any more if unpacking done by unpckgms). -inserted "' '" into FFLAGS for compilation of gamsintf. -in the script Clean more remnants of Gamess are now being removed: rm -f *.DAF rm -f *.dat rm -f ooo Corections introduced to make transformation run correctly with Gamess compiled with -i8 option on SGI (sgi64) ---------------------------------------------------------------- -proper GAM8 paths have been added in atmtr.F (atmtr) and memory.F in the parts allocating memory for the idib buffer. In the case of GAM8, this buffer contains linreg I*8 numbers and is therefore represented by linreg real*8 numbers, in contrast to the I*4 version of idib. In the case of the MEMORY routine, the calculation of the boundary i13 (both for in- nad out-of-core variants) for the tr1 routine is not that important (since no other matrix follows idib on the parameters list of tr1), but turned out to be crucial in atmtr. -to make tran work with Gamess compiled with -i8 option, both -DGAM8 and -DSAPT4GAM8 must be set in Compall. These two options are redundant and should be replaced by one in the future. -matrix IX in routines PREAD, PREAD1, and PREAD2 has been declared as I*8 in the GAM8/SAPT4GAM8 path. -if Gamess compiled with I*8, the interface gamsintf must be also compiled with option -i8. However, the variable NH in gamsintf.F has to be projected onto NH4 (of the type I*4) before being written to onela.data and onelb.data, since tran expects this variable to be only 4 bytes long. gamsintf.F has been modified in this way. -Compall updated for the automatic GAM8 kind of compilation. A new user-defined variable GAMSI8 has been added after the modified comment about the I*4/I*8 issue with Gamess. This variable defaults to 'NO' and the user is asked to change it to YES if his/her Gamess version was compiled with I*8 option. If GAMSI8 is set to YES, then GMA8 and SAPT4GAM8 options are defined for the compilation of transformation, and the -i8 option (variable I8DEFS) is added to compile gamsintf. It is still assumed that on ALHPA -i8 is a default with GAMESS. -Also, remember to update TARGET in runGAMESS. <----- up to the user, as described in the manual. ************************************************************************* Changes made by R. Bukowski Date: Mar. 2 2003 ************************************************************************* Changes made to Gamess interface and transformation to make full use of the ISHPER=1 option of Gamess. The infoX.data files and loops in all codes (wherever allowed) adjusted to the fact that for ISPHER=1 the total number of molecular orbitals is smaller than the size of Cartesian basis. -in gms_awk1 script, add a line /A =/ {print $NF } This will extract the true size of the variational space from Gamess output. -in gamsintf.F, after the number of atoms NAT is read from unit 5, add the reading of the "true" basis size: read(5,*) NT ! number of basis functions in variational space Then the true number of virtual orbitals has been computed from nocc and NT and the command writing the orbital info into the INFO file has been modified as WRITE(INFO,*) NT, Nocc, Nvir, N -change the declaration of the iparm matrix in COMMON/parms/ to iparms(0:9) everywhere in ./tran/*.F. -the lines around the reading of infoa and infob in ptrans.F modifed by adding the special route for Gamess and somewhat different assignment of iparms matrix: if(isitgamess) then c ndimva, ndimvb, are true numbers of virtual orbitals READ (infoa,*) nmdimat,nmoca,ndimva,nmdima READ (infob,*) nmdimbt,nmocb,ndimvb,nmdimb else READ (infoa,*) nmdima,nmoca,ndimva READ (infob,*) nmdimb,nmocb,ndimvb nmdimat = nmdima nmdimbt = nmdimb ! needed for the 1-el transformation endif C --- Fix system parameters in common block parms. iparms(0) = 0 iparms(1) = 1 iparms(2) = nmoca iparms(3) = nmoca+1 iparms(4) = nmdimat iparms(5) = nmocb iparms(6) = nmocb+1 iparms(7) = nmdimbt iparms(8) = nmdima ! nneded for the igetlda routine, e.t.c. iparms(9) = nmdimb -below, in the MCBS path, separate reading on ntot is necessary for GAMESS, like READ (infoa,*) n_dum,n_dum,n_dum,ntot since the "Cartesian" ntot is written at the end of the record. -in the call to onel routine, the arguments nmdima and nmdimb replaced by the "true" basis dimensions, nmdimat and nmdimbt -in ptran.F, function igetlda, change the lines IF (iflag.EQ.0) igetlda = iparms(4) IF (iflag.EQ.1) igetlda = iparms(7) into IF (iflag.EQ.0) igetlda = iparms(8) IF (iflag.EQ.1) igetlda = iparms(9) which will substitute the proper leading dimension of the vector matrix, where needed. -in procedure mkoffset, change iparms(4) into iparms(8) and iparms(7) into iparms(9). -the same in procedure tr1, where the canonical order of indices is established and the canon routine is called, as well as in procedure chkitype. In tr3, in the call to dgemv, change iparms(7) into iparms(9) in both places. -no changes needed in cc interfaces, pcc, or psapt. The whole PTRAN3 tested on the ArHF_T DCBS example with ISPHER=1. ************************************************************************* Changes made by R. Bukowski Date: Mar. 3/4/5/6/7 2003 ************************************************************************* -incorporated Wojtek's changes to cc (WC's LOG file folloows): data.F: define TWOGIGAMAX if LINUX is defined data.F: zdata: defaults 'toliter=1.0D-5' and 'vcrit=0.d0' set; printout related to 'toliter' changed; NRECMAX is set to 65420 or 2**30, depending on TWOGIGAMAX before it was always 65420 which was causing crash if TWOGIGAMAX was not set; double.F: energy: relative (not absolute) energy compared with 'toliter'; energy in each iter printed with changed description; ccm2.F: result: energy printout header changed; whole.F: get2el: a commentary added (about TWOGIGAMAX); bin/SAPT: cleaning of cc files added after cc finishes bin/misc/ccintf/int.F and sort.F: define TWOGIGAMAX if LINUX is defined; NRECMAX is set to 65420 or 2**30, depending on TWOGIGAMAX before it was always 65420 which was causing crash if TWOGIGAMAX was not set; -added Victor's E1_elst(CCSD): ------------------------------ -added Victor's files e1pol_linear.F, e1pol_quad.F, e1polcc_auto.F to the ./sapt directory. Updated the file m.F (in that dir) with Victor's lines (marked as VFL). These are just calls to his routine and some comments and outprints. In particular, the new correction is saved as "values(116)". -in Compall, added the following to the list of sapt objects: OBJ=$OBJ'./sapt/e1polcc_auto.o ./sapt/e1pol_linear.o ./sapt/e1pol_quad.o' In Victor's verison of Compall, there was one more file, ./sapt/ramp.o, but it is not found in what Victor sent me, so I just skipped this for now. We'll see what happens. -a new logical variable, E1CC, had to be added to namelist INPUTCOR in all modules. This is what turns on the E1_elst(CCSD) correction. Added in: ./sapt/m.F, ./cc/data.F (namlist inputcor in this file made consistent with the rest of the code and the logic related to new variables SAPT0, SAPT2, SAPT4 and SAPT added to routine "howmany"; this has been lost somewhere on the way), trans.F. The E1_elst(CCSD) correction will be computed only in CONVAMP and E1CC are set to true in the namelist INPUTCOR. My suggestion is that E1CC is not mentioned yet in the manual. Currently, if computed, E1_elst(CCSD) will show up in the summary table, but it will not be a part of any "total" result. -The paths turned on by the SAPTx variables of INPUTCOR have been modified not to include any nonrelaxed corrections, except for nonrelaxed induction, since eex2=T is necessary to compute E(20)_disp. This required commenting out of the corresponding lines in the "if" blocks around SAPTx in ./sapt/m.F. ./cc/data.F, and ./tran/trans.F. Also, in ./sapt/m.F, the SAPT_SCF and \delta_HF variables (relaxed or nonrelaxed) will only be printed if induction and exch-induction have been calculated at the appropriate level (otherwise the number reported didn't make sense). -added rm -f *.F* and rm -f *.INP in the GAMESS portion of Clean, and rm -f fort.3* in transformation portion -changed names of Alston's CADPAC-related scripts (also inside the scripts): dosapt -> doSAPT_CADPAC runsapt -> SAPT_CADPAC runcadpac -> runCADPAC Have to make Alston describe all these scripts and how to run SAPT with CADPAC. -renamed RunlotATMOL1 into RunlotATMOL and improved comments in the beginning of this script. Changed RunlotATMOL1 into RunlotATMOL in the Compall script. -added scripts ~examples/GAMESS/runtstGAMESS and ~examples/ATMOL1024/runtstATMOL to automate the running of examples. Added configuration of these scripts to Compall. -minor changes in in e1pol_quad.F: calls to alarm replaced by calls to alarm0 (since alarm is an intrinsic of g77); constructs of the type TENERGY=TENERGY+ENERGY* -2.00000000 were causing syntax errors on IBM. Replaced by TENERGY=TENERGY-2.d0*ENERG -in e1pol_linear.F, removed ndx79 from the EXTERNAL declaration (not used anywhere elase and was causing problems under g77). ##### !!!!!!! -noticed (on the ArHF_DCBS example), that triples in E22_disp take exceptionally longer on mp11 than on o2k or strauss. Also, the tmp file on mp11 seems to about 1.5 times bigger.... Will have to look at this closer. Conclusion: longer times appatently caused by the suspiciously looking blas. No such problems occur on, say, casimir2, where blas is installed centrally. ##### !!!!!!! -commented out the call to S_FILE in atmio.f to prevent aborts on IBMs and SUNs in cases where files exceed 2GB. -in gamsintf.F, number of occ/vir/tot orbitals are now printed out into the info.data file using format '(4i7)'. This way, the additional (4th) number does not end up in the next line when gamsintf compiled with -i8 option. -removed ";" from the first line of gms_awk2 (would not work on strauss) and tested everywhere. -slightly changes directory structure: subdir fringes created to store some stuff we want to keep in CVS but not include in the distribution. Directories fccsdt, e2d, and READMES_MAILS moved to fringes. cc_old (contains cc with factorizable options) renamed to cc_SAPT2000 ans also moved to fringes. The fringes directory should be removed after checking out from CVS but before putting stuff on the web. -renamed UPDATES.log to UPDATES (".log" apparently was causing some problems on the web page). -a stupid misprint with idummy/jdummy matrices in ./sapt/m.F fixed which would mix up the atom sequence in Summary Table on systems other than Linux. ************************************************************************* Changes made by A. J. Misquitta Date: May 1 2003 ************************************************************************* 1) The keywords CHFDISP and CHFIND have been added to the NAMLIST input. These options are to be used when the CKSDISP code is used to calculate either the DISPERSION and/or INDUCTION in either the CHF or CKS approximations. See details in the documentation of the CKSDISP code. FILES CHANGED: ./tran/trans.F ./cc/data.F ./sapt/m.F 2) On older LINUX systems (Redhat 6 and 7) the infoa,b.data files needed to be read (and possibily writted) with a set precision using the FORMAT statements as the default accuracy was not sufficiently high and monomer geometries were not quite the same as on the SGI machines. However, on newer LINUX machines (Redhat 8) the FORMAT reads were causing problems. I've removed them. FILES CHANGES: ./tran/trans.F ./sapt/m.F ************************************************************************* Changes made by A. J. Misquitta Date: June 16th 2003 ************************************************************************* Changes to scripts doSAPT_CADPAC, RunlotCADPAC, SAPT_CADPAC and runCADPAC to allow for more intelligent runs and for running the CKSDISP code. The CKSDISP code can now be run using the command: RunlotCADPAC CKSDISP See RunlotCADPAC for more details.