24小时热门版块排行榜    

Znn3bq.jpeg
查看: 829  |  回复: 3
当前主题已经存档。

zyj8119

木虫 (著名写手)

[交流] 【求助】FORTRAN编程添加原子 已有1人参与

【求助】在MS导出的文件中,按照规则添加原子

上个帖子我说了,可以把晶体结构保存为PDB格式,比如说,我要在一个沸石结构上表面添加氨基,那么像这样的程序为什么运行不出来?
    OPEN(10,FILE="MFI.PDB",POSITION="ASIS",ACTION="READWRITE",STATUS="OLD"
        OPEN(60,FILE="MFINEW.PDB",STATUS="REPLACE"
        READ(10,"(A80)"ATOMNUM,XXX,YYY,ZZZ
C     %计算新加入的第一个原子与原来骨架距离%
             DO  XXX=1,7776,1
         DO  YYY=1,7776,1
          DO  ZZZ=1,7776,1
           CALL RAND(XNEW)
           CALL RAND(YNEW)
           CALL RAND(ZNEW)
20           IF SQRT(((XNEW-XXX)**2+(YNEW-YYY)**2+(ZNEW-ZZZ)**2).LT.0.05)
            THEN
                WRITE(20,“(4A7)"ATOMNUM,XXNEW,YYNEW,ZZNEW
                ELSE               
           END IF
          END DO
         END DO
        END DO
C      %计算新加入的第二个原子与原来骨架距离%
        DO  XXX=1,7777,1
         DO  YYY=1,7777,1
          DO  ZZZ=1,7777,1
           CALL RAND(XXNEW)
           CALL RAND(YYNEW)
           CALL RAND(ZZNEW)
30           IF SQRT(((XXNEW-XXX)**2+(YYNEW-YYY)**2+(ZZNEW-ZZZ)**2).LT.0.05)
            THEN
                WRITE(30,“(4A7)"ATOMNUM,XXNEW,YYNEW,ZZNEW
                ELSE                        
           END IF
          END DO
         END DO
        END DO
C     %计算新加入的第三个原子与原来骨架距离%
        DO  XXX=1,7778,1
         DO  YYY=1,7778,1
          DO  ZZZ=1,7778,1
           CALL RAND(XXXNEW)
           CALL RAND(YYYNEW)
           CALL RAND(ZZZNEW)
40          IF SQRT(((XXXNEW-XXX)**2+(YYYNEW-YYY)**2+(ZZZNEW-ZZZ)**2).LT.0.0
          5 )THEN
          WRITE(40,“(4A7)"ATOMNUM,XNEW,YNEW,ZNEW
          ELSE
          END IF
          END DO
         END DO
        END DO
      WRITE(60,“(10A7)"ATOMNUM,XNEW,YNEW,ZNEW,XXNEW,YYNEW,ZZNEW,XXXNE
        W,YYNEW,ZZNEW,XXXNEW,YYYNEW,ZZZNEW
      END

               SUBROUTINE RAND(M)
        DOUBLE PRECISION S,U,V,R
        S=65536.0
        U=2053.0
        V=13849.0
        M=R/S
        R=R-M*S
        R=U*R+V
        M=R/S
        R=R-M*S
        NRND1=R/S
        RETURN
        END
我的思想是读入文件,然后再骨架中,引用随机数,随即的插入原子,只有当心加入的原子与原来原子的距离小于0.05的时候,才认为成键了,不知道这样的做法对不对?在FORTRAN编译器中,读入文件,对文件操作需要把文件和程序放在一个文件夹里面。
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

PROGRAM MAIN
      INTEGER INUM,JNUM,KNUM
        REAL XNEW,YNEW,ZNEW,XXNEW,YYNEW,ZZNEW,XXXNEW,YYYNEW,ZZZNEW,XXX,
     &YYY,ZZZ
        OPEN(10,FILE="MFI.PDB",STATUS="OLD"
        OPEN(20,FILE="MFI2.PDB",STATUS="NEW"
        OPEN(30,FILE="MFI3.PDB",STATUS="NEW"
        OPEN(40,FILE="MFI4.PDB",STATUS="NEW"
        READ(10,*)INUM,XXX,YYY,ZZZ
           DO  INUM=1,7776
           XNEW=RAN0(INUM)
           YNEW=RAN0(INUM)
           ZNEW=RAN0(INUM)
           O=SQRT((XNEW-XXX)**2+(YNEW-YYY)**2+(ZNEW-ZZZ)**2)
          IF ((O.LE.1.51).AND.(O.GT.0))THEN
                WRITE(20,*)INUM,XNEW,YNEW,ZNEW
                ELSE
                WRITE(20,*)'ERROR'               
          END IF
        END DO
        DO  JNUM=1,INUM
           XXNEW=RAN0(JNUM)
           YYNEW=RAN0(JNUM)
           ZZNEW=RAN0(JNUM)
           P=SQRT((XXNEW-XNEW)**2+(YYNEW-YNEW)**2+(ZZNEW-ZNEW)**2)
          IF ((P.LE.1.51).AND.(P.GT.0))THEN
                WRITE(30,*)JNUM,XXNEW,YYNEW,ZZNEW
                ELSE                        
           WRITE(30,*)'ERROR'
          END IF
        END DO
      DO  KNUM=1,JNUM
           XXXNEW=RAN0(KNUM)
           YYYNEW=RAN0(KNUM)
           ZZZNEW=RAN0(KNUM)
        Q=SQRT((XXXNEW-XXNEW)**2+(YYYNEW-YYNEW)**2+(ZZZNEW-ZZNEW)**2)
        IF ((Q.LE.1.51).AND.(Q.GT.0))THEN
          WRITE(40,*)KNUM,XXXNEW,YYYNEW,ZZZNEW
          ELSE
          WRITE(40,*)'ERROR'
          END IF
        END DO
        END
       

      FUNCTION RAN0(IDUM)
        INTEGER IDUM,IA,IM,IQ,IR,MASK
        REAL RAN0,AM
        PARAMETER(IA=16807,IM=2147483647,AM=1./IM,
     &IQ=127773,IR=2836,MASK=123459876)
      INTEGER K
        IDUM=IEOR(IDUM,MASK)
        K=IDUM/IQ
        IDUM=IA*(IDUM-K*IQ)-IR*K
        IF(IDUM<0)IDUM=IDUM+IM
        RAN0=AM*IDUM
        IDUM=IEOR(IDUM,MASK)
        END
       
这样的话,编译能通过了,但是不知道为什么运行不出来?我就是在MFI.PDB这个文件中,随机插入一些原子,首先插入第一种,然后插入第二种,。。。
好好学习,天天向上。
2楼2010-03-17 23:13:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

运行显示错误时CNNOT OVERWRITE EXISTING ATOMS
好好学习,天天向上。
3楼2010-03-18 13:51:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

自己顶下。。。
好好学习,天天向上。
4楼2010-04-14 00:42:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 现在不知道怎么办,感觉很痛苦 +5 qweww 2026-05-11 6/300 2026-05-16 19:57 by Equinoxhua
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +9 一切都是空工 2026-05-12 20/1000 2026-05-16 19:52 by Equinoxhua
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +6 水和泥不是水泥 2026-05-13 8/400 2026-05-16 19:50 by Equinoxhua
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 6/300 2026-05-16 19:46 by Equinoxhua
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 3/150 2026-05-16 17:55 by j6b2pdz07o
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 3/150 2026-05-16 17:50 by j6b2pdz07o
[考博] 光量子物理方向 博士招生 1人(2026.09) +3 sandyworld 2026-05-15 3/150 2026-05-16 17:11 by zznnnj
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[有机交流] 如何实现卤原子转化 10+3 BT20230424 2026-05-15 5/250 2026-05-16 16:20 by czyzsu
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 k37jurhrau 2026-05-16 3/150 2026-05-16 13:57 by vcdazktkjx
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 xx7gd5zq4e 2026-05-15 5/250 2026-05-16 12:24 by h3oerqvkv9
[硕博家园] 考博自荐 +3 科研狗111 2026-05-13 4/200 2026-05-16 11:45 by 科研狗111
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 6/300 2026-05-16 11:29 by h3oerqvkv9
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 cjf4bx70cj 2026-05-14 6/300 2026-05-16 11:16 by h3oerqvkv9
[硕博家园] 申请博士 +3 呃?呃 2026-05-15 3/150 2026-05-16 11:01 by a4742549
[文学芳草园] 裁员滚滚,退居二线 +4 J_wei 2026-05-10 4/200 2026-05-16 10:52 by zh10246
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 5/250 2026-05-16 04:29 by k37jurhrau
[基金申请] 青C资助名额大幅增加! +11 西葫芦炒鸡蛋 2026-05-13 15/750 2026-05-15 14:36 by ambravo
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
信息提示
请填处理意见