SUBROUTINE DIAG ( ETOTAL, ECONV, ACFG, CFGTOL, NC, LAST )

Argument Definitions (+ indicates altered content)
INTEGER            NC
LOGICAL*1         +ECONV,      LAST
REAL*8             ACFG,       CFGTOL,    +ETOTAL
Description
  Copyright (C) 1978 Charlotte Froese Fisher 
  Copyright (C) 2012 Jacek Kobus 
 
 
diag computes and diagonalizes energy matrix
Source file:diag.f
I/O Operations:
Unit ID  Unit No       Access  Form   Operation
    OUC                   SEQ  FMTD           W  
    OUH                   SEQ  FMTD           W  

Operation codes A=rewind,B=backspace,C=close,E=endfile
                I=inquire,O=open,R=read,W=write
Intrinsic Functions Called
GENERIC*8          ABS,        SQRT
External Functions and Subroutines Called
REAL*8             FK,         GK,         HL,         QUADR
REAL*8             RK
Parameter Variables Used
INTEGER            MAXNO              (MAXNO = 29999)
INTEGER            MAXORB             (MAXORB = 20)
Local Variables (+ indicates altered content)
INTEGER           +I,         +II,        +IP,        +J
INTEGER           +JJ,        +JP,        +K,         +KMAX
INTEGER           +LI,        +LIJ,       +LJ,        +N1
INTEGER           +N2,        +NFG,       +NFP,       +NM
REAL*8            +C,         +CC,        +CCC,       +CONT
REAL*8            +DELTAE,    +ETL,       +ETPREV,    +FKIJ
REAL*8            +GKIJ(5),   +RATIO,     +W(40,40),  +WP(40)
Referenced Common Block Variables (+ indicates altered content)
COEFF              REAL*8             CA(4,4),   CB(5,5,5)
HMATRX             REAL*8            +ET(40,40)
INOUT              INTEGER            OUC,       OUH
LABEL              CHARACTER*8        ATOM,      CONFIG(3,40)
LABEL              CHARACTER*8        TERM
MCOMMBLOCK         INTEGER            L(MAXORB)
PARAM              INTEGER            IB,        ID
PARAM              INTEGER            NCFG,      NWF
PARAM0             INTEGER            IZERO
PARAM1             REAL*8             D0,        D1
PARAM1             REAL*8             D5
STATE              INTEGER            I1R(300),  I2R(300)
STATE              INTEGER            IFG(200),  ILI(MAXORB)
STATE              INTEGER            ILJ(MAXORB)
STATE              INTEGER            ILO(MAXORB)
STATE              INTEGER            IO(300),   IQ(300)
STATE              INTEGER            J1R(300),  J2R(300)
STATE              INTEGER            JFG(200),  JLO(MAXORB)
STATE              INTEGER            JO(300),   KFG(200)
STATE              INTEGER            KR(300),   LQ(MAXORB)
STATE              INTEGER            NCI(200),  NCJ(200)
STATE              INTEGER            NCLI(MAXORB)
STATE              INTEGER            NCLJ(MAXORB)
STATE              INTEGER            NCRI(300)
STATE              INTEGER            NCRJ(300)
STATE              INTEGER            NF,        NG
STATE              INTEGER            NL,        NR
STATE              REAL*8             CFG(200),  CL(MAXORB)
STATE              REAL*8             CR(300),   QC(MAXORB,40)
STATE              REAL*8            +WT(40)
WAVE               REAL*8            +EK(MAXORB)
WAVE               REAL*8             SUM(MAXORB)