OSDN Git Service

Suppress output of pi-anchors when generating GAMESS or Gaussian input files.
authortoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Fri, 2 Nov 2012 11:24:29 +0000 (11:24 +0000)
committertoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Fri, 2 Nov 2012 11:24:29 +0000 (11:24 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/molby/trunk@328 a2be9bc6-48de-4e38-9406-05402d4bc13c

Scripts/gamess.rb
Scripts/loadsave.rb

index e984928..29277f4 100755 (executable)
@@ -133,7 +133,13 @@ class Molecule
                gbasis = "N311 NGAUSS=6 NDFUNC=1 NPFUNC=1"
          end
        end
-
+    
+       #  Count non-dummy atoms
+       natoms = 0
+       each_atom { |ap|
+         natoms += 1 if ap.atomic_number != 0
+       }
+       
     File.open(fname, "wb") { |fp|
          fp.print "!  GAMESS input\n"
          fp.print "!  Generated by Molby at #{now}\n"
@@ -146,7 +152,7 @@ class Molecule
            fp.print "         DFTTYP=#{dfttyp}\n"
          end
          if hash["use_internal"] != 0 && hash["runtype"] == 2
-           nzvar = self.natoms * 3 - 6  #  TODO: 3N-5 for linear molecules
+           nzvar = natoms * 3 - 6  #  TODO: 3N-5 for linear molecules
            fp.print "         NZVAR=#{nzvar}\n"
          else
            nzvar = 0
@@ -169,6 +175,7 @@ class Molecule
          fp.print " $DATA\n#{basename}\nC1 0\n"
          secondary = []
          each_atom { |ap|
+           next if ap.atomic_number == 0
                fp.printf "%-6s %4d %10.6f %10.6f %10.6f\n", ap.name, ap.atomic_number, ap.r.x, ap.r.y, ap.r.z
                if use_2nd && element2.include?(ap.element)
                  secondary[ap.index] = true
@@ -192,6 +199,7 @@ class Molecule
            fp.print " $ECP\n"
                each_atom { |ap|
                  an = ap.atomic_number
+                 next if an == 0
                  ecpp = (secondary[ap.index] ? ecp2 : ecp)
                  e = ecp_ary[an] || (ecpp && ecpp[an])
                  if e
index a61e88c..24ce6f7 100755 (executable)
@@ -583,6 +583,7 @@ class Molecule
  C1
 end_of_header
        each_atom { |ap|
+               next if ap.atomic_number == 0
                fp.printf " %-6s %4d %10.6f %10.6f %10.6f\n", ap.name, ap.atomic_number, ap.r.x, ap.r.y, ap.r.z
        }
        fp.print " $END\n"
@@ -605,6 +606,7 @@ end_of_header
  0 1
 end_of_header
        each_atom { |ap|
+           next if ap.atomic_number == 0
                fp.printf "%-6s %10.6f %10.6f %10.6f\n", ap.element, ap.r.x, ap.r.y, ap.r.z
        }
        fp.print "\n"