切换到宽版
  • 3912阅读
  • 12回复

fortran代码格式化工具 [复制链接]

上一主题 下一主题
离线shx8282
 
发帖
112
财富
8
威望
0
交易币
0
只看楼主 倒序阅读 使用道具 0楼 发表于: 2009-04-22 | 石油求职招聘就上: 阿果石油英才网
— 本帖被 坐看云起 从 石油软件 移动到本区(2011-09-20) —
对fortran代码进行格式化,增强可读性,支持f90,for
格式化之前的代码
DO 1200 L=1,NUMROK
READ(20,*) I1,I2,J1,J2,K1,K2,IVAL
WRITE(IOCODE,1150) I1,I2,J1,J2,K1,K2,IVAL
DO 1200 K=K1,K2
DO 1200 J=J1,J2
DO 1200 I=I1,I2
IROCK(I,J,K)=IVAL
1200 CONTINUE
1500 WRITE(IOCODE,1600)
DO 1700 K=1,KK
WRITE(IOCODE,1650) K
DO 1700 J=1,JJ
IF(NUMROK.EQ.0) READ(20,*) (IROCK(I,J,K),I=1,II)
WRITE(IOCODE,1675) (IROCK(I,J,K),I=1,II)
1700 CONTINUE
2000 CONTINUE
IF(NPVT.LE.1) GO TO 3000
READ(20,1)
READ(20,*) NUMPVT
IF(NUMPVT.EQ.0) GO TO 2500
WRITE(IOCODE,2100)
DO 2200 L=1,NUMPVT
READ(20,*) I1,I2,J1,J2,K1,K2,IVAL
WRITE(IOCODE,1150) I1,I2,J1,J2,K1,K2,IVAL
DO 2200 K=K1,K2
DO 2200 J=J1,J2
DO 2200 I=I1,I2
IPVT(I,J,K)=IVAL
2200 CONTINUE
2500 WRITE(IOCODE,2600)
DO 2700 K=1,KK
WRITE(IOCODE,1650) K
DO 2700 J=1,JJ
IF(NUMPVT.EQ.0) READ(20,*) (IPVT(I,J,K),I=1,II)
WRITE(IOCODE,1675) (IPVT(I,J,K),I=1,II)
2700 CONTINUE
3000 CONTINUE
1100 FORMAT(//T15,'***** ROCK REGION MODIFICATIONS *****',
& //T15,' I1 I2 J1 J2 K1 K2 IROCK')
1150 FORMAT(15X,6I4,3X,I3)
1600 FORMAT(//T15,'***** ROCK REGION DISTRIBUTION *****',/)
1650 FORMAT(/1X,'K =',I4/)
1675 FORMAT(1X,20I6)
2100 FORMAT(//T15,'***** PVT REGION MODIFICATIONS *****',
& //T15,' I1 I2 J1 J2 K1 K2 IPVT')
2600 FORMAT(//T15,'***** PVT REGION DISTRIBUTION *****',/)
C**** RELATIVE PERMEABILITY & CAPILLARY PRESSURE TABLE
DO 10 NR=1,NROCK
READ(20,1)
WRITE(IOCODE,7) NR
DO 5 I=1, 25
READ(20,*) SAT(NR,I),KROT(NR,I),KRWT(NR,I),KRGT(NR,I),
& KROGT(NR,I),PCOWT(NR,I),PCGOT(NR,I)
WRITE(IOCODE,21)SAT(NR,I),KROT(NR,I),KRWT(NR,I),KRGT(NR,I),
& KROGT(NR,I),PCOWT(NR,I),PCGOT(NR,I)
IF(SAT(NR,I).GE.1.0001)GO TO 9
5 CONTINUE
9 MSAT(NR)=I
READ(20,1)
READ(20,*) ITHREE(NR),SWR(NR)
IF(ITHREE(NR).EQ.0) WRITE(IOCODE,92) SWR(NR)
IF(ITHREE(NR).GT.0) WRITE(IOCODE,94) SWR(NR)
92 FORMAT(//,10X,'THE THREE-PHASE REL. PERM. CALC. IS NOT USED.',
& /,10X,'IRREDUCIBLE WATER SATURATION IS ',F6.4)
94 FORMAT(//,10X,'THE THREE-PHASE REL. PERM. CALC. IS USED.',
& /,10X,'IRREDUCIBLE WATER SATURATION IS ',F6.4)
10 CONTINUE

格式化之后的代码

DO 1200 L=1,NUMROK
    READ(20,*) I1,I2,J1,J2,K1,K2,IVAL
    WRITE(IOCODE,1150) I1,I2,J1,J2,K1,K2,IVAL
    DO 1200 K=K1,K2
        DO 1200 J=J1,J2
            DO 1200 I=I1,I2
                IROCK(I,J,K)=IVAL
1200 CONTINUE
1500 WRITE(IOCODE,1600)
DO 1700 K=1,KK
    WRITE(IOCODE,1650) K
    DO 1700 J=1,JJ
        IF(NUMROK.EQ.0) READ(20,*) (IROCK(I,J,K),I=1,II)
        WRITE(IOCODE,1675) (IROCK(I,J,K),I=1,II)
1700 CONTINUE
2000 CONTINUE
IF(NPVT.LE.1) GO TO 3000
READ(20,1)
READ(20,*) NUMPVT
IF(NUMPVT.EQ.0) GO TO 2500
WRITE(IOCODE,2100)
DO 2200 L=1,NUMPVT
    READ(20,*) I1,I2,J1,J2,K1,K2,IVAL
    WRITE(IOCODE,1150) I1,I2,J1,J2,K1,K2,IVAL
    DO 2200 K=K1,K2
        DO 2200 J=J1,J2
            DO 2200 I=I1,I2
                IPVT(I,J,K)=IVAL
2200 CONTINUE
2500 WRITE(IOCODE,2600)
DO 2700 K=1,KK
    WRITE(IOCODE,1650) K
    DO 2700 J=1,JJ
        IF(NUMPVT.EQ.0) READ(20,*) (IPVT(I,J,K),I=1,II)
        WRITE(IOCODE,1675) (IPVT(I,J,K),I=1,II)
2700 CONTINUE
3000 CONTINUE
1100 FORMAT(//T15,'***** ROCK REGION MODIFICATIONS *****',
& //T15,' I1 I2 J1 J2 K1 K2 IROCK')
1150 FORMAT(15X,6I4,3X,I3)
1600 FORMAT(//T15,'***** ROCK REGION DISTRIBUTION *****',/)
1650 FORMAT(/1X,'K =',I4/)
1675 FORMAT(1X,20I6)
2100 FORMAT(//T15,'***** PVT REGION MODIFICATIONS *****',
& //T15,' I1 I2 J1 J2 K1 K2 IPVT')
2600 FORMAT(//T15,'***** PVT REGION DISTRIBUTION *****',/)
C**** RELATIVE PERMEABILITY & CAPILLARY PRESSURE TABLE
DO 10 NR=1,NROCK
    READ(20,1)
    WRITE(IOCODE,7) NR
    DO 5 I=1, 25
        READ(20,*) SAT(NR,I),KROT(NR,I),KRWT(NR,I),KRGT(NR,I),
        & KROGT(NR,I),PCOWT(NR,I),PCGOT(NR,I)
        WRITE(IOCODE,21)SAT(NR,I),KROT(NR,I),KRWT(NR,I),KRGT(NR,I),
        & KROGT(NR,I),PCOWT(NR,I),PCGOT(NR,I)
        IF(SAT(NR,I).GE.1.0001)GO TO 9
    5 CONTINUE
    9 MSAT(NR)=I
    READ(20,1)
    READ(20,*) ITHREE(NR),SWR(NR)
    IF(ITHREE(NR).EQ.0) WRITE(IOCODE,92) SWR(NR)
    IF(ITHREE(NR).GT.0) WRITE(IOCODE,94) SWR(NR)
    92 FORMAT(//,10X,'THE THREE-PHASE REL. PERM. CALC. IS NOT USED.',
    & /,10X,'IRREDUCIBLE WATER SATURATION IS ',F6.4)
    94 FORMAT(//,10X,'THE THREE-PHASE REL. PERM. CALC. IS USED.',
    & /,10X,'IRREDUCIBLE WATER SATURATION IS ',F6.4)
10 CONTINUE
附件: fortran代码格式化工具.rar (21 K) 下载次数:36 ,你所在用户组没有附件下载权限 VIP会员免积分下载
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线shx8282
发帖
112
财富
8
威望
0
交易币
0
只看该作者 1楼 发表于: 2009-04-23 | 石油求职招聘就上: 阿果石油英才网
原创的,需要看大量的fortran代码,太别扭,就写了这个
发帖
7215
财富
9877
威望
20
交易币
0
只看该作者 2楼 发表于: 2009-08-09 | 石油求职招聘就上: 阿果石油英才网
楼主厉害呀,顶啦!
离线泥行僧
发帖
1928
财富
2275
威望
142
交易币
0
只看该作者 3楼 发表于: 2009-10-23 | 石油求职招聘就上: 阿果石油英才网
下来试试

楼主有心人~
阿果石油网,石油科研第一站!
离线hoobuo
发帖
115
财富
399
威望
10
交易币
0
只看该作者 4楼 发表于: 2009-10-23 | 石油求职招聘就上: 阿果石油英才网
呵呵,现在就去学Fortran去。
离线syhg
发帖
137
财富
428
威望
1
交易币
0
只看该作者 5楼 发表于: 2009-12-28 | 石油求职招聘就上: 阿果石油英才网
看起来很有用,毕竟累积了大量的老程序
离线sanxin
发帖
14
财富
30
威望
0
交易币
0
只看该作者 6楼 发表于: 2010-12-26 | 石油求职招聘就上: 阿果石油英才网
谢谢了,楼主辛苦。
离线wujunlai2008
发帖
491
财富
334
威望
10
交易币
0
只看该作者 7楼 发表于: 2010-12-30 | 石油求职招聘就上: 阿果石油英才网
顶一下,呵呵
离线petcmg
发帖
128
财富
388
威望
0
交易币
0
只看该作者 8楼 发表于: 2011-01-01 | 石油求职招聘就上: 阿果石油英才网
楼主辛苦了
离线gqp1221
发帖
17
财富
46
威望
1
交易币
0
只看该作者 9楼 发表于: 2011-10-20 | 石油求职招聘就上: 阿果石油英才网
lihai好东西,哈哈

网站事务咨询:QQ:1392013 | 26189883
阿果石油网为免费个人网站,为石油人提供免费的在线即时技术交流场所,拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论和行为!
如有言论或会员共享的资料涉及到您的权益,请立即通知网站管理员,本站将在第一时间给予配合处理,谢谢!