Processing output after errors in a script

Hi, All,

I am trying to generate DMol3 forces in a script, but have problems that I hope the community can help with. This is not straight-forward since there's no 'gradient' task, so I set up a geometry optimization and tell it to do 1 iteration. Then i run Dmol3 and look for any errors like this:

\$dmol3->ChangeSettings([ Quality => "Medium",

                           PopulationAnalysis => "Yes",
                           UseSymmetry => "No",
                           EnergyConvergence => "1.0",
                           ForceConvergence => "1.0",
                           DisplacementConvergence => "1.0",
                           Iterations => "1",
                          ]);
eval {\$output = \$dmol3->GeometryOptimization->Run(\$tempdoc);};
if (\$@) {
   # Something bad has happened,
   # Report error and move on to the next one
   print \$@;

   # do something here to process \$output...
} else {

    #DMol3 completed ok.

   # iterate over all atoms and grab the forces

   ...

}

DMol3 stops with an error that geometry optimization did not converge (as expected). On Windows, this does not generate an error. The script processes through the non-error branch. On Linux - where i really want to run - this generates an error. It goes into the error handling part of the script, but i cannot process any outputs. if I try to processes the object \$output I get an error that this is a null object. If I try explicitly to open the outmol file I get an error about a null file. That's particularly puzzling since i can look on the server and see the outmol file.

Do you have suggestions about how to compute gradients with a script or how to process outmol files after an error on linuix?

thanks,

george