$CONTRL group (note: only one "oh"!) This group specifies the type of wavefunction, the type of calculation, use of core potentials, spherical harmonics, coordinate choices, and similar fundamental job options. Because this is a very long input group, here is a short list of its most important keywords: SCFTYP, MPLEVL, CITYP, CCTYP, DFTTYP, TDDFT RUNTYP, ICHARG, MULT, RELWFN/PP, NZVAR, ISPHER SCFTYP specifies the self-consistent field wavefunction. You may choose from = RHF Restricted Hartree Fock calculation (default) = UHF Unrestricted Hartree Fock calculation = ROHF Restricted open shell Hartree-Fock. (high spin, see GVB for low spin) = GVB Generalized valence bond wavefunction, or low spin ROHF. (needs $SCF input) = MCSCF Multiconfigurational SCF wavefunction (this requires $DET or $DRT input) = NONE indicates a single point computation, rereading a converged SCF function. This option requires that you select CITYP=ALDET, ORMAS, FSOCI, GENCI, or GUGA, requesting only RUNTYP=ENERGY or TRANSITN, and using GUESS=MOREAD. The treatment of electron correlation for the above SCF wavefunctions is controlled by the keywords DFTTYP, VBTYP, MPLEVL, CITYP, and CCTYP contained in this group. No more than one of these may be chosen in a single run (except as part of RUNTYP=SURFACE). Scalar relativistic effects may be incorporated using RELWFN for any of these wavefunction choices, correlated or not. DFTTYP = NONE ab initio computation (default) = XXXXXX perform density functional theory run, using the functional specified. Many choices for XXXXXX are listed in the $DFT and $TDDFT input groups. TDDFT = NONE no excited states (default) = EXCITE generate time-dependent DFT excitation energies, using the DFTTYP= functional, for RHF or UHF references. Analytic nuclear gradients are available for RHF. See $TDDFT. = SPNFLP spin-flip TD-DFT, for either UHF or ROHF references. Nuclear gradients and solvent effects are coded. See $TDDFT. = POL (hyper)polarizability calculation, for RHF only. See $TDDFT. * * * * * VBTYP = NONE no valence bond calculation (default) = VB2000 use the VB2000 program to generate VB wavefunctions, for SCFTYP=RHF or ROHF. Analytic nuclear gradients are not available. A $VB2000 input group is required. See ~/gamess/vb2000/DOC/readme.GAMESS for info about $VB2000, and see also http://www.scinetec.com/~vb * * * * * MPLEVL = chooses Moller-Plesset perturbation theory level, after the SCF. See $MP2, or $MRMP for MCSCF. = 0 skip the MP computation (default) = 2 perform second order energy correction. MP2 (a.k.a. MBPT(2)) is implemented for RHF, UHF, ROHF, and MCSCF wavefunctions, but not GVB. Gradients are available for RHF, UHF, or ROHF based MP2, but for MCSCF, you must choose numerical derivatives to use any RUNTYP other than ENERGY, TRUDGE, SURFACE, or FFIELD. * * * * * CITYP = chooses CI computation after the SCF, for any SCFTYP except UHF. = NONE skips the CI. (default) = CIS single excitations from a SCFTYP=RHF reference, only. This is for excited states, with analytic nuclear gradients available. See the $CIS input group. = SFCIS spin-flip style CIS, see $CIS input. = ALDET runs the Ames Laboratory determinant full CI package, requiring $CIDET. = ORMAS runs an Occupation Restricted Multiple Active Space determinant CI. The input is $CIDET and $ORMAS. = FSOCI runs a full second order CI using determinants, see $CIDET and $SODET. = GENCI runs a determinant CI program that permits arbitrary specification of the determinants, requiring $CIGEN. = GUGA runs the Unitary Group CI package, which requires $CIDRT input. Analytic gradients are available only for RHF, so for other SCFTYPs, you may choose only RUNTYP=ENERGY, TRUDGE, SURFACE, FFIELD, TRANSITN. PMTD1 = For CITYP=ALDET or ORMAS, or for these two CI steps in MCSCF runs, for EFP solvent calculations, this flag enables use of "polarization method 1" for the effective fragments. See also FSTATE in $CIDET or $DET = .TRUE. The EFP dipoles will not be re-polarized to the CITYP wavefunction (default) = .FALSE. The EFP dipoles will be re-polarized to the CITYP wavefunction * * * * * CCTYP chooses a Coupled-Cluster (CC calculation for the ground state and, optionally, Equation of Motion Coupled-Cluster (EOMCC) computation for excited states, both performed after the SCF (RHF or ROHF). See also $CCINP and $EOMINP. Only CCSD and CCSD(T) for RHF can run in parallel. For ROHF, you may choose only CCSD and CR-CCL. = NONE skips CC computation (default). = LCCD perform a coupled-cluster calculation using the linearized coupled-cluster method with double excitations. = CCD perform a CC calculation using the coupled-cluster method with doubles. = CCSD perform a CC calculation with both single and double excitations. = CCSD(T) in addition to CCSD, the non-iterative triples corrections are computed, giving standard CCSD[T] and CCSD(T) energies. = R-CC in addition to all CCSD(T) calculations, compute the renormalized R-CCSD[T] and R-CCSD(T) energies. = CR-CC in addition to all R-CC calculations, the completely renormalized CR-CCSD[T] and CR-CCSD(T) energies are computed. = CR-CCL in addition to a CCSD ground state, the non-iterative triples energy correction defining the rigorously size extensive completely renormalized CR-CC(2,3), also called CR-CCSD(T)_L theory, is computed. Ground state only (zero NSTATE vector) CCTYP=CR-EOM type CR-EOMCCSD(T) energies and CCSD properties are also generated. For further information about accuracy, and A to D CR-CC(2,3) energy types, see REFS.DOC. = CCSD(TQ) in addition to all R-CC calculations, non-iterative triple and quadruple corrections are used, to give CCSD(TQ) and various R-CCSD(TQ) energies. = CR-CC(Q) in addition to all CR-CC and CCSD(TQ) calculations, the CR-CCSD(TQ) energies are obtained. excited state options, note that EOM-CCSD is available for RHF or ROHF references, but triples corrections only for RHF cases. = EOM-CCSD in addition to a CCSD ground state, excited states are calculated using the equation of motion coupled-cluster method with singles and doubles. = CR-EOM in addition to the CCSD and EOM-CCSD, noniterative triples corrections to CCSD ground-state and EOM-CCSD excited-state energies are found, using completely renormalized CR-EOMCCSD(T) approaches. = CR-EOML in addition to printing all results that CR-EOM obtains, this solves the lambda equations, and gives triples corrections analogous to ground state CR-CCL. ionization processes, = IP-EOM2 ionized EOMCC with up to 2h1p excitations (i.e., IP-EOMCCSD) = IP-EOM3A ionized EOMCC with all 1h and 2h1p, and active-space 3h2p excitations (i.e., IP-EOMCCSDt) = EA-EOM2 electron-attached EOMCC with up to 2p1h excitations (i.e., EA-EOMCCSD) = EA-EOM3A electron-attached EOMCC with all 1p and 2p1h, and active-space 3p2h excitations (i.e., EA-EOMCCSDt). Labels "p" and "h" in the description of IP and EA EOMCC methods refer to particles (unoccupied correlated orbitals) and holes (occupied correlated orbitals). EA and IP runs produce both ground and excited states of systems obtained by attaching an electron to or removing an electron from the underlying CCSD reference ground state, using the EOMCC formalism. Thus, EA and IP runs read $CCINP as well as $EOMINP inputs. Any publication describing the results of CC calculations obtained using GAMESS should reference the appropriate papers, which are listed on the output of every run, and in chapter 4 of this manual. Analytic gradients are not available, so use CCTYP only for RUNTYP=ENERGY, TRUDGE, SURFACE, or maybe FFIELD, or request numerical derivatives. Generally speaking, the Renormalized energies are obtained at similar cost to the standard values, while Completely Renormalized energies cost twice the time. For usage tips and more information about resources on the various Coupled Cluster methods, see Section 4, 'Further Information'. CIMTYP chooses a Cluster-In-Molecule (CIM) calculation. = NONE skip CIM computation, i.e., perform a canonical calculation (default). = SECIM perform a single-environment CIM (SECIM) computation. = DECIM perform a dual-environment CIM (DECIM) computation. = GSECIM perform a generalized SECIM (GSECIM) computation. The $CIMFRG must be included as well. See also $CIMINP and, optionally, $CIMFRG and $CIMATM. If CIMTYP is given, SUBMTD in $CIMINP is required. Only RUNTYP=ENERGY and SCFTYP=RHF or ROHF work when CIMTYP is given. See SUBMTD in $CIMINP for more details. * * * * * RELWFN Selects all-electron scalar relativity treatment. See the $RELWFN input group for more information, including nuclear derivative availability. = NONE use the basic Schrodinger equation (default) = LUT-IOTC local unitary transformation modification of IOTC, due to H.Nakai, J.Seino, Y.Nakajima. This is the fastest and most numerically reliable scalar relativity method, so it is preferred over RESC, DK, or IOTC. = IOTC infinite-order two-component method of M. Barysz and A.J. Sadlej. = DK Douglas-Kroll transformation, available at the 1st, 2nd, or 3rd order. = RESC relativistic elimination of small component, the method of T. Nakajima and K. Hirao, available at 2nd order only. = NESC normalised elimination of small component, the method of K. Dyall, 2nd order only. * * * * * RUNTYP specifies the type of computation, for example at a single geometry point: = ENERGY Molecular energy. (default) = GRADIENT Molecular energy plus gradient. = HESSIAN Molecular energy plus gradient plus second derivatives, including harmonic harmonic vibrational analysis. See the $FORCE and $CPHF input groups. For FMO, use FMOHESS instead of HESSIAN. = FMOHESS the same as HESSIAN, for FMO runs, supported only for RHF, R-DFT, UHF, U-DFT, and ROHF. = GAMMA Evaluate up to 3rd nuclear derivatives, by finite differencing of Hessians. See $GAMMA, and also NFFLVL in $CONTRL. multiple geometry options: = OPTIMIZE Optimize the molecular geometry using analytic energy gradients. See $STATPT. = TRUDGE Non-gradient total energy minimization. See $TRUDGE and $TRURST. = SADPOINT Locate saddle point (transition state). See $STATPT. = MEX Locate minimum energy crossing point on the intersection seam of two potential energy surfaces. See $MEX. = CONICAL Locate conical intersection point on the intersection seam of two potential energy surfaces. See $CONICL. = IRC Follow intrinsic reaction coordinate. See $IRC. = VSCF anharmonic vibrational corrections. See $VSCF. = DRC Follow dynamic reaction coordinate. See $DRC. = MD molecular dynamics trajectory, see $MD. = GLOBOP Monte Carlo-type global optimization. See $GLOBOP. = OPTFMO genuine FMO geometry optimization using nearly analytic gradient. See $OPTFMO. = GRADEXTR Trace gradient extremal. See $GRADEX. = SURFACE Scan linear cross sections of the potential energy surface. See $SURF. single geometry property options: = COMP composite thermochemistry calculation, including G3MP2. See $COMP input. = G3MP2 evaluate heat of formation using the G3(MP2,CCSD(T)) methodology. See test example exam43.inp for more information. = PROP Molecular properties will be calculated. Orbital localization can be requested as well. See $ELPOT, etc. Converged orbitals must be input in a $VEC input, which suffice to reproduce the wavefunction only for simple SCF: RHF, UHF, ROHF, or DFT counterparts. GVB also works (CICOEF may be needed). All other calculations must instead use RUNTYP=ENERGY to regenerate the density matrix. = RAMAN computes Raman intensities, see $RAMAN. = NACME non-adiabatic coupling matrix element between two or more state averaged MCSCF wavefunctions. The calculation has no specific input group, but must use only SCFTYP=MCSCF with CISTEP=ALDET or ORMAS. = NMR NMR shielding tensors for closed shell molecules by the GIAO method. See $NMR. = EDA Perform energy decomposition analysis. Give one of $MOROKM or $LMOEDA inputs. = QMEFPEA QM/EFP solvent energy analysis, see $QMEFP. = TRANSITN Compute radiative transition moment or spin-orbit coupling. See $TRANST. = FFIELD applies finite electric fields, most commonly to extract polarizabilities. See $FFCALC. = TDHF analytic computation of time dependent polarizabilities. See $TDHF. = TDHFX extended TDHF package, including nuclear polarizability derivatives, and Raman and Hyper-Raman spectra. See $TDHFX. = MAKEFP creates an effective fragment potential, for SCFTYP=RHF or ROHF only. See $MAKEFP, $DAMP, $DAMPGS, $STONE, ... = FMO0 performs the free state FMO calculation. See $FMO. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Note that RUNTYPs which require the nuclear gradient are GRADIENT, HESSIAN, OPTIMIZE, SADPOINT, GLOBOP, IRC, GRADEXTR, DRC, and RAMAN These are efficient with analytic gradients, which are available only for certain CI or MP2 calculations, but no CC calculations, as indicated above. See NUMGRD. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NUMGRD Flag to allow numerical differentiation of the energy. Each gradient requires the energy be computed twice (forward and backward displacements) along each totally symmetric modes. It is thus recommended only for systems with just a few symmetry unique atoms in $DATA. The default is .FALSE. EXETYP = RUN Actually do the run. (default) = CHECK Wavefunction and energy will not be evaluated. This lets you speedily check input and memory requirements. See the overview section for details. Note that you must set PARALL=.TRUE. in $SYSTEM to test distributed memory allocations. = DEBUG Massive amounts of output are printed, useful only if you hate trees. = routine Maximum output is generated by the routine named. Check the source for the routines this applies to. * * * * * * * ICHARG = Molecular charge. (default=0, neutral) MULT = Multiplicity of the electronic state = 1 singlet (default) = 2,3,... doublet, triplet, and so on. ICHARG and MULT are used directly for RHF, UHF, ROHF. For GVB, these are implicit in the $SCF input, while for MCSCF or CI, these are implicit in $DRT/$CIDRT or $DET/$CIDET input. You must still give them correctly. * * * the next three control molecular geometry * * * COORD = choice for molecular geometry in $DATA. = UNIQUE only the symmetry unique atoms will be given, in Cartesian coords (default). = HINT only the symmetry unique atoms will be given, in Hilderbrandt style internals. = PRINAXIS Cartesian coordinates will be input, and transformed to principal axes. Please read the warning just below!!! = ZMT GAUSSIAN style internals will be input. = ZMTMPC MOPAC style internals will be input. = FRAGONLY means no part of the system is treated by ab initio means, hence $DATA is not given. The system is defined by $EFRAG. Note: the choices PRINAXIS, ZMT, ZMTMPC require input of all atoms in the molecule. They also orient the molecule, and then determine which atoms are unique. The reorientation is likely to change the order of the atoms from what you input. When the point group contains a 3- fold or higher rotation axis, the degenerate moments of inertia often cause problems choosing correct symmetry unique axes, in which case you must use COORD=UNIQUE rather than Z-matrices. Warning: The reorientation into principal axes is done only for atomic coordinates, and is not applied to the axis dependent data in the following groups: $VEC, $HESS, $GRAD, $DIPDR, $VIB, nor Cartesian coords of effective fragments in $EFRAG. COORD=UNIQUE avoids reorientation, and thus is the safest way to read these. Note: the choices PRINAXIS, ZMT, ZMTMPC require the use of a group named $BASIS to define the basis set. The first two choices might or might not use $BASIS, as you wish. UNITS = distance units, any angles must be in degrees. = ANGS Angstroms (default) = BOHR Bohr atomic units NZVAR = 0 Use Cartesian coordinates (default). = M If COORD=ZMT or ZMTMPC, and $ZMAT is not given: the internal coordinates will be those defining the molecule in $DATA. In this case, $DATA may not contain any dummy atoms. M is usually 3N-6, or 3N-5 for linear. = M For other COORD choices, or if $ZMAT is given: the internal coordinates will be those defined in $ZMAT. This allows more sophisticated internal coordinate choices. M is ordinarily 3N-6 (3N-5), unless $ZMAT has linear bends. NZVAR refers mainly to the coordinates used by OPTIMIZE or SADPOINT runs, but may also print the internal's values for other run types. You can use internals to define the molecule, but Cartesians during optimizations! * * * * * * * Pseudopotentials may be of two types: ECP (effective core potentials) which generate nodeless valence orbitals, and MCP (model core potentials) producing valence orbitals with the correct radial nodal structure. At present, ECPs have analytic nuclear gradients and Hessians, while MCPs have analytic nuclear gradients. PP = pseudopotential selection. = NONE all electron calculation (default). = READ read ECP potentials in the $ECP input. = SBKJC use Stevens, Basch, Krauss, Jasien, Cundari ECP potentials for all heavy atoms (Li-Rn are available). = HW use Hay, Wadt ECP potentials for heavy atoms (Na-Xe are available). = MCP use Huzinaga's Model Core Potentials. The correct MCP potential will be chosen to match the requested MCP valence basis set (see $BASIS). * * * * * * * LOCAL = controls orbital localization. = NONE Skip localization (default). = BOYS Do Foster-Boys-like localization. = RUEDNBRG Do Edmiston-Ruedenberg localization. = POP Do Pipek-Mezey population localization. = SVD Do single value decomposition, to project the molecular orbitals onto atoms. This is available only for SCFTYP=RHF, ROHF, and MCSCF (full space or ORMAS). The ORIENT keyword in $LOCAL is pertinent. See the related $LOCAL input. Localization is not available for SCFTYP=GVB. DFTB only works with LOCAL=POP (and NONE). * * * * * * * ISPHER = Spherical Harmonics option = -1 Use Cartesian basis functions to construct symmetry-adapted linear combination (SALC) of basis functions. The SALC space is the linear variation space used. (default) = 0 Use spherical harmonic functions to create SALC functions, which are then expressed in terms of Cartesian functions. The contaminants are not dropped, hence this option has EXACTLY the same variational space as ISPHER=-1. The only benefit to obtain from this is a population analysis in terms of pure s,p,d,f,g functions. = +1 Same as ISPHER=0, but the function space is truncated to eliminate all contaminant Cartesian functions [3S(D), 3P(F), 4S(G), and 3D(G)] before constructing the SALC functions. The computation corresponds to the use of a spherical harmonic basis. QMTTOL = linear dependence threshhold Any functions in the SALC variational space whose eigenvalue of the overlap matrix is below this tolerence is considered to be linearly dependent. Such functions are dropped from the variational space. What is dropped is not individual basis functions, but rather some linear combination(s) of the entire basis set that represent the linear dependent part of the function space. The default is a reasonable value for most purposes, 1.0E-6. When many diffuse functions are used, it is common to see the program drop some combinations. On occasion, in multi-ring molecules, we have raised QMTTOL to 3.0E-6 to obtain SCF convergence, at the cost of some energy. MAXIT = Maximum number of SCF iteration cycles. This pertains only to RHF, UHF, ROHF, or GVB runs. See also MAXIT in $MCSCF. (default = 30) * * * interfaces to other programs * * * MOLPLT = flag that produces an input deck for a molecule drawing program distributed with GAMESS. (default is .FALSE.) PLTORB = flag that produces an input deck for an orbital plotting program distributed with GAMESS. (default is .FALSE.) AIMPAC = flag to create an input deck for Bader's Atoms In Molecules properties code. (default=.FALSE.) For information about this program, see the URL http://www.chemistry.mcmaster.ca/aimpac DGRID = flag to add extra digits in molecular orbitals to the log file for use by Kohout's DGrid program: http://www2.cpfs.mpg.de/~kohout/dgrid.html This is one of the modern alternatives to the old AIMPAC codes, in the QTAIM/ELF arena. (default .FALSE.) FRIEND = string to prepare input to other quantum programs, choose from = HONDO for HONDO 8.2 = MELDF for MELDF = GAMESSUK for GAMESS (UK Daresbury version) = GAUSSIAN for Gaussian 9x = ALL for all of the above PLTORB, MOLPLT, and AIMPAC decks are written to file PUNCH at the end of the job. Thus all of these correspond to the final geometry encountered during jobs such as OPTIMIZE, SAPDOINT, IRC... In contrast, selecting FRIEND turns the job into a CHECK run only, no matter how you set EXETYP. Thus the geometry is that encountered in $DATA. The input is added to the PUNCH file, and may require some (usually minimal) massaging. PLTORB and MOLPLT are written even for EXETYP=CHECK. AIMPAC requires at least RUNTYP=PROP. * * * NFFLVL used to determine energies and gradients away from equilibrium structures, at the coordinates given in $DATA. The method will use a Taylor expansion of the potential surface around the stationary point. See $EQGEOM, $HLOWT, $GLOWT. This may be used with RUNTYP=ENERGY or GRADIENT. = 2 uses only Hessian information, which gives a reasonable energy, but not such a good gradient. = 3 uses Hessian and 3rd nuclear derivatives in the Taylor expansion, producing more accurate values for the energy and for the gradient. * * * computation control switches * * * For the most part, the default is the only sensible value, and unless you are sure of what you are doing, these probably should not be touched. NPRINT = Print/punch control flag See also EXETYP for debug info. (options -7 to 5 are primarily debug) = -7 Extra printing from Boys localization. = -6 debug for geometry searches = -5 minimal output = -4 print 2e-contribution to gradient. = -3 print 1e-contribution to gradient. = -2 normal printing, no punch file = 1 extra printing for basis,symmetry,ZMAT = 2 extra printing for MO guess routines = 3 print out property and 1e- integrals = 4 print out 2e- integrals = 5 print out SCF data for each cycle. (Fock and density matrices, current MOs = 6 same as 7, but wider 132 columns output. This option isn't perfect. = 7 normal printing and punching (default) = 8 more printout than 7. The extra output is (AO) Mulliken and overlap population analysis, eigenvalues, Lagrangians, ... = 9 everything in 8 plus Lowdin population analysis, final density matrix. NOSYM = 0 the symmetry specified in $DATA is used as much as possible in integrals, SCF, gradients, etc. (this is the default) = 1 the symmetry specified in the $DATA input is used to build the molecule, then symmetry is not used again. Some GVB or MCSCF runs (those without a totally symmetric charge density) require you request no symmetry. ETOLLZ = threshold to label molecular orbitals by Lz values. Small matrices of the Lz operator are diagonalized for the sets of MOs whose orbital energies are degenerate to within ETOLLZ. This option may be used in molecules with distorted linear symmetry for approximate labelling. Default: 1.0d-6 for linear, 0 (disable) if not. INTTYP selects the integral package(s) used, all of which produce equally accurate results. This is therefore used only for debugging purposes. = BEST use the fastest integral code available for any particular shell quartet (default): s,p,L or s,p,d,L rotated axis code first. ERIC s,p,d,f,g precursor transfer equation code second, up to 5 units total ang. mom. Rys quadrature for general s,p,d,f,g,L, or for uncontracted quartets. = ROTAXIS means don't use ERIC at all, e.g. rotated axis codes, or else Rys quadrature. = ERIC means don't use rotated axis codes, e.g. ERIC code, or else Rys quadrature. = RYSQUAD means use Rys quadrature for everything. GRDTYP = BEST use Schlegel routines for spL gradient blocks, and Rys quadrature for all other gradient integrals. (default) = RYSQUAD use Rys quadrature for all gradient integrals. This option is only slightly more accurate, but is rather slower. HSSTYP = BEST use faster routines. = GENERAL use slower code (default). NORMF = 0 normalize the basis functions (default) = 1 no normalization NORMP = 0 input contraction coefficients refer to normalized Gaussian primitives. (default) = 1 the opposite. ITOL = primitive cutoff factor (default=20) = n products of primitives whose exponential factor is less than 10**(-n) are skipped. ICUT = n integrals less than 10.0**(-n) are not saved on disk. (default = 9). Direct SCF will calculate to a cutoff 1.0d-10 or 5.0d-11 depending on FDIFF=.F. or .T. ISKPRP = 0 proceed as usual 1 skip computation of some properties which are not well parallelised. This includes bond orders and virial theorem, and can help parallel scalability if many CPUs are used. Note that NPRINT=-5 disables most property computations as well, so ISKPRP=1 has no effect in that case. (default: 0) * * * restart options * * * IREST = restart control options (for OPTIMIZE run restarts, see $STATPT) Note that this option is unreliable! = -1 reuse dictionary file from previous run, useful with GEOM=DAF and/or GUESS=MOSAVED. Otherwise, this option is the same as 0. = 0 normal run (default) = 1 2e restart (1-e integrals and MOs saved) = 2 SCF restart (1-,2-e integrals and MOs saved) = 3 1e gradient restart = 4 2e gradient restart GEOM = select where to obtain molecular geometry = INPUT from $DATA input (default for IREST=0) = DAF read from DICTNRY file (default otherwise) As noted in the first chapter, binary file restart is not a well tested option! ========================================================== ==========================================================
generated on 7/7/2017