______________________________________________________________________________ | | | T O P X D | | ==================== | | TOPOLOGICAL ANALYSIS OF EXPERIMENTAL ELECTRON DENSITY | | BASED ON COPPENS-HANSEN MULTIPOLE MODEL | | ------------------------------ | | VERSION 2.0 FEBRUARY 15, 2001 | | ---------------------------------------- | | WRITTEN BY CARLO GATTI & ANATOLIY VOLKOV | |______________________________________________________________________________| MANUALS are in PDF and PS format in subdirectory ./manuals No tests provided yet (Sorry!) NEW!!! Platform- and/or compiler-specific functions/subrotuines (such as TIME and GETENV) are defined in file 'specific.f'. FORTRAN COMPILERS TESTED: ======================================= LINUX Intel: LAHEY/FUJITSU Fortran95 Express - OK Portland Group Fortran77 - OK SGI MIPS ProFortran77 - OK SUN Solaris Fortran77 - OK IBM AIX 4.x XL Fortran - OK DIGITAL/COMPAQ ALPHA Linux Fortran - OK GNU Fortran77 - OK, however some problems have been reported WINDOWS: - More testing is needed TODO: ============================================================ A. INTERFACE BETWEEN TOPXD 3D PLOT SECTION AND XDGRAPH !!!! B. PARALLELIZATION OF THE CODE USING OpenMP AND/OR MPI C. CLEAN THE CODE D. GENERATE SYMETRY EQUIVALENTS OF DUMMY ATOMS OR INITIALLY CONVERT ALL MULTIPOLES TO THE CARTESIAN FRAME WHICH WOULD ALSO ELIMINATE THE PROCESS OF GENERATION OF TOO MANY SYMMETRY-EQUIVALENT MOLECULES E. WHAT ABOUT READING CONFIGURATION FOR 'CHFW' FOR 'DEFV' IN SCAT TABLE ???? THE CONFIGURATION DOESN'T SEEM TO BE READ NOW AT ALL... STRANGE... F. PORTABILITY OF THE CODE, ESPECIALLY FOR WINDOWS COMPILERS MODIFY XDOPEN SUBROUTINE TO BE ABLE TO OPEN ANY FORT.* FILE MODIFICATIONS (MOST RECENT GO FIRST): ======================================== 02/15/01 -------- 1. Fixed small problem in 'gen_eq.f' file 02/14/01 -------- 1. More support for DOS/WINDOWS compilers: under DOS/WINDOWS the output now goes to file 'topxd.out'. However, for DOS/WINDOWS support one has to set the logical variable 'dos=.true.' in 'specific.f' file. Also the platform- or compiler-specific calls to func/subr like 'getenv' and 'etime' can also be adjusted in 'specific.f' file. 2. 'compile.bat' is supplied which compiles the TOPXD using Salford FTN77 PE under DOS/WINDOWS 02/13/01 -------- Misc improvements in the code: 1. Better error printout in XDPROP part and warning messages about dimensions of certain arrays. 2. IOUT has now its own common block IO and initially defined in topmai.f. 3. TOPXD header is printed out as soon program starts. 4. In each subroutine the DATA statements are moved to the end of declaration block. 5. Some cleaning of the code 6. Added support for Salford FTN77 WINDOWS compiler (compile.bat file) However some more debugging using FTN77 under WINDOWS is needed... 02/12/01 -------- The following modifications were made by Louis Farrugia in order to reduce the size of the TOPXD executable and improve the portability of the code: 1. Some very large DATA statements in from_xdprop.f file have been replaced by a new subroutine 'xdinit' called in topmai.f. [2. New subroutine 'xdopen' is written for explicit opening of fort.96 file.] 3. Cleaning the code, especially block data 02/08/01 IMPORTANT!!!!! -------- 1. Fixed important bug : i.e. when reading the scattering factor tables the priority in definition of valence electrons was given to xd.bnk file rather than to the SCAT table in xd.mas file. Thus, for example, for Mn the 4s electrons are defined to be core in xd.bnk but if 4s were defined to be valence in xd.mas file the latter would be just ignored. THIS IS FIXED 2. Also in SCAT table: for 'defv' - all l's were read (i.e., from 0 to 4) so if one just specifies several l's (not all), the definitions would be very wrong. NOW IT IS FIXED 02/(05-08)/01 ------------- 1. Fixed line in trho.f reported by Louis Farrugia 2. New keyword 'IAM' in MISC ... line : MISC rcut dstep (*)au (*)iam IAM - multipole model defined in XD parameter file will be used in TOPXD *IAM - use IAM model in TOPXD analysis, i.e. a. all multipole populations with l>=0 are set to 0.000 b. monopole populations are set to free atom values c. kappa parameters are set to unity 3. Misc improvements in the code 4. Fixed problem with the size of atomic capture spheres if several 'ATBP spheres' lines are specified. Also sizes of capture spheres are printed in TOPXD output now for each atom integration 01/23/01 -------- 1. Fixed problem with atomic labels in lower case which cased mismatch in ATBP part of TOPXD. Now all atomic labels are converted to upper case. 2. Fixed problem with identification of 'MODULE TOPXD' line when reading the input file in subroutine READ_INP. 12/06/00 -------- 1. Fixed problem with "NOT all unique atom pairs being considered" when using 'TRHO pairs' and 'TRHO clusters' instruction(s). Changes were made in subroutine NATUNI in carloxd.f file. The comparison of atomic pairs now includes XD ATOM LABELS instead of just atomic symbols. This is more reliable way to determined unique atom pairs. 2. Fixed problem in PL2D section: when general point is specified too close to the real atom - the real atom is not being shown on the molecular graph (see subroutine PL2DFI and MATXD for more info). 11/16/00-12/04/00 (during and after Carlo Gatti's visit to Buffalo) ------------------------------------------------------------------- 1. Extensive modification of input file. Now all instructions are read from XD.MAS file in free format and there are keywords. 2. Fixed problem with integration of atomic basins on ALPHA platform (problem with initialization of variables) and Lagrangian value on LINUX x86 machines 3. Fixed problems with GNU Fortran77 (FILE UNIT numbers of order of 500 and 700 are not acceptable in GNU Fotran77, even 100 doesn't work) 4. Fixed warning messages about different size of the GRAPH common block in different subroutines (IPAD arrays were used to make sure that the size of the GRAPH common block is the same). It was assumed that each element of IPAD array is 4 Bytes. If your compiler complains about it, then you might want to change the size of those IPAD arrays 5. Significant changes in the OUTPUT file (including printing out atomic labels in most cases) 6. Output parameter related to charge density and its derivatives can be either in atomic units or electrons & angstroms 7. User-friendly interface is written for P2DCRY97 program (new version is called P2DCRY200, i.e. p2dcry00.f and utilplot.f files). It directly reads files created by PL2D istructions in TOPXD and eliminates the need for macro "p2dcry97.m". Just answer the questions asked and your are done. 8. The control over the thickness of pens in hp2xx works in version 3.3.2 (00/02/12) of hp2xx. 9. In PL2D different pen are used for different things. Pen colors can be changed in hp2xx with -c ?????? option. Utilization of pens is explained in p2dcry00.f file and in the manual 11/15/00 (with Carlo Gatti) --------------------------- 1. PL2D part now works, however, some changes were made in the source code of "p2dcry97.f" and "utilplot.f" (included in this directory) so that HP interpreter works fine. The HP interpreter to be used is "hp2xx", which can be downloaded from: http://www.gnu.org/software/hp2xx/ We could not compile the latest version of hp2xx, i.e. 3.3.2, on LINUX machine under Red Hat 6.2, but the version 3.3.1 seems to be working fine. 2. Subrotuine "MATTOP" is removed from "carloxd.f" since is has been completely replaced with "MATXD" 11/14/00 -------- 1. New format for keywords in xd.mas file for MODULE TOPXD is adopted. It is somewhat similar to XD native format, i.e. logical keywords are marked with (*) to be activated. The order of keywords in line is crucial and MUST NOT be changed. The order of lines, however, does not matter. The example: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! MODULE TOPXD ! TITL TEST OF NEW VERSION OF TOPXD DEBG *symequiv *deriv CGEN alim -1 2 blim -2 1 clim -1 3 MISC rcut 6.0 dstep 0.001 *au ! END TOPXD !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (*)symequiv - DO/DON'T create "gen_eq.log" file (*)deriv - DO/DON'T create "debug_rho.log" file dstep XXX - numerical derivative step rcut - as in XDPROP alim, etc - as before 09/12/00 -------- 1. Finally TOPXD reads 'xd.mas' file (instead of 'rho.inp'). 2. CELL, LATT and SYMM instructions are read as in XD (i.e. from the general instruction section of 'xd.mas' file). 3. SYMM instructions can be specified as in XD using either one of the format 4. TOPXD specific instructions which used to be in 'rho.inp' file are now in MODULE TOPXD....END TOPXD section (as for other modules,XDPROP, XLDSM etc) of 'xd.mas' file. One instruction per line in any order... 09/09/00 -------- 1. I've tried to fix the problem with atoms in special positions. It seems to be working for Jozef Kozisek's Cu complex but definitely more testing is needed. 2. New keyword for input file: ELOG --> create or don't create the 'gen_eq.log' file with extensive info about symmetry-equivalents (default is DON'T generate this file). 3. Manual update 03/28/00 -------- 1. For IAUTO=2 or 4 the input coordinates can be either in XD global cartesian coordinate system (Angstroms) or in fractional coordinates on conventional cell depending on the value of the new variable ICUNIT (0 or 1 respectively) 03/26/00 -------- 1. Most of CRYSTAL98 parameters in the topxd.inc file are gone... 2. Added 'mk.generic' file 03/17/00 -------- 1. Added file mk.sun for SunOS fortran compiler. 2. Fixed problem with LIM016 (max number of atoms in the unit cell). Now it prints out the error message in XDINT if number of atoms in the unit cell is greater than LIM016. 03/13/00 -------- 1. Fixed problems with reading the dummy atoms from xd parameter file. 03/01/00 -------- 1. This version of TOPXD allows the use of "GHOST" atoms as was suggested by Tibor. The "GHOST" atoms are identified by the presence of the letter "G" or "g" inside the brackets of the atomic label, i.e. atoms O(1G) and N(2Ag) will be treated as "GHOST". The "GHOST" atoms will have NO CORE CONTRIBUTION to the total density and the corresponding free atoms will NOT be subtracted from deformation density. Information on GHOST atoms can be found in 'xdprep.log' file (it is a "must check" file anyway). 02/29/00 -------- 1. Now in radial function n values up to 30 can be used. It is defined by parameter NMAX. All modifications have been made according to Tibor's instructions for XDPROP: ------------------------------------------------------------ XDPROP Routines in XDPROP.F (XDPROP), RHO.F (BINOM,DIPOLE,FACTAL,PVAR,QPOLE,RADLFN,RHOJ,ROTATE,STO) and POT.F (HFMONO,PHDEF,PHC) which have the COMMON/FACTOR/ have to be modified: PARAMETER (NMAX=30) COMMON/FACTOR/fact(0:nmax+2) In addition, in XDPROP.F the CALL FACTAL should be CALL FACTAL (nmax+2) 02/28/00 -------- 1. Misc fixes in files read_inp.f and read_par.f according to error tracing in LF95 executables. 2. Fixed loop in MAITOP in file carloxd.f 02/16/99 --------- 1. Now when IAUTO=4 is selected the RMAXS=10.D instead of 20.D0 otherwise there are too many neighbours to be evaluated in subroutine "matxd". 2. For IAUTO=4, when JUNIT = 1 then all output is in ELECTRONS and ANGSTROMS, including the distance, RHO, LAP and L3 in the log file. IF JUNIT=0 all output is in AU (carloxd.f). (Format statements 1205 and 1206 have been changed) 3. For PC/LINUX G77 executables always give error when running, however LAHEY/FUJITSU FORTRAN95 seems to be ok 4. COSD function is eliminated from code from function "fdist". 11/26/99 -------- 1. added TITL keyword to 'rho.inp' file and the job title is also printed in TOPXD output