|
c Not vectorized
c CHELP-NET ATOMIC CHARGES FROM AB INITIO WAVE FUNCTIONS
c
c Modified for Grid Operations by Curt Breneman, Yale University
c Department of Chemistry, 3/88. (Currently of Rensselaer
c Polytechnic Institute, Troy NY 12180.)
c
c
c CHELPG
c
c
c (NET ATOMIC) CHARGES FIT TO ELECTROSTATIC POTENTIALS
c
c
c
c Original CHELP code by:
c M.M. FRANCL
c
c L.E. CHIRLIAN
c
c
c OCTOBER 1985
c
c PRINCETON CHEMISTRY DEPARTMENT VAX 11/780
c
c VMS 3.7
c
c
c FEBRUARY 1988
c MODIFIED TO USE GAUSSIAN86 CHECKPOINT FILES
c Modified to use G88/90 checkpoint files 1/89
c YALE UNIVERSITY DEPARTMENT OF CHEMISTRY
c WIBERG GROUP VMS 4.5
c CURT BRENEMAN
c
c g90 version kjb 12/18/90
c Modification due to Kenneth J. Butenhof, CWRU Cleveland Ohio:
C FOPEN REMOVE ,JUNK PARAMETER
c /ipo/ ipo(10) changed to /ipo/ ipo(5)
c "e=e+(value*coef_)" where coef_ is undefined, thua e was unchanged
c the line above it is the correct and indended statement that
c changes the value of e. THIS BAD LINE WAS REMOVED (three lies above # 2441)
c
c add definition of chkfile to first occurence of /out/
c in /io/ make sure all have ",ipunch" in common
c
c 12/7/90 add g88 cray /b/ common --- from grep of utilam.f
c this modified common block uses SHLADF(2000) and is present
c every time /b/ uses the C3(2000),CF(2000).... form.
c When c3(6000) is used in /b/ no change was made.
c Also changed the /bb/ reference to /b/ -- note
c that although the /b/ array is loaded by reference to the
c address of EXX(1) the subroutine uep, which contains the
c only reference to /bb/ accesses EXX only through the common
c block reference. AT best /bb/ is forced to lie on /b/ due
c to the previous definition of EXX in /b/, the old way, at worst,
c a new EXX ... is created (with no value).
c
c 12/11/90 change double precision to real*8 -- for CRAY implementation
c CHANGE ALL DSQRT AND DABS TO SQRT AND ABS
c CHANGE DMAX1 TO AMAX1 (NOTE MAX1 IS TYPE INTEGER)
c
c 12/17/90 remove commented out junk in READIO
C add z-matric read and print in READIO
c
C 12/18/90 add fclose
c***********************************************************************
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
integer*4 handle1
c*** Unix Fix
c ISTAT1=LIB$INIT_TIMER(HANDLE1)
c
c***
c
c
c READ IN DATA FROM CHECKPOINT FILE
c
c
c
c# 26 "chelpg.for"
handle1 = 0
c
c
c
c
c SELECT POINTS FOR FITTING, BEGIN WITH SHELL OF RADIUS 2A AND
c
c INCREASING BY .5A SELECT POINTS FROM THE ROUGHLY RADIAL
c DISTRIBUTION WHICH ARE NOT ENCLOSED BY THE VAN DER WAALS
c ENVELOPE OF THE MOLECULE UNTIL A PREDETERMINED MAXIMUM NUMBER
c OF POINTS HAS BEEN REACHED
c
c# 33 "chelpg.for"
call readin
c
c
c CALCULATE THE ELECTROSTATIC POTENTIAL USING FIRST ORDER
c HARTREE-FOCK PERTURBATION THEORY
c
c# 41 "chelpg.for"
call ball
c
c
c USING METHOD OF LAGRANGE MULTIPLIERS, FIT BY LEAST SQUARES THE
c CHARGES TO THE ELECTROSTATIC POTENTIAL, CONSTRAINING THE FIT TO
c REPRODUCE THE TOTAL MOLECULAR CHARGE
c
c# 46 "chelpg.for"
call ep
c
c PRINT OUT TABLE OF RESULTS
c
c
c# 52 "chelpg.for"
call fit
c
c
c*** TRACE-7
c ISTAT1=LIB$SHOW_TIMER(HANDLE1)
c
c***
c# 56 "chelpg.for"
call output
c
c
c
c
c# 61 "chelpg.for"
end
c
c
c ROUTINE TO SELECT POINTS FOR FITTING TO THE ELECTROSTATIC POTENTIAL.
c
c
c POINTS WHICH LIE WITHIN THE VAN DER WAALS ENVELOPE OF THE MOLECULE
c ARE EXCLUDED.
c
c
c
c POINTS ARE INITIALLY SELECTED IN A CUBE AROUND THE MOLECULE WHICH
c IS SCALED TO THE SIZE OF THE MOLECULE+RMAX. THIS IS PRESENTLY AN INPUT
c PARAMETER. POINTS ARE THEN EXCLUDED IF THEY FALL WITHIN THE INPUT
c VDW RADIUS OF ANY OF THE ATOMS, OR, IF THEY FALL OUTSIDE
c A DESIGNATED DISTANCE (RMAX) FROM ALL OF THE ATOMS. THE REMAINING
c POINTS ARE PACKED IN A SET OF THREE (X,Y,Z) VECTORS, AND SENT TO THE
c LAGRANGE LEAST-SQUARES FITTING ROUTINE. THE ORIGINAL CHELP INPUT
c DECK IS AUGMENTED BY ADDING TWO FREE-FORMAT VARIABLES AT THE END.
c THE TWO NEW INPUT VARIABLES ARE 'RMAX' AND 'DELR', WHERE RMAX
c IS THE MAXIMUM DISTANCE A POINT CAN BE FROM ANY ATOM AND STILL
c BE CONSIDERED IN THE FIT, AND DELR IS THE DISTANCE BETWEEN POINTS
c IN THE GRID. BOTH RMAX AND DELR ARE IN ANGSTROMS.
c
c
c CURT BRENEMAN AND TERESA LEPAGE
c YALE UNIVERSITY DEPARTMENT OF CHEMISTRY 3/88
c
c ORIGINAL CODE BY:
c
c L.E. CHIRLIAN
c
c M.M. FRANCL
c
c APRIL 1985
c
c
c
subroutine ball()
c
c
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
parameter (npoints = 50000)
c+++
common /io/ in, iout, ipunch
c+++
common /mol/ natoms, icharg, multip, nae, nbe, nel, nbasis, ian(
&401), atmchg(400), c(3, 400)
common /ipo/ ipo(5)
common /sphere/ radii(400), ntotp
c
c
common /points/ p(3, npoints), maxpnts
c
c*** READ IN THE THE RMAX AND DELR VALUES IN ANGSTROMS.
c
data ang2au / 1.889726878d0 /
c# 109 "chelpg.for"
read(unit=in, fmt=*) rmax, delr
c***
c
c CONVERT RADII TO AU
c
c
c
c# 110 "chelpg.for"
write(unit=iout, fmt=*) ' RMAX = ', rmax, ' (ANGS), DELR = ', delr
&, ' (ANGS).'
c# 115 "chelpg.for"
delr = delr * ang2au
c
c WHILE CONVERTING THE VDW RADII TO AU, FIND THE EXTREMA OF THE
c MOLECULAR GEOMETRY.
c
c# 116 "chelpg.for"
rmax = rmax * ang2au
c# 121 "chelpg.for"
xmax = -50.0d0
xmin = 50.0d0
ymax = -50.0d0
ymin = 50.0d0
zmax = -50.0d0
c
c# 126 "chelpg.for"
zmin = 50.0d0
c# 128 "chelpg.for"
write(unit=iout, fmt=*) ' THERE ARE ', natoms,
&' ATOMS TO CONSIDER.'
c# 129 "chelpg.for"
do 10 i = 1, natoms
c
c# 130 "chelpg.for"
radii(i) = radii(i) * ang2au
c# 132 "chelpg.for"
if (c(1,i) .gt. xmax) xmax = c(1,i)
if (c(1,i) .lt. xmin) xmin = c(1,i)
if (c(2,i) .gt. ymax) ymax = c(2,i)
if (c(2,i) .lt. ymin) ymin = c(2,i)
if (c(3,i) .gt. zmax) zmax = c(3,i)
if (c(3,i) .lt. zmin) zmin = c(3,i)
c
c
c# 138 "chelpg.for"
10 continue
c# 140 "chelpg.for"
write(unit=iout, fmt=*) ' XMAX = ', xmax, ' (AU), XMIN = ', xmin,
&' (AU).'
c# 141 "chelpg.for"
write(unit=iout, fmt=*) ' YMAX = ', ymax, ' (AU), YMIN = ', ymin,
&' (AU).'
c
c DETERMINE THE MINIMUM CUBE DIMENSIONS REQUIRED TO CONTAIN
c THE MOLECULE, INCLUDING THE MAXIMUM SELECTION RADIUS (RMAX)
c ON BOTH SIDES.
c
c# 142 "chelpg.for"
write(unit=iout, fmt=*) ' ZMAX = ', zmax, ' (AU), ZMIN = ', zmin,
&' (AU).'
c# 148 "chelpg.for"
xrange = (xmax - xmin) + (2.0d0 * rmax)
yrange = (ymax - ymin) + (2.0d0 * rmax)
c
c
c# 150 "chelpg.for"
zrange = (zmax - zmin) + (2.0d0 * rmax)
c# 152 "chelpg.for"
nxpts = int(xrange / delr)
nypts = int(yrange / delr)
c
c# 154 "chelpg.for"
nzpts = int(zrange / delr)
c# 156 "chelpg.for"
write(unit=iout, fmt=*) ' NUMBER OF X POINTS REQUIRED = ', nxpts
write(unit=iout, fmt=*) ' NUMBER OF Y POINTS REQUIRED = ', nypts
write(unit=iout, fmt=*) ' NUMBER OF Z POINTS REQUIRED = ', nzpts
maxposs = (nxpts * nypts) * nzpts
c
c
c RESET POINT COUNTER FOR NUMBER OF SELECTED POINTS
c
c# 160 "chelpg.for"
write(unit=iout, fmt=*) ' TOTAL NUMBER OF POINTS CONSIDERED = ',
&maxposs
c
c LOOP OVER POSSIBLE POINTS
c
c# 165 "chelpg.for"
ipoint = 0
c
c# 169 "chelpg.for"
do 200 ii = 1, nxpts + 1
c
c# 171 "chelpg.for"
p1 = (xmin - rmax) + (dble(ii - 1) * delr)
c
c# 173 "chelpg.for"
do 200 jj = 1, nypts + 1
c
c# 175 "chelpg.for"
p2 = (ymin - rmax) + (dble(jj - 1) * delr)
c
c# 177 "chelpg.for"
do 200 kk = 1, nzpts + 1
c
c
c
c IS THIS POINT WITHIN A VAN DER WAALS SPHERE OR OUTSIDE THE
c RMAX DISTANCE FROM ALL ATOMS?
c
c
c# 179 "chelpg.for"
p3 = (zmin - rmax) + (dble(kk - 1) * delr)
c# 185 "chelpg.for"
radmin = 50.0d0
do 100 i = 1, natoms
vrad = radii(i)
dist = (((p1 - c(1,i)) ** 2) + ((p2 - c(2,i)) ** 2)) + ((p3 - c(3,
&i)) ** 2)
c# 189 "chelpg.for"
dist = sqrt(dist)
if (dist .lt. vrad) goto 210
if (dist .lt. radmin) radmin = dist
100 continue
c
c
c STORE POINTS (IN ATOMIC UNITS)
c
c
c
c# 193 "chelpg.for"
if (radmin .gt. rmax) goto 210
c# 197 "chelpg.for"
ipoint = ipoint + 1
p(1,ipoint) = p1
p(2,ipoint) = p2
p(3,ipoint) = p3
if (ipo(2) .eq. 1) write(unit=iout, fmt=*) 'POINT ', ipoint,
&' X,Y,Z ', p1, p2, p3
210 continue
c
c
c# 204 "chelpg.for"
200 continue
c# 206 "chelpg.for"
maxpnts = ipoint
write(unit=iout, fmt=*)
&' NUMBER OF POINTS SELECTED FOR FITTING : ', maxpnts
c# 208 "chelpg.for"
return
c
c
c# 209 "chelpg.for"
end
c
c
c ROUTINE TO CALCULATE THE ELECTROSTATIC POTENTIAL FROM FIRST ORD
cER
c PERTURBATION THEORY
c
c
c
c M.M. FRANCL APRIL 1985
c
c MODIFIED VERSION OF A MEPHISTO ROUTINE
c
c RESTRICTED TO CLOSED SHELL MOLECULES
c
c
c
subroutine ep()
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
parameter (npoints = 50000)
c
c
integer*4 shella, shelln, shellt, aos, shellc, aon, handle
character chkfil*40
common /io/ in, iout, ipunch
c+++
common /ipo/ ipo(5)
c
c=== Gaussian88 Modification for enlarged common /b/.
common /mol/ natoms, icharg, multip, nae, nbe, nel, nbasis, ian(
&401), atmchg(400), c(3, 400)
c==== Old G86 Version of common /b/
c COMMON/B/EXX(1200),C1(1200),C2(1200),C3(1200),
c $ X(400),Y(400),Z(400),JAN(400),SHELLA(400),SHELLN(400),
c $ SHELLT(400),SHELLC(400),AOS(400),AON(400),NSHELL,MAXTYP
c+++
c COMMON /B/ EXX(240),C1(240),C2(240),C3(240),X(80),Y(80),Z(80),
c
c $ JAN(80),SHELLA(80),SHELLN(80),SHELLT(80),SHELLC(80)
c
c $ ,AOS(80),AON(80),NSHELL,MAXTYP
c
c COMMON /MOL/ NATOMS,ICHARG,MULTIP,NAE,NBE,NEL,NBASIS,IAN(101),
c
c $ ATMCHG(100),C(3,100)
c
common /b/ exx(6000), c1(6000), c2(6000), c3(6000), x(2000), y(
&2000), z(2000), jan(2000), shella(2000), shelln(2000), shellt(2000
&), shellc(2000), aos(2000), aon(2000), nshell, maxtyp
common /points/ p(3, npoints), maxpnts
common /elp/ elecp(npoints)
common /charge/ coef_alpha(100000), coef_beta(100000), iuhf
c
c
common /out/ ntitle(20, 3), chkfil, q(400), i6to5, rms, percent,
&nlin, nend(3)
c
c
dimension hpert(100000), index(1280)
c DIVERT TO ROUTINE UEP IF WAVEFUNCTION IS UNRESTRICTED
c
c HARTREE-FOCK WAVEFUNCTION
c
c
c
data iptchg / 1.0 /
data zero / 0.0 /
data two / 2.0 /
data vnucmax / 30.0 /
c# 257 "chelpg.for"
if (iuhf .eq. 1) then
call uep
return
c
c
c# 260 "chelpg.for"
end if
c
c
c SET UP THE INDEXING TABLE FOR HPERT
c
c
c
c# 262 "chelpg.for"
handle = 0
c# 266 "chelpg.for"
do 100 i = 1, nbasis
index(i) = ((i - 1) * i) / 2
c
c
c BEGIN LOOP TO CALCULATE ELECTROSTATIC POTENTIAL
c
c
c
c# 268 "chelpg.for"
100 continue
c# 272 "chelpg.for"
nocc = nel / 2
c
c
c START OF LOOP
c
c
c
c# 273 "chelpg.for"
mvir = nocc + 1
c# 277 "chelpg.for"
do 200 npnt = 1, maxpnts
x1 = p(1,npnt)
x2 = p(2,npnt)
c
c
c CALCULATE THE ONE-ELECTRON INTEGRALS
c
c
c
c# 280 "chelpg.for"
x3 = p(3,npnt)
c# 284 "chelpg.for"
if (ipo(5) .eq. 1) then
write(unit=iout, fmt=3010)
c***
c ISTAT = LIB$INIT_TIMER(HANDLE)
c
c***
c# 286 "chelpg.for"
3010 format(1x,18hTIME FOR INTEGRALS)
c
c
end if
c
c
c***
c IF (IPO(5).EQ.1) ISTAT = LIB$SHOW_TIMER(HANDLE)
c
c***
c
c
c# 292 "chelpg.for"
call intgrl(hpert, x1, x2, x3, iptchg, i6to5)
c
c
c# 298 "chelpg.for"
if (ipo(4) .eq. 1) call linout(hpert, nbasis, 0, 0)
c# 300 "chelpg.for"
if (ipo(5) .eq. 1) then
write(unit=iout, fmt=3000)
c***
c ISTAT = LIB$INIT_TIMER(HANDLE)
c
c***
c# 302 "chelpg.for"
3000 format(1x,18hTIME FOR TRANSFORM)
c
c
c FORM THE HPERT MATRIX ELEMENTS
c
c
c
c# 306 "chelpg.for"
end if
c# 310 "chelpg.for"
e = zero
c
c
c SUM OVER OCCUPIED MOS
c
c
c
c# 311 "chelpg.for"
icoefi = - nbasis
c# 315 "chelpg.for"
do 220 ii = 1, nocc
c
c
c CALCULATE ELECTROSTATIC POTENTIAL
c
c
c
c# 316 "chelpg.for"
icoefi = icoefi + nbasis
c# 320 "chelpg.for"
do 221 ip = 1, nbasis
cpi = coef_alpha(icoefi + ip)
c
c
c# 322 "chelpg.for"
ipdex = index(ip)
c# 324 "chelpg.for"
do 222 iq = 1, ip
e = e + ((cpi * coef_alpha(icoefi + iq)) * hpert(ipdex + iq))
222 continue
do 223 iq = ip + 1, nbasis
e = e + ((cpi * coef_alpha(icoefi + iq)) * hpert(ip + index(iq)))
c
c
c# 329 "chelpg.for"
223 continue
c# 331 "chelpg.for"
221 continue
c
c
c***
c IF (IPO(5).EQ.1) ISTAT = LIB$SHOW_TIMER(HANDLE)
c
c***
c
c
c CALCULATE NUCLEAR PART OF ELECTROSTATIC POTENTIAL
c
c
c
c# 332 "chelpg.for"
220 continue
c# 340 "chelpg.for"
vnuc = zero
do 300 iatom = 1, natoms
del1 = c(1,iatom) - x1
del2 = c(2,iatom) - x2
del3 = c(3,iatom) - x3
ra = sqrt(((del1 * del1) + (del2 * del2)) + (del3 * del3))
if (ra .eq. zero) then
vnuc = vnucmax
goto 310
end if
vnuc = vnuc + (ian(iatom) / ra)
300 continue
c
c
c# 352 "chelpg.for"
310 continue
c# 354 "chelpg.for"
elecp(npnt) = (e * two) + (vnuc * iptchg)
if (ipo(5) .eq. 1) write(unit=iout, fmt=*) 'E(', npnt, ') = ', e
200 continue
return
end
c
c
c ROUTINE TO USE METHOD OF LAGRANGE MULTIPLIERS TO OBTAIN BEST
c
c LEAST SQUARE FIT WITH CONSTRAINTS
c
c
c
c M.M. FRANCL
c
c APRIL 1985
c
c
c
subroutine fit()
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
parameter (npoints = 50000)
integer*4 which1
c
c
character chkfil*40
common /io/ in, iout, ipunch
common /ipo/ ipo(5)
common /elp/ e(npoints)
common /points/ p(3, npoints), maxpnts
c+++
common /out/ ntitle(20, 3), chkfil, x(400), i6to5, rms, percent,
&nlin, nend(3)
c+++
c COMMON /MOL/ NATOMS,ICHARG,MULTIP,NAE,NBE,NEL,NBASIS,IAN(101),
c
c $ ATMCHG(100),C(3,100)
c
c
c
common /mol/ natoms, icharg, multip, nae, nbe, nel, nbasis, ian(
&401), atmchg(400), c(3, 400)
dimension a(400, 400), y(400), is(2, 400), iad1(400), iad2(400)
c
c
c DEBYE = CONVERSION FROM DEBYES TO AU
c
c
c
dimension d(400), which1(3)
c
c
c SET UP MATRIX OF LINEAR COEFFICIENTS, A
c
c
c
c BEGIN LOOP OVER ROWS
c
c
c
c
c
c BEGIN LOOP OVER COLUMNS
c
c
c
data one / 1.0 /
data zero / 0.0 /
data debye / 0.393427328 /
data maxdim / 400 /
data au2cal / 627.51 /
data half / 0.5 /
data hundred / 100.0 /
data nconstr / 1 /
c# 397 "chelpg.for"
do 100 k = 1, natoms
c
c
do 200 mu = 1, natoms
c# 403 "chelpg.for"
sum = zero
do 400 i = 1, maxpnts
rik = (((p(1,i) - c(1,k)) ** 2) + ((p(2,i) - c(2,k)) ** 2)) + ((p(
&3,i) - c(3,k)) ** 2)
c# 406 "chelpg.for"
rik = sqrt(rik)
rimu = (((p(1,i) - c(1,mu)) ** 2) + ((p(2,i) - c(2,mu)) ** 2)) + (
&(p(3,i) - c(3,mu)) ** 2)
rimu = sqrt(rimu)
sum = sum + (one / (rik * rimu))
c
c
c# 411 "chelpg.for"
400 continue
c# 413 "chelpg.for"
a(k,mu) = sum
c
c
c FILL OUT COLUMNS CORRESPONDING TO LAGRANGE MULTIPLIERS
c
c
c
c# 414 "chelpg.for"
200 continue
c
c
c
c
c# 418 "chelpg.for"
a(k,natoms + 1) = half
c
c
c FILL OUT THE ROWS CORRESPONDING TO CONSTRAINTS
c
c
c
c# 421 "chelpg.for"
100 continue
c# 425 "chelpg.for"
do 500 mu = 1, natoms
c
c
c# 426 "chelpg.for"
a(natoms + 1,mu) = one
c
c
c FILL OUT THE BLOCK WHICH CONNECTS LAGRANGE MULTIPLIERS TO
c
c CONSTRAINTS
c
c
c
c# 428 "chelpg.for"
500 continue
c# 433 "chelpg.for"
do 600 k = natoms + 1, natoms + nconstr
do 600 mu = natoms + 1, natoms + nconstr
a(k,mu) = zero
c
c
c****DEBUG*****
c
c
c
c# 436 "chelpg.for"
600 continue
c# 440 "chelpg.for"
if (ipo(3) .eq. 1) then
write(unit=iout, fmt=*) 'A MATRIX'
do 699 k = 1, natoms + nconstr
write(unit=iout, fmt=1699) (a(k,mu),mu = 1, natoms + nconstr)
1699 format(1x,10f10.4)
699 continue
c***************
c
c
c
c CONSTRUCT COLUMN VECTOR, Y
c
c
c
c# 446 "chelpg.for"
end if
c# 451 "chelpg.for"
do 700 k = 1, natoms
sum = zero
do 710 i = 1, maxpnts
rik = (((p(1,i) - c(1,k)) ** 2) + ((p(2,i) - c(2,k)) ** 2)) + ((p(
&3,i) - c(3,k)) ** 2)
rik = sqrt(rik)
sum = sum + (e(i) / rik)
710 continue
y(k) = sum
if (ipo(3) .eq. 1) write(unit=iout, fmt=*) k, y(k)
c
c
c CONSTRUCT THE PORTION OF Y CORRESPONDING TO LAGRANGE MULTIPLIER
cS
c
c
c
c
c# 461 "chelpg.for"
700 continue
c
c
c
c
c# 466 "chelpg.for"
y(natoms + 1) = dble(icharg)
c
c
c SOLVE MATRIX EQUATION AX = Y;
c
c WHERE X = (Q1,Q2, ... QN,L1,L2, ... ,LN)
c
c
c
c X = A(INV)Y
c
c
c
c INVERT A
c
c
c
c# 469 "chelpg.for"
if (ipo(3) .eq. 1) write(unit=iout, fmt=*) 'COL VECTR Y', (y(kk),
&kk = 1, natoms + nconstr)
c
c
c****DEBUG*****
c
c
c
c# 479 "chelpg.for"
call inv(a, natoms + nconstr, is, iad1, iad2, d, maxdim)
c# 483 "chelpg.for"
if (ipo(3) .eq. 1) then
write(unit=iout, fmt=*) 'A INVERSE'
do 799 k = 1, natoms + nconstr
write(unit=iout, fmt=1699) (a(k,mu),mu = 1, natoms + nconstr)
799 continue
c**************
c
c
c
c PERFORM MATRIX MULTIPLICATION A(INV)Y
c
c
c
c# 488 "chelpg.for"
end if
c
c
c# 493 "chelpg.for"
call multay(a, y, x, natoms + nconstr, maxdim)
c# 495 "chelpg.for"
if (ipo(3) .eq. 1) then
write(unit=iout, fmt=*) 'CHARGES: '
do 899 i = 1, natoms
write(unit=iout, fmt=*) ian(i), x(i)
899 continue
c
c
c COMPUTE RMS DEVIATION AND MEAN ABSOLUTE % DEVIATION
c
c
c
c# 500 "chelpg.for"
end if
c# 504 "chelpg.for"
rms = zero
percent = zero
do 800 i = 1, maxpnts
eq = zero
do 810 j = 1, natoms
dist = (((p(1,i) - c(1,j)) ** 2) + ((p(2,i) - c(2,j)) ** 2)) + ((p
&(3,i) - c(3,j)) ** 2)
dist = sqrt(dist)
eq = eq + (x(j) / dist)
810 continue
rms = rms + ((e(i) - eq) ** 2)
percent = percent + abs(((e(i) - eq) / e(i)) * hundred)
if (ipo(3) .eq. 1) write(unit=iout, fmt=*) 'ACTUAL,CALC ', e(i),
&eq
c# 517 "chelpg.for"
800 continue
if (ipo(3) .eq. 1) write(unit=iout, fmt=*) 'SUM OF SQUARES ', rms
rms = (sqrt(rms) * au2cal) / maxpnts
percent = percent / maxpnts
if (ipo(3) .eq. 1) write(unit=iout, fmt=*) 'RMS, %', rms, percent
return
end
c
c
subroutine fmgen(f, t, m)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
common /io/ in, iout, ipunch
dimension f(m)
c
c
dimension ga(35)
c
c
equivalence (oldsum, approx)
c
c
2001 format(42h1FAILURE IN FMGEN FOR SMALL T: IX.GT.50, /6h IX = ,i3,
&7h, T = ,e20.14)
c
c
2002 format(37h1FAILURE IN FMGEN FOR INTERMEDIATE T,/6h T = ,e20.14)
data zero / 0.0e0 /
data half / 0.5e0 /
data one / 1.0e0 /
data two / 2.0e0 /
data ten / 10.0e0 /
data pi / 3.14159265358979e0 /
data f42 / 42.0e0 /
data f80 / 80.0e0 /
c# 542 "chelpg.for"
texp = zero
if (t - f80) 2, 3, 3
2 texp = exp(- t)
3 continue
c***********************************************************************
c
c 0 .LT. T .LT. 10
c
c***********************************************************************
c
c# 546 "chelpg.for"
if (t - ten) 10, 70, 70
c# 550 "chelpg.for"
10 term = (half * ga(m)) * texp
tx = one
ix = m + 1
sum = tx / ga(ix)
oldsum = sum
20 ix = ix + 1
tx = tx * t
if (ix - 35) 40, 40, 30
30 write(unit=iout, fmt=2001) ix, t
stop 'FMGEN'
40 sum = sum + (tx / ga(ix))
if (tol - abs((oldsum / sum) - one)) 50, 60, 60
50 oldsum = sum
goto 20
60 f(m) = sum * term
c
c
c# 565 "chelpg.for"
goto 160
c***********************************************************************
c
c 10 .LE. T .LT. 42
c
c***********************************************************************
c
c# 567 "chelpg.for"
70 if (t - f42) 80, 150, 150
c# 571 "chelpg.for"
80 a = float(m - 1)
b = a + half
a = a - half
tx = one / t
mm1 = m - 1
approx = (rpitwo * sqrt(tx)) * (tx ** mm1)
if (mm1) 90, 110, 90
90 do 100 ix = 1, mm1
b = b - one
100 approx = approx * b
110 fimult = (half * texp) * tx
sum = zero
if (fimult) 120, 140, 120
120 fiprop = fimult / approx
term = one
sum = one
notrms = int(t) + mm1
do 130 ix = 2, notrms
term = (term * a) * tx
sum = sum + term
if (abs((term * fiprop) / sum) - tol) 140, 140, 130
130 a = a - one
write(unit=iout, fmt=2002) t
stop 'FMGEN'
140 f(m) = approx - (fimult * sum)
c***********************************************************************
c
c T .GE. 42
c
c***********************************************************************
c
c# 596 "chelpg.for"
goto 160
c# 600 "chelpg.for"
150 tx = float(m) - half
c***********************************************************************
c
c RECUR DOWNWARDS TO F(1)
c
c***********************************************************************
c
c# 601 "chelpg.for"
f(m) = (half * ga(m)) / (t ** tx)
c# 605 "chelpg.for"
160 tx = t + t
sum = float((m + m) - 3)
mm1 = m - 1
if (mm1) 170, 190, 170
170 do 180 ix = 1, mm1
f(m - ix) = ((tx * f((m - ix) + 1)) + texp) / sum
180 sum = sum - two
c
c
c# 612 "chelpg.for"
190 return
c
c
c# 614 "chelpg.for"
entry fmset()
c# 616 "chelpg.for"
ga(1) = sqrt(pi)
tol = half
do 200 i = 2, 35
ga(i) = ga(i - 1) * tol
200 tol = tol + one
tol = 5.0e-09
rpitwo = half * ga(1)
return
end
c
c
c ROUTINE TO CALCULATE THE ELECTRON-CHARGE MATRIX ELEMENTS FOR THE
c
c POLARIZATION POTENTIAL. CODE REVISED FROM THE ONE ELECTRON PACKAGE
c
c AS IT EXISTED AUGUST, 1983.
c
c
c
c
c
c REVISED BY M.M. FRANCL JANUARY 1984 FOR PRINCETON CHEMISTRY
c
c DEPARTMENT VAX 11/780
c
c
c
c REVISED TO BE COMPATIBLE WITH COMMON /B/ FROM GAUSSIAN 82
c
c MAY 1984 M.M. FRANCL
c
c
c
c REVISED TO USE ** BASIS SETS AND THOSE HAVING P ONLY SHELLS
c
c JANUARY 1986 M.M. FRANCL
c
c
c
c REVISED FOR GAUSSIAN 86 CHECKPOINT FILES FOR YALE UNIVERSITY
c FEBRUARY 1988 CURT BRENEMAN
c
c
subroutine intgrl(h, x1, x2, x3, icharg, i6to5)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
c+++
integer*4 shella, shelln, shellt, shellc, aos, aon, shladf
c
c=== Gaussian88 Modification. New Common /b/ size.
common /mol/ natoms, jcharg, multip, nae, nbe, nel, nbasis, ian(
&401), atmchg(400), c(3, 400)
c
c=== Old G86 common /b/
c COMMON/B/EXX(1200),C1(1200),C2(1200),C3(400),CF(400),SHLADF(800),
c $ X(400),Y(400),Z(400),JAN(400),SHELLA(400),SHELLN(400),
c $ SHELLT(400),SHELLC(400),AOS(400),AON(400),NSHELL,MAXTYP
c
c+++
c COMMON /B/ EXX(240),C1(240),C2(240),C3(80),CF(80),SHLADF(160),
c
c $ X(80),Y(80),Z(80),
c
c $ JAN(80),SHELLA(80),SHELLN(80),SHELLT(80),SHELLC(80)
c
c $ ,AOS(80),AON(80),NSHELL,MAXTYP
c
c COMMON /MOL/ NATOMS,JCHARG,MULTIP,NAE,NBE,NEL,NBASIS,IAN(101),
c
c $ ATMCHG(100),C(3,100)
c
c g88/90
c common /b/ exx(6000), c1(6000), c2(6000), c3(2000), cf(2000),
c &shladf(4000), x(2000), y(2000), z(2000), jan(2000), shella(2000),
c &shelln(2000), shellt(2000), shellc(2000), aos(2000), aon(2000),
c &nshell, maxtyp
c g88 cray
common /b/ exx(6000), c1(6000), c2(6000), c3(2000), cf(2000),
&shladf(2000), x(2000), y(2000), z(2000), jan(2000), shella(2000),
&shelln(2000), shellt(2000), shellc(2000), aos(2000), aon(2000),
&nshell, maxtyp
common /ipo/ ipo(5)
c
c
common /io/ in, iout, ipunch
dimension h(1)
dimension renorm(10)
dimension of(9), ox(9), tx(13), abx(5), aby(5), abz(5), absq(5), a
&(5), b(5), f(5), apb(5), cpx(5), cpy(5), cpz(5), fm(5)
c
c
dimension epn(100)
c
c
common /h100/ ep00, ep10, ep20, ep30, ep40, ep50, ep60, ep70, ep80
&, ep90, ep01, ep11, ep21, ep31, ep41, ep51, ep61, ep71, ep81, ep91
&, ep02, ep12, ep22, ep32, ep42, ep52, ep62, ep72, ep82, ep92, ep03
&, ep13, ep23, ep33, ep43, ep53, ep63, ep73, ep83, ep93, ep04, ep14
&, ep24, ep34, ep44, ep54, ep64, ep74, ep84, ep94, ep05, ep15, ep25
&, ep35, ep45, ep55, ep65, ep75, ep85, ep95, ep06, ep16, ep26, ep36
&, ep46, ep56, ep66, ep76, ep86, ep96, ep07, ep17, ep27, ep37, ep47
&, ep57, ep67, ep77, ep87, ep97, ep08, ep18, ep28, ep38, ep48, ep58
&, ep68, ep78, ep88, ep98, ep09, ep19, ep29, ep39, ep49, ep59, ep69
&, ep79, ep89, ep99
dimension eep(100)
c
c SPDSTV
c LOCAL VARIABLES.
c SPDSTV
c
c
dimension max(6)
dimension ag(6), csa(6), cpa(6), cda(6), bg(6), csb(6), cpb(6),
&cdb(6), dpp(9)
equivalence (of(1), of0), (of(2), of1), (of(3), of2), (of(4), of3)
&, (of(5), of4), (of(6), of5), (of(7), of6), (of(8), of7), (of(9),
&of8)
equivalence (ox(1), ox0), (ox(2), ox1), (ox(3), ox2), (ox(4), ox3)
&, (ox(5), ox4), (ox(6), ox5), (ox(7), ox6), (ox(8), ox7), (ox(9),
&ox8)
equivalence (a(2), a1), (a(3), a2), (a(4), a3), (a(5), a4)
equivalence (b(2), b1), (b(3), b2), (b(4), b3), (b(5), b4)
equivalence (t0, t01), (t1, t02), (t2, t03), (t3, t04), (t4, t05)
&, (t5, t06), (t6, t07), (t7, t08), (t8, t09)
equivalence (tx(10), t10), (tx(11), t11), (tx(12), t12), (tx(13),
&t13)
equivalence (tx(1), t0), (tx(2), t1), (tx(3), t2), (tx(4), t3), (
&tx(5), t4), (tx(6), t5), (tx(7), t6), (tx(8), t7), (tx(9), t8)
equivalence (t01, c001), (t02, c050), (t09, c054), (t13, c067), (
&t08, c068), (t03, c074)
equivalence (abx(2), abx1), (abx(3), abx2), (abx(4), abx3), (abx(5
&), abx4)
equivalence (abx1, ab004), (abx2, ab006), (abx3, ab023), (abx4,
&ab029)
equivalence (aby(2), aby1), (aby(3), aby2), (aby(4), aby3), (aby(5
&), aby4)
equivalence (aby1, ab007), (aby2, ab010), (aby3, ab032), (aby4,
&ab035)
equivalence (abz(2), abz1), (abz(3), abz2), (abz(4), abz3), (abz(5
&), abz4)
equivalence (abz1, ab002), (abz2, ab003), (abz3, ab011), (abz4,
&ab017)
equivalence (absq(2), absq1), (absq(3), absq2), (absq(4), absq3),
&(absq(5), absq4)
equivalence (apb(2), apb1), (apb(3), apb2), (apb(4), apb3), (apb(5
&), apb4)
equivalence (cpx(2), cpx1), (cpx(3), cpx2), (cpx(4), cpx3), (cpx(5
&), cpx4)
equivalence (cpy(2), cpy1), (cpy(3), cpy2), (cpy(4), cpy3), (cpy(5
&), cpy4)
equivalence (cpz(2), cpz1), (cpz(3), cpz2), (cpz(4), cpz3), (cpz(5
&), cpz4)
equivalence (f(2), f1), (f(3), f2), (f(4), f3), (f(5), f4)
equivalence (fm(1), fm0), (fm(2), fm1), (fm(3), fm2), (fm(4), fm3)
&, (fm(5), fm4)
equivalence (fm0, d001)
c
c
equivalence (eep(1), ep00)
c
c
c
c
c CALL ROUTINE TO MODIFY COMMON /B/ IF P ONLY SHELLS ARE PRESENT
c
c
c
2010 format(/1x,31hELECTRON-CHARGE MATRIX ELEMENTS/)
c
c
c***********************************************************************
c SPDSTV
c INITIALIZE THIS SEGMENT.
c SPDSTV
c***********************************************************************
c SPDSTV
c
c SPDSTV
c ******************************************************************
c SPDSTV
c COMPUTE SIZE OF S T AND V ARRAYS
c
c ******************************************************************
c SPDSTV
data max / 1, 4, 9, 1, 4, 10 /
data tx / 1.0e0, 0.5e0, 0.25e0, 0.125e0, 0.375e0, 0.625e-01,
&0.1875e0, 0.75e0, 1.5e0, 2.25e0, 1.125e0, 0.0e0, 3.0e0 /
data zero / 0.0 /
data half / 0.5 /
data one / 1.0 /
data onept5 / 1.5 /
data two / 2.0 /
data three / 3.0 /
data root3 / 1.732050808 /
data pi / 3.14159265358979 /
data antoau / 1.889726878d0 /
c# 753 "chelpg.for"
call star(nbasis, shellt, shellc, aos, nshell, nostar)
c# 762 "chelpg.for"
ntt = (nbasis * (nbasis + 1)) / 2
cC IF(IGO(4) .NE. 0) I5OR6 = 0
c
c ******************************************************************
c SPDSTV
c INITIALIZE RENORM USED TO NORMALIZE D FUNCTIONS
c
c ******************************************************************
c SPDSTV
c# 763 "chelpg.for"
i5or6 = 3
c# 768 "chelpg.for"
do 100 i = 1, 10
100 renorm(i) = one
renorm(5) = root3
renorm(8) = root3
c ******************************************************************
c SPDSTV
c CLEAR H ARRAY
c
c ******************************************************************
c SPDSTV
c# 772 "chelpg.for"
renorm(9) = root3
c# 776 "chelpg.for"
do 50 i = 1, ntt
c ******************************************************************
c SPDSTV
c * INITIALIZE THE VARIABLES USED BY ROUTINE FMGEN. *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 777 "chelpg.for"
50 h(i) = zero
c# 781 "chelpg.for"
call fmset
do 95 i = 1, 5
95 fm(i) = zero
abx(1) = one
aby(1) = one
abz(1) = one
a(1) = one
b(1) = one
f(1) = one
cpx(1) = one
cpy(1) = one
cpz(1) = one
apb(1) = one
c***********************************************************************
c SPDSTV
c LOOP OVER SHELLS ISHELL AND JSHELL.
c SPDSTV
c***********************************************************************
c SPDSTV
c# 794 "chelpg.for"
absq(1) = one
c# 798 "chelpg.for"
do 1000 ishell = 1, nshell
do 1000 jshell = 1, ishell
c ******************************************************************
c SPDSTV
c ZERO LOCATIONS
c SPDSTV
c ******************************************************************
c SPDSTV
c# 800 "chelpg.for"
symfac = one
c# 804 "chelpg.for"
80 continue
do 9447 ji = 1, 100
epn(ji) = zero
9447 continue
if (shellt(ishell) - shellt(jshell)) 120, 120, 110
110 inew = jshell
jnew = ishell
la = shellt(jshell)
lb = shellt(ishell)
goto 200
120 inew = ishell
jnew = jshell
la = shellt(ishell)
lb = shellt(jshell)
200 continue
lap1 = la + 1
lbp1 = lb + 1
lamax = max(lap1 + i5or6)
lbmax = max(lbp1 + i5or6)
itype = (3 * lb) + la
m = (la + lb) + 1
nga = shelln(inew)
ngb = shelln(jnew)
ax = x(inew)
bx = x(jnew)
ay = y(inew)
by = y(jnew)
az = z(inew)
bz = z(jnew)
isha = shella(inew)
ishb = shella(jnew)
ishad = shladf(inew)
ishbd = shladf(jnew)
iaos = aos(inew)
c ******************************************************************
c SPDSTV
c OBTAIN INFORMATION ABOUT SHELLS INEW AND JNEW
c SPDSTV
c ******************************************************************
c SPDSTV
c# 838 "chelpg.for"
jaos = aos(jnew)
c# 842 "chelpg.for"
do 101 i = 1, nga
n = (isha + i) - 1
nd = (ishad + i) - 1
if (maxtyp .le. 1) nd = 1
ag(i) = exx(n)
csa(i) = c1(n)
cpa(i) = c2(n)
101 cda(i) = c3(nd)
c# 851 "chelpg.for"
do 102 i = 1, ngb
n = (ishb + i) - 1
nd = (ishbd + i) - 1
bg(i) = exx(n)
csb(i) = c1(n)
cpb(i) = c2(n)
102 cdb(i) = c3(nd)
c# 859 "chelpg.for"
abx(2) = bx - ax
aby(2) = by - ay
abz(2) = bz - az
rabsq = ((abx(2) * abx(2)) + (aby(2) * aby(2))) + (abz(2) * abz(2)
&)
c# 863 "chelpg.for"
absq(2) = rabsq
do 103 i = 3, 5
abx(i) = abx(i - 1) * abx(2)
aby(i) = aby(i - 1) * aby(2)
abz(i) = abz(i - 1) * abz(2)
103 absq(i) = absq(i - 1) * absq(2)
ab001 = one
ab005 = abx1 * abz1
ab008 = aby1 * abz1
ab009 = abx1 * aby1
ab012 = abx1 * abz2
ab013 = abx2 * abz1
ab014 = aby1 * abz2
ab015 = (abx1 * aby1) * abz1
ab016 = aby2 * abz1
ab018 = abx1 * abz3
ab019 = abx2 * abz2
ab020 = aby1 * abz3
ab021 = (abx1 * aby1) * abz2
ab022 = aby2 * abz2
ab024 = abx2 * aby1
ab025 = abx1 * aby2
ab026 = abx3 * abz1
ab027 = (abx2 * aby1) * abz1
ab028 = (abx1 * aby2) * abz1
ab030 = abx3 * aby1
ab031 = abx2 * aby2
ab033 = aby3 * abz1
c***********************************************************************
c SPDSTV
c LOOP OVER GAUSSIANS (CONTRACTION LOOP).
c SPDSTV
c***********************************************************************
c SPDSTV
c# 891 "chelpg.for"
ab034 = abx1 * aby3
c# 895 "chelpg.for"
do 105 igauss = 1, nga
aa = ag(igauss)
do 105 jgauss = 1, ngb
bb = bg(jgauss)
aapbb = aa + bb
apbb = one / aapbb
f2 = ((two * aa) * bb) * apbb
px = ((aa * ax) + (bb * bx)) * apbb
py = ((aa * ay) + (bb * by)) * apbb
pz = ((aa * az) + (bb * bz)) * apbb
a(2) = one / aa
b(2) = one / bb
f(2) = f2
apb(2) = apbb
yx = pi * apbb
exx1 = (half * f2) * rabsq
if (exx1 - 80.0e0) 4172, 4173, 4173
4173 exx1 = zero
goto 4714
4172 exx1 = exp(- exx1)
4714 continue
ov = (yx ** onept5) * exx1
ovek = ((three * aa) * bb) * apbb
ek = (((f2 * aa) * bb) * apbb) * ov
ep = (two * yx) * exx1
do 119 i = 3, 5
a(i) = a(i - 1) * a(2)
b(i) = b(i - 1) * b(2)
apb(i) = apb(i - 1) * apb(2)
119 f(i) = f(i - 1) * f(2)
dpp(1) = csa(igauss) * csb(jgauss)
dpp(2) = cpa(igauss) * csb(jgauss)
dpp(3) = cda(igauss) * csb(jgauss)
dpp(4) = csa(igauss) * cpb(jgauss)
dpp(5) = cpa(igauss) * cpb(jgauss)
dpp(6) = cda(igauss) * cpb(jgauss)
dpp(7) = csa(igauss) * cdb(jgauss)
dpp(8) = cpa(igauss) * cdb(jgauss)
dpp(9) = cda(igauss) * cdb(jgauss)
do 2132 i = 1, 9
of(i) = dpp(i) * ov
2132 ox(i) = dpp(i) * ek
do 2139 i = 1, 100
2139 eep(i) = zero
c002 = (t02 * a1) * f1
c006 = (t02 * b1) * f1
c007 = ((t03 * a1) * b1) * f2
c008 = ((t03 * a1) * b1) * f1
c027 = t01 * a1
c031 = ((t01 * a1) * b1) * f1
c032 = (t02 * a1) * b1
c051 = ((t02 * a1) * b1) * f2
c012 = t02 * b1
c013 = (t03 * b2) * f2
c014 = (t03 * b2) * f1
c036 = (t01 * b2) * f1
c037 = t02 * b2
c056 = (t01 * b1) * f1
c030 = t01 * b1
c018 = ((t04 * a1) * b2) * f2
if (itype - 7) 3060, 3040, 3041
3041 continue
c003 = t02 * a1
c004 = (t03 * a2) * f2
c005 = (t03 * a2) * f1
c009 = ((t04 * a2) * b1) * f3
c010 = ((t05 * a2) * b1) * f2
c011 = ((t04 * a2) * b1) * f2
c017 = (t03 * a1) * b1
c019 = ((t04 * a1) * b2) * f1
c020 = ((t04 * a2) * b1) * f1
c021 = ((t06 * a2) * b2) * f4
c022 = ((t05 * a2) * b2) * f3
c023 = ((t07 * a2) * b2) * f2
c024 = ((t07 * a2) * b2) * f3
c025 = ((t06 * a2) * b2) * f3
c026 = ((t06 * a2) * b2) * f2
c028 = (t01 * a2) * f1
c029 = t02 * a2
c033 = ((t08 * a2) * b1) * f2
c034 = ((t09 * a2) * b1) * f1
c035 = ((t02 * a2) * b1) * f1
c040 = ((t02 * a1) * b2) * f1
c041 = (t03 * a1) * b2
c042 = (t03 * a2) * b1
c043 = ((t02 * a2) * b2) * f3
c044 = ((t10 * a2) * b2) * f2
c045 = ((t08 * a2) * b2) * f1
c046 = ((t11 * a2) * b2) * f2
c047 = ((t05 * a2) * b2) * f2
c048 = ((t03 * a2) * b2) * f1
c049 = (t01 * a1) * f1
c057 = ((t12 * a1) * b1) * f1
c058 = t03 * a1
c059 = t03 * b1
c060 = ((t03 * a1) * b2) * f3
c061 = (t04 * b2) * f2
c062 = (t04 * b2) * f1
c063 = ((t03 * a2) * b1) * f3
c064 = ((t01 * a1) * b1) * f2
c065 = (t09 * b1) * f1
c066 = (t09 * a1) * f1
c069 = (t04 * a2) * f2
c070 = (t04 * a2) * f1
c071 = ((t03 * a2) * b1) * f2
c072 = (t08 * a1) * f1
c073 = ((t03 * a1) * b2) * f2
c075 = (t08 * b1) * f1
c076 = ((t04 * a1) * b1) * f2
3040 continue
c015 = ((t04 * a1) * b2) * f3
c016 = ((t05 * a1) * b2) * f2
c038 = ((t08 * a1) * b2) * f2
c039 = ((t09 * a1) * b2) * f1
c040 = ((t02 * a1) * b2) * f1
c052 = ((t02 * a1) * b1) * f1
c053 = (t03 * b1) * f1
c055 = (t03 * a1) * f1
3060 continue
cx = x1
cy = x2
cz = x3
cpx(2) = px - cx
cpy(2) = py - cy
cpz(2) = pz - cz
cp2 = ((cpx(2) * cpx(2)) + (cpy(2) * cpy(2))) + (cpz(2) * cpz(2))
call fmgen(fm, aapbb * cp2, m)
do 108 i = 3, 5
cpx(i) = cpx(i - 1) * cpx(2)
cpy(i) = cpy(i - 1) * cpy(2)
108 cpz(i) = cpz(i - 1) * cpz(2)
epan = ep * float(- icharg)
do 2136 i = 1, 9
2136 of(i) = dpp(i) * epan
d002 = cpz1 * fm1
d003 = cpz2 * fm2
d004 = apb1 * fm1
d005 = cpx1 * fm1
d006 = (cpx1 * cpz1) * fm2
d007 = cpx2 * fm2
d008 = cpy1 * fm1
d009 = (cpy1 * cpz1) * fm2
d010 = (cpx1 * cpy1) * fm2
d011 = cpy2 * fm2
d012 = cpz3 * fm3
d013 = (apb1 * cpz1) * fm2
d014 = (cpx1 * cpz2) * fm3
d015 = (apb1 * cpx1) * fm2
d016 = (cpx2 * cpz1) * fm3
d017 = (cpy1 * cpz2) * fm3
d018 = (apb1 * cpy1) * fm2
d019 = ((cpx1 * cpy1) * cpz1) * fm3
d020 = (cpy2 * cpz1) * fm3
d034 = cpx3 * fm3
d035 = (cpx2 * cpy1) * fm3
d036 = (cpx1 * cpy2) * fm3
c ******************************************************************
c SPDSTV
c * SS *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1051 "chelpg.for"
d043 = cpy3 * fm3
c# 1055 "chelpg.for"
ep00 = of0 * ((c001 * ab001) * d001)
c ******************************************************************
c SPDSTV
c * SP *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1056 "chelpg.for"
if (itype) 3230, 3262, 3230
c# 1060 "chelpg.for"
3230 continue
ep01 = of3 * ((- ((c006 * ab002) * d001)) - ((c001 * ab001) * d002
&))
c# 1062 "chelpg.for"
ep03 = of3 * ((- ((c006 * ab004) * d001)) - ((c001 * ab001) * d005
&))
c# 1063 "chelpg.for"
ep06 = of3 * ((- ((c006 * ab007) * d001)) - ((c001 * ab001) * d008
&))
c# 1064 "chelpg.for"
if (itype - 7) 3240, 3242, 3241
c ******************************************************************
c SPDSTV
c * DD *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1065 "chelpg.for"
3240 if (itype - 4) 3262, 3261, 3260
c# 1069 "chelpg.for"
3241 continue
d021 = cpz4 * fm4
d022 = (apb1 * cpz2) * fm3
d023 = apb2 * fm2
d024 = (cpx1 * cpz3) * fm4
d025 = ((apb1 * cpx1) * cpz1) * fm3
d026 = (cpx2 * cpz2) * fm4
d027 = (apb1 * cpx2) * fm3
d028 = (cpy1 * cpz3) * fm4
d029 = ((apb1 * cpy1) * cpz1) * fm3
d030 = ((cpx1 * cpy1) * cpz2) * fm4
d031 = ((apb1 * cpx1) * cpy1) * fm3
d032 = (cpy2 * cpz2) * fm4
d033 = (apb1 * cpy2) * fm3
d037 = (cpx3 * cpz1) * fm4
d038 = ((cpx2 * cpy1) * cpz1) * fm4
d039 = ((cpx1 * cpy2) * cpz1) * fm4
d040 = cpx4 * fm4
d041 = (cpx3 * cpy1) * fm4
d042 = (cpx2 * cpy2) * fm4
d044 = (cpy3 * cpz1) * fm4
d045 = (cpx1 * cpy3) * fm4
d046 = cpy4 * fm4
ep20 = of2 * (((((((c003 * ab001) * d001) + ((c004 * ab003) * d001
&)) - ((c005 * ab001) * d001)) - ((c049 * ab002) * d002)) + ((c001
& * ab001) * d003)) - ((c050 * ab001) * d004))
c# 1094 "chelpg.for"
ep40 = of2 * (((((c004 * ab005) * d001) - ((c002 * ab004) * d002))
& - ((c002 * ab002) * d005)) + ((c001 * ab001) * d006))
ep50 = of2 * (((((((c003 * ab001) * d001) + ((c004 * ab006) * d001
&)) - ((c005 * ab001) * d001)) - ((c049 * ab004) * d005)) + ((c001
& * ab001) * d007)) - ((c050 * ab001) * d004))
c# 1098 "chelpg.for"
ep70 = of2 * (((((c004 * ab008) * d001) - ((c002 * ab007) * d002))
& - ((c002 * ab002) * d008)) + ((c001 * ab001) * d009))
ep80 = of2 * (((((c004 * ab009) * d001) - ((c002 * ab004) * d008))
& - ((c002 * ab007) * d005)) + ((c001 * ab001) * d010))
ep90 = of2 * (((((((c003 * ab001) * d001) + ((c004 * ab010) * d001
&)) - ((c005 * ab001) * d001)) - ((c049 * ab007) * d008)) + ((c001
& * ab001) * d011)) - ((c050 * ab001) * d004))
c# 1104 "chelpg.for"
ep21 = of5 * ((((((((((((((- ((c008 * ab002) * d001)) - ((c003 *
&ab001) * d002)) - ((c009 * ab011) * d001)) + ((c010 * ab002) *
&d001)) + ((c051 * ab003) * d002)) - ((c052 * ab001) * d002)) - ((
&c006 * ab002) * d003)) + ((c053 * ab002) * d004)) - ((c004 * ab003
&) * d002)) + ((c005 * ab001) * d002)) + ((c049 * ab002) * d003))
& - ((c002 * ab002) * d004)) - ((c001 * ab001) * d012)) + ((c054 *
&ab001) * d013))
c# 1108 "chelpg.for"
ep41 = of5 * ((((((((((((- ((c009 * ab012) * d001)) + ((c011 *
&ab004) * d001)) + ((c007 * ab005) * d002)) + ((c007 * ab003) *
&d005)) - ((c008 * ab001) * d005)) - ((c006 * ab002) * d006)) - ((
&c004 * ab005) * d002)) + ((c002 * ab004) * d003)) - ((c055 * ab004
&) * d004)) + ((c002 * ab002) * d006)) - ((c001 * ab001) * d014))
& + ((c050 * ab001) * d015))
c# 1112 "chelpg.for"
ep51 = of5 * ((((((((((((- ((c008 * ab002) * d001)) - ((c003 *
&ab001) * d002)) - ((c009 * ab013) * d001)) + ((c011 * ab002) *
&d001)) + ((c051 * ab005) * d005)) - ((c006 * ab002) * d007)) + ((
&c053 * ab002) * d004)) - ((c004 * ab006) * d002)) + ((c005 * ab001
&) * d002)) + ((c049 * ab004) * d006)) - ((c001 * ab001) * d016))
& + ((c050 * ab001) * d013))
c# 1116 "chelpg.for"
ep71 = of5 * ((((((((((((- ((c009 * ab014) * d001)) + ((c011 *
&ab007) * d001)) + ((c007 * ab008) * d002)) + ((c007 * ab003) *
&d008)) - ((c008 * ab001) * d008)) - ((c006 * ab002) * d009)) - ((
&c004 * ab008) * d002)) + ((c002 * ab007) * d003)) - ((c055 * ab007
&) * d004)) + ((c002 * ab002) * d009)) - ((c001 * ab001) * d017))
& + ((c050 * ab001) * d018))
c# 1120 "chelpg.for"
ep81 = of5 * ((((((((- ((c009 * ab015) * d001)) + ((c007 * ab005)
& * d008)) + ((c007 * ab008) * d005)) - ((c006 * ab002) * d010)) -
&((c004 * ab009) * d002)) + ((c002 * ab004) * d009)) + ((c002 *
&ab007) * d006)) - ((c001 * ab001) * d019))
c# 1123 "chelpg.for"
ep91 = of5 * ((((((((((((- ((c008 * ab002) * d001)) - ((c003 *
&ab001) * d002)) - ((c009 * ab016) * d001)) + ((c011 * ab002) *
&d001)) + ((c051 * ab008) * d008)) - ((c006 * ab002) * d011)) + ((
&c053 * ab002) * d004)) - ((c004 * ab010) * d002)) + ((c005 * ab001
&) * d002)) + ((c049 * ab007) * d009)) - ((c001 * ab001) * d020))
& + ((c050 * ab001) * d013))
c# 1127 "chelpg.for"
ep22 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab003) * d001)) - ((c019 * ab001) * d001)) + ((
&c057 * ab002) * d002)) + ((c003 * ab001) * d003)) - ((c058 * ab001
&) * d004)) + ((c011 * ab003) * d001)) - ((c020 * ab001) * d001))
& + ((c012 * ab001) * d003)) - ((c059 * ab001) * d004)) + ((c021 *
&ab017) * d001)) - ((c022 * ab003) * d001)) - ((c060 * ab011) *
&d002)) + ((c023 * ab001) * d001)) + ((c038 * ab002) * d002)) + ((
&c013 * ab003) * d003)) - ((c061 * ab003) * d004)) - ((c014 * ab001
&) * d003)) + ((c062 * ab001) * d004)) + ((c063 * ab011) * d002))
& - ((c033 * ab002) * d002)) - ((c064 * ab003) * d003)) + ((c051 *
&ab003) * d004)) + ((c031 * ab001) * d003)) - ((c052 * ab001) *
&d004)) + ((c056 * ab002) * d012)) - ((c065 * ab002) * d013)) + ((
&c004 * ab003) * d003)) - ((c005 * ab001) * d003)) - ((c049 * ab002
&) * d012)) + ((c066 * ab002) * d013)) + ((c001 * ab001) * d021))
& - ((c067 * ab001) * d022)) + ((c068 * ab001) * d023)) - ((c069 *
&ab003) * d004)) + ((c070 * ab001) * d004))
c# 1136 "chelpg.for"
ep42 = of8 * (((((((((((((((((((((((((((((c011 * ab005) * d001) -
&((c008 * ab004) * d002)) - ((c008 * ab002) * d005)) + ((c012 *
&ab001) * d006)) + ((c021 * ab018) * d001)) - ((c024 * ab005) *
&d001)) - ((c015 * ab012) * d002)) - ((c015 * ab011) * d005)) + ((
&c016 * ab002) * d005)) + ((c013 * ab003) * d006)) + ((c018 * ab004
&) * d002)) - ((c014 * ab001) * d006)) + ((c063 * ab012) * d002))
& - ((c071 * ab004) * d002)) - ((c051 * ab005) * d003)) + ((c007 *
&ab005) * d004)) - ((c051 * ab003) * d006)) + ((c052 * ab001) *
&d006)) + ((c056 * ab002) * d014)) - ((c006 * ab002) * d015)) + ((
&c004 * ab005) * d003)) - ((c002 * ab004) * d012)) + ((c072 * ab004
&) * d013)) - ((c002 * ab002) * d014)) + ((c001 * ab001) * d024))
& - ((c054 * ab001) * d025)) - ((c069 * ab005) * d004)) + ((c055 *
&ab002) * d015))
c# 1143 "chelpg.for"
ep52 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab003) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab002) * d002)) + ((c003 * ab001) * d003)) - ((c058 * ab001
&) * d004)) + ((c011 * ab006) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab004) * d005)) + ((c012 * ab001) * d007)) - ((c059 *
&ab001) * d004)) + ((c021 * ab019) * d001)) - ((c025 * ab003) *
&d001)) - ((c060 * ab012) * d005)) + ((c013 * ab003) * d007)) - ((
&c061 * ab003) * d004)) - ((c025 * ab006) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab004) * d005)) - ((c014 * ab001) * d007))
& + ((c062 * ab001) * d004)) + ((c063 * ab013) * d002)) - ((c071 *
&ab002) * d002)) - ((c064 * ab005) * d006)) + ((c056 * ab002) *
&d016)) - ((c006 * ab002) * d013)) + ((c004 * ab006) * d003)) - ((
&c005 * ab001) * d003)) - ((c049 * ab004) * d014)) + ((c001 * ab001
&) * d026)) - ((c050 * ab001) * d022)) - ((c069 * ab006) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab004) * d015)) - ((c050 *
&ab001) * d027)) + ((c074 * ab001) * d023))
c# 1152 "chelpg.for"
ep72 = of8 * (((((((((((((((((((((((((((((c011 * ab008) * d001) -
&((c008 * ab007) * d002)) - ((c008 * ab002) * d008)) + ((c012 *
&ab001) * d009)) + ((c021 * ab020) * d001)) - ((c024 * ab008) *
&d001)) - ((c015 * ab014) * d002)) - ((c015 * ab011) * d008)) + ((
&c016 * ab002) * d008)) + ((c013 * ab003) * d009)) + ((c018 * ab007
&) * d002)) - ((c014 * ab001) * d009)) + ((c063 * ab014) * d002))
& - ((c071 * ab007) * d002)) - ((c051 * ab008) * d003)) + ((c007 *
&ab008) * d004)) - ((c051 * ab003) * d009)) + ((c052 * ab001) *
&d009)) + ((c056 * ab002) * d017)) - ((c006 * ab002) * d018)) + ((
&c004 * ab008) * d003)) - ((c002 * ab007) * d012)) + ((c072 * ab007
&) * d013)) - ((c002 * ab002) * d017)) + ((c001 * ab001) * d028))
& - ((c054 * ab001) * d029)) - ((c069 * ab008) * d004)) + ((c055 *
&ab002) * d018))
c# 1159 "chelpg.for"
ep82 = of8 * (((((((((((((((((((((((((c011 * ab009) * d001) - ((
&c008 * ab004) * d008)) - ((c008 * ab007) * d005)) + ((c012 * ab001
&) * d010)) + ((c021 * ab021) * d001)) - ((c015 * ab012) * d008))
& - ((c015 * ab014) * d005)) + ((c013 * ab003) * d010)) - ((c025 *
&ab009) * d001)) + ((c018 * ab004) * d008)) + ((c018 * ab007) *
&d005)) - ((c014 * ab001) * d010)) + ((c063 * ab015) * d002)) - ((
&c051 * ab005) * d009)) - ((c051 * ab008) * d006)) + ((c056 * ab002
&) * d019)) + ((c004 * ab009) * d003)) - ((c002 * ab004) * d017))
& - ((c002 * ab007) * d014)) + ((c001 * ab001) * d030)) - ((c069 *
&ab009) * d004)) + ((c055 * ab004) * d018)) + ((c055 * ab007) *
&d015)) - ((c050 * ab001) * d031))
c# 1165 "chelpg.for"
ep92 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab003) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab002) * d002)) + ((c003 * ab001) * d003)) - ((c058 * ab001
&) * d004)) + ((c011 * ab010) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab007) * d008)) + ((c012 * ab001) * d011)) - ((c059 *
&ab001) * d004)) + ((c021 * ab022) * d001)) - ((c025 * ab003) *
&d001)) - ((c060 * ab014) * d008)) + ((c013 * ab003) * d011)) - ((
&c061 * ab003) * d004)) - ((c025 * ab010) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab007) * d008)) - ((c014 * ab001) * d011))
& + ((c062 * ab001) * d004)) + ((c063 * ab016) * d002)) - ((c071 *
&ab002) * d002)) - ((c064 * ab008) * d009)) + ((c056 * ab002) *
&d020)) - ((c006 * ab002) * d013)) + ((c004 * ab010) * d003)) - ((
&c005 * ab001) * d003)) - ((c049 * ab007) * d017)) + ((c001 * ab001
&) * d032)) - ((c050 * ab001) * d022)) - ((c069 * ab010) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab007) * d018)) - ((c050 *
&ab001) * d033)) + ((c074 * ab001) * d023))
c# 1174 "chelpg.for"
ep23 = of5 * ((((((((((((- ((c008 * ab004) * d001)) - ((c003 *
&ab001) * d005)) - ((c009 * ab012) * d001)) + ((c011 * ab004) *
&d001)) + ((c051 * ab005) * d002)) - ((c006 * ab004) * d003)) + ((
&c053 * ab004) * d004)) - ((c004 * ab003) * d005)) + ((c005 * ab001
&) * d005)) + ((c049 * ab002) * d006)) - ((c001 * ab001) * d014))
& + ((c050 * ab001) * d015))
c# 1178 "chelpg.for"
ep43 = of5 * ((((((((((((- ((c009 * ab013) * d001)) + ((c007 *
&ab006) * d002)) + ((c011 * ab002) * d001)) - ((c008 * ab001) *
&d002)) + ((c007 * ab005) * d005)) - ((c006 * ab004) * d006)) - ((
&c004 * ab005) * d005)) + ((c002 * ab004) * d006)) + ((c002 * ab002
&) * d007)) - ((c001 * ab001) * d016)) - ((c055 * ab002) * d004))
& + ((c050 * ab001) * d013))
c# 1182 "chelpg.for"
ep53 = of5 * ((((((((((((((- ((c008 * ab004) * d001)) - ((c003 *
&ab001) * d005)) - ((c009 * ab023) * d001)) + ((c010 * ab004) *
&d001)) + ((c051 * ab006) * d005)) - ((c052 * ab001) * d005)) - ((
&c006 * ab004) * d007)) + ((c053 * ab004) * d004)) - ((c004 * ab006
&) * d005)) + ((c005 * ab001) * d005)) + ((c049 * ab004) * d007))
& - ((c002 * ab004) * d004)) - ((c001 * ab001) * d034)) + ((c054 *
&ab001) * d015))
c# 1186 "chelpg.for"
ep73 = of5 * ((((((((- ((c009 * ab015) * d001)) + ((c007 * ab009)
& * d002)) + ((c007 * ab005) * d008)) - ((c006 * ab004) * d009)) -
&((c004 * ab008) * d005)) + ((c002 * ab007) * d006)) + ((c002 *
&ab002) * d010)) - ((c001 * ab001) * d019))
c# 1189 "chelpg.for"
ep83 = of5 * ((((((((((((- ((c009 * ab024) * d001)) + ((c007 *
&ab006) * d008)) + ((c011 * ab007) * d001)) - ((c008 * ab001) *
&d008)) + ((c007 * ab009) * d005)) - ((c006 * ab004) * d010)) - ((
&c004 * ab009) * d005)) + ((c002 * ab004) * d010)) + ((c002 * ab007
&) * d007)) - ((c001 * ab001) * d035)) - ((c055 * ab007) * d004))
& + ((c050 * ab001) * d018))
c# 1193 "chelpg.for"
ep93 = of5 * ((((((((((((- ((c008 * ab004) * d001)) - ((c003 *
&ab001) * d005)) - ((c009 * ab025) * d001)) + ((c011 * ab004) *
&d001)) + ((c051 * ab009) * d008)) - ((c006 * ab004) * d011)) + ((
&c053 * ab004) * d004)) - ((c004 * ab010) * d005)) + ((c005 * ab001
&) * d005)) + ((c049 * ab007) * d010)) - ((c001 * ab001) * d036))
& + ((c050 * ab001) * d015))
c# 1197 "chelpg.for"
ep24 = of8 * (((((((((((((((((((((((((((((c018 * ab005) * d001) +
&((c008 * ab004) * d002)) + ((c008 * ab002) * d005)) + ((c003 *
&ab001) * d006)) + ((c021 * ab018) * d001)) - ((c024 * ab005) *
&d001)) - ((c060 * ab012) * d002)) + ((c073 * ab004) * d002)) + ((
&c013 * ab005) * d003)) - ((c061 * ab005) * d004)) + ((c009 * ab012
&) * d002)) - ((c011 * ab004) * d002)) - ((c051 * ab005) * d003))
& + ((c007 * ab005) * d004)) + ((c006 * ab004) * d012)) - ((c075 *
&ab004) * d013)) + ((c009 * ab011) * d005)) - ((c010 * ab002) *
&d005)) - ((c051 * ab003) * d006)) + ((c052 * ab001) * d006)) + ((
&c006 * ab002) * d014)) - ((c053 * ab002) * d015)) + ((c004 * ab003
&) * d006)) - ((c005 * ab001) * d006)) - ((c049 * ab002) * d014))
& + ((c002 * ab002) * d015)) + ((c001 * ab001) * d024)) - ((c054 *
&ab001) * d025))
c# 1204 "chelpg.for"
ep44 = of8 * (((((((((((((((((((((((((((((((((((c021 * ab019) *
&d001) - ((c025 * ab006) * d001)) - ((c015 * ab013) * d002)) - ((
&c025 * ab003) * d001)) + ((c026 * ab001) * d001)) + ((c018 * ab002
&) * d002)) - ((c015 * ab012) * d005)) + ((c018 * ab004) * d005))
& + ((c013 * ab005) * d006)) + ((c009 * ab013) * d002)) - ((c007 *
&ab006) * d003)) + ((c076 * ab006) * d004)) - ((c011 * ab002) *
&d002)) + ((c008 * ab001) * d003)) - ((c008 * ab001) * d004)) - ((
&c051 * ab005) * d006)) + ((c006 * ab004) * d014)) - ((c053 * ab004
&) * d015)) + ((c009 * ab012) * d005)) - ((c011 * ab004) * d005))
& - ((c007 * ab003) * d007)) + ((c008 * ab001) * d007)) + ((c006 *
&ab002) * d016)) + ((c076 * ab003) * d004)) - ((c053 * ab002) *
&d013)) + ((c004 * ab005) * d006)) - ((c002 * ab004) * d014)) + ((
&c055 * ab004) * d015)) - ((c002 * ab002) * d016)) + ((c001 * ab001
&) * d026)) - ((c050 * ab001) * d027)) + ((c055 * ab002) * d013))
& - ((c050 * ab001) * d022)) + ((c074 * ab001) * d023))
c# 1213 "chelpg.for"
ep54 = of8 * (((((((((((((((((((((((((((((c018 * ab005) * d001) +
&((c008 * ab004) * d002)) + ((c008 * ab002) * d005)) + ((c003 *
&ab001) * d006)) + ((c021 * ab026) * d001)) - ((c024 * ab005) *
&d001)) - ((c060 * ab013) * d005)) + ((c073 * ab002) * d005)) + ((
&c013 * ab005) * d007)) - ((c061 * ab005) * d004)) + ((c009 * ab023
&) * d002)) - ((c010 * ab004) * d002)) - ((c051 * ab006) * d006))
& + ((c052 * ab001) * d006)) + ((c006 * ab004) * d016)) - ((c053 *
&ab004) * d013)) + ((c009 * ab013) * d005)) - ((c011 * ab002) *
&d005)) - ((c051 * ab005) * d007)) + ((c007 * ab005) * d004)) + ((
&c006 * ab002) * d034)) - ((c075 * ab002) * d015)) + ((c004 * ab006
&) * d006)) - ((c005 * ab001) * d006)) - ((c049 * ab004) * d016))
& + ((c002 * ab004) * d013)) + ((c001 * ab001) * d037)) - ((c054 *
&ab001) * d025))
c# 1220 "chelpg.for"
ep74 = of8 * (((((((((((((((((((((((((c021 * ab021) * d001) - ((
&c025 * ab009) * d001)) - ((c015 * ab015) * d002)) - ((c015 * ab012
&) * d008)) + ((c018 * ab004) * d008)) + ((c013 * ab005) * d009))
& + ((c009 * ab015) * d002)) - ((c007 * ab009) * d003)) + ((c076 *
&ab009) * d004)) - ((c007 * ab005) * d009)) + ((c006 * ab004) *
&d017)) - ((c053 * ab004) * d018)) + ((c009 * ab014) * d005)) - ((
&c011 * ab007) * d005)) - ((c007 * ab008) * d006)) - ((c007 * ab003
&) * d010)) + ((c008 * ab001) * d010)) + ((c006 * ab002) * d019))
& + ((c004 * ab008) * d006)) - ((c002 * ab007) * d014)) + ((c055 *
&ab007) * d015)) - ((c002 * ab002) * d019)) + ((c001 * ab001) *
&d030)) - ((c050 * ab001) * d031))
c# 1226 "chelpg.for"
ep84 = of8 * (((((((((((((((((((((((((c021 * ab027) * d001) - ((
&c015 * ab013) * d008)) - ((c025 * ab008) * d001)) + ((c018 * ab002
&) * d008)) - ((c015 * ab015) * d005)) + ((c013 * ab005) * d010))
& + ((c009 * ab024) * d002)) - ((c007 * ab006) * d009)) - ((c011 *
&ab007) * d002)) + ((c008 * ab001) * d009)) - ((c007 * ab009) *
&d006)) + ((c006 * ab004) * d019)) + ((c009 * ab015) * d005)) - ((
&c007 * ab005) * d010)) - ((c007 * ab008) * d007)) + ((c006 * ab002
&) * d035)) + ((c076 * ab008) * d004)) - ((c053 * ab002) * d018))
& + ((c004 * ab009) * d006)) - ((c002 * ab004) * d019)) - ((c002 *
&ab007) * d016)) + ((c001 * ab001) * d038)) + ((c055 * ab007) *
&d013)) - ((c050 * ab001) * d029))
c# 1232 "chelpg.for"
ep94 = of8 * (((((((((((((((((((((((((c018 * ab005) * d001) + ((
&c008 * ab004) * d002)) + ((c008 * ab002) * d005)) + ((c003 * ab001
&) * d006)) + ((c021 * ab028) * d001)) - ((c025 * ab005) * d001))
& - ((c060 * ab015) * d008)) + ((c013 * ab005) * d011)) - ((c061 *
&ab005) * d004)) + ((c009 * ab025) * d002)) - ((c011 * ab004) *
&d002)) - ((c051 * ab009) * d009)) + ((c006 * ab004) * d020)) - ((
&c053 * ab004) * d013)) + ((c009 * ab016) * d005)) - ((c011 * ab002
&) * d005)) - ((c051 * ab008) * d010)) + ((c006 * ab002) * d036))
& - ((c053 * ab002) * d015)) + ((c004 * ab010) * d006)) - ((c005 *
&ab001) * d006)) - ((c049 * ab007) * d019)) + ((c001 * ab001) *
&d039)) - ((c050 * ab001) * d025))
c# 1238 "chelpg.for"
ep25 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab006) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab004) * d005)) + ((c003 * ab001) * d007)) - ((c058 * ab001
&) * d004)) + ((c011 * ab003) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab002) * d002)) + ((c012 * ab001) * d003)) - ((c059 *
&ab001) * d004)) + ((c021 * ab019) * d001)) - ((c025 * ab006) *
&d001)) - ((c060 * ab013) * d002)) + ((c013 * ab006) * d003)) - ((
&c061 * ab006) * d004)) - ((c025 * ab003) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab002) * d002)) - ((c014 * ab001) * d003))
& + ((c062 * ab001) * d004)) + ((c063 * ab012) * d005)) - ((c071 *
&ab004) * d005)) - ((c064 * ab005) * d006)) + ((c056 * ab004) *
&d014)) - ((c006 * ab004) * d015)) + ((c004 * ab003) * d007)) - ((
&c005 * ab001) * d007)) - ((c049 * ab002) * d016)) + ((c001 * ab001
&) * d026)) - ((c050 * ab001) * d027)) - ((c069 * ab003) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab002) * d013)) - ((c050 *
&ab001) * d022)) + ((c074 * ab001) * d023))
c# 1247 "chelpg.for"
ep45 = of8 * (((((((((((((((((((((((((((((c011 * ab005) * d001) -
&((c008 * ab004) * d002)) - ((c008 * ab002) * d005)) + ((c012 *
&ab001) * d006)) + ((c021 * ab026) * d001)) - ((c015 * ab023) *
&d002)) - ((c024 * ab005) * d001)) + ((c016 * ab004) * d002)) - ((
&c015 * ab013) * d005)) + ((c013 * ab006) * d006)) + ((c018 * ab002
&) * d005)) - ((c014 * ab001) * d006)) + ((c063 * ab013) * d005))
& - ((c051 * ab006) * d006)) - ((c071 * ab002) * d005)) + ((c052 *
&ab001) * d006)) - ((c051 * ab005) * d007)) + ((c056 * ab004) *
&d016)) + ((c007 * ab005) * d004)) - ((c006 * ab004) * d013)) + ((
&c004 * ab005) * d007)) - ((c002 * ab004) * d016)) - ((c002 * ab002
&) * d034)) + ((c001 * ab001) * d037)) + ((c072 * ab002) * d015))
& - ((c054 * ab001) * d025)) - ((c069 * ab005) * d004)) + ((c055 *
&ab004) * d013))
c# 1254 "chelpg.for"
ep55 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab006) * d001)) - ((c019 * ab001) * d001)) + ((
&c057 * ab004) * d005)) + ((c003 * ab001) * d007)) - ((c058 * ab001
&) * d004)) + ((c011 * ab006) * d001)) - ((c020 * ab001) * d001))
& + ((c012 * ab001) * d007)) - ((c059 * ab001) * d004)) + ((c021 *
&ab029) * d001)) - ((c022 * ab006) * d001)) - ((c060 * ab023) *
&d005)) + ((c023 * ab001) * d001)) + ((c038 * ab004) * d005)) + ((
&c013 * ab006) * d007)) - ((c061 * ab006) * d004)) - ((c014 * ab001
&) * d007)) + ((c062 * ab001) * d004)) + ((c063 * ab023) * d005))
& - ((c033 * ab004) * d005)) - ((c064 * ab006) * d007)) + ((c051 *
&ab006) * d004)) + ((c031 * ab001) * d007)) - ((c052 * ab001) *
&d004)) + ((c056 * ab004) * d034)) - ((c065 * ab004) * d015)) + ((
&c004 * ab006) * d007)) - ((c005 * ab001) * d007)) - ((c049 * ab004
&) * d034)) + ((c066 * ab004) * d015)) + ((c001 * ab001) * d040))
& - ((c067 * ab001) * d027)) + ((c068 * ab001) * d023)) - ((c069 *
&ab006) * d004)) + ((c070 * ab001) * d004))
c# 1263 "chelpg.for"
ep75 = of8 * (((((((((((((((((((((((((c011 * ab008) * d001) - ((
&c008 * ab007) * d002)) - ((c008 * ab002) * d008)) + ((c012 * ab001
&) * d009)) + ((c021 * ab027) * d001)) - ((c015 * ab024) * d002))
& - ((c015 * ab013) * d008)) + ((c013 * ab006) * d009)) - ((c025 *
&ab008) * d001)) + ((c018 * ab007) * d002)) + ((c018 * ab002) *
&d008)) - ((c014 * ab001) * d009)) + ((c063 * ab015) * d005)) - ((
&c051 * ab009) * d006)) - ((c051 * ab005) * d010)) + ((c056 * ab004
&) * d019)) + ((c004 * ab008) * d007)) - ((c002 * ab007) * d016))
& - ((c002 * ab002) * d035)) + ((c001 * ab001) * d038)) - ((c069 *
&ab008) * d004)) + ((c055 * ab007) * d013)) + ((c055 * ab002) *
&d018)) - ((c050 * ab001) * d029))
c# 1269 "chelpg.for"
ep85 = of8 * (((((((((((((((((((((((((((((c011 * ab009) * d001) -
&((c008 * ab004) * d008)) - ((c008 * ab007) * d005)) + ((c012 *
&ab001) * d010)) + ((c021 * ab030) * d001)) - ((c015 * ab023) *
&d008)) - ((c024 * ab009) * d001)) + ((c016 * ab004) * d008)) - ((
&c015 * ab024) * d005)) + ((c013 * ab006) * d010)) + ((c018 * ab007
&) * d005)) - ((c014 * ab001) * d010)) + ((c063 * ab024) * d005))
& - ((c051 * ab006) * d010)) - ((c071 * ab007) * d005)) + ((c052 *
&ab001) * d010)) - ((c051 * ab009) * d007)) + ((c056 * ab004) *
&d035)) + ((c007 * ab009) * d004)) - ((c006 * ab004) * d018)) + ((
&c004 * ab009) * d007)) - ((c002 * ab004) * d035)) - ((c002 * ab007
&) * d034)) + ((c001 * ab001) * d041)) + ((c072 * ab007) * d015))
& - ((c054 * ab001) * d031)) - ((c069 * ab009) * d004)) + ((c055 *
&ab004) * d018))
c# 1276 "chelpg.for"
ep95 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab006) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab004) * d005)) + ((c003 * ab001) * d007)) - ((c058 * ab001
&) * d004)) + ((c011 * ab010) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab007) * d008)) + ((c012 * ab001) * d011)) - ((c059 *
&ab001) * d004)) + ((c021 * ab031) * d001)) - ((c025 * ab006) *
&d001)) - ((c060 * ab024) * d008)) + ((c013 * ab006) * d011)) - ((
&c061 * ab006) * d004)) - ((c025 * ab010) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab007) * d008)) - ((c014 * ab001) * d011))
& + ((c062 * ab001) * d004)) + ((c063 * ab025) * d005)) - ((c071 *
&ab004) * d005)) - ((c064 * ab009) * d010)) + ((c056 * ab004) *
&d036)) - ((c006 * ab004) * d015)) + ((c004 * ab010) * d007)) - ((
&c005 * ab001) * d007)) - ((c049 * ab007) * d035)) + ((c001 * ab001
&) * d042)) - ((c050 * ab001) * d027)) - ((c069 * ab010) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab007) * d018)) - ((c050 *
&ab001) * d033)) + ((c074 * ab001) * d023))
c# 1285 "chelpg.for"
ep26 = of5 * ((((((((((((- ((c008 * ab007) * d001)) - ((c003 *
&ab001) * d008)) - ((c009 * ab014) * d001)) + ((c011 * ab007) *
&d001)) + ((c051 * ab008) * d002)) - ((c006 * ab007) * d003)) + ((
&c053 * ab007) * d004)) - ((c004 * ab003) * d008)) + ((c005 * ab001
&) * d008)) + ((c049 * ab002) * d009)) - ((c001 * ab001) * d017))
& + ((c050 * ab001) * d018))
c# 1289 "chelpg.for"
ep46 = of5 * ((((((((- ((c009 * ab015) * d001)) + ((c007 * ab009)
& * d002)) + ((c007 * ab008) * d005)) - ((c006 * ab007) * d006)) -
&((c004 * ab005) * d008)) + ((c002 * ab004) * d009)) + ((c002 *
&ab002) * d010)) - ((c001 * ab001) * d019))
c# 1292 "chelpg.for"
ep56 = of5 * ((((((((((((- ((c008 * ab007) * d001)) - ((c003 *
&ab001) * d008)) - ((c009 * ab024) * d001)) + ((c011 * ab007) *
&d001)) + ((c051 * ab009) * d005)) - ((c006 * ab007) * d007)) + ((
&c053 * ab007) * d004)) - ((c004 * ab006) * d008)) + ((c005 * ab001
&) * d008)) + ((c049 * ab004) * d010)) - ((c001 * ab001) * d035))
& + ((c050 * ab001) * d018))
c# 1296 "chelpg.for"
ep76 = of5 * ((((((((((((- ((c009 * ab016) * d001)) + ((c007 *
&ab010) * d002)) + ((c011 * ab002) * d001)) - ((c008 * ab001) *
&d002)) + ((c007 * ab008) * d008)) - ((c006 * ab007) * d009)) - ((
&c004 * ab008) * d008)) + ((c002 * ab007) * d009)) + ((c002 * ab002
&) * d011)) - ((c001 * ab001) * d020)) - ((c055 * ab002) * d004))
& + ((c050 * ab001) * d013))
c# 1300 "chelpg.for"
ep86 = of5 * ((((((((((((- ((c009 * ab025) * d001)) + ((c011 *
&ab004) * d001)) + ((c007 * ab009) * d008)) + ((c007 * ab010) *
&d005)) - ((c008 * ab001) * d005)) - ((c006 * ab007) * d010)) - ((
&c004 * ab009) * d008)) + ((c002 * ab004) * d011)) - ((c055 * ab004
&) * d004)) + ((c002 * ab007) * d010)) - ((c001 * ab001) * d036))
& + ((c050 * ab001) * d015))
c# 1304 "chelpg.for"
ep96 = of5 * ((((((((((((((- ((c008 * ab007) * d001)) - ((c003 *
&ab001) * d008)) - ((c009 * ab032) * d001)) + ((c010 * ab007) *
&d001)) + ((c051 * ab010) * d008)) - ((c052 * ab001) * d008)) - ((
&c006 * ab007) * d011)) + ((c053 * ab007) * d004)) - ((c004 * ab010
&) * d008)) + ((c005 * ab001) * d008)) + ((c049 * ab007) * d011))
& - ((c002 * ab007) * d004)) - ((c001 * ab001) * d043)) + ((c054 *
&ab001) * d018))
c# 1308 "chelpg.for"
ep27 = of8 * (((((((((((((((((((((((((((((c018 * ab008) * d001) +
&((c008 * ab007) * d002)) + ((c008 * ab002) * d008)) + ((c003 *
&ab001) * d009)) + ((c021 * ab020) * d001)) - ((c024 * ab008) *
&d001)) - ((c060 * ab014) * d002)) + ((c073 * ab007) * d002)) + ((
&c013 * ab008) * d003)) - ((c061 * ab008) * d004)) + ((c009 * ab014
&) * d002)) - ((c011 * ab007) * d002)) - ((c051 * ab008) * d003))
& + ((c007 * ab008) * d004)) + ((c006 * ab007) * d012)) - ((c075 *
&ab007) * d013)) + ((c009 * ab011) * d008)) - ((c010 * ab002) *
&d008)) - ((c051 * ab003) * d009)) + ((c052 * ab001) * d009)) + ((
&c006 * ab002) * d017)) - ((c053 * ab002) * d018)) + ((c004 * ab003
&) * d009)) - ((c005 * ab001) * d009)) - ((c049 * ab002) * d017))
& + ((c002 * ab002) * d018)) + ((c001 * ab001) * d028)) - ((c054 *
&ab001) * d029))
c# 1315 "chelpg.for"
ep47 = of8 * (((((((((((((((((((((((((c021 * ab021) * d001) - ((
&c025 * ab009) * d001)) - ((c015 * ab015) * d002)) - ((c015 * ab014
&) * d005)) + ((c018 * ab007) * d005)) + ((c013 * ab008) * d006))
& + ((c009 * ab015) * d002)) - ((c007 * ab009) * d003)) + ((c076 *
&ab009) * d004)) - ((c007 * ab008) * d006)) + ((c006 * ab007) *
&d014)) - ((c053 * ab007) * d015)) + ((c009 * ab012) * d008)) - ((
&c011 * ab004) * d008)) - ((c007 * ab005) * d009)) - ((c007 * ab003
&) * d010)) + ((c008 * ab001) * d010)) + ((c006 * ab002) * d019))
& + ((c004 * ab005) * d009)) - ((c002 * ab004) * d017)) + ((c055 *
&ab004) * d018)) - ((c002 * ab002) * d019)) + ((c001 * ab001) *
&d030)) - ((c050 * ab001) * d031))
c# 1321 "chelpg.for"
ep57 = of8 * (((((((((((((((((((((((((c018 * ab008) * d001) + ((
&c008 * ab007) * d002)) + ((c008 * ab002) * d008)) + ((c003 * ab001
&) * d009)) + ((c021 * ab027) * d001)) - ((c025 * ab008) * d001))
& - ((c060 * ab015) * d005)) + ((c013 * ab008) * d007)) - ((c061 *
&ab008) * d004)) + ((c009 * ab024) * d002)) - ((c011 * ab007) *
&d002)) - ((c051 * ab009) * d006)) + ((c006 * ab007) * d016)) - ((
&c053 * ab007) * d013)) + ((c009 * ab013) * d008)) - ((c011 * ab002
&) * d008)) - ((c051 * ab005) * d010)) + ((c006 * ab002) * d035))
& - ((c053 * ab002) * d018)) + ((c004 * ab006) * d009)) - ((c005 *
&ab001) * d009)) - ((c049 * ab004) * d019)) + ((c001 * ab001) *
&d038)) - ((c050 * ab001) * d029))
c# 1327 "chelpg.for"
ep77 = of8 * (((((((((((((((((((((((((((((((((((c021 * ab022) *
&d001) - ((c025 * ab010) * d001)) - ((c015 * ab016) * d002)) - ((
&c025 * ab003) * d001)) + ((c026 * ab001) * d001)) + ((c018 * ab002
&) * d002)) - ((c015 * ab014) * d008)) + ((c018 * ab007) * d008))
& + ((c013 * ab008) * d009)) + ((c009 * ab016) * d002)) - ((c007 *
&ab010) * d003)) + ((c076 * ab010) * d004)) - ((c011 * ab002) *
&d002)) + ((c008 * ab001) * d003)) - ((c008 * ab001) * d004)) - ((
&c051 * ab008) * d009)) + ((c006 * ab007) * d017)) - ((c053 * ab007
&) * d018)) + ((c009 * ab014) * d008)) - ((c011 * ab007) * d008))
& - ((c007 * ab003) * d011)) + ((c008 * ab001) * d011)) + ((c006 *
&ab002) * d020)) + ((c076 * ab003) * d004)) - ((c053 * ab002) *
&d013)) + ((c004 * ab008) * d009)) - ((c002 * ab007) * d017)) + ((
&c055 * ab007) * d018)) - ((c002 * ab002) * d020)) + ((c001 * ab001
&) * d032)) - ((c050 * ab001) * d033)) + ((c055 * ab002) * d013))
& - ((c050 * ab001) * d022)) + ((c074 * ab001) * d023))
c# 1336 "chelpg.for"
ep87 = of8 * (((((((((((((((((((((((((c021 * ab028) * d001) - ((
&c025 * ab005) * d001)) - ((c015 * ab015) * d008)) - ((c015 * ab016
&) * d005)) + ((c018 * ab002) * d005)) + ((c013 * ab008) * d010))
& + ((c009 * ab025) * d002)) - ((c011 * ab004) * d002)) - ((c007 *
&ab009) * d009)) - ((c007 * ab010) * d006)) + ((c008 * ab001) *
&d006)) + ((c006 * ab007) * d019)) + ((c009 * ab015) * d008)) - ((
&c007 * ab005) * d011)) + ((c076 * ab005) * d004)) - ((c007 * ab008
&) * d010)) + ((c006 * ab002) * d036)) - ((c053 * ab002) * d015))
& + ((c004 * ab009) * d009)) - ((c002 * ab004) * d020)) + ((c055 *
&ab004) * d013)) - ((c002 * ab007) * d019)) + ((c001 * ab001) *
&d039)) - ((c050 * ab001) * d025))
c# 1342 "chelpg.for"
ep97 = of8 * (((((((((((((((((((((((((((((c018 * ab008) * d001) +
&((c008 * ab007) * d002)) + ((c008 * ab002) * d008)) + ((c003 *
&ab001) * d009)) + ((c021 * ab033) * d001)) - ((c024 * ab008) *
&d001)) - ((c060 * ab016) * d008)) + ((c073 * ab002) * d008)) + ((
&c013 * ab008) * d011)) - ((c061 * ab008) * d004)) + ((c009 * ab032
&) * d002)) - ((c010 * ab007) * d002)) - ((c051 * ab010) * d009))
& + ((c052 * ab001) * d009)) + ((c006 * ab007) * d020)) - ((c053 *
&ab007) * d013)) + ((c009 * ab016) * d008)) - ((c011 * ab002) *
&d008)) - ((c051 * ab008) * d011)) + ((c007 * ab008) * d004)) + ((
&c006 * ab002) * d043)) - ((c075 * ab002) * d018)) + ((c004 * ab010
&) * d009)) - ((c005 * ab001) * d009)) - ((c049 * ab007) * d020))
& + ((c002 * ab007) * d013)) + ((c001 * ab001) * d044)) - ((c054 *
&ab001) * d029))
c# 1349 "chelpg.for"
ep28 = of8 * (((((((((((((((((((((((((c018 * ab009) * d001) + ((
&c008 * ab004) * d008)) + ((c008 * ab007) * d005)) + ((c003 * ab001
&) * d010)) + ((c021 * ab021) * d001)) - ((c025 * ab009) * d001))
& - ((c060 * ab015) * d002)) + ((c013 * ab009) * d003)) - ((c061 *
&ab009) * d004)) + ((c009 * ab012) * d008)) - ((c011 * ab004) *
&d008)) - ((c051 * ab005) * d009)) + ((c006 * ab004) * d017)) - ((
&c053 * ab004) * d018)) + ((c009 * ab014) * d005)) - ((c011 * ab007
&) * d005)) - ((c051 * ab008) * d006)) + ((c006 * ab007) * d014))
& - ((c053 * ab007) * d015)) + ((c004 * ab003) * d010)) - ((c005 *
&ab001) * d010)) - ((c049 * ab002) * d019)) + ((c001 * ab001) *
&d030)) - ((c050 * ab001) * d031))
c# 1355 "chelpg.for"
ep48 = of8 * (((((((((((((((((((((((((c021 * ab027) * d001) - ((
&c015 * ab024) * d002)) - ((c025 * ab008) * d001)) + ((c018 * ab007
&) * d002)) - ((c015 * ab015) * d005)) + ((c013 * ab009) * d006))
& + ((c009 * ab013) * d008)) - ((c007 * ab006) * d009)) - ((c011 *
&ab002) * d008)) + ((c008 * ab001) * d009)) - ((c007 * ab005) *
&d010)) + ((c006 * ab004) * d019)) + ((c009 * ab015) * d005)) - ((
&c007 * ab009) * d006)) - ((c007 * ab008) * d007)) + ((c006 * ab007
&) * d016)) + ((c076 * ab008) * d004)) - ((c053 * ab007) * d013))
& + ((c004 * ab005) * d010)) - ((c002 * ab004) * d019)) - ((c002 *
&ab002) * d035)) + ((c001 * ab001) * d038)) + ((c055 * ab002) *
&d018)) - ((c050 * ab001) * d029))
c# 1361 "chelpg.for"
ep58 = of8 * (((((((((((((((((((((((((((((c018 * ab009) * d001) +
&((c008 * ab004) * d008)) + ((c008 * ab007) * d005)) + ((c003 *
&ab001) * d010)) + ((c021 * ab030) * d001)) - ((c024 * ab009) *
&d001)) - ((c060 * ab024) * d005)) + ((c073 * ab007) * d005)) + ((
&c013 * ab009) * d007)) - ((c061 * ab009) * d004)) + ((c009 * ab023
&) * d008)) - ((c010 * ab004) * d008)) - ((c051 * ab006) * d010))
& + ((c052 * ab001) * d010)) + ((c006 * ab004) * d035)) - ((c053 *
&ab004) * d018)) + ((c009 * ab024) * d005)) - ((c011 * ab007) *
&d005)) - ((c051 * ab009) * d007)) + ((c007 * ab009) * d004)) + ((
&c006 * ab007) * d034)) - ((c075 * ab007) * d015)) + ((c004 * ab006
&) * d010)) - ((c005 * ab001) * d010)) - ((c049 * ab004) * d035))
& + ((c002 * ab004) * d018)) + ((c001 * ab001) * d041)) - ((c054 *
&ab001) * d031))
c# 1368 "chelpg.for"
ep78 = of8 * (((((((((((((((((((((((((c021 * ab028) * d001) - ((
&c015 * ab025) * d002)) - ((c025 * ab005) * d001)) + ((c018 * ab004
&) * d002)) - ((c015 * ab015) * d008)) + ((c013 * ab009) * d009))
& + ((c009 * ab015) * d008)) - ((c007 * ab009) * d009)) - ((c007 *
&ab005) * d011)) + ((c006 * ab004) * d020)) + ((c076 * ab005) *
&d004)) - ((c053 * ab004) * d013)) + ((c009 * ab016) * d005)) - ((
&c007 * ab010) * d006)) - ((c011 * ab002) * d005)) + ((c008 * ab001
&) * d006)) - ((c007 * ab008) * d010)) + ((c006 * ab007) * d019))
& + ((c004 * ab008) * d010)) - ((c002 * ab007) * d019)) - ((c002 *
&ab002) * d036)) + ((c001 * ab001) * d039)) + ((c055 * ab002) *
&d015)) - ((c050 * ab001) * d025))
c# 1374 "chelpg.for"
ep88 = of8 * (((((((((((((((((((((((((((((((((((c021 * ab031) *
&d001) - ((c025 * ab006) * d001)) - ((c015 * ab024) * d008)) - ((
&c025 * ab010) * d001)) + ((c026 * ab001) * d001)) + ((c018 * ab007
&) * d008)) - ((c015 * ab025) * d005)) + ((c018 * ab004) * d005))
& + ((c013 * ab009) * d010)) + ((c009 * ab024) * d008)) - ((c007 *
&ab006) * d011)) + ((c076 * ab006) * d004)) - ((c011 * ab007) *
&d008)) + ((c008 * ab001) * d011)) - ((c008 * ab001) * d004)) - ((
&c051 * ab009) * d010)) + ((c006 * ab004) * d036)) - ((c053 * ab004
&) * d015)) + ((c009 * ab025) * d005)) - ((c011 * ab004) * d005))
& - ((c007 * ab010) * d007)) + ((c008 * ab001) * d007)) + ((c006 *
&ab007) * d035)) + ((c076 * ab010) * d004)) - ((c053 * ab007) *
&d018)) + ((c004 * ab009) * d010)) - ((c002 * ab004) * d036)) + ((
&c055 * ab004) * d015)) - ((c002 * ab007) * d035)) + ((c001 * ab001
&) * d042)) - ((c050 * ab001) * d027)) + ((c055 * ab007) * d018))
& - ((c050 * ab001) * d033)) + ((c074 * ab001) * d023))
c# 1383 "chelpg.for"
ep98 = of8 * (((((((((((((((((((((((((((((c018 * ab009) * d001) +
&((c008 * ab004) * d008)) + ((c008 * ab007) * d005)) + ((c003 *
&ab001) * d010)) + ((c021 * ab034) * d001)) - ((c024 * ab009) *
&d001)) - ((c060 * ab025) * d008)) + ((c073 * ab004) * d008)) + ((
&c013 * ab009) * d011)) - ((c061 * ab009) * d004)) + ((c009 * ab025
&) * d008)) - ((c011 * ab004) * d008)) - ((c051 * ab009) * d011))
& + ((c007 * ab009) * d004)) + ((c006 * ab004) * d043)) - ((c075 *
&ab004) * d018)) + ((c009 * ab032) * d005)) - ((c010 * ab007) *
&d005)) - ((c051 * ab010) * d010)) + ((c052 * ab001) * d010)) + ((
&c006 * ab007) * d036)) - ((c053 * ab007) * d015)) + ((c004 * ab010
&) * d010)) - ((c005 * ab001) * d010)) - ((c049 * ab007) * d036))
& + ((c002 * ab007) * d015)) + ((c001 * ab001) * d045)) - ((c054 *
&ab001) * d031))
c# 1390 "chelpg.for"
ep29 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab010) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab007) * d008)) + ((c003 * ab001) * d011)) - ((c058 * ab001
&) * d004)) + ((c011 * ab003) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab002) * d002)) + ((c012 * ab001) * d003)) - ((c059 *
&ab001) * d004)) + ((c021 * ab022) * d001)) - ((c025 * ab010) *
&d001)) - ((c060 * ab016) * d002)) + ((c013 * ab010) * d003)) - ((
&c061 * ab010) * d004)) - ((c025 * ab003) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab002) * d002)) - ((c014 * ab001) * d003))
& + ((c062 * ab001) * d004)) + ((c063 * ab014) * d008)) - ((c071 *
&ab007) * d008)) - ((c064 * ab008) * d009)) + ((c056 * ab007) *
&d017)) - ((c006 * ab007) * d018)) + ((c004 * ab003) * d011)) - ((
&c005 * ab001) * d011)) - ((c049 * ab002) * d020)) + ((c001 * ab001
&) * d032)) - ((c050 * ab001) * d033)) - ((c069 * ab003) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab002) * d013)) - ((c050 *
&ab001) * d022)) + ((c074 * ab001) * d023))
c# 1399 "chelpg.for"
ep49 = of8 * (((((((((((((((((((((((((c011 * ab005) * d001) - ((
&c008 * ab004) * d002)) - ((c008 * ab002) * d005)) + ((c012 * ab001
&) * d006)) + ((c021 * ab028) * d001)) - ((c015 * ab025) * d002))
& - ((c015 * ab016) * d005)) + ((c013 * ab010) * d006)) - ((c025 *
&ab005) * d001)) + ((c018 * ab004) * d002)) + ((c018 * ab002) *
&d005)) - ((c014 * ab001) * d006)) + ((c063 * ab015) * d008)) - ((
&c051 * ab009) * d009)) - ((c051 * ab008) * d010)) + ((c056 * ab007
&) * d019)) + ((c004 * ab005) * d011)) - ((c002 * ab004) * d020))
& - ((c002 * ab002) * d036)) + ((c001 * ab001) * d039)) - ((c069 *
&ab005) * d004)) + ((c055 * ab004) * d013)) + ((c055 * ab002) *
&d015)) - ((c050 * ab001) * d025))
c# 1405 "chelpg.for"
ep59 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab010) * d001)) - ((c019 * ab001) * d001)) + ((
&c052 * ab007) * d008)) + ((c003 * ab001) * d011)) - ((c058 * ab001
&) * d004)) + ((c011 * ab006) * d001)) - ((c020 * ab001) * d001))
& - ((c052 * ab004) * d005)) + ((c012 * ab001) * d007)) - ((c059 *
&ab001) * d004)) + ((c021 * ab031) * d001)) - ((c025 * ab010) *
&d001)) - ((c060 * ab025) * d005)) + ((c013 * ab010) * d007)) - ((
&c061 * ab010) * d004)) - ((c025 * ab006) * d001)) + ((c026 * ab001
&) * d001)) + ((c073 * ab004) * d005)) - ((c014 * ab001) * d007))
& + ((c062 * ab001) * d004)) + ((c063 * ab024) * d008)) - ((c071 *
&ab007) * d008)) - ((c064 * ab009) * d010)) + ((c056 * ab007) *
&d035)) - ((c006 * ab007) * d018)) + ((c004 * ab006) * d011)) - ((
&c005 * ab001) * d011)) - ((c049 * ab004) * d036)) + ((c001 * ab001
&) * d042)) - ((c050 * ab001) * d033)) - ((c069 * ab006) * d004))
& + ((c070 * ab001) * d004)) + ((c002 * ab004) * d015)) - ((c050 *
&ab001) * d027)) + ((c074 * ab001) * d023))
c# 1414 "chelpg.for"
ep79 = of8 * (((((((((((((((((((((((((((((c011 * ab008) * d001) -
&((c008 * ab007) * d002)) - ((c008 * ab002) * d008)) + ((c012 *
&ab001) * d009)) + ((c021 * ab033) * d001)) - ((c015 * ab032) *
&d002)) - ((c024 * ab008) * d001)) + ((c016 * ab007) * d002)) - ((
&c015 * ab016) * d008)) + ((c013 * ab010) * d009)) + ((c018 * ab002
&) * d008)) - ((c014 * ab001) * d009)) + ((c063 * ab016) * d008))
& - ((c051 * ab010) * d009)) - ((c071 * ab002) * d008)) + ((c052 *
&ab001) * d009)) - ((c051 * ab008) * d011)) + ((c056 * ab007) *
&d020)) + ((c007 * ab008) * d004)) - ((c006 * ab007) * d013)) + ((
&c004 * ab008) * d011)) - ((c002 * ab007) * d020)) - ((c002 * ab002
&) * d043)) + ((c001 * ab001) * d044)) + ((c072 * ab002) * d018))
& - ((c054 * ab001) * d029)) - ((c069 * ab008) * d004)) + ((c055 *
&ab007) * d013))
c# 1421 "chelpg.for"
ep89 = of8 * (((((((((((((((((((((((((((((c011 * ab009) * d001) -
&((c008 * ab004) * d008)) - ((c008 * ab007) * d005)) + ((c012 *
&ab001) * d010)) + ((c021 * ab034) * d001)) - ((c024 * ab009) *
&d001)) - ((c015 * ab025) * d008)) - ((c015 * ab032) * d005)) + ((
&c016 * ab007) * d005)) + ((c013 * ab010) * d010)) + ((c018 * ab004
&) * d008)) - ((c014 * ab001) * d010)) + ((c063 * ab025) * d008))
& - ((c071 * ab004) * d008)) - ((c051 * ab009) * d011)) + ((c007 *
&ab009) * d004)) - ((c051 * ab010) * d010)) + ((c052 * ab001) *
&d010)) + ((c056 * ab007) * d036)) - ((c006 * ab007) * d015)) + ((
&c004 * ab009) * d011)) - ((c002 * ab004) * d043)) + ((c072 * ab004
&) * d018)) - ((c002 * ab007) * d036)) + ((c001 * ab001) * d045))
& - ((c054 * ab001) * d031)) - ((c069 * ab009) * d004)) + ((c055 *
&ab007) * d015))
c ******************************************************************
c SPDSTV
c * PD *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1428 "chelpg.for"
ep99 = of8 * (((((((((((((((((((((((((((((((((((((c017 * ab001) *
&d001) + ((c018 * ab010) * d001)) - ((c019 * ab001) * d001)) + ((
&c057 * ab007) * d008)) + ((c003 * ab001) * d011)) - ((c058 * ab001
&) * d004)) + ((c011 * ab010) * d001)) - ((c020 * ab001) * d001))
& + ((c012 * ab001) * d011)) - ((c059 * ab001) * d004)) + ((c021 *
&ab035) * d001)) - ((c022 * ab010) * d001)) - ((c060 * ab032) *
&d008)) + ((c023 * ab001) * d001)) + ((c038 * ab007) * d008)) + ((
&c013 * ab010) * d011)) - ((c061 * ab010) * d004)) - ((c014 * ab001
&) * d011)) + ((c062 * ab001) * d004)) + ((c063 * ab032) * d008))
& - ((c033 * ab007) * d008)) - ((c064 * ab010) * d011)) + ((c051 *
&ab010) * d004)) + ((c031 * ab001) * d011)) - ((c052 * ab001) *
&d004)) + ((c056 * ab007) * d043)) - ((c065 * ab007) * d018)) + ((
&c004 * ab010) * d011)) - ((c005 * ab001) * d011)) - ((c049 * ab007
&) * d043)) + ((c066 * ab007) * d018)) + ((c001 * ab001) * d046))
& - ((c067 * ab001) * d033)) + ((c068 * ab001) * d023)) - ((c069 *
&ab010) * d004)) + ((c070 * ab001) * d004))
c# 1440 "chelpg.for"
3242 continue
ep12 = of7 * (((((((((((((((c008 * ab002) * d001) - ((c012 * ab001
&) * d002)) + ((c015 * ab011) * d001)) - ((c016 * ab002) * d001))
& - ((c013 * ab003) * d002)) + ((c014 * ab001) * d002)) + ((c051 *
&ab003) * d002)) - ((c052 * ab001) * d002)) - ((c056 * ab002) *
&d003)) + ((c006 * ab002) * d004)) + ((c002 * ab002) * d003)) - ((
&c001 * ab001) * d012)) + ((c054 * ab001) * d013)) - ((c055 * ab002
&) * d004))
c# 1445 "chelpg.for"
ep32 = of7 * (((((((((((((c008 * ab004) * d001) - ((c012 * ab001)
& * d005)) + ((c015 * ab012) * d001)) - ((c013 * ab003) * d005)) -
&((c018 * ab004) * d001)) + ((c014 * ab001) * d005)) + ((c051 *
&ab005) * d002)) - ((c056 * ab002) * d006)) + ((c002 * ab004) *
&d003)) - ((c001 * ab001) * d014)) - ((c055 * ab004) * d004)) + ((
&c050 * ab001) * d015))
c# 1449 "chelpg.for"
ep62 = of7 * (((((((((((((c008 * ab007) * d001) - ((c012 * ab001)
& * d008)) + ((c015 * ab014) * d001)) - ((c013 * ab003) * d008)) -
&((c018 * ab007) * d001)) + ((c014 * ab001) * d008)) + ((c051 *
&ab008) * d002)) - ((c056 * ab002) * d009)) + ((c002 * ab007) *
&d003)) - ((c001 * ab001) * d017)) - ((c055 * ab007) * d004)) + ((
&c050 * ab001) * d018))
c# 1453 "chelpg.for"
ep14 = of7 * (((((((((((((c015 * ab012) * d001) - ((c018 * ab004)
& * d001)) - ((c013 * ab005) * d002)) + ((c007 * ab005) * d002)) -
&((c006 * ab004) * d003)) + ((c053 * ab004) * d004)) + ((c007 *
&ab003) * d005)) - ((c008 * ab001) * d005)) - ((c006 * ab002) *
&d006)) + ((c002 * ab002) * d006)) - ((c001 * ab001) * d014)) + ((
&c050 * ab001) * d015))
c# 1457 "chelpg.for"
ep34 = of7 * (((((((((((((c015 * ab013) * d001) - ((c018 * ab002)
& * d001)) - ((c013 * ab005) * d005)) + ((c007 * ab006) * d002)) -
&((c008 * ab001) * d002)) - ((c006 * ab004) * d006)) + ((c007 *
&ab005) * d005)) - ((c006 * ab002) * d007)) + ((c053 * ab002) *
&d004)) + ((c002 * ab004) * d006)) - ((c001 * ab001) * d016)) + ((
&c050 * ab001) * d013))
c# 1461 "chelpg.for"
ep64 = of7 * (((((((((c015 * ab015) * d001) - ((c013 * ab005) *
&d008)) + ((c007 * ab009) * d002)) - ((c006 * ab004) * d009)) + ((
&c007 * ab008) * d005)) - ((c006 * ab002) * d010)) + ((c002 * ab007
&) * d006)) - ((c001 * ab001) * d019))
c# 1464 "chelpg.for"
ep15 = of7 * (((((((((((((c008 * ab002) * d001) - ((c012 * ab001)
& * d002)) + ((c015 * ab013) * d001)) - ((c013 * ab006) * d002)) -
&((c018 * ab002) * d001)) + ((c014 * ab001) * d002)) + ((c051 *
&ab005) * d005)) - ((c056 * ab004) * d006)) + ((c002 * ab002) *
&d007)) - ((c001 * ab001) * d016)) - ((c055 * ab002) * d004)) + ((
&c050 * ab001) * d013))
c# 1468 "chelpg.for"
ep35 = of7 * (((((((((((((((c008 * ab004) * d001) - ((c012 * ab001
&) * d005)) + ((c015 * ab023) * d001)) - ((c016 * ab004) * d001))
& - ((c013 * ab006) * d005)) + ((c014 * ab001) * d005)) + ((c051 *
&ab006) * d005)) - ((c052 * ab001) * d005)) - ((c056 * ab004) *
&d007)) + ((c006 * ab004) * d004)) + ((c002 * ab004) * d007)) - ((
&c001 * ab001) * d034)) + ((c054 * ab001) * d015)) - ((c055 * ab004
&) * d004))
c# 1472 "chelpg.for"
ep65 = of7 * (((((((((((((c008 * ab007) * d001) - ((c012 * ab001)
& * d008)) + ((c015 * ab024) * d001)) - ((c013 * ab006) * d008)) -
&((c018 * ab007) * d001)) + ((c014 * ab001) * d008)) + ((c051 *
&ab009) * d005)) - ((c056 * ab004) * d010)) + ((c002 * ab007) *
&d007)) - ((c001 * ab001) * d035)) - ((c055 * ab007) * d004)) + ((
&c050 * ab001) * d018))
c# 1476 "chelpg.for"
ep17 = of7 * (((((((((((((c015 * ab014) * d001) - ((c018 * ab007)
& * d001)) - ((c013 * ab008) * d002)) + ((c007 * ab008) * d002)) -
&((c006 * ab007) * d003)) + ((c053 * ab007) * d004)) + ((c007 *
&ab003) * d008)) - ((c008 * ab001) * d008)) - ((c006 * ab002) *
&d009)) + ((c002 * ab002) * d009)) - ((c001 * ab001) * d017)) + ((
&c050 * ab001) * d018))
c# 1480 "chelpg.for"
ep37 = of7 * (((((((((c015 * ab015) * d001) - ((c013 * ab008) *
&d005)) + ((c007 * ab009) * d002)) - ((c006 * ab007) * d006)) + ((
&c007 * ab005) * d008)) - ((c006 * ab002) * d010)) + ((c002 * ab004
&) * d009)) - ((c001 * ab001) * d019))
c# 1483 "chelpg.for"
ep67 = of7 * (((((((((((((c015 * ab016) * d001) - ((c018 * ab002)
& * d001)) - ((c013 * ab008) * d008)) + ((c007 * ab010) * d002)) -
&((c008 * ab001) * d002)) - ((c006 * ab007) * d009)) + ((c007 *
&ab008) * d008)) - ((c006 * ab002) * d011)) + ((c053 * ab002) *
&d004)) + ((c002 * ab007) * d009)) - ((c001 * ab001) * d020)) + ((
&c050 * ab001) * d013))
c# 1487 "chelpg.for"
ep18 = of7 * (((((((((c015 * ab015) * d001) - ((c013 * ab009) *
&d002)) + ((c007 * ab005) * d008)) - ((c006 * ab004) * d009)) + ((
&c007 * ab008) * d005)) - ((c006 * ab007) * d006)) + ((c002 * ab002
&) * d010)) - ((c001 * ab001) * d019))
c# 1490 "chelpg.for"
ep38 = of7 * (((((((((((((c015 * ab024) * d001) - ((c018 * ab007)
& * d001)) - ((c013 * ab009) * d005)) + ((c007 * ab006) * d008)) -
&((c008 * ab001) * d008)) - ((c006 * ab004) * d010)) + ((c007 *
&ab009) * d005)) - ((c006 * ab007) * d007)) + ((c053 * ab007) *
&d004)) + ((c002 * ab004) * d010)) - ((c001 * ab001) * d035)) + ((
&c050 * ab001) * d018))
c# 1494 "chelpg.for"
ep68 = of7 * (((((((((((((c015 * ab025) * d001) - ((c018 * ab004)
& * d001)) - ((c013 * ab009) * d008)) + ((c007 * ab009) * d008)) -
&((c006 * ab004) * d011)) + ((c053 * ab004) * d004)) + ((c007 *
&ab010) * d005)) - ((c008 * ab001) * d005)) - ((c006 * ab007) *
&d010)) + ((c002 * ab007) * d010)) - ((c001 * ab001) * d036)) + ((
&c050 * ab001) * d015))
c# 1498 "chelpg.for"
ep19 = of7 * (((((((((((((c008 * ab002) * d001) - ((c012 * ab001)
& * d002)) + ((c015 * ab016) * d001)) - ((c013 * ab010) * d002)) -
&((c018 * ab002) * d001)) + ((c014 * ab001) * d002)) + ((c051 *
&ab008) * d008)) - ((c056 * ab007) * d009)) + ((c002 * ab002) *
&d011)) - ((c001 * ab001) * d020)) - ((c055 * ab002) * d004)) + ((
&c050 * ab001) * d013))
c# 1502 "chelpg.for"
ep39 = of7 * (((((((((((((c008 * ab004) * d001) - ((c012 * ab001)
& * d005)) + ((c015 * ab025) * d001)) - ((c013 * ab010) * d005)) -
&((c018 * ab004) * d001)) + ((c014 * ab001) * d005)) + ((c051 *
&ab009) * d008)) - ((c056 * ab007) * d010)) + ((c002 * ab004) *
&d011)) - ((c001 * ab001) * d036)) - ((c055 * ab004) * d004)) + ((
&c050 * ab001) * d015))
c ******************************************************************
c SPDSTV
c * SD *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1506 "chelpg.for"
ep69 = of7 * (((((((((((((((c008 * ab007) * d001) - ((c012 * ab001
&) * d008)) + ((c015 * ab032) * d001)) - ((c016 * ab007) * d001))
& - ((c013 * ab010) * d008)) + ((c014 * ab001) * d008)) + ((c051 *
&ab010) * d008)) - ((c052 * ab001) * d008)) - ((c056 * ab007) *
&d011)) + ((c006 * ab007) * d004)) + ((c002 * ab007) * d011)) - ((
&c001 * ab001) * d043)) + ((c054 * ab001) * d018)) - ((c055 * ab007
&) * d004))
3260 continue
ep02 = of6 * (((((((c012 * ab001) * d001) + ((c013 * ab003) * d001
&)) - ((c014 * ab001) * d001)) + ((c056 * ab002) * d002)) + ((c001
& * ab001) * d003)) - ((c050 * ab001) * d004))
c# 1516 "chelpg.for"
ep04 = of6 * (((((c013 * ab005) * d001) + ((c006 * ab004) * d002))
& + ((c006 * ab002) * d005)) + ((c001 * ab001) * d006))
ep05 = of6 * (((((((c012 * ab001) * d001) + ((c013 * ab006) * d001
&)) - ((c014 * ab001) * d001)) + ((c056 * ab004) * d005)) + ((c001
& * ab001) * d007)) - ((c050 * ab001) * d004))
c# 1520 "chelpg.for"
ep07 = of6 * (((((c013 * ab008) * d001) + ((c006 * ab007) * d002))
& + ((c006 * ab002) * d008)) + ((c001 * ab001) * d009))
ep08 = of6 * (((((c013 * ab009) * d001) + ((c006 * ab004) * d008))
& + ((c006 * ab007) * d005)) + ((c001 * ab001) * d010))
ep09 = of6 * (((((((c012 * ab001) * d001) + ((c013 * ab010) * d001
&)) - ((c014 * ab001) * d001)) + ((c056 * ab007) * d008)) + ((c001
& * ab001) * d011)) - ((c050 * ab001) * d004))
c ******************************************************************
c SPDSTV
c * PP *
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1526 "chelpg.for"
if (itype - 6) 3261, 3262, 3261
c# 1530 "chelpg.for"
3261 continue
ep10 = of1 * (((c002 * ab002) * d001) - ((c001 * ab001) * d002))
ep30 = of1 * (((c002 * ab004) * d001) - ((c001 * ab001) * d005))
ep60 = of1 * (((c002 * ab007) * d001) - ((c001 * ab001) * d008))
ep11 = of4 * ((((((- ((c007 * ab003) * d001)) + ((c008 * ab001) *
&d001)) + ((c006 * ab002) * d002)) - ((c002 * ab002) * d002)) + ((
&c001 * ab001) * d003)) - ((c050 * ab001) * d004))
c# 1536 "chelpg.for"
ep31 = of4 * ((((- ((c007 * ab005) * d001)) + ((c006 * ab002) *
&d005)) - ((c002 * ab004) * d002)) + ((c001 * ab001) * d006))
ep61 = of4 * ((((- ((c007 * ab008) * d001)) + ((c006 * ab002) *
&d008)) - ((c002 * ab007) * d002)) + ((c001 * ab001) * d009))
ep13 = of4 * ((((- ((c007 * ab005) * d001)) + ((c006 * ab004) *
&d002)) - ((c002 * ab002) * d005)) + ((c001 * ab001) * d006))
ep33 = of4 * ((((((- ((c007 * ab006) * d001)) + ((c008 * ab001) *
&d001)) + ((c006 * ab004) * d005)) - ((c002 * ab004) * d005)) + ((
&c001 * ab001) * d007)) - ((c050 * ab001) * d004))
c# 1544 "chelpg.for"
ep63 = of4 * ((((- ((c007 * ab009) * d001)) + ((c006 * ab004) *
&d008)) - ((c002 * ab007) * d005)) + ((c001 * ab001) * d010))
ep16 = of4 * ((((- ((c007 * ab008) * d001)) + ((c006 * ab007) *
&d002)) - ((c002 * ab002) * d008)) + ((c001 * ab001) * d009))
ep36 = of4 * ((((- ((c007 * ab009) * d001)) + ((c006 * ab007) *
&d005)) - ((c002 * ab004) * d008)) + ((c001 * ab001) * d010))
ep66 = of4 * ((((((- ((c007 * ab010) * d001)) + ((c008 * ab001) *
&d001)) + ((c006 * ab007) * d008)) - ((c002 * ab007) * d008)) + ((
&c001 * ab001) * d011)) - ((c050 * ab001) * d004))
c# 1552 "chelpg.for"
3262 continue
do 2137 i = 1, 100
2137 epn(i) = epn(i) + eep(i)
c ******************************************************************
c SPDSTV
c END OF LOOP OVER GAUSSIANS
c SPDSTV
c STORE IN ARRAYS
c SPDSTV
c ******************************************************************
c SPDSTV
c# 1555 "chelpg.for"
105 continue
c# 1560 "chelpg.for"
intc = 0
do 500 j = 1, 10
r3b = renorm(j)
do 500 i = 1, 10
r3a = r3b * renorm(i)
intc = intc + 1
500 epn(intc) = (epn(intc) * r3a) * symfac
call reduc1(epn, lamax, lbmax, i6to5)
call matfil(h, epn, aos, shellt, inew, jnew, lamax, lbmax, la, lb)
c
c
c REFORMAT COMMON /B/ AND THE H ARRAY IF THIS BASIS CONTAINS
c
c P ONLY SHELLS
c
c
c
c# 1569 "chelpg.for"
1000 continue
c# 1574 "chelpg.for"
if (ipo(4) .eq. 0) goto 1285
write(unit=iout, fmt=*) 'DEBUG OF UNSTAR'
call linout(h, nbasis, 0, 0)
c
c
c# 1577 "chelpg.for"
1285 continue
c
c
c# 1579 "chelpg.for"
call unstar(nbasis, shellt, shellc, aos, nshell, h, nostar)
c# 1581 "chelpg.for"
if (ipo(4) .eq. 0) goto 1500
write(unit=iout, fmt=2010)
call linout(h, nbasis, 0, 0)
1500 continue
return
end
subroutine inv(a, n, is, iad1, iad2, d, mdm)
c ******************************************************************
c
c INVERSION OF SQUARE MATRIX A BY MEANS OF THE GAUSS-JORDAN
c
c ALGORITHM
c
c
c
c APRIL 72/RS9B
c
c ******************************************************************
c
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
dimension a(mdm, mdm), is(2, mdm), iad1(mdm), iad2(mdm), d(mdm)
c
c
common /io/ in, iout, ipunch
c
c
c ******************************************************************
c
2000 format(37h WARNING FROM INV: MATRIX IS SINGULAR)
data zero / 0.0d0 /
data one / 1.0d0 /
data small / 1.0d-20 /
c# 1603 "chelpg.for"
do 1 l = 1, n
is(1,l) = 0
1 is(2,l) = 0
do 9 ima = 1, n
b = zero
do 2 l = 1, n
do 2 m = 1, n
if ((is(1,l) .eq. 1) .or. (is(2,m) .eq. 1)) goto 2
e = abs(a(l,m))
if (e .lt. b) goto 8
i = l
k = m
8 b = Amax1(b,e)
2 continue
is(1,i) = 1
is(2,k) = 1
iad1(k) = i
iad2(i) = k
c.....PIVOT
c
c# 1621 "chelpg.for"
b = a(i,k)
c# 1623 "chelpg.for"
if (abs(b) .lt. small) goto 20
a(i,k) = one / b
do 6 l = 1, n
c.....KELLERZEILE
c
c# 1626 "chelpg.for"
if (l .eq. k) goto 6
c# 1628 "chelpg.for"
a(i,l) = - (a(i,l) / b)
6 continue
do 5 l = 1, n
do 5 m = 1, n
c.....RECHTECK-REGEL
c
c# 1632 "chelpg.for"
if ((l .eq. i) .or. (m .eq. k)) goto 5
c# 1634 "chelpg.for"
a(l,m) = a(l,m) + (a(l,k) * a(i,m))
5 continue
do 11 l = 1, n
c.....PIVOT-SPALTE
c
c# 1637 "chelpg.for"
if (l .eq. i) goto 11
c# 1639 "chelpg.for"
a(l,k) = a(l,k) / b
11 continue
c.....PERMUTATION DER ZEILEN, UM DIE NATUERLICHE ORDNUNG WIEDER HERZUSTE
c
c# 1641 "chelpg.for"
9 continue
c# 1643 "chelpg.for"
do 15 l = 1, n
do 13 j = 1, n
k = iad1(j)
13 d(j) = a(k,l)
do 14 j = 1, n
14 a(j,l) = d(j)
c.....PERMUTATION DER SPALTEN
c
c# 1649 "chelpg.for"
15 continue
c# 1651 "chelpg.for"
do 16 l = 1, n
do 17 j = 1, n
k = iad2(j)
17 d(j) = a(l,k)
do 18 j = 1, n
18 a(l,j) = d(j)
16 continue
c
c
c ERROR EXIT: MATRIX IS SINGULAR
c
c# 1658 "chelpg.for"
return
c# 1661 "chelpg.for"
20 write(unit=iout, fmt=2000)
stop 'INV IN POLAR'
end
c
c
c GENERAL LINEAR MATRIX OUTPUT ROUTINE
c
c
c
c KEY=0 MATRIX SYMMETRIC
c
c KEY=1 MATRIX SQUARE ASYMMETRIC
c
c
c
c IZERO=0 ZERO MATRIX ELEMENTS LESS THAN CUTOFF
c
c IZERO=1 DO NOT ZERO MATRIX ELEMENTS
c
c
c
c CUTOFF=1.0E-06
c
c
c
subroutine linout(x, n, key, izero)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
common /io/ in, iout, ipunch
c
c
dimension s(9), x(1)
c
c
c
c
c
c
data cutoff / 1.0e-06 /
data zero / 0.0e0 /
c# 1684 "chelpg.for"
ia(i) = (i * (i - 1)) / 2
c# 1687 "chelpg.for"
ilower = 1
100 iupper = min0(ilower + 8,n)
irange = min0((iupper - ilower) + 1,9)
write(unit=iout, fmt=9000) (j,j = ilower, iupper)
write(unit=iout, fmt=9010)
do 160 i = 1, n
k = 1
do 150 j = ilower, iupper
if (key) 110, 120, 110
110 ij = (n * (j - 1)) + i
goto 140
120 ij = ia(i) + j
if (i - j) 130, 140, 140
130 ij = ia(j) + i
140 s(k) = x(ij)
if ((izero .eq. 0) .and. (abs(s(k)) .le. cutoff)) s(k) = zero
150 k = k + 1
160 write(unit=iout, fmt=9020) i, (s(j),j = 1, irange)
write(unit=iout, fmt=9010)
ilower = ilower + 9
if (n - iupper) 170, 170, 100
170 return
9000 format(12x,8(i3,11x),i3)
9010 format(/)
9020 format(1x,i3,2x,9e14.6)
end
c
c
c GAUSSIAN 77/UCI
c
c
c
subroutine matfil(a, aa, aos, shellt, inew, jnew, lamax, lbmax, la
&, lb)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
integer aos(1), shellt(1)
c
c
dimension a(1), aa(1)
c
c
c# 1722 "chelpg.for"
lind(i) = (i * (i - 1)) / 2
c# 1724 "chelpg.for"
istart = aos(inew)
jstart = aos(jnew)
ial = 0
iau = 5
ibl = 0
ibu = 5
ima = 0
imb = 0
if (shellt(inew) .eq. 2) ima = 1
c
c MATFIL
c# 1733 "chelpg.for"
if (shellt(jnew) .eq. 2) imb = 1
c# 1735 "chelpg.for"
120 intc = 0
do 170 j = 1, lbmax
do 170 i = 1, lamax
intc = intc + 1
if (((la .gt. 1) .and. (i .gt. ial)) .and. (i .lt. iau)) goto 170
if ((la .eq. 1) .and. (i .eq. ima)) goto 170
if (((lb .gt. 1) .and. (j .gt. ibl)) .and. (j .lt. ibu)) goto 170
if ((lb .eq. 1) .and. (j .eq. imb)) goto 170
ind = (istart + i) - 1
jnd = (jstart + j) - 1
if (ind - jnd) 130, 140, 150
130 ij = lind(jnd) + ind
goto 160
140 ij = lind(ind + 1)
goto 160
150 ij = lind(ind) + jnd
160 a(ij) = aa(intc)
170 continue
return
end
c
c
c MATRIX MULTIPLICATION ROUTINE
c
c
c
subroutine multay(a, y, x, n, maxdim)
c
c
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
dimension a(maxdim, maxdim), y(maxdim), x(maxdim)
c
c
data zero / 0.0 /
c# 1765 "chelpg.for"
do 200 irow = 1, n
sum = zero
do 100 jcol = 1, n
sum = sum + (a(irow,jcol) * y(jcol))
100 continue
x(irow) = sum
200 continue
return
c
c
c# 1773 "chelpg.for"
end
c
c
c
c
c L.E. CHIRLIAN
c
c APRIL 1985
c
c
c
c A SUBROUTINE TO OUTPUT THE CHARGES AND OTHER PERTINANT
c
c INFORMATION FROM THE CHELP PROGRAM
c
c
c Slightly Modified for CHELPG operations by Curt Breneman
c Yale University Department of Chemistry, 2/88
c
c
subroutine output()
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
parameter (npoints = 50000)
integer*4 shella, shelln, shellt, shellc, aos, aon, shladf
c
c
character chkfil*40
common /io/ in, iout, ipunch
c+++
common /ipo/ ipo(5)
c+++
c COMMON /MOL/ NATOMS,ICHARG,MULTIP,NAE,NBE,NE,NBASIS,IAN(101),
c
c 1 ATMCHG(100),C(3,100)
c
common /mol/ natoms, icharg, multip, nae, nbe, ne, nbasis, ian(401
&), atmchg(400), c(3, 400)
common /out/ ntitle(20, 3), chkfil, q(400), nd, rms, pd, nlin,
&nend(3)
common /points/ p(3, npoints), np
c
c
c write(6,*) 'Debug --', nlin,nend(1),nend(2),nend(3),nwords
c
c
c CALCULATE THE DIPOLE MOMENT FROM THE FITTED CHARGES
c
c
c
c
c
data deb / 0.393427328 /
c# 1811 "chelpg.for"
dipx = 0.
dipy = 0.
dipz = 0.
do 99 i = 1, natoms
dipx = dipx + (q(i) * c(1,i))
dipy = dipy + (q(i) * c(2,i))
dipz = dipz + (q(i) * c(3,i))
99 continue
dipx = dipx / deb
dipy = dipy / deb
c
c
c CALCULATE TOTAL DIPOLE MOMENT
c
c
c
c# 1821 "chelpg.for"
dipz = dipz / deb
c
c
c CREATE OUTPUT (continued from READIN)
c
c# 1825 "chelpg.for"
diptot = sqrt(((dipx ** 2) + (dipy ** 2)) + (dipz ** 2))
c# 1829 "chelpg.for"
c
c old header printed out here -- moved to readin
c
c
c***
c***********************************************************************
c WRITE GEOMETRY
c
c***********************************************************************
c
c
c# 1858 "chelpg.for"
write(unit=iout, fmt=180)
180 format(/2x,36x,18hMOLECULAR GEOMETRY)
write(unit=iout, fmt=190)
190 format(/,/,17x,13hATOMIC NUMBER,8x,1hX,12x,1hY,12x,1hZ)
do 30 i = 1, natoms
write(unit=iout, fmt=200) ian(i), c(1,i), c(2,i), c(3,i)
200 format(/,23x,i2,8x,f10.7,3x,f10.7,3x,f10.7)
30 continue
write(unit=iout, fmt=210) icharg
210 format(/2x,37hTHE TOTAL CHARGE IS CONSTRAINED TO: ,i3)
write(unit=iout, fmt=240)
240 format(/,36x,11hNET CHARGES)
write(unit=iout, fmt=250)
250 format(/,28x,13hATOMIC NUMBER,5x,6hCHARGE)
write(unit=iout, fmt=260) (ian(i), q(i),i = 1, natoms)
write(unit=6, fmt=101) diptot
101 format(/,2x,40hTHE DIPOLE MOMENT OF THESE CHARGES IS: ,f8.5)
260 format(/,34x,i2,10x,f8.4)
write(unit=iout, fmt=270) np
270 format(/,2x,34hFIT TO ELECTROSTATIC POTENTIAL AT ,i6,7h POINTS)
write(unit=iout, fmt=280) rms
280 format(/,2x,30hROOT MEAN SQUARE DEVIATION IS ,f6.4,10h KCAL/MOLE)
return
end
c
c
c WRITTEN BY M.M. FRANCL FOR THE
c
c PRINCETON CHEMISTRY DEPARTMENT VAX 11/780 UNDER VMS 3.4.
c
c MODIFIED BY L.E. CHIRLIAN UNDER VMS 3.7.
c
c
c MODIFIED FOR GAUSSIAN 86 BY CURT BRENEMAN (VMS 4.5)
c Modified for G88/90 by Curt Breneman, 2/89
c YALE UNIVERSITY DEPARTMENT OF CHEMISTRY.
c
c THIS VERSION IS COMPATIBLE WITH GAUSSIAN 82 FROM CARNEGIE-
c
c MELLON UNIVERSITY AND IS DESIGNED FOR THE INPUT OF MO AND
c
c BASIS INFORMATION FROM CHECKPOINT FILES. THIS VERSION IS
c
c TO BE USED FOR THE DETERMINATION OF ATOMIC CHARGES FROM
c
c ELECTROSTATIC POTENTIALS DETERMINED BY FIRST ORDER HARTREE
c
c FOCK PERURBATION THEORY.
c
c
c
c OLD LIMITATIONS: NO MORE THAN 256 BASIS FUNCTIONS
c
c NO MORE THAN 80 SHELLS
c
c
c NEW LIMITATIONS: NO MORE THAN 1280 BASIS FUNCTIONS
c NO MORE THAN 400 SHELLS
c
c
subroutine readin()
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
integer*4 shella, shelln, shellt, shellc, aos, aon, shladf, filnum
character savchkfil*40, chkfil*40
parameter (numpts = 20)
c
dimension line(20)
c
common /io/ in, iout, ipunch
common /zmat/ IANZ(400),IZ(400,4),B1(400),ALPHA(400),BETA(400),
& LB1(400),LALPHA(400),LBETA(400),NZ,NVAR
c
c=== Gaussian88 Modification. New Common /b/ size.
common /mol/ natoms, icharg, multip, nae, nbe, ne, nbasis,
& ian(401), atmchg(400), c(3, 400)
c%%%g88/g89
c common /b/ exx(6000), c1(6000), c2(6000), c3(2000), cf(2000),
c &shladf(4000), x(2000), y(2000), z(2000), jan(2000), shella(2000),
c &shelln(2000), shellt(2000), shellc(2000), aos(2000), aon(2000),
c &nshell, maxtyp
c g88 cray
common /b/ exx(6000), c1(6000), c2(6000), c3(2000), cf(2000),
&shladf(2000), x(2000), y(2000), z(2000), jan(2000), shella(2000),
&shelln(2000), shellt(2000), shellc(2000), aos(2000), aon(2000),
&nshell, maxtyp
c
common /ipo/ ipo(5)
common /out/ ntitle(20, 3), chkfil, q(400), nd, rms, pd, nlin,
&nend(3)
common /charge/ coef_alpha(100000), coef_beta(100000), iuhf
common /sphere/ vdwr(400), npts
c
DATA MAXZ/400/
DATA BOHRTANG/0.52917706/
data maxatm / 400 /
data maxbas / 1280 /
data maxpts / 50000 /
data npo / 5 /
data iunit / 3 /
data iread / 2 /
data ifind / 11 /
data iblnk / ' ' /
c
in = 5
iout = 6
C print out header info:
c
write(iout,'(/,/,12x,51(1h*))')
itime=0
idate=0
call forjdate(idate,itime)
c PRINT identifier and DATE
write(unit=iout, fmt=170) idate,itime
170 format(/17x,28hC H E L P G for G 9 0,6x,a8,4x,a8)
c
write(unit=iout, fmt=100)
100 format(/,17x,41hCHARGES FROM ELECTROSTATIC POTENTIAL GRID)
write(unit=iout, fmt=110)
110 format(/,36x,9hCHELPGrid,/)
write(unit=iout, fmt=111)
111 format(/,15x,
&50hGrid Modification - C. Breneman, Yale Chem, 1989,/)
WRITE(IOUT,'(1h ,30x,a)')' vsn 12/90'
write(iout,'(/,/,12x,51(1h*))')
c
c GET CHECKPOINT FILE NAME
c
read(in,'(a40)') chkfil
c savchkfil=chkfil
c 1000 format(a40)
write(unit=iout, fmt=150) chkfil
150 format(/2x,18hCHECKPOINT FILE: ,a40///)
c
c INPUT INFORMATION
c
1007 format(1h ,a40)
1008 format(1h ,20a4)
1010 format(20a4)
do 1921 i = 1, 3
nlin = i
read(unit=in, fmt=1010) line
c write(unit=iout, fmt=1008)line
if (line(1) .eq. iblnk) then
nlin = nlin - 1
goto 192
end if
do 1922 j = 1, 20
l = 20 - j
if (line(l) .ne. iblnk) then
nend(i) = l
do 1923 k = 1, nend(i)
ntitle(k,i) = line(k)
1923 continue
goto 1921
end if
1922 continue
1921 continue
nlin = nlin + 1
do 24 i = 1, nlin
write(unit=iout, fmt=1200) (ntitle(j,i),j = 1, nend(i))
1200 format(2x,19a4)
24 continue
c
c READ IN PRINT OPTIONS
c
192 continue
c
c READ IN # OF D FUNCTIONS
c NOTE: IF THE BASIS SET USES 5 D FUNCTION, ND MUST BE
c SET EQUAL TO 1 TO ACCOMODATE THE INTEGRAL PACKAGE.
c IF THE BASIS SET USES 6 D FUNCTIONS, ND IS SET EQUAL TO 0.
c
c# 2031 "chelpg.for"
3000 read(unit=in, fmt=*) (ipo(i),i = 1, npo)
c kjb start
c write(unit=iout,fmt=*)(ipo(i),i=1,npo)
c kjb stop
read(unit=in, fmt=*) nd
c kjb start
c write(unit=iout,fmt=*)nd
c kjb stop
if ((nd .ne. 5) .and. (nd .ne. 6)) then
write(iout,*) '# OF D FUNCTIONS MUST BE 5 OR 6'
write(iout,*) ' assuming 6 d funtions ...'
nd=6
end if
if (nd .eq. 5) then
nd = 1
goto 15
end if
nd = 0
c
c INITIATE FILEIO
c
c*** Different Fopen statement for Trace-7
c# 2048 "chelpg.for"
15 continue
c
c# 2054 "chelpg.for"
c chkfil=savchkfil
write(iout,'(9h opening ,a,3h.../)') chkfil
c call fclose(iunit,1)
C call fopen(iunit, 5, chkfil, ialloc, JUNK)
call fopen(iunit, 5, chkfil, ialloc)
c***********************************************************************
c
c READ IN COMMON /MOL/
c
c NWORDS = 1804
c IFILENO = 30997
c
c CALL FILEIO (IREAD,IFILENO,NWORDS,NATOMS,IALLOC)
c
c# 2057 "chelpg.for"
iwwrit = ipo(1)
c# 2065 "chelpg.for"
irwmol = 997
lenmol = (4 * maxatm) + intowp(8 + maxatm)
c
c***********************************************************************
c
c READ IN SPHERE DATA (VAN DER WAALS RADII, # OF POINTS TO FIT
c
c kjb start
c write(unit=iout,fmt=*)' npts=',npts
c write(unit=iout,fmt=*)' natoms,nbasis,c(1,3),c(3,3)=',
c & natoms,nbasis,c(1,3),c(3,3)
c kjb stop
c# 2068 "chelpg.for"
ifileno= filnum(irwmol,iunit)
C write(unit=iout,fmt=*)'#2068 ifileno=',ifileno
call fileio(2,-ifileno, lenmol, natoms, 0)
c kjb start
c write(unit=iout,fmt=*)'after:natoms,nbasis,lenmol=',
c & natoms,nbasis,lenmol
c write(unit=iout,fmt=*)'c(xyz,i)',
c & (c(1,i),c(2,i),c(3,i),i=1,natoms)
c write(unit=iout,fmt=*) 'atmchg',(atmchg(i),i=1,natom)
c kjb stop
c# 2076 "chelpg.for"
read(unit=in, fmt=*) (vdwr(i),i = 1, natoms)
c kjb start
c write(unit=iout,fmt=*)(vdwr(i),i=1,natoms)
c kjb stop
read(unit=in, fmt=*) npts
c kjb start
c write(unit=iout,fmt=*)' npts=',npts
c kjb stop
if (npts .gt. maxpts) then
stop 'MAXIMUM NUMBER OF POINTS MUST BE LESS THAN 50000'
end if
c
c SET MAXIMUM VAN DER WAALS RADII TO 4
c
c# 2084 "chelpg.for"
vmax = 4.
do 20 i = 1, natoms
if (vdwr(i) .gt. vmax) then
write(unit=iout, fmt=2500) i
2500 format(3x,31hTHE VAN DER WAALS RADII OF ATOM,i3,15hIS OUT OF RANGE
&)
stop
end if
20 continue
c# 2094 "chelpg.for"
read(unit=in, fmt=*) vfact
c kjb start
c write(unit=iout,fmt=*)'vfact=',vfact
c kjb stop
do 21 i = 1, natoms
vdwr(i) = vdwr(i) * vfact
21 continue
c***********************************************************************
c
c READ IN BASIS SET INFORMATION (COMMON /B/)
c
c# 2102 "chelpg.for"
ckjb start
c write(unit=iout,fmt=*)' #2102 nwords=',nwords
ckjb stop
ifileno = 30506
call fileio(ifind, ifileno, nwords, exx, 0)
c***********************************************************************
c
ckjb start
c write(unit=iout,fmt=*)' #2104 nwords=',nwords
ckjb stop
call fileio(iread, - ifileno, nwords, exx, 0)
c# 2106 "chelpg.for"
c write(unit=iout, fmt=8000) (c(1,i), c(2,i), c(3,i),i = 1,400)
write(unit=iout, fmt=8000) (c(1,i), c(2,i), c(3,i),i = 1, natoms)
8000 format(/1x,11hCOORDINATES/(1x,3f12.6))
C write(unit=iout,fmt='(/1x,3hxyz/(1x,3f12.6))')
C & (x(i),y(i),z(i),i=1,natoms)
c
write(unit=iout, fmt=8020) natoms, icharg, multip, nae, nbe, ne,
&nbasis, nshell, maxtyp
8020 format(/1x,11hNATOMS = ,i3/1x,9hICHARG = ,i3/1x,9hMULTIP =
&,i3/1x,9hNAE = ,i3/1x,9hNBE = ,i3/1x,9hNE = ,i3/1x,
&9hNBASIS = ,i3/1x,9hNSHELL = ,i3/1x,9hMAXTYP = ,i3)
c
write(unit=iout, fmt=8030) (ian(i),i = 1, natoms)
8030 format(/1x,3hIAN/(1x,20i3))
c
write(unit=iout, fmt=8050) (jan(i), shellt(i), shella(i),i = 1,
&nshell)
8050 format(/1x,18hCENTER TYPE SHELLA/(1x,3i7))
c
write(unit=iout, fmt=8055) shella(nshell + 1)
8055 format(1x,14x,i7)
c
write(unit=iout, fmt=8060) (exx(i), c1(i), c2(i),i = 1, nshell)
8060 format(/1x,12x,5hEXPON,8x,9hEXPCOF(S),8x,9hEXPCOF(P),/(1x,3e17.9))
c
write(unit=iout, fmt=8070) (c3(i), cf(i),i = 1, nshell)
8070 format(/1x,12x,9hEXPCOF(D),8x,9hEXPCOF(F),/(1x,2e17.9))
c
write(unit=iout, fmt=3575)
3575 format(/,15x,6hATOM #,5x,35hV.D.W. RADII (MULTIPLIED BY FACTOR))
c
do 3500 i = 1, natoms
write(unit=iout, fmt=4000) i, vdwr(i)
4000 format(15x,i5,20x,f5.2)
c WRITE (IOUT,4500)NPTS
4500 format(/2x,23hNUMBER OF POINTS TO FIT,i6)
3500 continue
c
c***********************************************************************
c
c READ IN ALPHA MO COEFFICIENTS
c
c# 2145 "chelpg.for"
ifileno = 30524
call fileio(ifind, - ifileno, nwords, coef_alpha, 0)
c***********************************************************************
c
c READ IN THE BETA MO COEFFICIENTS
c
c# 2147 "chelpg.for"
call fileio(iread, - ifileno, nwords, coef_alpha, 0)
c# 2152 "chelpg.for"
ifileno = 30526
call fileio(ifind, ifileno, nwords, coef_beta, 0)
if (nwords .eq. 0) then
iuhf = 0
goto 300
end if
iuhf = 1
c***********************************************************************
c# 2159 "chelpg.for"
call fileio(iread, - ifileno, nwords, coef_beta, 0)
c***********************************************************************
c
c# 2161 "chelpg.for"
300 continue
c# 2163 "chelpg.for"
IFILENO=30507
C NWORDS=3*MAXNZ +INTOWP(8*MAXNZ+2)
CALL FILEIO(IFIND, - IFILENO, NWORDS, IANZ,0)
CALL FILEIO(IREAD, - IFILENO, NWORDS, IANZ,0)
write(iout,'(1h )')
write(iout,'(15H Z MATRIX: for ,A/)')CHKFIL
CALL ZPRINT(400,NZ,IANZ,IZ,B1,ALPHA,BETA,BOHRTANG)
call fclose(iunit,1)
return
end
c
c
c MODIFIED FOR POLARIZATION POTENTIAL CALCULATIONS
c
c M.M. FRANCL FEBRUARY 1984
c
c
c
subroutine reduc1(x, lamax, lbmax, i6to5)
c
c
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
dimension x(100), s(100), ind5(9), ind6(10)
c
c
c ******************************************************************
c
c ROUTINE REORDERS FROM ARRANGEMENT: S,Z,ZZ,X,XZ,XX,Y,YZ,XY,YY
c
c TO S,X,Y,Z,XX,YY,ZZ,XY,XZ,YZ
c
c OR FROM S,Z,X,Y TO S,X,Y,Z
c
c THIS ENSURES LABELING COMPATIBILITY BETWEEN THE SP AND D PACKAGES
c
c AT THE SAME TIME THE INTEGRALS ARE MOVED TO THE FIRST 1,4,10,16,
c
c 40 OR 100 LOCATIONS, DEPENDING ON THE SHELL QUANTUM NUMBERS
c
c ******************************************************************
c
data pt5 / 0.5 /
data r3ov2 / 0.8660254040 /
data ind5 / 1, 4, 7, 2, 3, 6, 9, 5, 8 /
data ind6 / 1, 4, 7, 2, 6, 10, 3, 9, 5, 8 /
c# 2191 "chelpg.for"
nword = lamax * lbmax
if (nword - 1) 5, 180, 5
5 intc = 0
if (i6to5 .eq. 1) goto 40
10 do 20 i = 1, lbmax
isb = 10 * (ind6(i) - 1)
do 20 j = 1, lamax
isa = isb + ind6(j)
intc = intc + 1
20 s(intc) = x(isa)
c ******************************************************************
c
c ROUTINE TO REDUCE SIX D FUNCTIONS TO FIVE
c
c ALSO REORDERS FROM : S,Z,ZZ,X,XZ,XX,Y,YZ,YX,YY
c
c TO S,X,Y,Z,ZZ,XX-YY,XY,XZ,YZ
c
c OR FROM S,Z,X,Y TO S,X,Y,Z
c
c FOR COMPATIBILITY WITH SP PACKAGE
c
c ******************************************************************
c
c# 2201 "chelpg.for"
goto 160
c# 2209 "chelpg.for"
40 do 150 i = 1, lbmax
c IFB=0 FOR S,X,Y,Z,XY,XZ,YZ, IFB=1 FOR ZZ-RR, IFB=2 FOR XX-YY
c
c# 2210 "chelpg.for"
isb = 10 * (ind5(i) - 1)
c# 2212 "chelpg.for"
ifb = 0
if (i .eq. 5) ifb = 1
if (i .eq. 6) ifb = 2
80 do 150 j = 1, lamax
isa = isb + ind5(j)
ifa = 0
if (j .eq. 5) ifa = 1
if (j .eq. 6) ifa = 2
120 ihop = ((3 * ifb) + ifa) + 1
c
c
c ******************************************************************
c
c * (F,O,ZA2) *
c
c ******************************************************************
c
c# 2221 "chelpg.for"
goto (130, 122, 123, 124, 125, 126, 127, 128, 129), ihop
c# 2226 "chelpg.for"
122 xx = zz1(x,isa,3,7)
c
c
c ******************************************************************
c
c * (F,O,XA2-YA2) *
c
c ******************************************************************
c
c# 2227 "chelpg.for"
goto 140
c# 2232 "chelpg.for"
123 xx = xy1(x,isa,4)
c
c
c ******************************************************************
c
c * (ZB2,O,F) *
c
c ******************************************************************
c
c# 2233 "chelpg.for"
goto 140
c# 2238 "chelpg.for"
124 xx = zz1(x,isa,30,70)
c
c
c ******************************************************************
c
c * (ZB2,O,ZA2) *
c
c ******************************************************************
c
c# 2239 "chelpg.for"
goto 140
c# 2244 "chelpg.for"
125 xx = zz1(x,isa,30,70) - (pt5 * (zz1(x,isa + 3,30,70) + zz1(x,isa
& + 7,30,70)))
c
c
c ******************************************************************
c
c * (ZB2,O,XA2-YA2) *
c
c ******************************************************************
c
c# 2245 "chelpg.for"
goto 140
c# 2250 "chelpg.for"
126 xx = r3ov2 * (zz1(x,isa,30,70) - zz1(x,isa + 4,30,70))
c
c
c ******************************************************************
c
c * (XB2-YB2,O,F) *
c
c ******************************************************************
c
c# 2251 "chelpg.for"
goto 140
c# 2256 "chelpg.for"
127 xx = xy1(x,isa,40)
c
c
c ******************************************************************
c
c * (XB2-YB2,O,ZA2) *
c
c ******************************************************************
c
c# 2257 "chelpg.for"
goto 140
c# 2262 "chelpg.for"
128 xx = r3ov2 * (zz1(x,isa,3,7) - zz1(x,isa + 40,3,7))
c
c
c ******************************************************************
c
c * (XB2-YB2,O,XA2-YA2) *
c
c ******************************************************************
c
c# 2263 "chelpg.for"
goto 140
c# 2268 "chelpg.for"
129 xx = r3ov2 * (xy1(x,isa,4) - xy1(x,isa + 40,4))
c
c
c ******************************************************************
c
c * (F,O,F) *
c
c ******************************************************************
c
c# 2269 "chelpg.for"
goto 140
c# 2274 "chelpg.for"
130 xx = x(isa)
140 intc = intc + 1
150 s(intc) = xx
160 do 170 i = 1, nword
170 x(i) = s(i)
180 return
end
c
c
c ROUTINE TO MODIFY COMMON /B/ TO THE EXPECTED FORMAT FOR INTGRL
c
c FOR BASIS SETS HAVING P ONLY SHELLS, SUCH AS THE 6-31G** BASIS
c
c
c
subroutine star(nbasis, shellt, shellc, aos, nshell, nostar)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
integer*4 shellc, shellt, aos
c
c
c LOOP OVER SHELLS
c
c
c
dimension shellc(2000), shellt(2000), aos(2000)
c# 2293 "chelpg.for"
do 100 i = 1, nshell
if ((shellt(i) .eq. 1) .and. (shellc(i) .eq. 1)) then
nbasis = nbasis + 1
nostar = 1
do 200 j = i, nshell
aos(j) = aos(j) + 1
200 continue
end if
100 continue
return
end
c
c
c ROUTINE TO CALCULATE THE ELECTROSTATIC POTENTIAL FROM FIRST ORD
cER
c PERTURBATION THEORY
c
c
c
c M.M. FRANCL JULY 1985
c
c MODIFIED VERSION OF A MEPHISTO ROUTINE
c
c RESTRICTED TO UNRESTRICTED HARTREE-FOCK WAVEFUNCTIONS
c
c
c
subroutine uep()
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
parameter (npoints = 50000)
c
c
integer*4 shella, shelln, shellt, aos, shellc, aon, handle
common /io/ in, iout, ipunch
c+++
common /ipo/ ipo(5)
c
c=== Gaussian88 Modification for enlarged common /b/.
common /mol/ natoms, icharg, multip, nae, nbe, nel, nbasis, ian(
&401), atmchg(400), c(3, 400)
c
c=== Old G86 Common /b/
c COMMON/B/EXX(1200),C1(1200),C2(1200),C3(1200),
c $ X(400),Y(400),Z(400),JAN(400),SHELLA(400),SHELLN(400),
c $ SHELLT(400),SHELLC(400),AOS(400),AON(400),NSHELL,MAXTYP
c+++
c COMMON /B/ EXX(240),C1(240),C2(240),C3(240),X(80),Y(80),Z(80),
c
c $ JAN(80),SHELLA(80),SHELLN(80),SHELLT(80),SHELLC(80)
c
c $ ,AOS(80),AON(80),NSHELL,MAXTYP
c
c COMMON /MOL/ NATOMS,ICHARG,MULTIP,NAE,NBE,NEL,NBASIS,IAN(101),
c
c $ ATMCHG(100),C(3,100)
c
common /B/ exx(6000), c1(6000), c2(6000), c3(6000), x(2000), y(
c common /BB/ exx(6000), c1(6000), c2(6000), c3(6000), x(2000), y(
&2000), z(2000), jan(2000), shella(2000), shelln(2000), shellt(2000
&), shellc(2000), aos(2000), aon(2000), nshell, maxtyp
common /points/ p(3, npoints), maxpnts
common /elp/ elecp(npoints)
common /charge/ coef_alpha(100000), coef_beta(100000), iuhf
c
c
common /out/ ntitle(20, 3), chkfil, q(400), i6to5, rms, percent,
&nlin, nend(3)
c
c
dimension hpert(100000), index(1280)
c
c
c INTIALIZE TIMING
c
c
c
c
c
c SET UP THE INDEXING TABLE FOR HPERT
c
c
c
data iptchg / 1.0 /
data zero / 0.0 /
data two / 2.0 /
data vnucmax / 30.0 /
c# 2351 "chelpg.for"
handle = 0
c# 2355 "chelpg.for"
do 100 i = 1, nbasis
index(i) = ((i - 1) * i) / 2
c
c
c BEGIN LOOP TO CALCULATE ELECTROSTATIC POTENTIAL
c
c
c
c# 2357 "chelpg.for"
100 continue
c# 2361 "chelpg.for"
do 200 npnt = 1, maxpnts
x1 = p(1,npnt)
x2 = p(2,npnt)
c
c
c CALCULATE THE ONE-ELECTRON INTEGRALS
c
c
c
c# 2364 "chelpg.for"
x3 = p(3,npnt)
c# 2368 "chelpg.for"
if (ipo(5) .eq. 1) then
write(unit=iout, fmt=3010)
c***
c ISTAT = LIB$INIT_TIMER(HANDLE)
c
c***
c# 2370 "chelpg.for"
3010 format(1x,18hTIME FOR INTEGRALS)
c
c
end if
c
c
c***
c IF (IPO(5).EQ.1) ISTAT = LIB$SHOW_TIMER(HANDLE)
c
c***
c
c
c# 2376 "chelpg.for"
call intgrl(hpert, x1, x2, x3, iptchg, i6to5)
c
c
c# 2382 "chelpg.for"
if (ipo(4) .eq. 1) call linout(hpert, nbasis, 0, 0)
c# 2384 "chelpg.for"
if (ipo(5) .eq. 1) then
write(unit=iout, fmt=3000)
c***
c ISTAT = LIB$INIT_TIMER(HANDLE)
c
c***
c# 2386 "chelpg.for"
3000 format(1x,18hTIME FOR TRANSFORM)
c
c
c FORM THE HPERT MATRIX ELEMENTS
c
c
c
c ALPHA CODE
c
c
c
c# 2390 "chelpg.for"
end if
c# 2396 "chelpg.for"
e = zero
c
c
c SUM OVER OCCUPIED ALPHA MOS
c
c
c
c# 2397 "chelpg.for"
icoefi = - nbasis
c# 2401 "chelpg.for"
do 220 ii = 1, nae
c
c
c CALCULATE ELECTROSTATIC POTENTIAL
c
c
c
c# 2402 "chelpg.for"
icoefi = icoefi + nbasis
c# 2406 "chelpg.for"
do 221 ip = 1, nbasis
cpi = coef_alpha(icoefi + ip)
c
c
c# 2408 "chelpg.for"
ipdex = index(ip)
c# 2410 "chelpg.for"
do 222 iq = 1, ip
e = e + ((cpi * coef_alpha(icoefi + iq)) * hpert(ipdex + iq))
222 continue
do 223 iq = ip + 1, nbasis
e = e + ((cpi * coef_alpha(icoefi + iq)) * hpert(ip + index(iq)))
c
c
c# 2415 "chelpg.for"
223 continue
c# 2417 "chelpg.for"
221 continue
c
c
c BETA CODE
c
c
c
c# 2418 "chelpg.for"
220 continue
c
c
c SUM OVER OCCUPIED BETA MOS
c
c
c
c# 2422 "chelpg.for"
icoefi = - nbasis
c# 2426 "chelpg.for"
do 420 ii = 1, nbe
c
c
c CALCULATE ELECTROSTATIC POTENTIAL
c
c
c
c# 2427 "chelpg.for"
icoefi = icoefi + nbasis
c# 2431 "chelpg.for"
do 421 ip = 1, nbasis
cpi = coef_beta(icoefi + ip)
c
c
c# 2433 "chelpg.for"
ipdex = index(ip)
c# 2435 "chelpg.for"
do 422 iq = 1, ip
e = e + ((cpi * coef_beta(icoefi + iq)) * hpert(ipdex + iq))
422 continue
do 423 iq = ip + 1, nbasis
e = e + ((cpi * coef_beta(icoefi + iq)) * hpert(ip + index(iq)))
c the follwing stmt was found active, it has been deactivated: kjb
c e = e + ((cpi * coef_) * hpert(ip + index(iq)))
c
c
c# 2441 "chelpg.for"
423 continue
c# 2443 "chelpg.for"
421 continue
c
c
c***
c IF (IPO(5) .EQ. 1) ISTAT = LIB$SHOW_TIMER(HANDLE)
c
c***
c
c
c CALCULATE NUCLEAR PART OF ELECTROSTATIC POTENTIAL
c
c
c
c# 2444 "chelpg.for"
420 continue
c# 2452 "chelpg.for"
vnuc = zero
do 300 iatom = 1, natoms
del1 = c(1,iatom) - x1
del2 = c(2,iatom) - x2
del3 = c(3,iatom) - x3
ra = sqrt(((del1 * del1) + (del2 * del2)) + (del3 * del3))
if (ra .eq. zero) then
vnuc = vnucmax
goto 310
end if
vnuc = vnuc + (ian(iatom) / ra)
300 continue
c
c
c# 2464 "chelpg.for"
310 continue
c# 2466 "chelpg.for"
elecp(npnt) = e + (vnuc * iptchg)
if (ipo(5) .eq. 1) write(unit=iout, fmt=*) 'E(', npnt, ') = ', e
200 continue
return
end
c
c
c ROUTINE TO REFORMAT COMMON/B/ AND THE H ARRAY FOR BASIS
c
c SETS HAVING P ONLY SHELLS
c
c
c
subroutine unstar(nbasis, shellt, shellc, aos, nshell, h, nostar)
c implicit double precision (o-z, a-h)
implicit real*8 (a-h,o-z)
c
c
integer*4 shellc, shellt, aos
c
c
dimension shellc(2000), shellt(2000), aos(2000), h(1)
c
c
c LOOP OVER SHELLS
c
c
c
c# 2481 "chelpg.for"
if (nostar .eq. 0) return
c# 2485 "chelpg.for"
do 100 i = 1, nshell
c
c
c REMOVE EXTRA ROWS AND COLUMNS
c
c
c
c LOOP OVER ROWS
c
c
c
c# 2486 "chelpg.for"
if ((shellt(i) .eq. 1) .and. (shellc(i) .eq. 1)) then
c# 2492 "chelpg.for"
ibasis = aos(i)
item = ((ibasis - 1) * ibasis) / 2
c
c
c LOOP OVER COLUMNS
c
c
c
c# 2494 "chelpg.for"
do 200 j = ibasis + 1, nbasis
c# 2498 "chelpg.for"
newitem = ((j - 1) * j) / 2
do 250 k = 1, ibasis - 1
item = item + 1
newitem = newitem + 1
h(item) = h(newitem)
c
c
c SKIP THE VALUE IN THE IBASIS TH COLUMN
c
c
c
c# 2503 "chelpg.for"
250 continue
c
c
newitem = newitem + 1
c# 2509 "chelpg.for"
do 260 k = ibasis + 1, j
item = item + 1
newitem = newitem + 1
h(item) = h(newitem)
260 continue
200 continue
c
c
c RESTRUCTURE AOS TO ACCOUNT FOR THE S SHELL REMOVED
c
c
c
c# 2515 "chelpg.for"
nbasis = nbasis - 1
c# 2519 "chelpg.for"
do 300 iaos = i, nshell
aos(iaos) = aos(iaos) - 1
c
c
c# 2521 "chelpg.for"
300 continue
c# 2523 "chelpg.for"
end if
100 continue
return
end
c
c
function xy1(x, i, iy)
c
c
dimension x(100)
c
c
data halfr3 / 0.8660254040 /
c# 2533 "chelpg.for"
xy1 = halfr3 * (x(i) - x(i + iy))
return
end
c
c
function zz1(x, i, ix, iy)
c
c
dimension x(100)
c
c
data half / 0.5 /
c# 2542 "chelpg.for"
zz1 = x(i) - (half * (x(i + ix) + x(i + iy)))
return
end
c
c
subroutine forjdate(idate,itime)
c use system dependent calls to computer clock:
C IDATE MM/DD/YY ITIME HH-MM-SS BOTH ARE BOOLEAN (USE A8)
idate=date()
itime=clock()
return
end
|