question on reading ASCII orbitals for casscf calculation

Ilja Khavrutskii ikhavru at emory.edu
Thu Nov 7 17:32:31 GMT 2002


  Sorry if this message appears twice

-------- Original Message --------
Subject: Re: Re: question on reading ASCII orbitals for casscf calculation
Date: Thu, 07 Nov 2002 12:06:14 -0500
From: Ilja Khavrutskii <ikhavru at emory.edu>
To: molpro-user at molpro.net, seth at spawn.scs.uiuc.edu



Dear Zeth,
Thank you for your insightful message
I am a newbie in molpro, but I used gaussian for several years mainly 
for TM complexes.
There is no question that the initial guess in molpro for TM is very 
poor, so I decied to read orbitals from gaussian into molpro.
Thanks to your post, and to a friend of mine - Dmitry Khoroshun I think 
I now have it at least for rhf wf in C1 symmetry.
One has to make sure that the numbering of atoms in gaussian and in 
molpro is exactly the same.
Then one has to puch orbitals from Gaussian into punch file fort.7
(similar mechanism in gaussian to transfer orbitals between versions/platforms as Zeth described for molpro, 
only using punch=mo/guess=cards)
using punch=mo guess=(read,only) provided you have checkpoint file with orbitals, 
and then run this little perl script on it:
----
#!/usr/bin/perl
#11/07/02 by Ilja V Khavrutskii,
#Grad Student in Dr Morokuma's group
#Emory University, Atlanta, GA, USA
#ilja at neptune.chem.emory.edu
@prm=@ARGV;
if (@ARGV!=1){print "Number of Arguments is Out of Range\n";
              exit;
             }
# $prm[0] contains the gaussian fort.7 file with orbitals
@ARGV=$prm[0];
while   (<>)
        {
if      (/[a-z,A-Z][a-z,A-Z]|\(/)
        {
        ;#do nothing
        }
else
        {
chop $_;
s/D/E/g;
$tmp_str1=substr($_,0,15);
$tmp_str2=substr($_,15,15);
$tmp_str3=substr($_,30,15);
$tmp_str4=substr($_,45,15);
$tmp_str5=substr($_,60,15);
if      ($tmp_str2 eq "")
        {
        printf("%15.8f,\n",$tmp_str1);
        }
elsif   ($tmp_str2 ne "" && $tmp_str3 eq "")
        {
        printf("%15.8f,%15.8f,\n",$tmp_str1,$tmp_str2);
        }
elsif   ($tmp_str3 ne "" && $tmp_str4 eq "")
        {
        printf("%15.8f,%15.8f,%15.8f,\n",$tmp_str1,$tmp_str2,$tmp_str3);
        }
elsif   ($tmp_str4 ne "" && $tmp_str5 eq "")
        {
        
printf("%15.8f,%15.8f,%15.8f,%15.8f,\n",$tmp_str1,$tmp_str2,$tmp_str3,$tmp_str4);
        }
else
        {
         
printf("%15.8f,%15.8f,%15.8f,%15.8f,%15.8f,\n",$tmp_str1,$tmp_str2,$tmp_str3,$tmp_str4,$tmp_str5);
        }
        }
        }
----
That generates file usable by matrop in molpro as Zeth described.
This has been tested for sto3g basis set with rhf.
Thanks again
Ilja







More information about the Molpro-user mailing list