24小时热门版块排行榜    

查看: 3359  |  回复: 24
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

秋雨子

金虫 (小有名气)

[求助] homo和lumo批量提取的脚本

最近在弄一批分子,一万个左右 ,想提取其中的homo和lumo能量值,但是发现很难实现,因为才接触脚本半年,还是自学的,所以搞不定了,有哪位大侠给个小脚本?我只会一点shell,提取个Energy还行,homo和lumo不好提取,若可以分享一下不胜感激!
回复此楼
To the time to life, rather than to life in time
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZDBWHZ

金虫 (正式写手)

再来个Fortran
PROGRAM HOLU2
!
! Program to extract HOMO and LUMO data from multiple Gaussian output files
! SRK 2011/06/30
! SRK 2011/10/18 Modified to produce 3 output files, bug fix
!
! Input : A file containing a list of filenames, one per line
! Output:  One line per input filename, 3 columns, holding the filename, the HOMO and the LUMO
!          Input filename, HOMO and LUMO are written to file 'HOMOandLUMO.txt'
!          HOMO is written to file 'HOMO.txt'
!          LUMO is written to file 'LUMO.txt'
!
IMPLICIT NONE
! Variable declarations
INTEGER, PARAMETER :: inunit=22, listunit=23 ! Unit numbers for input files and list file
INTEGER, PARAMETER :: hlunit=24, hunit=25, lunit=26 ! Unit numbers for output files
INTEGER :: i          ! Loop variable
INTEGER :: n          ! Number of characters in current line
INTEGER :: stat       ! Holds the current state of the input file, 0=OK
INTEGER :: numfiles   ! Number of filenames detected in the input
INTEGER :: blockflag  ! Flag variable to find the correct HOMO-LUMO data
CHARACTER (LEN=100) :: listname ! File containing the list of filenames to be processed
CHARACTER (LEN=100) :: inpfile  ! Current input filename
CHARACTER (LEN=100) :: line     ! Current line in the input file
CHARACTER (LEN=100) :: prevline ! Previous line in the input file
CHARACTER (LEN=9) :: homostring, lumostring ! Strings containing the HOMO/LUMO eigenvalues

!
! Executable code

WRITE (*,*) 'HOLU - a program to extract HOMO and LUMO data'
WRITE (*,*) 'Enter the name of an input file containing a list of filenames (no blank lines!)'
READ (*,'(A)') listname
OPEN(listunit,FILE=listname)
!
! Find out how many files are in the list
numfiles = 0
stat = 0
DO
   READ(listunit,'(A)',iostat=stat) line
   IF (stat /= 0) EXIT
   numfiles = numfiles + 1
END DO
CLOSE(listunit)
WRITE (*,*) 'Detected ',numfiles,' lines in list file'

!
! Open output files
OPEN(hlunit,FILE='HOMOandLUMO.txt')
OPEN(hunit,FILE='HOMO.txt')
OPEN(lunit,FILE='LUMO.txt')

! Now loop over these files
OPEN(listunit,FILE=listname)
DO i = 1, numfiles
   READ(listunit,'(A)') inpfile
   OPEN(inunit,file=TRIM(inpfile))
   blockflag = 0
!
! Search for the needed information in the input file
   prevline = ''
   DO
      READ(inunit,FMT='(A)',IOSTAT=stat) line ! Read in the next line of the file using '(A)' format
      IF (stat /= 0 ) EXIT
      IF (index(line,'Alpha virt.') > 0 ) THEN   ! found a line listing virtual states
        IF (blockflag == 0) blockflag = 1
        IF (blockflag == 2) THEN                    ! we have found the second block
           lumostring = line(30:40)                 ! first number on this line
           n = len_trim(prevline)
           homostring = prevline(n-8:n)             ! last number on previous line
           WRITE(*,*) TRIM(inpfile),' ', 'HOMO', ' ', homostring,' ', 'LUMO', ' ', lumostring
           WRITE(hlunit,'(A),(A),(A),(A)') TRIM(inpfile),' ', 'HOMO', ' ', homostring,' ', 'LUMO', ' ', lumostring
           WRITE(hunit,'(A)') TRIM(inpfile),' ', 'HOMO', ' ', homostring
           WRITE(lunit,'(A)') TRIM(inpfile),' ', 'LUMO', ' ', lumostring
           EXIT
        END IF
      ELSE
        IF (blockflag == 1) blockflag = 2      
      END IF
      prevline = line
   END DO
   CLOSE(inunit)
END DO


! Close all files that are still open
CLOSE(listunit)
CLOSE(hlunit)
CLOSE(hunit)
CLOSE(lunit)

!
END PROGRAM HOLU2
这是source code,需要编译。
编译后,`ls -l *.log | awk '{print $9}' > file_list
再运行编译后的程序,输入文件就是file_list。所有的输出结果都显示在屏幕上,可以拷入txt文档,进行后续的计算。
24楼2011-12-12 13:37:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 25 个回答

秋雨子

金虫 (小有名气)

没有人回复呢 ?!
To the time to life, rather than to life in time
2楼2011-12-06 14:11:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秋雨子

金虫 (小有名气)

3楼2011-12-07 11:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

★ ★
小红豆(金币+2): 感谢交流。 2011-12-14 18:07:53
你先贴一个样板文件,,,,
否则谁知道你要从什么文档中提取你要的东西啊.
Chemistry[]==[]Chem[]is[]try!!!
4楼2011-12-08 10:57:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-29 19:27 by cqwQDCxMcL3I
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ZYXdhzDAy9ZX 2026-09-28 4/200 2026-09-29 16:54 by yCO1Ll7aHtsw
[博后之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 16:30 by etmYJ6d2rquH
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 16:03 by etmYJ6d2rquH
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 14:58 by etmYJ6d2rquH
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +6 GDBe8tDZqE8z 2026-09-28 6/300 2026-09-29 14:41 by etmYJ6d2rquH
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-29 14:30 by etmYJ6d2rquH
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 3/150 2026-09-29 14:24 by etmYJ6d2rquH
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 IDs3scOF0tjC 2026-09-28 6/300 2026-09-29 14:13 by etmYJ6d2rquH
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 IDs3scOF0tjC 2026-09-28 3/150 2026-09-29 13:56 by etmYJ6d2rquH
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 09:59 by JzYBbHIXWSrW
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 GDBe8tDZqE8z 2026-09-28 4/200 2026-09-29 09:49 by JzYBbHIXWSrW
[找工作] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:28 by ZvyPK8n6Nfki
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-28 23:46 by b8fCuTHqckEt
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-28 23:12 by b8fCuTHqckEt
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[有机交流] 同一个分子,一条来自文献,一条来自AI——不告诉你答案,你会选哪条? +3 tianxiaoxian 2026-09-28 6/300 2026-09-28 22:44 by tianxiaoxian
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 6/300 2026-09-28 22:15 by ez6fGg9abYaj
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 3/150 2026-09-28 19:08 by 9lS3ad5oOymn
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 18:51 by 9lS3ad5oOymn
信息提示
请填处理意见