forked from molscat/molscat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
85 lines (72 loc) · 4.55 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
This release contains the following files:
1. Fortran source code files ending in .f or .f90, which contain the code
needed to construct basic executables for MOLSCAT, BOUND or FIELD,
together with some additional source code files needed to produce variants
of MOLSCAT, BOUND or FIELD with special-purpose basis-set suites and/or
potential routines, used for the example calculations outlined in the
documentation. These are contained in the directory source_code
2. A makefile (GNUmakefile) which may be used to make the MOLSCAT, BOUND
or FIELD executables used for the example calculations. This is also
contained in the directory source_code
3. All the input data files used for example calculations in chapter 3
('Using the programs: a basic guide', sections 3.7, 3.8 and 3.9) and for#
the example calculations in chapter 13 ('Example input and output files')
of the documentation, together with associated output files. The input
files are contained in the directory examples/input/ and the output files
are contained in the directory examples/output/.
4. Data files used to construct the potential for Mg + NH in the executables
molscat-Mg_NH, bound-Mg_NH and field-Mg_NH and for H2 + H2 in the executables
bound-H2_H2 and molscat-H2_H2. These are contained in the directory data
--------------------------------------------------------------------------------
Editing the makefile:
The programs are supplied with a makefile named GNUmakefile. This is
designed for use with GNU make (gmake), which is standard in most Linux
distributions.
GNUmakefile first needs to be adapted for your own working environment.
MOLSCAT, BOUND and FIELD executables make use of BLAS and LAPACK library
routines. If optimised versions of these library routines are available,
include the libraries containing them in the variable LIBS. Otherwise,
download the requisite routines from the Netlib repository and include the
object code files in the variable LIBUTILS.
The routines used are:
daxpy dcopy dgemm dgemv dgesv dscal dswap dsyevx
dsymm dsyr2k dsytrf dsytri idamax ilaenv lsame
and their dependencies are:
daxpy dcopy dgemm dgemv dger dgetrf dgetrf2 dgetrs
dlacpy dlae2 dlaebz dlaev2 dlagtf dlagts dlarf dlarfb
dlarfg dlarft dlarnv dlarst dlartg dlaruv dlascl dlaset
dlasr dlaswp dlasyf dlatrd dorg2l dorg2r dorgql dorgqr
dorgtr dorm2l dorm2r dormql dormqr dormtr dscal dstebz
dstein dsteqr dsterf dswap dsymv dsyr dsyr2 dsyr2k
dsytd2 dsytf2 dsytrd dtrmm dtrmv dtrsm ieeeck xerbla
GNUmakefile sets the compiler (in the variable Compiler) to be gfortran.
If gfortran is not available, or you prefer to use another compiler, you will
need to change this.
The optimisation level is set at 0 and traceback is switched on. These are set
in the variable COMPILE.f. Once you have assured yourself that the code works
you may wish to increase the optimisation level, and switch the traceback off.
The executables all make use of date and time routines GDATE, GTIME and GCLOCK.
GDATE and GTIME use the f90 intrinsic subroutine date_and_time, and GCLOCK uses
the f90 intrinsic subroutine cpu_time. If these are not available, they can be
replaced with local routines. In the last resort, GDATE and GTIME should return
blank character variables and GCLOCK a double precision value of 0.D0.
--------------------------------------------------------------------------------
Making the executables:
GNUmakefile contains rules to make executables for several variants of
MOLSCAT, BOUND or FIELD, with filenames prefixed by molscat-, bound- or field-
as appropriate.
They may be made with Linux commands such as
make molscat-H2_H2
or analogous commands for other variants of the programs. The list of
executables for which GNUmakefile contains rules is contained in the
variable PROGS.
GNUmakefile places the object files in the directory named in the variable
OBJDIR and the executables in the directory named in the variable EXECDIR.
These are set to the current directory (.), but you may wish to change this, in
which case you need to change the directories named in these variables and
ensure that they already exist. You will also need to remove the hash character
at the beginning of the line
#$(PROGS) : %: $(EXECDIR)/%
(this line is commented out because otherwise make will produce a warning
about a circular dependency if the variable EXECDIR is set to the current
directory.)