1c
2c     DIM/QM MA handles
3c
4c      integer k_dimxyz, l_dimxyz ! DIM coordinates
5c      integer k_muind,  l_muind  ! Induced dipoles
6      integer k_muold,  l_muold  ! Last cycle's induced dipoles
7      integer k_eqmn,   l_eqmn   ! E-field due to QM nuclei
8      integer k_scrn,   l_scrn
9      common /dimqmMA/  k_muold, l_muold, k_eqmn,
10     C                  l_eqmn, k_scrn, l_scrn
11c
12c     DIM/QM Common Logicals
13c
14      Logical ldimqm          ! Whether or not DIM/QM is true
15c      Logical lcpim           ! Do a CPIM calculation or not
16c      Logical lpim            ! Do a PIM calculation or not
17      Logical lfirst          ! If this is the first DIM/QM iteration or not
18      Logical lscf            ! In an scf cycle (as opposed to response)
19      Logical lclFld          ! Include local fields or not
20      Logical lefield         ! Include homogeneous electric field
21c      Logical lnopol          ! Don't include polarization operator
22c      Logical lnochar         ! Don't include charge operator
23c      Logical lnocross        ! Don't allow charge-dipole interactions
24      Logical ldda            ! Use DDA-like screening withing the DIM system
25      Logical lrsp            ! Inlcude DIM/QM in response equations
26      Logical lfreq           ! Include external frequency in DIM/QM response
27      Logical lcmplx          ! Use complex equations or not
28c      Logical lfullgrid       ! Used for frozen density calculations
29      Logical ldebug          ! More output
30      Logical latmdip         ! Print atomic dipoles
31c      Logical lnograd         ! Don't include DIM/QM gradients
32c      Logical lgradPol        ! Include DIM/QM Polariztion gradients
33c      Logical lgradFF         ! Include DIM/QM Force Field gradients
34      Logical dimqm_go        ! Start DIM/QM cycles
35      Logical dimqm_on        ! Flag to stop DIM cycles if dipoles are converged
36      Logical ldim_cpks
37      Logical dimqm_seeded    ! Flag if this is a seed or non-seed system
38      Logical xyz_seeded(6)   ! Same as above, but for keeping track of (+/-) xyz perturbations separately
39      Logical dimqm_noseed    ! Flag to ignore seeding
40      common /dimqmLog/ ldimqm, lfirst, lscf, lclFld,
41     $                  lefield, ldda,
42     $                  lrsp, lfreq, lcmplx, ldebug,
43     $                  latmdip, dimqm_go, ldim_cpks, dimqm_on,
44     $                  dimqm_seeded, xyz_seeded, dimqm_noseed
45c
46c     DIM/QM Common Integers
47c
48      Integer scrnType     ! Screening type used (ERF|EXP|ESP|GAU|NONE)
49      Integer alg          ! Solving algorithm
50      Integer nIter        ! Number of iterations for solver
51      Integer gridspacing  ! CMM grid size
52      Integer maxcolleagues! CMM max # colleagues
53      Integer intlistsize  ! CMM size of interaction list
54      Integer nAtomsPerCell! CMM target atoms per cell
55      Integer nOrder       ! Order of the interaction matrix
56      Integer nDIM         ! Number of DIM atoms
57      Integer nDIMTypes    ! Number of types
58c      Integer nLow         ! Low atom on this processor
59c      Integer nUp          ! High atom on this processor
60c      Integer nAtomsProc   ! # Atoms on this processer
61c      Integer nOrderProc   ! # Unknowns on this processer
62      Integer cleanGrads   ! Method to remove rigid motion from gradients
63      Integer dimqm_rtdb   ! rtdb handle for fock_2e to read in dipoles
64      Integer dimqm_geom   ! geometry handle for use in dim_grid_quadv0b
65      integer g_fdens
66c      integer g_dipel_i    ! Imagniary component of dipole matrix due to complex local fields
67      integer g_DIM_diag       ! Handle for DIM diagonal GA
68      common /dimqmInt/ scrnType, alg, nIter, gridspacing,
69     $                  maxcolleagues, intlistsize, nAtomsPerCell,
70     $                  nOrder, nDIM, nDIMTypes, cleanGrads,
71     $                  dimqm_rtdb, dimqm_geom, g_fdens,! g_dipel_i,
72     $                  g_DIM_diag
73c
74c      DIM/QM Common Reals
75c
76      double precision Edimqm       ! DIM/QM total energy
77      double precision volume       ! DIM total volume
78      double precision multeq(3)    ! Equation for radius multiplier
79      double precision dimtol       ! Tolerance for the iterative solver
80      double precision dimtol0      ! Original tolerance.  Used for switching
81      double precision dimtolxyz(6)
82      double precision scrnFactor   ! Screening factor, erf(scrnFactor*dist)
83      double precision totcharge    ! Total charge of the DIM system
84      double precision lagrange     ! Lagrange multiplier
85      double precision cleanGradCUT ! Cutoff radius for number of DIM point
86      double precision finiteFieldX  ! Field applied for finite-difference with local fields
87      double precision finiteFieldY
88      double precision finiteFieldZ
89      common /dimqmDP/ Edimqm, volume, multeq, dimtol, scrnFactor,
90     $                 totcharge, lagrange, cleanGradCUT, finiteFieldX,
91     $                 finiteFieldY, finiteFieldZ, dimtol0, dimtolxyz
92
93