Compiling the code.ΒΆ
Once you have procured the code from repository. Go to the directory containing sources and edit makefile to suite for your platform. A number of routines in NRLMOL were written in mid and late eighties and require static allocation of arrays. The code needs to compiled for appropriate array sizes for the system under study. These parameters are listed in file called PARAMS. Please change them to your needs and compile the code by typing make at the command line.
To compile serial version uncomment the line
./condcomp < $*.ftn > $*.f
To compile MPI version uncomment the line ./condcomp -DMPI < $*.ftn > $*.f
To compile MPI with SCALAPACK uncomment the line ./condcomp -DMPI -DSCALAPCK < $*.ftn > $*.f
If you are a beginner, he serial option is probably the best for you. TIP You will need the BLAS and LAPACK to compile the code. It is highly recommended that you use optimized BLAS and LPACK libraries if they are available to you. Examples of these are vendor provided libraries, e.g. MKL libraries by Intel or GotoBLAS library. In the limited set of tests, it was found that the performance of the code is best with MKL libraries. However linking MKL libraries can be difficult. Use the examples from the Makefile.
An example PARAMS file containing parameters used is listed below for your convenience with explanation of parameters.
C
IMPLICIT REAL*8 (A-H,O-Z)
C
C ***************************************************
C THESE ARE THE PARAMETERS THAT SHOULD BE ADJUSTED *
C ***************************************************
C
C MX_PROC: MAXIMUM NUMBER OF PROCESSORS (ONLY RELEVANT FOR MPI)
C
PARAMETER (MX_PROC=32)
C
C MXSPN: 1 FOR SPIN UNPOLARIZED, 2 FOR SPIN POLARIZED
C
PARAMETER (MXSPN=2)
C
C MAX_PTS: MAX. NUMBER OF MESH POINTS
C
PARAMETER (MAX_PTS=850000)
C
C MAX_FUSET: MAX. NUMBER OF FUNCTION SETS
C
PARAMETER (MAX_FUSET=1)
C
C MAX_IDENT: MAX. NUMBER OF INEQUIVALENT ATOMS
C
PARAMETER (MAX_IDENT=50)
C
C MX_CNT: MAX. NUMBER OF EQUIVALENT ATOMS
C
PARAMETER (MX_CNT=380)
C PARAMETERS NEEDED FOR LBFGS... (?)
PARAMETER (MXATMS=MX_CNT, NMUPMAX=7)
C
C MAX_BARE: MAX. NUMBER OF BARE GAUSSIANS PER ATOM
C
PARAMETER (MAX_BARE=20)
C
C MAX_CON: MAX. NUMBER OF CONTRACTED FUNCTIONS PER ANGULAR MOMENTUM
C
PARAMETER (MAX_CON=10)
C
C MAX_OCC: MAX. NUMBER OF OCCUPIED STATES
C
PARAMETER (MAX_OCC=2500)
C
C MAXUNSYM: MAX. TOTAL NUMBER OF CONTRACTED ORBITALS FOR ONE ATOM
C
PARAMETER (MAXUNSYM=50)
C
C NDH: MAX. DIMENSION OF A BLOCK MATRIX TO DIAGONALIZE
C
PARAMETER (NDH=3500)
C
C NDH_TOT: MAX. NUMBER OF NONZERO ELEMENTS FOR HAMILTONIAN
C
PARAMETER (NDH_TOT=NDH*(NDH+1)/2)
C
C MX_GRP: MAX. NUMBER OF GROUP OPERATIONS.
C
PARAMETER (MX_GRP=1)
C
C MAX_REP: MAX. NUMBER OF IRREDUCIBLE GROUP REPRESENTATIONS
C
PARAMETER (MAX_REP=4)
C
C MAXSLC: MAX. NUMBER OF SALCS ON A SHELL
C SALC = SYMMETRY ADAPTED LINEAR COMBINATION OF GAUSSIANS
C SHOULD BE EQUAL TO MAXUNSYM*M WHERE M IS THE MAXIMUM NUMBER
C OF EQUIVALENT ATOMS CORRESPONDING TO ONE INEQUIVALENT ATOM
C
PARAMETER (MAXSLC=1500)
C
C PARAMETERS DEPENDING ON THE CURRENT POINT GROUP
C LOCMAX SHOULD BE EQUAL TO 6*M WHERE M IS THE MAXIMUM NUMBER
C OF EQUIVALENT ATOMS CORRESPONDING TO ONE INEQUIVALENT ATOM
C MAXSYMSALC SHOULD BE EQUAL TO THE SUM OF ALL DIMENSIONS OF
C ALL REPRESENTATIONS (32 FOR IH, 20 FOR OH)
C
PARAMETER (LOCMAX=720)
PARAMETER (ISMAX=18)
PARAMETER (MAXSYMSALC=32)
C
C MXRPSP: MAXIMUM NUMBER OF RADIAL POINTS FOR INTEGRATION OF
C NONLOCAL PART OF PSEUDOPOTENTIAL
C
PARAMETER (MXRPSP=100)
C
C MXPTAB: MAXIMUM SIZE OF TABLE FOR TABULATED PSEUDOPOTENTIALS
C
PARAMETER (MXPTAB=100)
C
C MXLPSP: HIGHEST ANGULAR MOMENTUM ALLOWED FOR NONLOCAL PART OF
C PSEUDOPOTENTIAL
C
PARAMETER (MXLPSP=2)
C
C
C MXKPT: MAXIMUM NUMBER OF KPTS IN FORMFAK
C
PARAMETER (MXKPT=1)
C
C ***************************************************************
C THE OPTIMUM SETTING FOR THESE PARAMETERS IS MACHINE-DEPENDENT *
C ***************************************************************
C
C MPBLOCK: BLOCK SIZE FOR GENERAL TEMPORARY STORAGE
C
PARAMETER (MPBLOCK=100)
C
C MXPOISS: BLOCK SIZE IN POISSON1 AND COUPOT1
C
PARAMETER (MXPOISS=100)
C
C NSPEED: SMALLER BLOCK SIZE TO SPEED UP DENSITY EVALUATION
C A BLOCK OF SIZE MPBLOCK WILL BE BROKEN UP INTO BLOCKS
C OF SIZE NSPEED
C
PARAMETER (NSPEED=25)
C
C *************************************************
C THESE PARAMETERS USUALLY DON'T NEED ADJUSTMENTS *
C *************************************************
C
C LDIM: SIZE OF HIGHEST IMPLEMENTED ANGULAR MOMENTUM (S=1, P=2, ETC)
C DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
C
PARAMETER (LDIM=3)
C
C CUTEXP: CUTOFF FOR EXPONENTIALS (EXP(-CUTEXP) IS VIRTUALLY ZERO)
C
PARAMETER (CUTEXP=40.0D0)
C
C MX_SPH: MAX. NUMBER OF SPHERES FOR MESH POINTS
C
PARAMETER (MX_SPH=MAX_PTS/100)
C
C MAX_VIRT_PER_SYM: MAX NUMBER OF STORED ORBITALS PER REPRESENTATION
C
PARAMETER (MAX_VIRT_PER_SYM=NDH/3)
c PARAMETER (MAX_VIRT_PER_SYM=400)
C
C MAXIMUM NUMBER OF GAUSSIANS FOR STARTING POTENTIAL FIT
C
PARAMETER (MAXGFIT=15)
C
C MAXIMUM NUMBER OF GAUSSIANS FOR GENERAL LEAST-SQUARE FITS
C
PARAMETER (MAXLSQF=50)
C
C TEMPORARY STORAGE IN OVERLAP
C
PARAMETER (MTEMP=75000)
C