Subject: Summary of Responses to Mopac 6.0 Makefile Question

From: <[email-masked]>
Date: Fri, 1 Jul 94 10:10 CDT

Netter's
	The following is an abridged summary of the replies that I recieved in
response to my query about Mopac 6.0 Makefiles.  Everyone's help was greatly
appreciated and I hope these postings will be of as much use to others as they
were to me.  I've included a copy of the appropriate Makefile as well as an 
alternative method of installation suggested by Peter Bladon.  Attached at the
end is a message that I recieved from Robert Fraczkiewicz about an error that
he encountered while installing the ESP code that seems to be related to the 
type of arrays used in the program.  I cannot answer his question in this 
regard, possibily someone else will be able to.  In response to his question
about the parameterization of Mopac (or MNDO,AM1,etc) for transition metals,
my understanding is that it is a lack of sufficient experimental data for
compounds containing these elements that has hindered the development of
reliable parameters.  However, the most recent commercial version of AMPAC 
(2.0 or 3.0?) claims to have parameters for iron.  I suspect that these will be
used rather cautiously until their accuracy has been proven.  (If interested 
you might try contacting Andy Holder, but I don't have his e-mail address)

	In response to the queries about where to find the public domain version
of Mopac 6.0, try the anonymous ftp site at the Ohio Supercomputer Center.

www.ccl.net    

in the directory:
/pub/chemistry/software/SOURCES/FORTRAN/mopac6_sources   

I'm sure that it is available at other sites and perhaps someone else will post
these for the list.  Let me finish by apologizing for taking so long to post
this summary, but I wanted to make sure that all the responses were in.  Thanks
again to all who helped out.

Kris Wise 
University of Oklahoma
Department of Chemistry and Biochemistry
[email-masked]

********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************

MOPAC 6.0 makefile:

--------------------------- Cut Here --------------------------------
flAGS		= 
FFLAGS	= -O2 -g3  -static
DEST		= .
LDFLAGS		=
LIBS		=
LINKER		= f77
LINTFLAGS	=
MAKEFILE	= Makefile
PRINT		= pr
PROGRAM		= mopacrsm.exe

EXTHDRS		= 
HDRS		= 
OBJS		= aababc.o \
analyt.o \
anavib.o \
axis.o \
block.o \
bonds.o \
brlzon.o \
calpar.o \
capcor.o \
cdiag.o \
chrge.o \
cnvg.o \
compfg.o \
datin.o \
dcart.o \
delmol.o \
delri.o \
denrot.o \
densit.o \
depvar.o \
deri0.o \
deri1.o \
deri2.o \
deri21.o \
deri22.o \
deri23.o \
deritr.o \
deriv.o \
dernvo.o \
ders.o \
dfock2.o \
dfpsav.o \
diag.o \
diat.o \
diat2.o \
diis.o \
dijkl1.o \
dijkl2.o \
dipind.o \
dipole.o \
dofs.o \
dot.o \
drc.o \
drcout.o \
ef.o \
enpart.o \
exchng.o \
ffhpol.o \
flepo.o \
fmat.o \
fock1.o \
fock2.o \
force.o \
formxy.o \
forsav.o \
frame.o \
freqcy.o \
geout.o \
geoutg.o \
getgeg.o \
getgeo.o \
getsym.o \
gettxt.o \
gmetry.o \
gover.o \
grid.o \
h1elec.o \
haddon.o \
hcore.o \
helect.o \
hqrii.o \
ijkl.o \
interp.o \
iter.o \
jcarin.o \
linmin.o \
local.o \
locmin.o \
mamult.o \
matout.o \
matpak.o \
meci.o \
mecid.o \
mecih.o \
mecip.o \
mndo.o \
moldat.o \
molval.o \
mullik.o \
mult.o \
nllsq.o \
nuchar.o \
parsav.o \
partxy.o \
pathk.o \
paths.o \
perm.o \
polar.o \
powsav.o \
powsq.o \
prtdrc.o \
quadr.o \
react1.o \
read.o \
reada.o \
refer.o \
repp.o \
rotat.o \
rotate.o \
rsp.o \
search.o \
second.o \
setupg.o \
solrot.o \
swap.o \
symtry.o \
thermo.o \
timer.o \
update.o \
vecprt.o \
write.o \
wrtkey.o \
wrttxt.o \
xyzint.o 

SRCS		= aababc.f \
analyt.f \
anavib.f \
axis.f \
block.f \
bonds.f \
calpar.f \
capcor.f \
chrge.f \
cnvg.f \
compfg.f \
dcart.f \
delmol.f \
delri.f \
denrot.f \
depvar.f \
deriv.f \
ders.f \
dfpsav.f \
diat.f \
diat2.f \
dipind.f \
dipole.f \
dot.f \
drc.f \
drcout.f \
enpart.f \
exchng.f \
ffhpol.f \
flepo.f \
fmat.f \
fock1.f \
force.f \
forsav.f \
frame.f \
freqcy.f \
geout.f \
getgeo.f \
getsym.f \
gmetry.f \
gover.f \
grid.f \
h1elec.f \
haddon.f \
hcore.f \
helect.f \
hqrii.f \
ijkl.f \
interp.f \
iter.f \
linmin.f \
local.f \
locmin.f \
mamult.f \
matout.f \
meci.f \
moldat.f \
molval.f \
mullik.f \
mult.f \
nllsq.f \
nuchar.f \
parsav.f \
paths.f \
perm.f \
polar.f \
powsav.f \
powsq.f \
prtdrc.f \
quadr.f \
react1.f \
read.f \
reada.f \
refer.f \
repp.f \
rotat.f \
search.f \
second.f \
setupg.f \
solrot.f \
swap.f \
symtry.f \
thermo.f \
update.f \
vecprt.f \
write.f \
wrtkey.f \
xyzint.f

all:		$(PROGRAM)

$(PROGRAM):     $(OBJS) $(SPECIAL) $(LIBS)
		@echo -n "Loading $(PROGRAM) ... "
		@$(LINKER) $(LDFLAGS) $(OBJS) $(SPECIAL) $(LIBS) -o $(PROGRAM)
		@echo "done"

depend:;	@mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST)

dist:;		@rdist

index:;		@ctags -wx $(HDRS) $(SRCS)

install:	$(PROGRAM)
		@echo Installing $(PROGRAM) in $(DEST)
		@install $(PROGRAM) $(DEST)

clean:
		rm -f $(OBJS) $(SPECIAL)

lint:;		lint ${LINTFLAGS} ${SRCS}

print:;		@$(PRINT) $(HDRS) $(SRCS)

program:        $(PROGRAM)

tags:           $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)

update:		$(DEST)/$(PROGRAM)

$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
		@make -f $(MAKEFILE) DEST=$(DEST) install

###
----------------- Cut Here ------------------------------

Good luck!

Yufei Guo

email: [email-masked]
Tel: (519) 725-4040

********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************

Dear Kris,
		Compiling MOPAC for SGI machines

First if you have VAX source, you need to convert all the *.FOR filenames
to *.f  . 

With MOPAC-6 I have found it easier to handle a single source file so I
concatenate all the individual source files:-

			cat *.f >mopacsgi.f

(I suppose you could do:-

			cat *.FOR >mopacsgi.f                         )

This makes things easier if you have to make minor modifications to FORMAT
atatements etc. since you can search for the part you want to modify more
easily.  However you do need to make sure that you have enough space in the
"tmp" directories.

Also I am afraid that I have never been able to understand "makefile's", 
so I do a simple command line:-

	f77  -mips2-static -o mopacexe -O2 -Olimit 2000 mopacsgi.f 
    
The alternative with individual files is to have a multi-line command:-
      
        f77 -mips2 -static -o mopacexe -O2 -Olimit 2000 \     
         aababc.f \                                  
         analyt.f \
           .
           .
         xyzint.f           
 
The list of the files is conveniently got by the command:-

         ls *.f > filelist

Then edit (vi)  "filelist"  and do:-
         1,$   s/.f/.f \/
to put in the backslash characters.

Within the compilation command the "-static" command is to ensure that
variables are initiallised, and that local variables in a subroutine  (i.e.
those not declared in COMMON) retain their values from one call of the
subroutine to another.

The "-O2" level of optimisation is the maximum that can be used.  It is best
to omit this on a first compilation, so that any errors are found quickly.
(Compilation with -O2 takes a lot longer than without it).

Only put in the "-mips2" option if you are going to RUN the executable on
a "64-bit" machine (R4000, R4600, or R4400).

I hope that this helps.

Yours sincerely

Peter Bladon 

********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************

Dear Kris,

  The world is small... I have just downloaded Mopac6 from Oakland to my SGI
Indy (yesterday !) and encountered exactly the same problem. I have changed
Makefile somewhat and, since I do not have Fortran compiler, compiled the
whole thing on IRIS Indigo Elan R4000 (Irix 4.0.5F) using f77. The job was
done with the inclusion of electrostatic potential option (i.e., I renamed file
esp.rof to esp.f and use slightly modified Makefile, included below). The
compilation went surprisingly smoothly with only one error:

"Error in esp.f:  Incompatible lengths for COMMON block WORK1"

and this is obvious: the mentioned block in procedure SURFAC in esp.f has
one integer array, whereas other procedures use double precision only.
I will ask the Mopac author to explain this (do you have his e-mail address ?)
Anyway, I have got nice executable version mopacrsm.exe, and so far did
test calculations with included 1scf.dat; the results were OK.
For practical work on Unix machines you shall use shell script mopac.csh,
which is included in the package.
Modified Makefile is included below.

P.S. 1) I am not a professional programmer and could be wrong. Would you please
forward me all answers you will get on this subject ?
     2) I am not a quantum chemist either; maybe you know why there are no
Mopac parameters for transition metals (especially copper) ?  Or, if they exist,
where to find them ?

+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+
+                               |\+_+/\+_+/|                                 +
+   just Robert Fraczkiewicz    |=\ /||\ /=|    [email-masked]     +
+    Deparment of Chemistry     |--\-||-\--|      [email-masked]       +
+    University of Houston      |=/_\||/_\=|         (713) 743-3236          +
+                               |/+ +\/+ +\|                                 +
+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+
+                                                                            +
+   "It is also a good rule not to put too much confidence in experimental   +
+    results until they have been confirmed by Theory"                       +
+                                                                            +
+                                                     Sir Arthur Eddington   +
+                                                                            +
+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+[]={}-()~|+