/* wrtkey.f -- translated by f2c (version 19950314).
   You must link the resulting object file with the libraries:
	-lF77 -lI77 -lm   (in that order)
*/

#include "f2c.h"

/* Common Block Declarations */

struct {
    char argz[512];
} argz_;

#define argz_1 argz_

/* Table of constant values */

static integer c__1 = 1;
static doublereal c_b212 = 3600.;

/* Subroutine */ int wrtkey_(char *keywrd, ftnlen keywrd_len)
{
    /* Initialized data */

    static logical am1 = FALSE_;
    static logical mndo = FALSE_;
    static logical mindo3 = FALSE_;
    static logical pm3 = FALSE_;

    /* Format strings */
    static char fmt_70[] = "(\002 *  VECTORS  - FINAL EIGENVECTORS TO BE PRI"
	    "NTED\002)";
    static char fmt_80[] = "(\002 *  EXTERNAL - USE ATOMIC PARAMETERS FROM T"
	    "HE FOLLOWING \002,\002FILE\002,/15x,a)";
    static char fmt_90[] = "(\002 *  DENSITY  - FINAL DENSITY MATRIX TO BE P"
	    "RINTED\002)";
    static char fmt_100[] = "(\002 *  SPIN     - FINAL UHF SPIN MATRIX TO BE"
	    " PRINTED\002)";
    static char fmt_110[] = "(\002 *  DEPVAR=N - SPECIFIED DISTANCE IS\002,f"
	    "7.4,\002 TIMES BOND LENGTH\002)";
    static char fmt_120[] = "(\002 *  DEP      - OUTPUT FORTRAN CODE FOR BLO"
	    "CK-DATA\002)";
    static char fmt_130[] = "(\002 *  VELOCITY - INPUT STARTING VELOCITIES F"
	    "OR DRC\002)";
    static char fmt_140[] = "(\002 *  TIMES    - TIMES OF VARIOUS STAGES TO "
	    "BE PRINTED\002)";
    static char fmt_150[] = "(\002 *  PARASOK  - USE SOME MNDO PARAMETERS IN"
	    " AN AM1 CALCULA\002,\002TION\002)";
    static char fmt_160[] = "(\002 *  FLEPO    - PRINT DETAILS OF GEOMETRY O"
	    "PTIMISATION\002)";
    static char fmt_170[] = "(\002 *  BONDS    - FINAL BOND-ORDER MATRIX TO "
	    "BE PRINTED\002)";
    static char fmt_180[] = "(\002 *  GEO-OK   - OVERRIDE INTERATOMIC DISTAN"
	    "CE CHECK\002)";
    static char fmt_190[] = "(\002 *  FOCK     - LAST FOCK MATRIX TO BE PRIN"
	    "TED\002)";
    static char fmt_200[] = "(\002 *  LARGE    - EXPANDED OUTPUT TO BE PRINT"
	    "ED\002)";
    static char fmt_210[] = "(\002 *  S1978    - 1978 SULFUR PARAMETERS TO B"
	    "E USED\002)";
    static char fmt_220[] = "(\002 *  SI1978   - 1978 SILICON PARAMETERS TO "
	    "BE USED\002)";
    static char fmt_230[] = "(\002 *  GRAPH    - GENERATE FILE FOR GRAPHIC"
	    "S\002)";
    static char fmt_240[] = "(\002 *  1ELECTRON- FINAL ONE-ELECTRON MATRIX T"
	    "O BE PRINTED\002)";
    static char fmt_260[] = "(\002 *  NOMM     - DO NOT MAKE MM CORRECTION T"
	    "O CONH BARRIER\002)";
    static char fmt_265[] = "(\002 *  MMOK     - APPLY MM CORRECTION TO CONH"
	    " BARRIER\002)";
    static char fmt_270[] = "(\002 *  INTERP   - PRINT DETAILS OF CAMP-KING "
	    "CONVERGER\002)";
    static char fmt_250[] = "(\002 *  ESR      - RHF SPIN DENSITY CALCULATIO"
	    "N REQUESTED\002)";
    static char fmt_280[] = "(\002 *  DFP      - USE DAVIDON FLETCHER POWELL"
	    " OPTIMIZER\002)";
    static char fmt_290[] = "(\002 *  ANALYT   - USE ANALYTIC DERIVATIVES"
	    " \002)";
    static char fmt_300[] = "(\002 *  MECI     - M.E.C.I. WORKING TO BE PRIN"
	    "TED\002)";
    static char fmt_340[] = "(\002 *  LOCALIZE - LOCALIZED ORBITALS TO BE PR"
	    "INTED\002)";
    static char fmt_350[] = "(\002 *  MULLIK   - THE MULLIKEN ANALYSIS TO BE"
	    " PERFORMED\002)";
    static char fmt_360[] = "(\002 *   XYZ     - CARTESIAN COORDINATE SYSTEM"
	    " TO BE USED\002)";
    static char fmt_370[] = "(\002 *   PI      - BONDS MATRIX, SPLIT INTO SI"
	    "GMA-PI-DELL\002,\002 COMPONENTS, TO BE PRINTED\002)";
    static char fmt_380[] = "(\002 *  ECHO     - ALL INPUT DATA TO BE ECHOED"
	    " BEFORE RUN\002)";
    static char fmt_540[] = "(\002 *  SINGLET  - SPIN STATE DEFINED AS A SIN"
	    "GLET\002)";
    static char fmt_550[] = "(\002 *  DOUBLET  - SPIN STATE DEFINED AS A DOU"
	    "BLET\002)";
    static char fmt_570[] = "(\002 *  QUARTET  - SPIN STATE DEFINED AS A QUA"
	    "RTET\002)";
    static char fmt_580[] = "(\002 *  QUINTET  - SPIN STATE DEFINED AS A QUI"
	    "NTET\002)";
    static char fmt_590[] = "(\002 *  SEXTET   - SPIN STATE DEFINED AS A SEX"
	    "TET\002)";
    static char fmt_390[] = "(\002 *  H-PRIOR  - HEAT OF FORMATION TAKES PRI"
	    "ORITY IN DRC\002)";
    static char fmt_400[] = "(\002 *  X-PRIOR  - GEOMETRY CHANGES TAKE PRIOR"
	    "ITY IN DRC\002)";
    static char fmt_410[] = "(\002 *  T-PRIOR  - TIME TAKES PRIORITY IN DR"
	    "C\002)";
    static char fmt_420[] = "(\002 *  POWSQ    - PRINT DETAILS OF WORKING IN"
	    " POWSQ\002)";
    static char fmt_430[] = "(\002 *  POLAR    - CALCULATE FIRST, SECOND AND"
	    " THIRD-ORDER\002,\002 POLARIZABILITIES\002)";
    static char fmt_440[] = "(\002 *  DEBUG    - DEBUG OPTION TURNED ON\002)";
    static char fmt_450[] = "(\002 *  RESTART  - CALCULATION RESTARTED\002)";
    static char fmt_460[] = "(\002 *  IRC=N    - INTRINSIC REACTION COORDINA"
	    "TE\002,i3,\002 DEFINED\002)";
    static char fmt_470[] = "(\002 *  IRC      - INTRINSIC REACTION COORDINA"
	    "TE CALCULATION\002)";
    static char fmt_480[] = "(3(\002 *\002,/),\002 *\002,15x,\002  CHARGE ON"
	    " SYSTEM =\002,i3,3(/,\002 *\002))";
    static char fmt_490[] = "(\002 *  GRADIENTS- ALL GRADIENTS TO BE PRINTE"
	    "D\002)";
    static char fmt_500[] = "(\002 *  UHF      - UNRESTRICTED HARTREE-FOCK C"
	    "ALCULATION\002)";
    static char fmt_520[] = "(\002 *  BIRADICAL- SYSTEM HAS TWO UNPAIRED ELE"
	    "CTRONS\002)";
    static char fmt_530[] = "(\002 *  EXCITED  - FIRST EXCITED STATE IS TO B"
	    "E OPTIMIZED\002)";
    static char fmt_560[] = "(\002 *  TRIPLET  - SPIN STATE DEFINED AS A TRI"
	    "PLET\002)";
    static char fmt_600[] = "(\002 *  SYMMETRY - SYMMETRY CONDITIONS TO BE I"
	    "MPOSED\002)";
    static char fmt_620[] = "(\002 *  OPEN(N,N)- THERE ARE\002,i2,\002 ELECT"
	    "RONS IN\002,i2,\002 LEVELS\002)";
    static char fmt_610[] = "(\002 *  MICROS=N -\002,i4,\002 MICROSTATES TO "
	    "BE SUPPLIED FOR C.I.\002)";
    static char fmt_320[] = "(\002 *  DRC=     - HALF-LIFE FOR KINETIC ENERG"
	    "Y LOSS =\002,f9.2,\002 * 10**(-14) SECONDS\002)";
    static char fmt_310[] = "(\002 *  DRC      - DYNAMIC REACTION COORDINATE"
	    " CALCULATION\002)";
    static char fmt_330[] = "(\002 *  KINETIC= - \002,f7.3,\002 KCAL KINETIC"
	    " ENERGY ADDED TO DRC\002)";
    static char fmt_630[] = "(\002 *   T=      - A TIME OF\002,f8.1,\002 "
	    "\002,a7,\002 REQUESTED\002)";
    static char fmt_640[] = "(\002 *   T=      - A TIME OF\002,g11.3,\002"
	    " \002,a7,\002 REQUESTED\002)";
    static char fmt_650[] = "(\002 *  DUMP=N   - RESTART FILE WRITTEN EVER"
	    "Y\002,f8.1,\002 \002,a7)";
    static char fmt_660[] = "(\002 *  DUMP=N   - RESTART FILE WRITTEN EVER"
	    "Y\002,g11.3,\002 \002,a7)";
    static char fmt_670[] = "(\002 *  1SCF     - DO 1 SCF AND THEN STOP \002)"
	    ;
    static char fmt_680[] = "(\002 *  C.I.=N   -\002,i2,\002 M.O.S TO BE USE"
	    "D IN C.I.\002)";
    static char fmt_690[] = "(\002 *  DFORCE   - PRINT HESSIAN MATRIX IN FOR"
	    "CE\002)";
    static char fmt_700[] = "(\002 *  FORCE    - FORCE CALCULATION SPECIFIE"
	    "D\002)";
    static char fmt_710[] = "(\002 *  MINDO/3  - THE MINDO/3 HAMILTONIAN TO "
	    "BE USED\002)";
    static char fmt_720[] = "(\002 *  AM1      - THE AM1 HAMILTONIAN TO BE U"
	    "SED\002)";
    static char fmt_730[] = "(\002 *  PM3      - THE PM3 HAMILTONIAN TO BE U"
	    "SED\002)";
    static char fmt_740[] = "(\002 *  PRECISE  - CRITERIA TO BE INCREASED BY"
	    " 100 TIMES\002)";
    static char fmt_750[] = "(\002 *  NOINTER  - INTERATOMIC DISTANCES NOT T"
	    "O BE PRINTED\002)";
    static char fmt_760[] = "(\002 *  ISOTOPE  - FORCE MATRIX WRITTEN TO DIS"
	    "K (CHAN. 9 )\002)";
    static char fmt_770[] = "(\002 *  DENOUT   - DENSITY MATRIX OUTPUT ON CH"
	    "ANNEL 10\002)";
    static char fmt_780[] = "(\002 *  SHIFT    - A DAMPING FACTOR OF\002,f8."
	    "2,\002 DEFINED\002)";
    static char fmt_790[] = "(\002 *  OLDENS   - INITIAL DENSITY MATRIX READ"
	    " OF DISK\002)";
    static char fmt_800[] = "(\002 *  SCFCRT   - DEFAULT SCF CRITERION REPLA"
	    "CED BY\002,g12.3)";
    static char fmt_810[] = "(\002 *  ENPART   - ENERGY TO BE PARTITIONED IN"
	    "TO COMPONENTS\002)";
    static char fmt_820[] = "(\002 *  NOXYZ    - CARTESIAN COORDINATES NOT T"
	    "O BE PRINTED\002)";
    static char fmt_830[] = "(\002 *  SIGMA    - GEOMETRY TO BE OPTIMIZED US"
	    "ING SIGMA.\002)";
    static char fmt_840[] = "(\002 *  NLLSQ    - GRADIENTS TO BE MINIMIZED U"
	    "SING NLLSQ.\002)";
    static char fmt_850[] = "(\002 *  ROOT     - IN A C.I. CALCULATION, ROO"
	    "T\002,i2,\002 TO BE OPTIMIZED.\002)";
    static char fmt_870[] = "(\002 *  TRANS=   - \002,i4,\002 VIBRATIONS ARE"
	    " TO BE DELETED FROM\002,\002 THE THERMO CALCULATION\002)";
    static char fmt_860[] = "(\002 *  TRANS    - THE REACTION VIBRATION TO B"
	    "E DELETED FROM\002,\002 THE THERMO CALCULATION\002)";
    static char fmt_880[] = "(\002 *  SADDLE   - TRANSITION STATE TO BE OPTI"
	    "MIZED\002)";
    static char fmt_890[] = "(\002 *   LET     - OVERRIDE SOME SAFETY CHECK"
	    "S\002)";
    static char fmt_900[] = "(\002 *  COMPFG   - PRINT HEAT OF FORMATION CAL"
	    "C'D IN COMPFG\002)";
    static char fmt_910[] = "(\002 *  DERIV    - PRINT PART OF WORKING IN SU"
	    "B. DERIV\002)";
    static char fmt_920[] = "(\002 *  FULSCF   - IN SEARCHES, FULL SCF CALCN"
	    "'S TO BE DONE\002)";
    static char fmt_930[] = "(\002 *  DCART    - PRINT DETAILS OF WORKING IN"
	    " DCART\002)";
    static char fmt_940[] = "(\002 *  GNORM=   - EXIT WHEN GRADIENT NORM DRO"
	    "PS BELOW \002,g8.3)";
    static char fmt_950[] = "(\002 *  FMAT     - PRINT DETAILS OF WORKING IN"
	    " FMAT\002)";
    static char fmt_960[] = "(\002 *  HCORE    - PRINT DETAILS OF WORKING IN"
	    " HCORE\002)";
    static char fmt_970[] = "(\002 *  ITER     - PRINT DETAILS OF WORKING IN"
	    " ITER\002)";
    static char fmt_980[] = "(\002 *  PULAY    - PULAY'S METHOD TO BE USED I"
	    "N SCF\002)";
    static char fmt_990[] = "(\002 *  LINMIN   - PRINT DETAILS OF LINE MINIM"
	    "IZATION\002)";
    static char fmt_1000[] = "(\002 *  LOCMIN   - USE LINMIN INSTEAD OF THIS"
	    " KEYWORD\002)";
    static char fmt_1010[] = "(\002 *  STEP1    - FIRST  STEP-SIZE IN GRID "
	    "=\002,f7.2)";
    static char fmt_1020[] = "(\002 *  STEP2    - SECOND STEP-SIZE IN GRID "
	    "=\002,f7.2)";
    static char fmt_1030[] = "(\002 *  BAR=     - REDUCE BAR LENGTH BY A MAX"
	    ". OF\002,f7.2)";
    static char fmt_1040[] = "(\002 *  DEBUGPULAY-PRINT DETAILS OF WORKING I"
	    "N PULAY\002)";
    static char fmt_1050[] = "(\002 *  CAMP,KING- THE CAMP-KING CONVERGER TO"
	    " BE USED\002)";
    static char fmt_1060[] = "(\002 *  EIGS     - PRINT ALL EIGENVALUES IN I"
	    "TER\002)";
    static char fmt_1070[] = "(\002 *  MOLDAT   - PRINT DETAILS OF WORKING I"
	    "N MOLDAT\002)";
    static char fmt_1080[] = "(\002 *  HYPERFINE- HYPERFINE COUPLING CONSTAN"
	    "TS TO BE\002,\002 PRINTED\002)";
    static char fmt_1090[] = "(\002 *  OPCI     - PRINT DETAILS OF WORKING I"
	    "N OPCI\002)";
    static char fmt_1100[] = "(\002 *   PL      - MONITOR CONVERGANCE IN DEN"
	    "SITY MATRIX\002)";
    static char fmt_1110[] = "(\002 *  SEARCH   - USE LINMIN INSTEAD OF THIS"
	    " KEYWORD\002)";
    static char fmt_1130[] = "(\002 *  CYCLES=  - DO A MAXIMUM OF \002,i4"
	    ",\002 CYCLES IN NLLSQ\002)";
    static char fmt_1120[] = "(\002 *  FILL=    - IN RHF CLOSED SHELL, FORCE"
	    " M.O.\002,i3,\002 TO BE FILLED\002)";
    static char fmt_1160[] = "(\002 *  ITRY=    - DO A MAXIMUM OF\002,i6,"
	    "\002 ITERATIONS FOR SCF\002)";
    static char fmt_1180[] = "(\002 *  0SCF     - AFTER READING AND PRINTING"
	    " DATA, STOP\002)";
    static char fmt_1170[] = "(//10x,\002 IMPOSSIBLE OPTION REQUESTED,\002)";
    static char fmt_1140[] = "(\002 *  THERMO   - THERMODYNAMIC QUANTITIES T"
	    "O BE CALCULATED\002)";
    static char fmt_1150[] = "(\002 *  ROT      - SYMMETRY NUMBER OF\002,i3"
	    ",\002 SPECIFIED\002)";

    /* System generated locals */
    integer i__1, i__2;
    doublereal d__1;

    /* Builtin functions */
    /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
    integer s_wsfe(cilist *), e_wsfe(void), i_indx(char *, char *, ftnlen, 
	    ftnlen), do_fio(integer *, char *, ftnlen), i_dnnt(doublereal *), 
	    s_cmp(char *, char *, ftnlen, ftnlen);
    /* Subroutine */ int s_stop(char *, ftnlen);

    /* Local variables */
    static logical exci;
    static doublereal time;
    extern logical word_(char *, char *, ftnlen, ftnlen);
    static logical trip;
    static integer i, j;
    extern doublereal reada_(char *, integer *, ftnlen);
    static logical birad;
    static integer ielec;
    static doublereal tdump;
    static char ch[1];
    static logical ci;
    static integer maxgeo;
    static char allkey[80];
    static integer ilevel, method;
    static char chrono[7];
    static logical uhf;

    /* Fortran I/O blocks */
    static cilist io___10 = { 0, 6, 0, "(10X,' MOPAC - A GENERAL MOLECULAR O"
	    "RBITAL PACKAGE',/         ,10X,'   ORIGINAL VERSION WRITTEN IN 1"
	    "983')", 0 };
    static cilist io___11 = { 0, 6, 0, "(10X,'     BY JAMES J. P. STEWART AT"
	    " THE',/                  ,10X,'     UNIVERSITY OF TEXAS AT AUSTI"
	    "N',/                     ,10X,'          AUSTIN, TEXAS, 78712')", 
	    0 };
    static cilist io___12 = { 0, 6, 0, fmt_70, 0 };
    static cilist io___15 = { 0, 6, 0, fmt_80, 0 };
    static cilist io___17 = { 0, 6, 0, fmt_90, 0 };
    static cilist io___18 = { 0, 6, 0, fmt_100, 0 };
    static cilist io___19 = { 0, 6, 0, fmt_110, 0 };
    static cilist io___20 = { 0, 6, 0, fmt_120, 0 };
    static cilist io___21 = { 0, 6, 0, fmt_130, 0 };
    static cilist io___22 = { 0, 6, 0, fmt_140, 0 };
    static cilist io___23 = { 0, 6, 0, fmt_150, 0 };
    static cilist io___24 = { 0, 6, 0, fmt_160, 0 };
    static cilist io___25 = { 0, 6, 0, fmt_170, 0 };
    static cilist io___26 = { 0, 6, 0, fmt_180, 0 };
    static cilist io___27 = { 0, 6, 0, fmt_190, 0 };
    static cilist io___28 = { 0, 6, 0, fmt_200, 0 };
    static cilist io___29 = { 0, 6, 0, fmt_210, 0 };
    static cilist io___30 = { 0, 6, 0, fmt_220, 0 };
    static cilist io___31 = { 0, 6, 0, fmt_230, 0 };
    static cilist io___32 = { 0, 6, 0, fmt_240, 0 };
    static cilist io___33 = { 0, 6, 0, fmt_260, 0 };
    static cilist io___34 = { 0, 6, 0, fmt_265, 0 };
    static cilist io___35 = { 0, 6, 0, fmt_270, 0 };
    static cilist io___36 = { 0, 6, 0, fmt_250, 0 };
    static cilist io___37 = { 0, 6, 0, fmt_280, 0 };
    static cilist io___38 = { 0, 6, 0, fmt_290, 0 };
    static cilist io___39 = { 0, 6, 0, fmt_300, 0 };
    static cilist io___40 = { 0, 6, 0, fmt_340, 0 };
    static cilist io___41 = { 0, 6, 0, fmt_350, 0 };
    static cilist io___42 = { 0, 6, 0, fmt_360, 0 };
    static cilist io___43 = { 0, 6, 0, fmt_370, 0 };
    static cilist io___44 = { 0, 6, 0, fmt_380, 0 };
    static cilist io___45 = { 0, 6, 0, fmt_540, 0 };
    static cilist io___46 = { 0, 6, 0, fmt_550, 0 };
    static cilist io___47 = { 0, 6, 0, fmt_570, 0 };
    static cilist io___48 = { 0, 6, 0, fmt_580, 0 };
    static cilist io___49 = { 0, 6, 0, fmt_590, 0 };
    static cilist io___50 = { 0, 6, 0, fmt_390, 0 };
    static cilist io___51 = { 0, 6, 0, fmt_400, 0 };
    static cilist io___52 = { 0, 6, 0, fmt_410, 0 };
    static cilist io___53 = { 0, 6, 0, fmt_420, 0 };
    static cilist io___54 = { 0, 6, 0, fmt_430, 0 };
    static cilist io___55 = { 0, 6, 0, fmt_440, 0 };
    static cilist io___56 = { 0, 6, 0, fmt_450, 0 };
    static cilist io___57 = { 0, 6, 0, fmt_460, 0 };
    static cilist io___58 = { 0, 6, 0, fmt_470, 0 };
    static cilist io___59 = { 0, 6, 0, fmt_480, 0 };
    static cilist io___60 = { 0, 6, 0, fmt_490, 0 };
    static cilist io___62 = { 0, 6, 0, fmt_500, 0 };
    static cilist io___64 = { 0, 6, 0, fmt_520, 0 };
    static cilist io___66 = { 0, 6, 0, fmt_530, 0 };
    static cilist io___68 = { 0, 6, 0, fmt_560, 0 };
    static cilist io___69 = { 0, 6, 0, fmt_600, 0 };
    static cilist io___72 = { 0, 6, 0, fmt_620, 0 };
    static cilist io___73 = { 0, 6, 0, fmt_610, 0 };
    static cilist io___74 = { 0, 6, 0, fmt_320, 0 };
    static cilist io___75 = { 0, 6, 0, fmt_310, 0 };
    static cilist io___76 = { 0, 6, 0, fmt_330, 0 };
    static cilist io___80 = { 0, 6, 0, fmt_630, 0 };
    static cilist io___81 = { 0, 6, 0, fmt_640, 0 };
    static cilist io___82 = { 0, 6, 0, fmt_630, 0 };
    static cilist io___84 = { 0, 6, 0, fmt_650, 0 };
    static cilist io___85 = { 0, 6, 0, fmt_660, 0 };
    static cilist io___86 = { 0, 6, 0, fmt_650, 0 };
    static cilist io___87 = { 0, 6, 0, fmt_670, 0 };
    static cilist io___88 = { 0, 6, 0, fmt_680, 0 };
    static cilist io___90 = { 0, 6, 0, fmt_690, 0 };
    static cilist io___91 = { 0, 6, 0, fmt_700, 0 };
    static cilist io___93 = { 0, 6, 0, fmt_710, 0 };
    static cilist io___94 = { 0, 6, 0, fmt_720, 0 };
    static cilist io___95 = { 0, 6, 0, fmt_730, 0 };
    static cilist io___96 = { 0, 6, 0, fmt_740, 0 };
    static cilist io___97 = { 0, 6, 0, fmt_750, 0 };
    static cilist io___98 = { 0, 6, 0, fmt_760, 0 };
    static cilist io___99 = { 0, 6, 0, fmt_770, 0 };
    static cilist io___100 = { 0, 6, 0, fmt_780, 0 };
    static cilist io___101 = { 0, 6, 0, fmt_790, 0 };
    static cilist io___102 = { 0, 6, 0, fmt_800, 0 };
    static cilist io___103 = { 0, 6, 0, fmt_810, 0 };
    static cilist io___104 = { 0, 6, 0, fmt_820, 0 };
    static cilist io___105 = { 0, 6, 0, fmt_830, 0 };
    static cilist io___106 = { 0, 6, 0, fmt_840, 0 };
    static cilist io___107 = { 0, 6, 0, fmt_850, 0 };
    static cilist io___108 = { 0, 6, 0, fmt_870, 0 };
    static cilist io___109 = { 0, 6, 0, fmt_860, 0 };
    static cilist io___110 = { 0, 6, 0, fmt_880, 0 };
    static cilist io___111 = { 0, 6, 0, fmt_890, 0 };
    static cilist io___112 = { 0, 6, 0, fmt_900, 0 };
    static cilist io___113 = { 0, 6, 0, fmt_910, 0 };
    static cilist io___114 = { 0, 6, 0, fmt_920, 0 };
    static cilist io___115 = { 0, 6, 0, fmt_930, 0 };
    static cilist io___116 = { 0, 6, 0, fmt_940, 0 };
    static cilist io___117 = { 0, 6, 0, fmt_950, 0 };
    static cilist io___118 = { 0, 6, 0, fmt_960, 0 };
    static cilist io___119 = { 0, 6, 0, fmt_970, 0 };
    static cilist io___120 = { 0, 6, 0, fmt_980, 0 };
    static cilist io___121 = { 0, 6, 0, fmt_990, 0 };
    static cilist io___122 = { 0, 6, 0, fmt_1000, 0 };
    static cilist io___123 = { 0, 6, 0, fmt_1010, 0 };
    static cilist io___124 = { 0, 6, 0, fmt_1020, 0 };
    static cilist io___125 = { 0, 6, 0, fmt_1030, 0 };
    static cilist io___126 = { 0, 6, 0, fmt_1040, 0 };
    static cilist io___127 = { 0, 6, 0, fmt_1050, 0 };
    static cilist io___128 = { 0, 6, 0, fmt_1050, 0 };
    static cilist io___129 = { 0, 6, 0, fmt_1060, 0 };
    static cilist io___130 = { 0, 6, 0, fmt_1070, 0 };
    static cilist io___131 = { 0, 6, 0, fmt_1080, 0 };
    static cilist io___132 = { 0, 6, 0, fmt_1090, 0 };
    static cilist io___133 = { 0, 6, 0, fmt_1100, 0 };
    static cilist io___134 = { 0, 6, 0, fmt_1110, 0 };
    static cilist io___135 = { 0, 6, 0, fmt_1130, 0 };
    static cilist io___136 = { 0, 6, 0, fmt_1120, 0 };
    static cilist io___137 = { 0, 6, 0, fmt_1160, 0 };
    static cilist io___138 = { 0, 6, 0, fmt_1180, 0 };
    static cilist io___139 = { 0, 6, 0, "(//10X,                            "
	    "                ' UHF USED WITH EITHER BIRAD, EXCITED OR C.I. ')",
	     0 };
    static cilist io___140 = { 0, 6, 0, fmt_1170, 0 };
    static cilist io___141 = { 0, 6, 0, "(//10X,' EXCITED USED WITH TRIPLET')"
	    , 0 };
    static cilist io___142 = { 0, 6, 0, fmt_1170, 0 };
    static cilist io___143 = { 0, 6, 0, "(//10X,'T-PRIO AND NO DRC')", 0 };
    static cilist io___144 = { 0, 6, 0, fmt_1170, 0 };
    static cilist io___145 = { 0, 6, 0, "(//10X,                            "
	    "                   ' ONLY ONE OF MINDO, MNDO, AM1 AND PM3 ALLOWE"
	    "D')", 0 };
    static cilist io___146 = { 0, 6, 0, fmt_1170, 0 };
    static cilist io___147 = { 0, 6, 0, fmt_1140, 0 };
    static cilist io___148 = { 0, 6, 0, fmt_1150, 0 };
    static cilist io___149 = { 0, 6, 0, "                                   "
	    "                    (//10X,' YOU MUST SUPPLY THE SYMMETRY NUMBER "
	    "\"ROT\"')", 0 };
    static cilist io___150 = { 0, 6, 0, "(//10X,'MORE THAN ONE GEOMETRY OPTI"
	    "ON HAS BEEN ',   'SPECIFIED',/10X,                              "
	    "                 'CONFLICT MUST BE RESOLVED BEFORE JOB WILL RUN')"
	    , 0 };
    static cilist io___151 = { 0, 6, 0, "(///10X,'UNRECOGNIZED KEY-WORDS: ('"
	    ",A,')')", 0 };
    static cilist io___152 = { 0, 6, 0, "(///10X,'CALCULATION STOPPED TO AVO"
	    "ID WASTING TIME.')", 0 };
    static cilist io___153 = { 0, 6, 0, "(//10X,' CALCULATION ABANDONED, SOR"
	    "RY!')", 0 };


/* COMDECK SIZES */
/************************************************************************
****/
/*  THIS FILE CONTAINS ALL THE ARRAY SIZES FOR USE IN MOPAC.              
**/
/*                                                                        
**/
/*    THERE ARE ONLY  PARAMETERS THAT THE PROGRAMMER NEED SET:            
**/
/*    MAXHEV = MAXIMUM NUMBER OF HEAVY ATOMS (HEAVY: NON-HYDROGEN ATOMS)  
**/
/*    MAXLIT = MAXIMUM NUMBER OF HYDROGEN ATOMS.                          
**/
/*    MAXTIM = DEFAULT TIME FOR A JOB. (SECONDS)                          
**/
/*    MAXDMP = DEFAULT TIME FOR AUTOMATIC RESTART FILE GENERATION (SECS)  
**/
/*                                                                        
**/
/*                                                                        
**/
/************************************************************************
****/
/*                                                                        
**/
/*  THE FOLLOWING CODE DOES NOT NEED TO BE ALTERED BY THE PROGRAMMER      
**/
/*                                                                        
**/
/************************************************************************
****/
/*                                                                        
**/
/*   ALL OTHER PARAMETERS ARE DERIVED FUNCTIONS OF THESE TWO PARAMETERS   
**/
/*                                                                        
**/
/*     NAME                   DEFINITION                                  
**/
/*    NUMATM         MAXIMUM NUMBER OF ATOMS ALLOWED.                     
**/
/*    MAXORB         MAXIMUM NUMBER OF ORBITALS ALLOWED.                  
**/
/*    MAXPAR         MAXIMUM NUMBER OF PARAMETERS FOR OPTIMISATION.       
**/
/*    N2ELEC         MAXIMUM NUMBER OF TWO ELECTRON INTEGRALS ALLOWED.    
**/
/*    MPACK          AREA OF LOWER HALF TRIANGLE OF DENSITY MATRIX.       
**/
/*    MORB2          SQUARE OF THE MAXIMUM NUMBER OF ORBITALS ALLOWED.    
**/
/*    MAXHES         AREA OF HESSIAN MATRIX                               
**/
/************************************************************************
****/
/************************************************************************
****/
/*  FOR SHORT VERSION USE LINE WITH NMECI=1, FOR LONG VERSION USE LINE    
**/
/*  WITH NMECI=10                                                         
**/
/************************************************************************
****/
/*     PARAMETER (NMECI=1,   NPULAY=1) */
/************************************************************************
****/
/* DECK MOPAC */
/* next line added for Unix implementation for command line arguments */

/* ********************************************************************** 
*/

/*  WRTKEY CHECKS ALL KEY-WORDS AND PRINTS THOSE IT RECOGNIZES.  IF IT */
/*  FINDS A WORD IT DOES NOT RECOGNIZE THE PROGRAM WILL BE STOPPED. */

/* ********************************************************************** 
*/
    s_copy(allkey, keywrd, 80L, 80L);
    if (word_(allkey, "AUTHOR", 80L, 6L)) {
	s_wsfe(&io___10);
	e_wsfe();
	s_wsfe(&io___11);
	e_wsfe();
    }
    if (word_(allkey, "VECT", 80L, 4L)) {
	s_wsfe(&io___12);
	e_wsfe();
    }
    if (word_(allkey, " EXTE", 80L, 5L)) {
	i = i_indx(keywrd, " EXTE", 80L, 5L);
	j = i_indx(keywrd + (i - 1), "=", 80 - (i - 1), 1L) + i;
	i = i_indx(keywrd + (j - 1), " ", 80 - (j - 1), 1L) + j - 1;
	s_wsfe(&io___15);
	do_fio(&c__1, keywrd + (j - 1), i - (j - 1));
	e_wsfe();
    }
    maxgeo = 0;
    if (word_(allkey, " DENS", 80L, 5L)) {
	s_wsfe(&io___17);
	e_wsfe();
    }
    if (word_(allkey, "SPIN", 80L, 4L)) {
	s_wsfe(&io___18);
	e_wsfe();
    }
    if (word_(allkey, " DEPVAR", 80L, 7L)) {
	s_wsfe(&io___19);
	i__1 = i_indx(keywrd, "DEPVAR", 80L, 6L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, " DEP ", 80L, 5L)) {
	s_wsfe(&io___20);
	e_wsfe();
    }
    if (word_(allkey, "VELO", 80L, 4L)) {
	s_wsfe(&io___21);
	e_wsfe();
    }
    if (word_(allkey, "TIMES", 80L, 5L)) {
	s_wsfe(&io___22);
	e_wsfe();
    }
    if (word_(allkey, "PARASOK", 80L, 7L)) {
	s_wsfe(&io___23);
	e_wsfe();
    }
    if (word_(allkey, "FLEPO", 80L, 5L)) {
	s_wsfe(&io___24);
	e_wsfe();
    }
    if (word_(allkey, "BONDS", 80L, 5L)) {
	s_wsfe(&io___25);
	e_wsfe();
    }
    if (word_(allkey, "GEO-OK", 80L, 6L)) {
	s_wsfe(&io___26);
	e_wsfe();
    }
    if (word_(allkey, "FOCK", 80L, 4L)) {
	s_wsfe(&io___27);
	e_wsfe();
    }
    if (word_(allkey, "LARGE", 80L, 5L)) {
	s_wsfe(&io___28);
	e_wsfe();
    }
    if (word_(allkey, " S1978", 80L, 6L)) {
	s_wsfe(&io___29);
	e_wsfe();
    }
    if (word_(allkey, " SI1978", 80L, 7L)) {
	s_wsfe(&io___30);
	e_wsfe();
    }
    if (word_(allkey, " GRAP", 80L, 5L)) {
	s_wsfe(&io___31);
	e_wsfe();
    }
    if (word_(allkey, "1ELEC", 80L, 5L)) {
	s_wsfe(&io___32);
	e_wsfe();
    }
    if (word_(allkey, " NOMM", 80L, 5L)) {
	s_wsfe(&io___33);
	e_wsfe();
    }
    if (word_(allkey, " MMOK", 80L, 5L)) {
	s_wsfe(&io___34);
	e_wsfe();
    }
    if (word_(allkey, "INTERP", 80L, 6L)) {
	s_wsfe(&io___35);
	e_wsfe();
    }
    if (word_(allkey, " ESR", 80L, 4L)) {
	s_wsfe(&io___36);
	e_wsfe();
    }
    if (word_(allkey, "DFP", 80L, 3L)) {
	s_wsfe(&io___37);
	e_wsfe();
    }
    if (word_(allkey, "ANALYT", 80L, 6L)) {
	s_wsfe(&io___38);
	e_wsfe();
    }
    if (word_(allkey, " MECI", 80L, 5L)) {
	s_wsfe(&io___39);
	e_wsfe();
    }
    if (word_(allkey, "LOCAL", 80L, 5L)) {
	s_wsfe(&io___40);
	e_wsfe();
    }
    if (word_(allkey, "MULLIK", 80L, 6L)) {
	s_wsfe(&io___41);
	e_wsfe();
    }
    if (word_(allkey, " XYZ", 80L, 4L)) {
	s_wsfe(&io___42);
	e_wsfe();
    }
    if (word_(allkey, " PI", 80L, 3L)) {
	s_wsfe(&io___43);
	e_wsfe();
    }
    if (word_(allkey, "ECHO", 80L, 4L)) {
	s_wsfe(&io___44);
	e_wsfe();
    }
    if (word_(allkey, "SING", 80L, 4L)) {
	s_wsfe(&io___45);
	e_wsfe();
    }
    if (word_(allkey, "DOUB", 80L, 4L)) {
	s_wsfe(&io___46);
	e_wsfe();
    }
    if (word_(allkey, "QUAR", 80L, 4L)) {
	s_wsfe(&io___47);
	e_wsfe();
    }
    if (word_(allkey, "QUIN", 80L, 4L)) {
	s_wsfe(&io___48);
	e_wsfe();
    }
    if (word_(allkey, "SEXT", 80L, 4L)) {
	s_wsfe(&io___49);
	e_wsfe();
    }
    if (word_(allkey, "H-PRIO", 80L, 6L)) {
	s_wsfe(&io___50);
	e_wsfe();
    }
    if (word_(allkey, "X-PRIO", 80L, 6L)) {
	s_wsfe(&io___51);
	e_wsfe();
    }
    if (word_(allkey, "T-PRIO", 80L, 6L)) {
	s_wsfe(&io___52);
	e_wsfe();
    }
    if (word_(allkey, "POWSQ", 80L, 5L)) {
	s_wsfe(&io___53);
	e_wsfe();
    }
    if (word_(allkey, "POLAR", 80L, 5L)) {
	s_wsfe(&io___54);
	e_wsfe();
    }
    if (word_(allkey, "DEBUG ", 80L, 6L)) {
	s_wsfe(&io___55);
	e_wsfe();
    }
    if (word_(allkey, "RESTART", 80L, 7L)) {
	s_wsfe(&io___56);
	e_wsfe();
    }
    if (word_(allkey, "IRC=", 80L, 4L)) {
	maxgeo = 1;
	s_wsfe(&io___57);
	i__2 = i_indx(keywrd, "IRC=", 80L, 4L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    } else if (word_(allkey, "IRC", 80L, 3L)) {
	maxgeo = 1;
	s_wsfe(&io___58);
	e_wsfe();
    }
    if (word_(allkey, "CHARGE", 80L, 6L)) {
	s_wsfe(&io___59);
	i__2 = i_indx(keywrd, "CHARGE", 80L, 6L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "GRAD", 80L, 4L)) {
	s_wsfe(&io___60);
	e_wsfe();
    }
    uhf = word_(allkey, "UHF", 80L, 3L);
    if (uhf) {
	s_wsfe(&io___62);
	e_wsfe();
    }
    birad = word_(allkey, "BIRAD", 80L, 5L);
    if (birad) {
	s_wsfe(&io___64);
	e_wsfe();
    }
    exci = word_(allkey, "EXCITED", 80L, 7L);
    if (exci) {
	s_wsfe(&io___66);
	e_wsfe();
    }
    trip = word_(allkey, "TRIPLET", 80L, 7L);
    if (trip) {
	s_wsfe(&io___68);
	e_wsfe();
    }
    if (word_(allkey, "SYM", 80L, 3L)) {
	s_wsfe(&io___69);
	e_wsfe();
    }
    if (word_(allkey, "OPEN(", 80L, 5L)) {
	i = i_indx(keywrd, "OPEN(", 80L, 5L);
	ielec = (integer) reada_(keywrd, &i, 80L);
	i__1 = i + 7;
	ilevel = (integer) reada_(keywrd, &i__1, 80L);
	s_wsfe(&io___72);
	do_fio(&c__1, (char *)&ielec, (ftnlen)sizeof(integer));
	do_fio(&c__1, (char *)&ilevel, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "MICROS", 80L, 6L)) {
	s_wsfe(&io___73);
	i__2 = i_indx(keywrd, "MICROS", 80L, 6L);
	i__1 = (integer) reada_(keywrd, &i__2, 80L);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "DRC=", 80L, 4L)) {
	maxgeo = 1;
	s_wsfe(&io___74);
	i__1 = i_indx(keywrd, "DRC=", 80L, 4L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    } else if (word_(allkey, " DRC", 80L, 4L)) {
	maxgeo = 1;
	s_wsfe(&io___75);
	e_wsfe();
    }
    if (word_(allkey, "KINE", 80L, 4L)) {
	s_wsfe(&io___76);
	i__1 = i_indx(keywrd, "KINE", 80L, 4L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    s_copy(chrono, "SECONDS", 7L, 7L);
    if (word_(allkey, " T=", 80L, 3L)) {
	i = i_indx(keywrd, " T=", 80L, 3L);
	time = reada_(keywrd, &i, 80L);
	for (j = i + 3; j <= 80; ++j) {
	    i__1 = j;
	    if (s_cmp(keywrd + i__1, " ", j + 1 - i__1, 1L) == 0) {
		*(unsigned char *)ch = *(unsigned char *)&keywrd[j - 1];
		if (*(unsigned char *)ch == 'M') {
		    s_copy(chrono, "MINUTES", 7L, 7L);
		}
		if (*(unsigned char *)ch == 'H') {
		    s_copy(chrono, "HOURS", 7L, 5L);
		}
		if (*(unsigned char *)ch == 'D') {
		    s_copy(chrono, "DAYS", 7L, 4L);
		}
		goto L20;
	    }
/* L10: */
	}
L20:
	if (time < 99999.9) {
	    s_wsfe(&io___80);
	    do_fio(&c__1, (char *)&time, (ftnlen)sizeof(doublereal));
	    do_fio(&c__1, chrono, 7L);
	    e_wsfe();
	} else {
	    s_wsfe(&io___81);
	    do_fio(&c__1, (char *)&time, (ftnlen)sizeof(doublereal));
	    do_fio(&c__1, chrono, 7L);
	    e_wsfe();
	}
    } else {
	s_wsfe(&io___82);
	do_fio(&c__1, (char *)&c_b212, (ftnlen)sizeof(doublereal));
	do_fio(&c__1, chrono, 7L);
	e_wsfe();
    }
    s_copy(chrono, "SECONDS", 7L, 7L);
    if (word_(allkey, " DUMP", 80L, 5L)) {
	i__1 = i_indx(keywrd, " DUMP", 80L, 5L);
	tdump = reada_(keywrd, &i__1, 80L);
	for (j = i + 6; j <= 80; ++j) {
	    i__1 = j;
	    if (s_cmp(keywrd + i__1, " ", j + 1 - i__1, 1L) == 0) {
		*(unsigned char *)ch = *(unsigned char *)&keywrd[j - 1];
		if (*(unsigned char *)ch == 'M') {
		    s_copy(chrono, "MINUTES", 7L, 7L);
		}
		if (*(unsigned char *)ch == 'H') {
		    s_copy(chrono, "HOURS", 7L, 5L);
		}
		if (*(unsigned char *)ch == 'D') {
		    s_copy(chrono, "DAYS", 7L, 4L);
		}
		goto L40;
	    }
/* L30: */
	}
L40:
	if (tdump < 99999.9) {
	    s_wsfe(&io___84);
	    do_fio(&c__1, (char *)&tdump, (ftnlen)sizeof(doublereal));
	    do_fio(&c__1, chrono, 7L);
	    e_wsfe();
	} else {
	    s_wsfe(&io___85);
	    do_fio(&c__1, (char *)&tdump, (ftnlen)sizeof(doublereal));
	    do_fio(&c__1, chrono, 7L);
	    e_wsfe();
	}
    } else {
	s_wsfe(&io___86);
	do_fio(&c__1, (char *)&c_b212, (ftnlen)sizeof(doublereal));
	do_fio(&c__1, chrono, 7L);
	e_wsfe();
    }
    if (word_(allkey, "1SCF", 80L, 4L)) {
	s_wsfe(&io___87);
	e_wsfe();
	if (i_indx(keywrd, "RESTART", 80L, 7L) == 0) {
	    ++maxgeo;
	}
    }
    if (i_indx(allkey, "C.I.", 80L, 4L) != 0) {
	s_wsfe(&io___88);
	i__2 = i_indx(keywrd, "C.I.", 80L, 4L) + 5;
	i__1 = (integer) reada_(keywrd, &i__2, 80L);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    ci = word_(allkey, "C.I.", 80L, 4L);
    if (word_(allkey, "DFORCE", 80L, 6L)) {
	s_wsfe(&io___90);
	e_wsfe();
	++maxgeo;
    } else if (word_(allkey, "FORCE", 80L, 5L)) {
	s_wsfe(&io___91);
	e_wsfe();
	++maxgeo;
    }
    method = 0;
    if (word_(allkey, "MINDO", 80L, 5L)) {
	s_wsfe(&io___93);
	e_wsfe();
	mindo3 = TRUE_;
	method = 1;
    }
    if (word_(allkey, "AM1", 80L, 3L)) {
	s_wsfe(&io___94);
	e_wsfe();
	am1 = TRUE_;
	++method;
    }
    if (word_(allkey, "PM3", 80L, 3L)) {
	s_wsfe(&io___95);
	e_wsfe();
	pm3 = TRUE_;
	++method;
    }
    if (word_(allkey, "MNDO", 80L, 4L)) {
	mndo = TRUE_;
	++method;
    }
    if (word_(allkey, "PREC", 80L, 4L)) {
	s_wsfe(&io___96);
	e_wsfe();
    }
    if (word_(allkey, "NOINTER", 80L, 7L)) {
	s_wsfe(&io___97);
	e_wsfe();
    }
    if (word_(allkey, "ISOTOPE", 80L, 7L)) {
	s_wsfe(&io___98);
	e_wsfe();
    }
    if (word_(allkey, "DENOUT", 80L, 6L)) {
	s_wsfe(&io___99);
	e_wsfe();
    }
    if (word_(allkey, "SHIFT", 80L, 5L)) {
	s_wsfe(&io___100);
	i__1 = i_indx(keywrd, "SHIFT", 80L, 5L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, "OLDENS", 80L, 6L)) {
	s_wsfe(&io___101);
	e_wsfe();
    }
    if (word_(allkey, "SCFCRT", 80L, 6L)) {
	s_wsfe(&io___102);
	i__1 = i_indx(keywrd, "SCFCRT", 80L, 6L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, "ENPART", 80L, 6L)) {
	s_wsfe(&io___103);
	e_wsfe();
    }
    if (word_(allkey, "NOXYZ", 80L, 5L)) {
	s_wsfe(&io___104);
	e_wsfe();
    }
    if (word_(allkey, "SIGMA", 80L, 5L)) {
	s_wsfe(&io___105);
	e_wsfe();
	++maxgeo;
    }
    if (word_(allkey, "NLLSQ", 80L, 5L)) {
	s_wsfe(&io___106);
	e_wsfe();
	++maxgeo;
    }
    if (word_(allkey, "ROOT", 80L, 4L)) {
	s_wsfe(&io___107);
	i__2 = i_indx(keywrd, "ROOT", 80L, 4L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "TRANS=", 80L, 6L)) {
	s_wsfe(&io___108);
	i__2 = i_indx(keywrd, "TRANS=", 80L, 6L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    } else if (word_(allkey, "TRANS", 80L, 5L)) {
	s_wsfe(&io___109);
	e_wsfe();
    }
    if (word_(allkey, "SADDLE", 80L, 6L)) {
	s_wsfe(&io___110);
	e_wsfe();
	++maxgeo;
    }
    if (word_(allkey, " LET", 80L, 4L)) {
	s_wsfe(&io___111);
	e_wsfe();
    }
    if (word_(allkey, "COMPFG", 80L, 6L)) {
	s_wsfe(&io___112);
	e_wsfe();
    }
    if (word_(allkey, "DERIV", 80L, 5L)) {
	s_wsfe(&io___113);
	e_wsfe();
    }
    if (word_(allkey, "FULSCF", 80L, 6L)) {
	s_wsfe(&io___114);
	e_wsfe();
    }
    if (word_(allkey, "DCART", 80L, 5L)) {
	s_wsfe(&io___115);
	e_wsfe();
    }
    if (word_(allkey, "GNORM", 80L, 5L)) {
	s_wsfe(&io___116);
	i__1 = i_indx(keywrd, "GNORM", 80L, 5L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, "FMAT", 80L, 4L)) {
	s_wsfe(&io___117);
	e_wsfe();
    }
    if (word_(allkey, "HCORE", 80L, 5L)) {
	s_wsfe(&io___118);
	e_wsfe();
    }
    if (word_(allkey, "ITER", 80L, 4L)) {
	s_wsfe(&io___119);
	e_wsfe();
    }
    if (word_(allkey, "PULAY", 80L, 5L)) {
	s_wsfe(&io___120);
	e_wsfe();
    }
    if (word_(allkey, "LINMIN", 80L, 6L)) {
	s_wsfe(&io___121);
	e_wsfe();
    }
    if (word_(allkey, "LOCMIN", 80L, 6L)) {
	s_wsfe(&io___122);
	e_wsfe();
	i = i_indx(keywrd, "LOCMIN", 80L, 6L);
	s_copy(keywrd + (i - 1), "LINMIN", 6L, 6L);
    }
    if (word_(allkey, " STEP1", 80L, 6L)) {
	s_wsfe(&io___123);
	i__1 = i_indx(keywrd, "STEP1", 80L, 5L) + 6;
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, " STEP2", 80L, 6L)) {
	s_wsfe(&io___124);
	i__1 = i_indx(keywrd, "STEP2", 80L, 5L) + 6;
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, "BAR", 80L, 3L)) {
	s_wsfe(&io___125);
	i__1 = i_indx(keywrd, "BAR", 80L, 3L);
	d__1 = reada_(keywrd, &i__1, 80L);
	do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
	e_wsfe();
    }
    if (word_(allkey, "DEBUGPULAY", 80L, 10L)) {
	s_wsfe(&io___126);
	e_wsfe();
    }
    if (word_(allkey, "CAMP", 80L, 4L)) {
	s_wsfe(&io___127);
	e_wsfe();
    }
    if (word_(allkey, "KING", 80L, 4L)) {
	s_wsfe(&io___128);
	e_wsfe();
    }
    if (word_(allkey, "EIGS", 80L, 4L)) {
	s_wsfe(&io___129);
	e_wsfe();
    }
    if (word_(allkey, "MOLDAT", 80L, 6L)) {
	s_wsfe(&io___130);
	e_wsfe();
    }
    if (word_(allkey, "HYPERF", 80L, 6L)) {
	s_wsfe(&io___131);
	e_wsfe();
    }
    if (word_(allkey, "OPCI", 80L, 4L)) {
	s_wsfe(&io___132);
	e_wsfe();
    }
    if (word_(allkey, " PL", 80L, 3L)) {
	s_wsfe(&io___133);
	e_wsfe();
    }
    if (word_(allkey, "SEARCH", 80L, 6L)) {
	s_wsfe(&io___134);
	e_wsfe();
	i = i_indx(keywrd, "SEARCH", 80L, 6L);
	s_copy(keywrd + (i - 1), "LINMIN", 6L, 6L);
    }
    if (word_(allkey, "CYCLES", 80L, 6L)) {
	s_wsfe(&io___135);
	i__2 = i_indx(keywrd, "CYCLES", 80L, 6L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "FILL", 80L, 4L)) {
	s_wsfe(&io___136);
	i__2 = i_indx(keywrd, "FILL", 80L, 4L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "ITRY", 80L, 4L)) {
	s_wsfe(&io___137);
	i__2 = i_indx(keywrd, "ITRY", 80L, 4L);
	d__1 = reada_(keywrd, &i__2, 80L);
	i__1 = i_dnnt(&d__1);
	do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	e_wsfe();
    }
    if (word_(allkey, "0SCF", 80L, 4L)) {
	s_wsfe(&io___138);
	e_wsfe();
    }
    if (uhf) {
	if (birad || exci || ci) {
	    s_wsfe(&io___139);
	    e_wsfe();
	    s_wsfe(&io___140);
	    e_wsfe();
	    goto L60;
	}
    } else {
	if (exci && trip) {
	    s_wsfe(&io___141);
	    e_wsfe();
	    s_wsfe(&io___142);
	    e_wsfe();
	    goto L60;
	}
    }
    if (i_indx(keywrd, "T-PRIO", 80L, 6L) != 0 && i_indx(keywrd, "DRC", 80L, 
	    3L) == 0) {
	s_wsfe(&io___143);
	e_wsfe();
	s_wsfe(&io___144);
	e_wsfe();
	goto L60;
    }
    if (method > 1) {
	s_wsfe(&io___145);
	e_wsfe();
	s_wsfe(&io___146);
	e_wsfe();
	goto L60;
    }
    if (word_(allkey, "THERMO", 80L, 6L)) {
	s_wsfe(&io___147);
	e_wsfe();
	if (word_(allkey, " ROT", 80L, 4L)) {
	    s_wsfe(&io___148);
	    i__2 = i_indx(keywrd, " ROT", 80L, 4L);
	    d__1 = reada_(keywrd, &i__2, 80L);
	    i__1 = i_dnnt(&d__1);
	    do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
	    e_wsfe();
	} else {
	    s_wsfe(&io___149);
	    e_wsfe();
	    s_stop("", 0L);
	}
    }
    if (maxgeo > 1) {
	s_wsfe(&io___150);
	e_wsfe();
	s_stop("", 0L);
    }
    if (s_cmp(allkey, " ", 80L, 1L) != 0) {

/*  AN UNRECOGNIZED KEY-WORD HAS BEEN USED. FIND IT AND THEN ABANDON T
HE */
/*  RUN */
	j = 0;
	for (i = 1; i <= 79; ++i) {
	    if (*(unsigned char *)&allkey[i - 1] != ' ' || s_cmp(allkey + (i 
		    - 1), "  ", 2L, 2L) != 0) {
		++j;
		*(unsigned char *)&keywrd[j - 1] = *(unsigned char *)&allkey[
			i - 1];
	    }
/* L50: */
	}
	if (*(unsigned char *)&allkey[79] != ' ') {
	    ++j;
	    *(unsigned char *)&keywrd[j - 1] = *(unsigned char *)&allkey[79];
	}
	j = max(1,j);
	s_wsfe(&io___151);
	do_fio(&c__1, keywrd, j);
	e_wsfe();
	s_wsfe(&io___152);
	e_wsfe();
	s_stop("", 0L);
    }
    return 0;
L60:
    s_wsfe(&io___153);
    e_wsfe();
    s_stop("", 0L);
/* L510: */
    return 0;
} /* wrtkey_ */

logical word_(char *keywrd, char *testwd, ftnlen keywrd_len, ftnlen 
	testwd_len)
{
    /* System generated locals */
    logical ret_val;

    /* Builtin functions */
    integer i_indx(char *, char *, ftnlen, ftnlen);

    /* Local variables */
    static integer j, k;

    ret_val = FALSE_;
L10:
    j = i_indx(keywrd, testwd, 80L, testwd_len);
    if (j != 0) {
L20:
	if (*(unsigned char *)&keywrd[j - 1] != ' ') {
	    goto L30;
	}
	++j;
	goto L20;
L30:
	ret_val = TRUE_;
	for (k = j; k <= 80; ++k) {
	    if (*(unsigned char *)&keywrd[k - 1] == '=' || *(unsigned char *)&
		    keywrd[k - 1] == ' ') {

/*     CHECK FOR ATTACHED '=' SIGN */

		j = k;
		if (*(unsigned char *)&keywrd[j - 1] == '=') {
		    goto L50;
		}

/*     CHECK FOR SEPARATED '=' SIGN */

		for (j = k + 1; j <= 80; ++j) {
		    if (*(unsigned char *)&keywrd[j - 1] == '=') {
			goto L50;
		    }
/* L40: */
		    if (*(unsigned char *)&keywrd[j - 1] != ' ') {
			goto L10;
		    }
		}

/*    THERE IS NO '=' SIGN ASSOCIATED WITH THIS KEYWORD */

		goto L10;
L50:
		*(unsigned char *)&keywrd[j - 1] = ' ';

/*   THERE MUST BE A NUMBER AFTER THE '=' SIGN, SOMEWHERE */

		goto L20;
	    }
/* L60: */
	    *(unsigned char *)&keywrd[k - 1] = ' ';
	}
    }
    return ret_val;
} /* word_ */

