mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-27 05:35:37 -04:00
Merge pull request #822 from jeffhammond/super-heavy-elements
Super heavy elements
This commit is contained in:
commit
ccc2e41f3b
8 changed files with 98 additions and 657 deletions
|
|
@ -8,7 +8,7 @@
|
|||
OBJ = geom.o geom_input.o geom_input2.o geom_3d.o geom_2d.o geom_1d.o geom_numcore.o \
|
||||
geom_checksum.o geom_print_ecce.o geom_freeze.o geom_fragment.o geom_getsym.o
|
||||
|
||||
HEADERS = geom.fh geomP.fh
|
||||
HEADERS = geom.fh geomP.fh periodic.fh
|
||||
|
||||
USES_BLAS = geom.F geom_input.F geom_print_ecce.F geom_hnd.F geom_3d.F geom_getsym.F geom_2d.F
|
||||
UNSET_OPENMP = 1
|
||||
|
|
|
|||
183
src/geom/geom.F
183
src/geom/geom.F
|
|
@ -1056,6 +1056,7 @@ C> If storing the geometry was successful return .true., return .false. otherwis
|
|||
implicit none
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
#include "periodic.fh"
|
||||
#include "rtdb.fh"
|
||||
#include "mafdecls.fh"
|
||||
#include "util.fh"
|
||||
|
|
@ -3331,8 +3332,7 @@ c
|
|||
#include "inp.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
character*2 symbols(nelements)
|
||||
character*16 elements(nelements)
|
||||
#include "periodic.fh"
|
||||
character*16 tag !< [Input] the tag, e.g. He232
|
||||
character*(*) symbol !< [Output] the chemical symbol, e.g. He
|
||||
character*(*) element !< [Output] the element, e.g. Helium
|
||||
|
|
@ -3343,48 +3343,6 @@ c and return the symbol, name and atomic no.
|
|||
c
|
||||
integer lbuf, ind
|
||||
character*16 buf
|
||||
character*1 sym1(14) ! 1 character atomic symbols+atomic no.s
|
||||
integer atn1(14)
|
||||
data symbols/
|
||||
$ 'H ', 'He', 'Li', 'Be', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne',
|
||||
$ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'Ar', 'K ', 'Ca',
|
||||
$ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn',
|
||||
$ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y ', 'Zr',
|
||||
$ 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
|
||||
$ 'Sb', 'Te', 'I ', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd',
|
||||
$ 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb',
|
||||
$ 'Lu', 'Hf', 'Ta', 'W ', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg',
|
||||
$ 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th',
|
||||
$ 'Pa', 'U ', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
|
||||
$ 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds',
|
||||
$ 'Rg', 'Cn'/
|
||||
data elements/
|
||||
$ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron',
|
||||
$ 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon', 'Sodium',
|
||||
$ 'Magnesium', 'Aluminium', 'Silicon', 'Phosphorous',
|
||||
$ 'Sulphur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
|
||||
$ 'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
|
||||
$ 'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc', 'Gallium',
|
||||
$ 'Germanium', 'Arsenic', 'Selenium', 'Bromine', 'Krypton',
|
||||
$ 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium', 'Niobium',
|
||||
$ 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
|
||||
$ 'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
|
||||
$ 'Antinomy', 'Tellurium', 'Iodine', 'Xenon', 'Caesium',
|
||||
$ 'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
|
||||
$ 'Promethium', 'Samarium', 'Europium', 'Gadolinium',
|
||||
$ 'Terbium', 'Dysprosium', 'Holmium', 'Erbium', 'Thulium',
|
||||
$ 'Ytterbium', 'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten',
|
||||
$ 'Rhenium', 'Osmium', 'Iridium', 'Platinum', 'Gold',
|
||||
$ 'Mercury', 'Thallium', 'Lead', 'Bismuth', 'Polonium',
|
||||
$ 'Astatine', 'Radon', 'Francium', 'Radium', 'Actinium',
|
||||
$ 'Thorium', 'Protoactinium', 'Uranium', 'Neptunium',
|
||||
$ 'Plutonium', 'Americium', 'Curium', 'Berkelium',
|
||||
$ 'Californium', 'Einsteinium', 'Fermium', 'Mendelevium',
|
||||
$ 'Nobelium', 'Lawrencium','Rutherfordium','Dubnium',
|
||||
$ 'Seaborgium','Bohrium','Hassium','Meitnerium',
|
||||
$ 'Darmstadtium', 'Roentgenium', 'Copernicium'/
|
||||
data sym1/'H','B','C','N','O','F','P','S','K','V','Y','I','W','U'/
|
||||
data atn1/ 1 , 5 , 6 , 7 , 8 , 9 , 15, 16, 19, 23, 39, 53, 74, 92/
|
||||
|
||||
geom_tag_to_element = .false.
|
||||
c
|
||||
|
|
@ -3466,13 +3424,12 @@ c
|
|||
#include "inp.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
#include "periodic.fh"
|
||||
logical geom_tag_to_charge_gen
|
||||
integer nt
|
||||
integer ns
|
||||
integer i
|
||||
logical match
|
||||
character*2 symbols(nelements)
|
||||
character*16 elements(nelements)
|
||||
character*1 tag(nt*ns) ! [input]
|
||||
double precision q(nt) ! [output]
|
||||
c
|
||||
|
|
@ -3482,48 +3439,6 @@ c
|
|||
integer j,offset
|
||||
integer lbuf, ind
|
||||
character*16 buf
|
||||
character*1 sym1(14) ! 1 character atomic symbols+atomic no.s
|
||||
integer atn1(14)
|
||||
data symbols/
|
||||
$ 'H ', 'He', 'Li', 'Be', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne',
|
||||
$ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'Ar', 'K ', 'Ca',
|
||||
$ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn',
|
||||
$ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y ', 'Zr',
|
||||
$ 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
|
||||
$ 'Sb', 'Te', 'I ', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd',
|
||||
$ 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb',
|
||||
$ 'Lu', 'Hf', 'Ta', 'W ', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg',
|
||||
$ 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th',
|
||||
$ 'Pa', 'U ', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
|
||||
$ 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds',
|
||||
$ 'Rg', 'Cn'/
|
||||
data elements/
|
||||
$ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron',
|
||||
$ 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon', 'Sodium',
|
||||
$ 'Magnesium', 'Aluminium', 'Silicon', 'Phosphorous',
|
||||
$ 'Sulphur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
|
||||
$ 'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
|
||||
$ 'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc', 'Gallium',
|
||||
$ 'Germanium', 'Arsenic', 'Selenium', 'Bromine', 'Krypton',
|
||||
$ 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium', 'Niobium',
|
||||
$ 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
|
||||
$ 'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
|
||||
$ 'Antinomy', 'Tellurium', 'Iodine', 'Xenon', 'Caesium',
|
||||
$ 'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
|
||||
$ 'Promethium', 'Samarium', 'Europium', 'Gadolinium',
|
||||
$ 'Terbium', 'Dysprosium', 'Holmium', 'Erbium', 'Thulium',
|
||||
$ 'Ytterbium', 'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten',
|
||||
$ 'Rhenium', 'Osmium', 'Iridium', 'Platinum', 'Gold',
|
||||
$ 'Mercury', 'Thallium', 'Lead', 'Bismuth', 'Polonium',
|
||||
$ 'Astatine', 'Radon', 'Francium', 'Radium', 'Actinium',
|
||||
$ 'Thorium', 'Protoactinium', 'Uranium', 'Neptunium',
|
||||
$ 'Plutonium', 'Americium', 'Curium', 'Berkelium',
|
||||
$ 'Californium', 'Einsteinium', 'Fermium', 'Mendelevium',
|
||||
$ 'Nobelium', 'Lawrencium','Rutherfordium','Dubnium',
|
||||
$ 'Seaborgium','Bohrium','Hassium','Meitnerium',
|
||||
$ 'Darmstadtium', 'Roentgenium', 'Copernicium'/
|
||||
data sym1/'H','B','C','N','O','F','P','S','K','V','Y','I','W','U'/
|
||||
data atn1/ 1 , 5 , 6 , 7 , 8 , 9 , 15, 16, 19, 23, 39, 53, 74, 92/
|
||||
|
||||
geom_tag_to_charge_gen = .false.
|
||||
c
|
||||
|
|
@ -3606,12 +3521,11 @@ c
|
|||
#include "inp.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
#include "periodic.fh"
|
||||
logical geom_tag_to_charge
|
||||
integer nt
|
||||
integer i
|
||||
logical match
|
||||
character*2 symbols(nelements)
|
||||
character*16 elements(nelements)
|
||||
character*16 tag(nt) ! [input]
|
||||
double precision q(nt) ! [output]
|
||||
c
|
||||
|
|
@ -3620,48 +3534,6 @@ c and return the symbol, name and atomic no.
|
|||
c
|
||||
integer lbuf, ind
|
||||
character*16 buf
|
||||
character*1 sym1(14) ! 1 character atomic symbols+atomic no.s
|
||||
integer atn1(14)
|
||||
data symbols/
|
||||
$ 'H ', 'He', 'Li', 'Be', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne',
|
||||
$ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'Ar', 'K ', 'Ca',
|
||||
$ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn',
|
||||
$ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y ', 'Zr',
|
||||
$ 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
|
||||
$ 'Sb', 'Te', 'I ', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd',
|
||||
$ 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb',
|
||||
$ 'Lu', 'Hf', 'Ta', 'W ', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg',
|
||||
$ 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th',
|
||||
$ 'Pa', 'U ', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
|
||||
$ 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds',
|
||||
$ 'Rg', 'Cn'/
|
||||
data elements/
|
||||
$ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron',
|
||||
$ 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon', 'Sodium',
|
||||
$ 'Magnesium', 'Aluminium', 'Silicon', 'Phosphorous',
|
||||
$ 'Sulphur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
|
||||
$ 'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
|
||||
$ 'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc', 'Gallium',
|
||||
$ 'Germanium', 'Arsenic', 'Selenium', 'Bromine', 'Krypton',
|
||||
$ 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium', 'Niobium',
|
||||
$ 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
|
||||
$ 'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
|
||||
$ 'Antinomy', 'Tellurium', 'Iodine', 'Xenon', 'Caesium',
|
||||
$ 'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
|
||||
$ 'Promethium', 'Samarium', 'Europium', 'Gadolinium',
|
||||
$ 'Terbium', 'Dysprosium', 'Holmium', 'Erbium', 'Thulium',
|
||||
$ 'Ytterbium', 'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten',
|
||||
$ 'Rhenium', 'Osmium', 'Iridium', 'Platinum', 'Gold',
|
||||
$ 'Mercury', 'Thallium', 'Lead', 'Bismuth', 'Polonium',
|
||||
$ 'Astatine', 'Radon', 'Francium', 'Radium', 'Actinium',
|
||||
$ 'Thorium', 'Protoactinium', 'Uranium', 'Neptunium',
|
||||
$ 'Plutonium', 'Americium', 'Curium', 'Berkelium',
|
||||
$ 'Californium', 'Einsteinium', 'Fermium', 'Mendelevium',
|
||||
$ 'Nobelium', 'Lawrencium','Rutherfordium','Dubnium',
|
||||
$ 'Seaborgium','Bohrium','Hassium','Meitnerium',
|
||||
$ 'Darmstadtium', 'Roentgenium', 'Copernicium'/
|
||||
data sym1/'H','B','C','N','O','F','P','S','K','V','Y','I','W','U'/
|
||||
data atn1/ 1 , 5 , 6 , 7 , 8 , 9 , 15, 16, 19, 23, 39, 53, 74, 92/
|
||||
|
||||
geom_tag_to_charge = .false.
|
||||
c
|
||||
|
|
@ -3731,12 +3603,11 @@ c
|
|||
#include "inp.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
#include "periodic.fh"
|
||||
logical geom_tag_to_atn
|
||||
integer nt
|
||||
integer i
|
||||
logical match
|
||||
character*2 symbols(nelements)
|
||||
character*16 elements(nelements)
|
||||
c TP: changed from character*(*) tag(nt) to character*(16) tag(nt)
|
||||
character*(16) tag(nt) ! [input]
|
||||
integer atn(nt) ! [output]
|
||||
|
|
@ -3746,48 +3617,6 @@ c and return the symbol, name and atomic no.
|
|||
c
|
||||
integer lbuf, ind
|
||||
character*16 buf
|
||||
character*1 sym1(14) ! 1 character atomic symbols+atomic no.s
|
||||
integer atn1(14)
|
||||
data symbols/
|
||||
$ 'H ', 'He', 'Li', 'Be', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne',
|
||||
$ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'Ar', 'K ', 'Ca',
|
||||
$ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn',
|
||||
$ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y ', 'Zr',
|
||||
$ 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
|
||||
$ 'Sb', 'Te', 'I ', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd',
|
||||
$ 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb',
|
||||
$ 'Lu', 'Hf', 'Ta', 'W ', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg',
|
||||
$ 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th',
|
||||
$ 'Pa', 'U ', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
|
||||
$ 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds',
|
||||
$ 'Rg', 'Cn'/
|
||||
data elements/
|
||||
$ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron',
|
||||
$ 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon', 'Sodium',
|
||||
$ 'Magnesium', 'Aluminium', 'Silicon', 'Phosphorous',
|
||||
$ 'Sulphur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
|
||||
$ 'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
|
||||
$ 'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc', 'Gallium',
|
||||
$ 'Germanium', 'Arsenic', 'Selenium', 'Bromine', 'Krypton',
|
||||
$ 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium', 'Niobium',
|
||||
$ 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
|
||||
$ 'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
|
||||
$ 'Antinomy', 'Tellurium', 'Iodine', 'Xenon', 'Caesium',
|
||||
$ 'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
|
||||
$ 'Promethium', 'Samarium', 'Europium', 'Gadolinium',
|
||||
$ 'Terbium', 'Dysprosium', 'Holmium', 'Erbium', 'Thulium',
|
||||
$ 'Ytterbium', 'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten',
|
||||
$ 'Rhenium', 'Osmium', 'Iridium', 'Platinum', 'Gold',
|
||||
$ 'Mercury', 'Thallium', 'Lead', 'Bismuth', 'Polonium',
|
||||
$ 'Astatine', 'Radon', 'Francium', 'Radium', 'Actinium',
|
||||
$ 'Thorium', 'Protoactinium', 'Uranium', 'Neptunium',
|
||||
$ 'Plutonium', 'Americium', 'Curium', 'Berkelium',
|
||||
$ 'Californium', 'Einsteinium', 'Fermium', 'Mendelevium',
|
||||
$ 'Nobelium', 'Lawrencium','Rutherfordium','Dubnium',
|
||||
$ 'Seaborgium','Bohrium','Hassium','Meitnerium',
|
||||
$ 'Darmstadtium', 'Roentgenium', 'Copernicium'/
|
||||
data sym1/'H','B','C','N','O','F','P','S','K','V','Y','I','W','U'/
|
||||
data atn1/ 1 , 5 , 6 , 7 , 8 , 9 , 15, 16, 19, 23, 39, 53, 74, 92/
|
||||
|
||||
geom_tag_to_atn = .false.
|
||||
c
|
||||
|
|
@ -4855,6 +4684,7 @@ c
|
|||
#include "errquit.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "geomP.fh"
|
||||
#include "periodic.fh"
|
||||
c
|
||||
integer atn !< [Input] the atomic number of element
|
||||
double precision mass !< [Output] the default elemental atomic mass.
|
||||
|
|
@ -7293,6 +7123,7 @@ c Written by: R. A. Kendall, PNNL, December 1996
|
|||
c
|
||||
#include "stdio.fh"
|
||||
#include "nwc_const.fh"
|
||||
#include "periodic.fh"
|
||||
#include "geomP.fh"
|
||||
integer atn ! [input] atomic number of element
|
||||
double precision rcoval ! [output] estimate of covalent
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ c
|
|||
c max_geom = maximum no. of geometries
|
||||
c max_cent = maximum no. of centers in a geometry
|
||||
c max_geom_rtdb = maximum no. of geometries stored in the rtdb
|
||||
c nelments = no. of elements that info is stored about
|
||||
c
|
||||
c [The only thing that cannot be dynamically allocated are the
|
||||
c character variables for the tags ... I was lazy and just statically
|
||||
|
|
@ -108,18 +107,15 @@ c zmt_source(1:max_geom) = source of zmatrix (user or autoz)
|
|||
c lenn(1:max_geom) = length of names(geom) minus trailing blanks
|
||||
c lent(1:max_geom) = length of trans(geom) ...
|
||||
c lenr(1:max_geom_rtdb) = length of names_rtdb(geom) ...
|
||||
c symbols(1:nelements) = symbols for elements
|
||||
c elements(1:nelements) = names of elements
|
||||
c
|
||||
|
||||
integer max_geom, max_cent, max_geom_rtdb, nelements,
|
||||
integer max_geom, max_cent, max_geom_rtdb,
|
||||
$ max_sym_ops
|
||||
integer max_izmat, max_nzvar, max_zcoord
|
||||
c
|
||||
parameter (max_sym_ops = 192)
|
||||
parameter (max_geom = nw_max_geoms)
|
||||
parameter (max_geom_rtdb = 500)
|
||||
parameter (nelements = 112)
|
||||
parameter (max_cent = nw_max_atom)
|
||||
parameter (max_nzvar = 6*max_cent)
|
||||
parameter (max_izmat = 4*max_nzvar)
|
||||
|
|
@ -248,4 +244,3 @@ c
|
|||
common/usgeometry/
|
||||
$ use_primitive(max_geom),
|
||||
$ primitive_center(max_geom)
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ c you have left any sense of physics well behind anyway...
|
|||
C
|
||||
C INCLUDE FILES
|
||||
#include "nwc_const.fh"
|
||||
#include "periodic.fh"
|
||||
#include "geomP.fh"
|
||||
#include "rtdb.fh"
|
||||
#include "mafdecls.fh"
|
||||
|
|
@ -86,7 +87,7 @@ C
|
|||
$ 18* 9, ! K-Kr, +3s3p
|
||||
$ 18*18, ! Rb-Xe, +4s3d4p
|
||||
$ 32*27, ! Cs-Rn, +5s4d5p
|
||||
$ 26*43/ ! Fr-Mt, +6s4f5d6p
|
||||
$ 32*43/ ! Fr-Og, +6s4f5d6p
|
||||
C
|
||||
|
||||
|
||||
|
|
|
|||
55
src/geom/periodic.fh
Normal file
55
src/geom/periodic.fh
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
integer atn1(14)
|
||||
C they are ordered like this due to common block alignment rules
|
||||
integer nelements
|
||||
parameter (nelements = 118)
|
||||
character*2 symbols(nelements)
|
||||
character*16 elements(nelements)
|
||||
character*1 sym1(14) ! 1 character atomic symbols+atomic no.s
|
||||
cold common/celements/
|
||||
cold $ atn1(14),
|
||||
cold $ symbols(nelements),sym1(14),
|
||||
cold $ elements(nelements)
|
||||
data atn1/
|
||||
$ 1 , 5 , 6 , 7 , 8 , 9 , 15, 16, 19, 23, 39, 53, 74, 92/
|
||||
data sym1/
|
||||
$ 'H','B','C','N','O','F','P','S','K','V','Y','I','W','U'/
|
||||
data symbols/
|
||||
$ 'H ', 'He', 'Li', 'Be', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne',
|
||||
$ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'Ar', 'K ', 'Ca',
|
||||
$ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn',
|
||||
$ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y ', 'Zr',
|
||||
$ 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
|
||||
$ 'Sb', 'Te', 'I ', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd',
|
||||
$ 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb',
|
||||
$ 'Lu', 'Hf', 'Ta', 'W ', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg',
|
||||
$ 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th',
|
||||
$ 'Pa', 'U ', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
|
||||
$ 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds',
|
||||
$ 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og'/
|
||||
data elements/
|
||||
$ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium', 'Boron',
|
||||
$ 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon', 'Sodium',
|
||||
$ 'Magnesium', 'Aluminium', 'Silicon', 'Phosphorous',
|
||||
$ 'Sulphur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
|
||||
$ 'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
|
||||
$ 'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc', 'Gallium',
|
||||
$ 'Germanium', 'Arsenic', 'Selenium', 'Bromine', 'Krypton',
|
||||
$ 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium', 'Niobium',
|
||||
$ 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
|
||||
$ 'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
|
||||
$ 'Antinomy', 'Tellurium', 'Iodine', 'Xenon', 'Caesium',
|
||||
$ 'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
|
||||
$ 'Promethium', 'Samarium', 'Europium', 'Gadolinium',
|
||||
$ 'Terbium', 'Dysprosium', 'Holmium', 'Erbium', 'Thulium',
|
||||
$ 'Ytterbium', 'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten',
|
||||
$ 'Rhenium', 'Osmium', 'Iridium', 'Platinum', 'Gold',
|
||||
$ 'Mercury', 'Thallium', 'Lead', 'Bismuth', 'Polonium',
|
||||
$ 'Astatine', 'Radon', 'Francium', 'Radium', 'Actinium',
|
||||
$ 'Thorium', 'Protoactinium', 'Uranium', 'Neptunium',
|
||||
$ 'Plutonium', 'Americium', 'Curium', 'Berkelium',
|
||||
$ 'Californium', 'Einsteinium', 'Fermium', 'Mendelevium',
|
||||
$ 'Nobelium', 'Lawrencium','Rutherfordium','Dubnium',
|
||||
$ 'Seaborgium','Bohrium','Hassium','Meitnerium',
|
||||
$ 'Darmstadtium', 'Roentgenium', 'Copernicium', 'Nihonium',
|
||||
$ 'Flerovium', 'Moscovium', 'Livermorium', 'Tennessine',
|
||||
$ 'Oganesson'/
|
||||
|
|
@ -51,7 +51,7 @@ c fine = 1d-7
|
|||
c xfine = 1d-8
|
||||
c huge = 1d-10
|
||||
c
|
||||
integer grid_params(6,2,2,105)
|
||||
integer grid_params(6,2,2,120)
|
||||
integer i,j,k,l,iptr
|
||||
integer xc_leb_acc2nrd
|
||||
external xc_leb_acc2nrd
|
||||
|
|
@ -275,6 +275,37 @@ c
|
|||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! Unq(104)
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18/! Unp(105)
|
||||
data ((((grid_params(i,j,k,l),i=1,6),j=1,2),k=1,2),l=106,120)/
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 106
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 107
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 108
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 109
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 110
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 111
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 112
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 113
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 114
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 115
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 116
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 117
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 118
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18,! 119
|
||||
& 105,130,155,205,235,400,16, 20, 32, 44, 48, 48,
|
||||
. 84,104,123,141,205,400, 8, 11, 14, 17, 18, 18/! 120
|
||||
c
|
||||
c Set print options.
|
||||
c
|
||||
|
|
|
|||
|
|
@ -1,236 +0,0 @@
|
|||
*
|
||||
* $Id$
|
||||
*
|
||||
c
|
||||
c Private fortran include file for the geometry routines
|
||||
c
|
||||
c Parameters
|
||||
c
|
||||
c max_geom = maximum no. of geometries
|
||||
c max_cent = maximum no. of centers in a geometry
|
||||
c max_geom_rtdb = maximum no. of geometries stored in the rtdb
|
||||
c nelments = no. of elements that info is stored about
|
||||
c
|
||||
c [The only thing that cannot be dynamically allocated are the
|
||||
c character variables for the tags ... I was lazy and just statically
|
||||
c dimensioned everything ... just drudge work to dynamically
|
||||
c allocate though if necessary ... which it hopefully will not be
|
||||
c ... since only geom.F (and maybe the basis routines) include
|
||||
c this header file only these need to be recompiled if the parameters
|
||||
c are changed]
|
||||
c
|
||||
c Members of /cgeometry/
|
||||
c
|
||||
c ngeom_rtdb = current no. of geometries on the rtdb
|
||||
c active(1:max_geom) = true if this geometry is open
|
||||
c ncenter(1:max_geom) = no. of centers in this geometry
|
||||
c coords(1:3,1:max_cent,1:max_geom) = cartesian coords of this geometry
|
||||
c charge(1:max_cent,1:max_geom) = charges associated with centers
|
||||
c geom_mass(1:max_cent,1:max_geom) = mass associated with centers
|
||||
c geom_invnucexp(1:max_cent,1:max_geom) = inverse of nuclear exponent
|
||||
c dipole ... not yet
|
||||
c quadrupole ... not yet
|
||||
c pseudopotential ... not yet
|
||||
c efield(1:3,1:max_geom) = external electric field applied to this system
|
||||
c oefield = true if efield is on
|
||||
c angstrom_to_au = scale factor between angstom and atomic units
|
||||
c include_bqbq(geom) = include bqbq interactions for this molecule
|
||||
c
|
||||
c--> symmetry information
|
||||
c
|
||||
c sym_sgpnames(1:230) = list of known space groups ... must match spgen
|
||||
c sym_mgpnames(1:46) = list of known molecular groups ... ditto
|
||||
c ncenter_unique(1:max_geom) = no. of symmetry unique centers
|
||||
c unique_cent(1:max_cent,1:max_geom) = list of symmetry unique centers
|
||||
c group_number(max_geom) = Tony magic group number
|
||||
c setting_number(max_geom) = Where the symmetry origin is
|
||||
c max_sym_ops = max. no. of operations in group
|
||||
c sym_ops(max_sym_op*3,4) = matrix representation of symmetry operators
|
||||
c molecules -> transformation of cartesians
|
||||
c periodic -> ask tony!
|
||||
c sym_op_inv(max_sym_op,max_geom) = index of inverse operation
|
||||
c sym_num_ops(max_geom) = order of group minus one
|
||||
c = no. of operations in the group
|
||||
c sym_center_map_handle(max_geom) = MA handle of integer array
|
||||
c sym_center_map(center,op)->op*center
|
||||
c sym_center_map_index(max_geom) = MA index of integer array
|
||||
c sym_center_map(center,op)->op*center
|
||||
c
|
||||
c group_name(max_geom) = symbolic name of the molecular group
|
||||
c
|
||||
c--> solid state specific information
|
||||
c
|
||||
c isystype(1:max_geom) = 0 (molecular), 1 (polymer), 2 (surface)
|
||||
c 3 (crystal)
|
||||
c lattice_vectors(1:3,1:max_geom) = lengths of unit cell axes (angstrom)
|
||||
c lattice_angles(1:3,1:max_geom) = angles between unit cell axes (angstrom)
|
||||
c
|
||||
c amatrix(1:3,1:3,1:max_geom) = matrix that transforms atomic fractional
|
||||
c coords. to a Cartesian system in bohr. This matrix
|
||||
c is the unit matrix for molecular systems.
|
||||
c
|
||||
c bmatrix(1:3,1:3,1:max_geom) = matrix that transforms reciprocal lattice vectors
|
||||
c to a Cartesian system (a.u.). This matrix
|
||||
c is the unit matrix for molecular systems.
|
||||
c
|
||||
c amatrix_inv(1:3,1:3,1:max_geom) = used to transform from atomic Cartesian
|
||||
c coords. to fractional coordinates & can be used
|
||||
c to resolve the scalar lattice vectors into their
|
||||
c Cartesian components. This matrix is the unit
|
||||
c matrix for molecular systems.
|
||||
c
|
||||
c volume_direct(1:max_geom) = direct space unit cell volume units = Ang^3
|
||||
c metric_matrix(1:3,1:3,1:max_geom) = metric matrix for Bravais lattice
|
||||
c recip_lat_vectors(1:3,1:max_geom) = reciprocal lattice vectors (angstroms)
|
||||
c recip_lat_angles(1:3,1:max_geom) = reciprocal lattice angles (degrees)
|
||||
c
|
||||
c operiodic = obsolete
|
||||
c latvec(1:3,1:3,1:max_geom) = obsolete
|
||||
c
|
||||
c erep(1:max_geom) = interaction energy of centers with each other
|
||||
c and external fields. At its simplest this is
|
||||
c just the nuclear repulsion energy
|
||||
c ndipole(1:3,1:max_geom) = nuclear dipole moment
|
||||
c
|
||||
c Members of /ccgeometry/
|
||||
c
|
||||
c names(1:max_geom) = names of open geometries
|
||||
c trans(1:max_geom) = translations of names of open geoms
|
||||
c names_rtdb(1:max_geom_rtdb) = names of geometries in the rtdb
|
||||
c tag(1:max_cent,1:max_geom) = tags associated with centers
|
||||
c zmt_source(1:max_geom) = source of zmatrix (user or autoz)
|
||||
c lenn(1:max_geom) = length of names(geom) minus trailing blanks
|
||||
c lent(1:max_geom) = length of trans(geom) ...
|
||||
c lenr(1:max_geom_rtdb) = length of names_rtdb(geom) ...
|
||||
c symbols(1:nelements) = symbols for elements
|
||||
c elements(1:nelements) = names of elements
|
||||
c
|
||||
|
||||
integer max_geom, max_cent, max_geom_rtdb, nelements,
|
||||
$ max_sym_ops
|
||||
integer max_izmat, max_nzvar, max_zcoord
|
||||
c
|
||||
parameter (max_sym_ops = 192)
|
||||
parameter (max_geom = nw_max_geoms)
|
||||
parameter (max_geom_rtdb = 100)
|
||||
parameter (nelements = 109)
|
||||
parameter (max_cent = nw_max_atom)
|
||||
parameter (max_nzvar = 6*max_cent)
|
||||
parameter (max_izmat = 4*max_nzvar)
|
||||
parameter (max_zcoord = 16) ! For augmenting autoz
|
||||
c
|
||||
logical active, operiodic, oefield, include_bqbq, oecpcent,
|
||||
$ zmt_ijbond_frz, zmt_ijkang_frz, zmt_ijklto_frz,
|
||||
$ zmt_ijklop_frz, zmt_ijklnb_frz
|
||||
|
||||
integer ngeom_rtdb, ncenter, lenn, lent, lenr, group_number,
|
||||
$ ncenter_unique, isystype, setting_number, unique_cent,
|
||||
$ sym_op_inv, sym_num_ops, sym_center_map_handle,
|
||||
$ sym_center_map_index,
|
||||
$ zmt_izmat,zmt_nizmat,
|
||||
$ zmt_izfrz,zmt_nzfrz, zmt_nzvar, zmt_maxtor,
|
||||
$ zmt_ijbond, zmt_ijkang, zmt_ijklto, zmt_ijklop, zmt_ijklnb
|
||||
|
||||
double precision coords, charge, efield, latvec, ndipole, erep,
|
||||
$ lattice_vectors, lattice_angles, amatrix, amatrix_inv,
|
||||
$ volume_direct, metric_matrix, recip_lat_vectors,
|
||||
$ recip_lat_angles, sym_ops, angstrom_to_au, geom_invnucexp,
|
||||
$ geom_mass,bmatrix, velocities, zmt_varsign, zmt_cvr_scaling,
|
||||
$ zmt_ijbond_val, zmt_ijkang_val, zmt_ijklto_val,
|
||||
$ zmt_ijklop_val, zmt_ijklnb_val, zmt_izfrz_val
|
||||
|
||||
common/cgeometry/
|
||||
* doubles
|
||||
$ coords(3,max_cent,max_geom),
|
||||
$ velocities(3,max_cent,max_geom),
|
||||
$ charge(max_cent,max_geom),
|
||||
$ geom_mass(max_cent,max_geom),
|
||||
$ geom_invnucexp(max_cent,max_geom),
|
||||
$ efield(3, max_geom),
|
||||
$ latvec(3,3, max_geom), ! Obsolete ?
|
||||
$ erep(max_geom),
|
||||
$ ndipole(3,max_geom),
|
||||
$ lattice_vectors(1:3,1:max_geom),
|
||||
$ lattice_angles(1:3,1:max_geom),
|
||||
$ recip_lat_vectors(1:3,1:max_geom),
|
||||
$ recip_lat_angles(1:3,1:max_geom),
|
||||
$ amatrix(3,3,max_geom),
|
||||
$ bmatrix(3,3,max_geom),
|
||||
$ amatrix_inv(3,3,max_geom),
|
||||
$ sym_ops(max_sym_ops*3,4,max_geom),
|
||||
$ metric_matrix(3,3,max_geom),
|
||||
$ volume_direct(max_geom),
|
||||
$ angstrom_to_au,
|
||||
$ zmt_varsign(max_nzvar,max_geom),
|
||||
$ zmt_cvr_scaling(max_geom),
|
||||
$ zmt_ijbond_val(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_val(max_zcoord,max_geom),
|
||||
$ zmt_izfrz_val(max_nzvar,max_geom),
|
||||
* integers & logicals
|
||||
$ ncenter(max_geom),
|
||||
$ active(max_geom),
|
||||
$ lenn(max_geom),
|
||||
$ lent(max_geom),
|
||||
$ lenr(max_geom_rtdb),
|
||||
$ operiodic(max_geom), ! Obsolete ?
|
||||
$ oefield(max_geom),
|
||||
$ isystype(1:max_geom),
|
||||
$ ncenter_unique(1:max_geom),
|
||||
$ unique_cent(1:max_cent,1:max_geom),
|
||||
$ group_number(max_geom),
|
||||
$ setting_number(max_geom),
|
||||
$ sym_op_inv(max_sym_ops,max_geom),
|
||||
$ sym_num_ops(max_geom),
|
||||
$ sym_center_map_handle(max_geom),
|
||||
$ sym_center_map_index(max_geom),
|
||||
$ include_bqbq(max_geom),
|
||||
$ oecpcent(max_cent,max_geom),
|
||||
$ ngeom_rtdb,
|
||||
$ zmt_nizmat(max_geom),
|
||||
$ zmt_nzfrz(max_geom),
|
||||
$ zmt_nzvar(max_geom),
|
||||
$ zmt_maxtor(max_geom),
|
||||
$ zmt_izmat(max_izmat,max_geom),
|
||||
$ zmt_izfrz(max_nzvar,max_geom),
|
||||
$ zmt_ijbond(2,max_zcoord,max_geom),
|
||||
$ zmt_ijkang(3,max_zcoord,max_geom),
|
||||
$ zmt_ijklto(4,max_zcoord,max_geom),
|
||||
$ zmt_ijklop(4,max_zcoord,max_geom),
|
||||
$ zmt_ijklnb(4,max_zcoord,max_geom),
|
||||
$ zmt_ijbond_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_frz(max_zcoord,max_geom)
|
||||
c
|
||||
character*256 names, names_rtdb, trans
|
||||
character*16 tags
|
||||
character*10 group_name
|
||||
character*10 user_units
|
||||
character*10 sym_spgnames,sym_molgnames
|
||||
character*8 zmt_varname, zmt_source,
|
||||
$ zmt_ijbond_nam, zmt_ijkang_nam, zmt_ijklto_nam,
|
||||
$ zmt_ijklop_nam, zmt_ijklnb_nam
|
||||
|
||||
common/ccgeometry/
|
||||
$ names(1:max_geom),
|
||||
$ trans(1:max_geom),
|
||||
$ names_rtdb(1:max_geom_rtdb),
|
||||
$ tags(max_cent, max_geom),
|
||||
$ group_name(max_geom),
|
||||
$ user_units(max_geom),
|
||||
$ sym_spgnames(230),
|
||||
$ sym_molgnames(46),
|
||||
$ zmt_varname(max_izmat,max_geom),
|
||||
$ zmt_source(max_geom),
|
||||
$ zmt_ijbond_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_nam(max_zcoord,max_geom)
|
||||
c
|
||||
|
||||
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
*
|
||||
* $Id$
|
||||
*
|
||||
c
|
||||
c Private fortran include file for the geometry routines
|
||||
c
|
||||
c Parameters
|
||||
c
|
||||
c max_geom = maximum no. of geometries
|
||||
c max_cent = maximum no. of centers in a geometry
|
||||
c max_geom_rtdb = maximum no. of geometries stored in the rtdb
|
||||
c nelments = no. of elements that info is stored about
|
||||
c
|
||||
c [The only thing that cannot be dynamically allocated are the
|
||||
c character variables for the tags ... I was lazy and just statically
|
||||
c dimensioned everything ... just drudge work to dynamically
|
||||
c allocate though if necessary ... which it hopefully will not be
|
||||
c ... since only geom.F (and maybe the basis routines) include
|
||||
c this header file only these need to be recompiled if the parameters
|
||||
c are changed]
|
||||
c
|
||||
c Members of /cgeometry/
|
||||
c
|
||||
c ngeom_rtdb = current no. of geometries on the rtdb
|
||||
c active(1:max_geom) = true if this geometry is open
|
||||
c ncenter(1:max_geom) = no. of centers in this geometry
|
||||
c coords(1:3,1:max_cent,1:max_geom) = cartesian coords of this geometry
|
||||
c charge(1:max_cent,1:max_geom) = charges associated with centers
|
||||
c geom_mass(1:max_cent,1:max_geom) = mass associated with centers
|
||||
c geom_invnucexp(1:max_cent,1:max_geom) = inverse of nuclear exponent
|
||||
c dipole ... not yet
|
||||
c quadrupole ... not yet
|
||||
c pseudopotential ... not yet
|
||||
c efield(1:3,1:max_geom) = external electric field applied to this system
|
||||
c oefield = true if efield is on
|
||||
c angstrom_to_au = scale factor between angstom and atomic units
|
||||
c include_bqbq(geom) = include bqbq interactions for this molecule
|
||||
c
|
||||
c--> symmetry information
|
||||
c
|
||||
c sym_sgpnames(1:230) = list of known space groups ... must match spgen
|
||||
c sym_mgpnames(1:46) = list of known molecular groups ... ditto
|
||||
c ncenter_unique(1:max_geom) = no. of symmetry unique centers
|
||||
c unique_cent(1:max_cent,1:max_geom) = list of symmetry unique centers
|
||||
c group_number(max_geom) = Tony magic group number
|
||||
c setting_number(max_geom) = Where the symmetry origin is
|
||||
c max_sym_ops = max. no. of operations in group
|
||||
c sym_ops(max_sym_op*3,4) = matrix representation of symmetry operators
|
||||
c molecules -> transformation of cartesians
|
||||
c periodic -> ask tony!
|
||||
c sym_op_inv(max_sym_op,max_geom) = index of inverse operation
|
||||
c sym_num_ops(max_geom) = order of group minus one
|
||||
c = no. of operations in the group
|
||||
c sym_center_map_handle(max_geom) = MA handle of integer array
|
||||
c sym_center_map(center,op)->op*center
|
||||
c sym_center_map_index(max_geom) = MA index of integer array
|
||||
c sym_center_map(center,op)->op*center
|
||||
c
|
||||
c group_name(max_geom) = symbolic name of the molecular group
|
||||
c
|
||||
c--> solid state specific information
|
||||
c
|
||||
c isystype(1:max_geom) = 0 (molecular), 1 (polymer), 2 (surface)
|
||||
c 3 (crystal)
|
||||
c lattice_vectors(1:3,1:max_geom) = lengths of unit cell axes (angstrom)
|
||||
c lattice_angles(1:3,1:max_geom) = angles between unit cell axes (angstrom)
|
||||
c
|
||||
c amatrix(1:3,1:3,1:max_geom) = matrix that transforms atomic fractional
|
||||
c coords. to a Cartesian system in bohr. This matrix
|
||||
c is the unit matrix for molecular systems.
|
||||
c
|
||||
c bmatrix(1:3,1:3,1:max_geom) = matrix that transforms reciprocal lattice vectors
|
||||
c to a Cartesian system (a.u.). This matrix
|
||||
c is the unit matrix for molecular systems.
|
||||
c
|
||||
c amatrix_inv(1:3,1:3,1:max_geom) = used to transform from atomic Cartesian
|
||||
c coords. to fractional coordinates & can be used
|
||||
c to resolve the scalar lattice vectors into their
|
||||
c Cartesian components. This matrix is the unit
|
||||
c matrix for molecular systems.
|
||||
c
|
||||
c volume_direct(1:max_geom) = direct space unit cell volume units = Ang^3
|
||||
c metric_matrix(1:3,1:3,1:max_geom) = metric matrix for Bravais lattice
|
||||
c recip_lat_vectors(1:3,1:max_geom) = reciprocal lattice vectors (angstroms)
|
||||
c recip_lat_angles(1:3,1:max_geom) = reciprocal lattice angles (degrees)
|
||||
c
|
||||
c operiodic = obsolete
|
||||
c latvec(1:3,1:3,1:max_geom) = obsolete
|
||||
c
|
||||
c erep(1:max_geom) = interaction energy of centers with each other
|
||||
c and external fields. At its simplest this is
|
||||
c just the nuclear repulsion energy
|
||||
c ndipole(1:3,1:max_geom) = nuclear dipole moment
|
||||
c
|
||||
c Members of /ccgeometry/
|
||||
c
|
||||
c names(1:max_geom) = names of open geometries
|
||||
c trans(1:max_geom) = translations of names of open geoms
|
||||
c names_rtdb(1:max_geom_rtdb) = names of geometries in the rtdb
|
||||
c tag(1:max_cent,1:max_geom) = tags associated with centers
|
||||
c zmt_source(1:max_geom) = source of zmatrix (user or autoz)
|
||||
c lenn(1:max_geom) = length of names(geom) minus trailing blanks
|
||||
c lent(1:max_geom) = length of trans(geom) ...
|
||||
c lenr(1:max_geom_rtdb) = length of names_rtdb(geom) ...
|
||||
c symbols(1:nelements) = symbols for elements
|
||||
c elements(1:nelements) = names of elements
|
||||
c
|
||||
|
||||
integer max_geom, max_cent, max_geom_rtdb, nelements,
|
||||
$ max_sym_ops
|
||||
integer max_izmat, max_nzvar, max_zcoord
|
||||
c
|
||||
parameter (max_sym_ops = 192)
|
||||
parameter (max_geom = nw_max_geoms)
|
||||
parameter (max_geom_rtdb = 100)
|
||||
parameter (nelements = 109)
|
||||
parameter (max_cent = nw_max_atom)
|
||||
parameter (max_nzvar = 6*max_cent)
|
||||
parameter (max_izmat = 4*max_nzvar)
|
||||
parameter (max_zcoord = 16) ! For augmenting autoz
|
||||
c
|
||||
logical active, operiodic, oefield, include_bqbq, oecpcent,
|
||||
$ zmt_ijbond_frz, zmt_ijkang_frz, zmt_ijklto_frz,
|
||||
$ zmt_ijklop_frz, zmt_ijklnb_frz
|
||||
|
||||
integer ngeom_rtdb, ncenter, lenn, lent, lenr, group_number,
|
||||
$ ncenter_unique, isystype, setting_number, unique_cent,
|
||||
$ sym_op_inv, sym_num_ops, sym_center_map_handle,
|
||||
$ sym_center_map_index,
|
||||
$ zmt_izmat,zmt_nizmat,
|
||||
$ zmt_izfrz,zmt_nzfrz, zmt_nzvar, zmt_maxtor,
|
||||
$ zmt_ijbond, zmt_ijkang, zmt_ijklto, zmt_ijklop, zmt_ijklnb
|
||||
|
||||
double precision coords, charge, efield, latvec, ndipole, erep,
|
||||
$ lattice_vectors, lattice_angles, amatrix, amatrix_inv,
|
||||
$ volume_direct, metric_matrix, recip_lat_vectors,
|
||||
$ recip_lat_angles, sym_ops, angstrom_to_au, geom_invnucexp,
|
||||
$ geom_mass,bmatrix, velocities, zmt_varsign, zmt_cvr_scaling,
|
||||
$ zmt_ijbond_val, zmt_ijkang_val, zmt_ijklto_val,
|
||||
$ zmt_ijklop_val, zmt_ijklnb_val, zmt_izfrz_val
|
||||
|
||||
common/cgeometry/
|
||||
* doubles
|
||||
$ coords(3,max_cent,max_geom),
|
||||
$ velocities(3,max_cent,max_geom),
|
||||
$ charge(max_cent,max_geom),
|
||||
$ geom_mass(max_cent,max_geom),
|
||||
$ geom_invnucexp(max_cent,max_geom),
|
||||
$ efield(3, max_geom),
|
||||
$ latvec(3,3, max_geom), ! Obsolete ?
|
||||
$ erep(max_geom),
|
||||
$ ndipole(3,max_geom),
|
||||
$ lattice_vectors(1:3,1:max_geom),
|
||||
$ lattice_angles(1:3,1:max_geom),
|
||||
$ recip_lat_vectors(1:3,1:max_geom),
|
||||
$ recip_lat_angles(1:3,1:max_geom),
|
||||
$ amatrix(3,3,max_geom),
|
||||
$ bmatrix(3,3,max_geom),
|
||||
$ amatrix_inv(3,3,max_geom),
|
||||
$ sym_ops(max_sym_ops*3,4,max_geom),
|
||||
$ metric_matrix(3,3,max_geom),
|
||||
$ volume_direct(max_geom),
|
||||
$ angstrom_to_au,
|
||||
$ zmt_varsign(max_nzvar,max_geom),
|
||||
$ zmt_cvr_scaling(max_geom),
|
||||
$ zmt_ijbond_val(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_val(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_val(max_zcoord,max_geom),
|
||||
$ zmt_izfrz_val(max_nzvar,max_geom),
|
||||
* integers & logicals
|
||||
$ ncenter(max_geom),
|
||||
$ active(max_geom),
|
||||
$ lenn(max_geom),
|
||||
$ lent(max_geom),
|
||||
$ lenr(max_geom_rtdb),
|
||||
$ operiodic(max_geom), ! Obsolete ?
|
||||
$ oefield(max_geom),
|
||||
$ isystype(1:max_geom),
|
||||
$ ncenter_unique(1:max_geom),
|
||||
$ unique_cent(1:max_cent,1:max_geom),
|
||||
$ group_number(max_geom),
|
||||
$ setting_number(max_geom),
|
||||
$ sym_op_inv(max_sym_ops,max_geom),
|
||||
$ sym_num_ops(max_geom),
|
||||
$ sym_center_map_handle(max_geom),
|
||||
$ sym_center_map_index(max_geom),
|
||||
$ include_bqbq(max_geom),
|
||||
$ oecpcent(max_cent,max_geom),
|
||||
$ ngeom_rtdb,
|
||||
$ zmt_nizmat(max_geom),
|
||||
$ zmt_nzfrz(max_geom),
|
||||
$ zmt_nzvar(max_geom),
|
||||
$ zmt_maxtor(max_geom),
|
||||
$ zmt_izmat(max_izmat,max_geom),
|
||||
$ zmt_izfrz(max_nzvar,max_geom),
|
||||
$ zmt_ijbond(2,max_zcoord,max_geom),
|
||||
$ zmt_ijkang(3,max_zcoord,max_geom),
|
||||
$ zmt_ijklto(4,max_zcoord,max_geom),
|
||||
$ zmt_ijklop(4,max_zcoord,max_geom),
|
||||
$ zmt_ijklnb(4,max_zcoord,max_geom),
|
||||
$ zmt_ijbond_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_frz(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_frz(max_zcoord,max_geom)
|
||||
c
|
||||
character*256 names, names_rtdb, trans
|
||||
character*16 tags
|
||||
character*10 group_name
|
||||
character*10 user_units
|
||||
character*10 sym_spgnames,sym_molgnames
|
||||
character*8 zmt_varname, zmt_source,
|
||||
$ zmt_ijbond_nam, zmt_ijkang_nam, zmt_ijklto_nam,
|
||||
$ zmt_ijklop_nam, zmt_ijklnb_nam
|
||||
|
||||
common/ccgeometry/
|
||||
$ names(1:max_geom),
|
||||
$ trans(1:max_geom),
|
||||
$ names_rtdb(1:max_geom_rtdb),
|
||||
$ tags(max_cent, max_geom),
|
||||
$ group_name(max_geom),
|
||||
$ user_units(max_geom),
|
||||
$ sym_spgnames(230),
|
||||
$ sym_molgnames(46),
|
||||
$ zmt_varname(max_izmat,max_geom),
|
||||
$ zmt_source(max_geom),
|
||||
$ zmt_ijbond_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijkang_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklto_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklop_nam(max_zcoord,max_geom),
|
||||
$ zmt_ijklnb_nam(max_zcoord,max_geom)
|
||||
c
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue