1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2! Copyright 2010.  Los Alamos National Security, LLC. This material was    !
3! produced under U.S. Government contract DE-AC52-06NA25396 for Los Alamos !
4! National Laboratory (LANL), which is operated by Los Alamos National     !
5! Security, LLC for the U.S. Department of Energy. The U.S. Government has !
6! rights to use, reproduce, and distribute this software.  NEITHER THE     !
7! GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY,     !
8! EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS         !
9! SOFTWARE.  If software is modified to produce derivative works, such     !
10! modified software should be clearly marked, so as not to confuse it      !
11! with the version available from LANL.                                    !
12!                                                                          !
13! Additionally, this program is free software; you can redistribute it     !
14! and/or modify it under the terms of the GNU General Public License as    !
15! published by the Free Software Foundation; version 2.0 of the License.   !
16! Accordingly, this program is distributed in the hope that it will be     !
17! useful, but WITHOUT ANY WARRANTY; without even the implied warranty of   !
18! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General !
19! Public License for more details.                                         !
20!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21
22MODULE CONSTANTS_MOD
23
24  USE MYPRECISION
25
26  IMPLICIT NONE
27  SAVE
28
29  INTEGER :: NATS, NMAT, NOINT, NOELEM, HDIM
30  INTEGER :: CONTROL, RELAXME, PBCON, RESTART, MDON
31  INTEGER :: XBOON, XBODISON, XBODISORDER
32  INTEGER :: SCFS, SCFS_II
33  INTEGER :: LCNON, LCNITER
34  INTEGER :: ELECTRO, ELECMETH
35  INTEGER :: PPOTON, PLUSDON, VDWON
36  INTEGER :: FULLQCONV, QITER
37  INTEGER :: EMETH, CGORLIB
38  INTEGER :: SPINON, SPARSEON
39  INTEGER :: ORDERNMOL
40  INTEGER :: MAXSCF, MINSP2ITER
41  INTEGER :: VARDT
42  INTEGER :: NORECS, ENTROPYKIND
43  INTEGER :: DEBUGON, FITON
44  INTEGER :: BLKSZ ! Block size when using DBCSR
45  INTEGER :: NGPU ! Number of GPUs (blimey!)
46  INTEGER :: NUMSCF
47  INTEGER :: CHARGE
48  INTEGER :: KON ! K-SPACE FLAG
49  INTEGER :: COMPFORCE
50  INTEGER :: SPONLY ! If we only have sp-bonded elements: faster gradH
51  INTEGER :: DOSFITON, INT2FIT, NFITSTEP, QFIT ! For the simulated annealing
52  INTEGER :: PP2FIT, BINT2FIT, PPNFITSTEP, PPNMOL, PPNGEOM, BINFITSTEP
53  INTEGER :: PPFITON, ALLFITON
54  INTEGER :: MDADAPT
55  INTEGER :: PARREP
56  INTEGER :: VERBOSE = 0
57  INTEGER :: MIXER
58  INTEGER :: RSLEVEL
59  INTEGER :: RESTARTLIB
60  INTEGER :: FREEZE
61  INTEGER :: NEWSYSTEMLATTE
62  REAL(LATTEPREC) :: BOX(3,3), BOX_OLD(3,3), BOXDIMS(3)
63  REAL(LATTEPREC) :: BNDFIL, TOTNE
64  REAL(LATTEPREC) :: COVE, TOTE, ENTE, KEE, ECOUL, EREP, TRRHOH
65  REAL(LATTEPREC) :: ESPIN, ESPIN_ZERO
66  REAL(LATTEPREC) :: EPLUSD
67  REAL(LATTEPREC) :: MINEVAL, MAXEVAL, MAXMINUSMIN
68  REAL(LATTEPREC) :: CHEMPOT, KBT
69  REAL(LATTEPREC) :: EGAP, EHOMO, ELUMO
70  REAL(LATTEPREC) :: CHTOL, SPINTOL
71  REAL(LATTEPREC) :: ELEC_ETOL, ELEC_QTOL
72  REAL(LATTEPREC) :: QMIX, SPINMIX, MDMIX
73  REAL(LATTEPREC) :: BREAKTOL
74  REAL(LATTEPREC) :: SUMMASS, MASSDEN
75  REAL(LATTEPREC) :: MCBETA, MCSIGMA ! Temperature in simulated annealing
76  REAL(LATTEPREC) :: PPBETA, PPSIGMA
77  CHARACTER(LEN = 3) :: SP2CONV
78  CHARACTER(LEN = 20) :: BASISTYPE, SCLTYPE !scltype controls whether we do exp or tabular integrals
79
80  CHARACTER(LEN = 100) :: PARAMPATH = "./TBparam"
81  CHARACTER(LEN = 100) :: COORDSFILE = "./bl/inputblock.dat"
82
83  ! For the latte lib
84  CHARACTER(LEN = 20) :: JOB
85  LOGICAL :: LIBINIT = .FALSE.
86  INTEGER :: LIBCALLS = 0
87  LOGICAL(1) :: EXISTERROR
88  LOGICAL :: LIBRUN = .FALSE.
89  LOGICAL :: STOPATMAXSCF
90
91  !For the new input file parser
92  CHARACTER(LEN = 1000) :: LATTEINNAME = "latte.in"
93  LOGICAL :: LATTEINEXISTS
94
95  !! For truncated SP2 and entropy calculation
96  INTEGER :: SCFSTEP = 0
97  INTEGER :: OCCSTEPS
98  REAL(LATTEPREC) :: TSCALE
99  REAL(LATTEPREC) :: OCCERRLIMIT, TRACELIMIT, EPS
100
101  ! Some often-used constants
102
103  REAL(LATTEPREC), PARAMETER :: MVV2KE = 166.0538782/1.602176487
104  REAL(LATTEPREC), PARAMETER :: KE2T = 1.0/0.000086173435
105  REAL(LATTEPREC), PARAMETER :: F2V = 9.6484504393669415d-003
106  REAL(LATTEPREC), PARAMETER :: TOGPA = 160.2176487
107  REAL(LATTEPREC), PARAMETER :: MVV2T = 1660538.782/1.3806504
108  !  REAL(LATTEPREC), PARAMETER :: PI = 3.14159265358979323846264D0
109  REAL(LATTEPREC), PARAMETER :: PI = TWO*ACOS(ZERO)
110
111END MODULE CONSTANTS_MOD
112