计算化学公社

标题: 【报告一个Multiwfn/GaussView兼容性问题】关于multiwfn输出Gaussian型cube文件 [打印本页]

作者
Author:
yjcmwgk    时间: 2019-12-5 04:47
标题: 【报告一个Multiwfn/GaussView兼容性问题】关于multiwfn输出Gaussian型cube文件
本帖最后由 yjcmwgk 于 2019-12-6 00:06 编辑

multiwfn输出Gaussian型cube文件的时候,当某个格点函数值大于等于1.00 x 10^100的时候,输出为.cube文件的时候会写成1.00000+100而不是1.00000E+100
比如下面这一行里:
  1.12207E+52  6.41195E+69  4.37285E+87  1.02032+101  1.28909+105  1.67292E+98

红色的两个数字,这是GaussView无法读取的数据。
谢谢sob!!!!!!!
Multiwfn Version 3.6(dev), release date: 2019-May-14

=====我的临时措施=======
直接吧cube文件读进Python里,扫描每个格点的数值,凡是倒数第四位出现+的,一律改成E。比如,1.28909+105改成1.28909E105后,即可被GaussView正常读取。


作者
Author:
sobereva    时间: 2019-12-5 07:06
其实这不是bug,而是Fortran本身的输出格式特征
https://software.intel.com/en-us ... mpiler/topic/271144

为了对于数值很大的情况能另其它程序兼容,我已经改了导出cube文件时用的格式了,现在应该没问题了,我已更新了官网上的程序。
作者
Author:
让你变成回忆    时间: 2019-12-5 08:35
我也遇到过类似的问题。
我利用Multiwfn计算Overlap矩阵的时候,当计算的结果非常小的时候,程序输出如下:
  592    588 -0.130156D-53 -0.279543D-26  0.212582D-25  0.978887D-29 -0.652195D-26
  593    589 -0.594195D-57 -0.127619D-29  0.978887D-29 -0.183792D-27 -0.297745D-29
  594    590  0.257790-133 0.273744D-39 -0.272875D-38 -0.212888D-41  0.150792D-38
  595    591  0.273744D-39  0.194355D-22 -0.113531D-21 -0.885733D-25  0.627382D-22
  596    592  0.272875D-38  0.113531D-21 -0.654953D-21 -0.517397D-24  0.366482D-21
因为这里是调用了showmatgau子程序来输出的,所以我是通过修改输出的格式(由默认的改为了f14.6的形式),这样就不会输出成科学计数的形式。
作者
Author:
sobereva    时间: 2019-12-5 08:41
让你变成回忆 发表于 2019-12-5 08:35
我也遇到过类似的问题。
我利用Multiwfn计算Overlap矩阵的时候,当计算的结果非常小的时候,程序输出如下 ...

输出格式后头加个E3即可解决,比如1PE16.8改成1PE16.8E3,这样指数总是输出成3位且不会把前头的E给顶了
作者
Author:
让你变成回忆    时间: 2019-12-5 08:45
sobereva 发表于 2019-12-5 08:41
输出格式后头加个E3即可解决,比如1PE16.8改成1PE16.8E3,这样指数总是输出成3位且不会把前头的E给顶了

好的,我去修改一下。
谢谢sob老师!
作者
Author:
yjcmwgk    时间: 2019-12-6 00:06
sobereva 发表于 2019-12-5 07:06
其实这不是bug,而是Fortran本身的输出格式特征
https://software.intel.com/en-us ... mpiler/topic/2711 ...

谢谢sob!是我表述有问题。已经把【报告一个小bug】改成【报告一个Multiwfn/GaussView兼容性问题】




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3