未知错误,小白求助-Fortran语法讨论-专业Fortran论坛 -

Fortran Coder

查看: 61|回复: 2

[求助] 未知错误,小白求助

[复制链接]

12

帖子

4

主题

0

精华

入门

F 币
85 元
贡献
47 点
发表于 2018-7-25 23:42:54 | 显示全部楼层 |阅读模式
本帖最后由 shaoqikao100 于 2018-7-25 23:48 编辑

[Fortran] 纯文本查看 复制代码
    SUBROUTINE BIANTIAO(DI,DJ,FAIXC,FAIYC,LIC,VX,VY,DEN,STAPRE,RATE)
    IMPLICIT NONE
    INTEGER :: I,J,K,DI,DJ
    REAL(8):: DENIN = 1.293D0,STAPREIN = 85419.0D0, TOTALTEM = 330.0D0,TOTALPRE = 2500000.0D0
    REAL(8):: RGAS = 287.06D0,STAPREI,RATE,MAII,STATEMI,GAMA = 1.4D0,KK,RR
    REAL(8):: VY(0:DI,0:DJ),VX(0:DI,0:DJ),DEN(0:DI,0:DJ),STAPRE(0:DI,0:DJ),FAIXC(0:DI,0:DJ),FAIYC(0:DI,0:DJ)
    REAL(8):: LIC(0:DI,0:DJ)
    DO J= 1,DJ-1
        STAPREI = DMIN1(STAPRE(1,J),TOTALPRE)
        KK = ((GAMA-1.0D0)/GAMA)
        RR = (TOTALPRE/STAPREI)
        RATE =REAL(RR**KK)
        MAII =DSQRT((RATE-1.0D0)*2.0D0/(GAMA-1.0D0))
        STATEMI = TOTALTEM/RATE
        VY(0,J) = 0.0D0
        STAPRE(0,J) = STAPREI
        DEN(0,J) = STAPREI/(STATEMI*RGAS)
        VX(0,J) = MAII*DSQRT(GAMA*RGAS*STATEMI)
    END DO
    DO J=1,DJ-1
       DEN(DI,J) = DEN(DI-1,J)
       VX(DI,J) = VX(DI-1,J)
       VY(DI,J) = VY(DI-1,J)
       STAPRE(DI,J) = STAPREIN
    END DO
    DO I = 1,DI-1
        VX(I,DJ) = VX(I,DJ-1)-2.0D0*(VX(I,DJ-1)*FAIXC(I,DJ-1)+VY(I,DJ-1)*FAIYC(I,DJ-1))*FAIXC(I,DJ-1)/(LIC(I,DJ-1)**2)
        VY(I,DJ) = VY(I,DJ-1)-2.0D0*(VX(I,DJ-1)*FAIXC(I,DJ-1)+VY(I,DJ-1)*FAIYC(I,DJ-1))*FAIYC(I,DJ-1)/(LIC(I,DJ-1)**2)
        DEN(I,DJ) = DEN(I,DJ-1)
        STAPRE(I,DJ) = STAPRE(I,DJ-1)
    END DO
    DO I =1,DI-1
        VX(I,0) = VX(I,1)-2.0D0*(VX(I,1)*FAIXC(I,1)+VY(I,1)*FAIYC(I,1))*FAIXC(I,1)/(LIC(I,1)**2)
        VY(I,0) = VY(I,1)-2.0D0*(VX(I,1)*FAIXC(I,1)+VY(I,1)*FAIYC(I,1))*FAIYC(I,1)/(LIC(I,1)**2)
        DEN(I,0) = DEN(I,1)
        STAPRE(I,0) = STAPRE(I,1)        
    ENDDO
    
    RETURN
    END
小白求助,哪位老师帮忙看看
进入上述子程序,运行到RATE这一句之前都正常,相关参数大小见图


微信截图_20180725233206.jpg
微信截图_20180725233806.png
运行RATE这句之后,出现了这样的错误
微信截图_20180725233638.jpg
想不明白,我的语法应该没有问题啊,为什么rate就是过不去,我试了,如果改成正常的数字如24**0.2是可以的

微信截图_20180725233318.jpg
回复

使用道具 举报

36

帖子

4

主题

0

精华

熟手

超凡脱俗

F 币
232 元
贡献
130 点
发表于 2018-7-26 14:39:43 | 显示全部楼层
你的截图里是RATE =REAL(RR**K)啊
天下英雄出我辈,一入江湖岁月催。

鸿图霸业谈笑间,不胜人生一场醉。

12

帖子

4

主题

0

精华

入门

F 币
85 元
贡献
47 点
 楼主| 发表于 2018-7-26 19:40:05 | 显示全部楼层
Jackdaw 发表于 2018-7-26 14:39
你的截图里是RATE =REAL(RR**K)啊

谢谢哈,这个问题我找到了点规律了,和kk没有关系,我改了,这是当时测试的时候随手截的图,我发现我的vs好像不能设置断点来进行调试,不然就会在sqrt处和**这样表达的地方报错,不知道是什么原因,但是你正常运行是没有事的
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-8-16 18:49

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表