Fortran Coder

查看: 1910|回复: 2
打印 上一主题 下一主题

[求助] 论文需要fortran出数据,问题不知道怎么解决,求助...

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
8 点
跳转到指定楼层
楼主
发表于 2023-2-21 23:59:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本人是学生党,写论文需要出数据,刚开始接触fortran ,程序显示没有错误,但是运行到最后,就出现了这样。求助各位大神。

程序本身是这样的
!变荷载和温度下多元复合地基

implicit none
real rw,re,rs,H,Th1,Ew,Es        !尺寸参数
real a,b,T
real kh,kw,ks              !渗透性参数
real s,n,Y,C1,C2,Th                                     !压缩模量
real F,F1,F2,F3,M
real Fa,Tm1,Tm2,Tm3,Tm
real Pi                       !定义圆周率pai
real U                        !平均固结度
integer mm,mmE                !mm--循环变量,mmE--循环中止数
integer NN                    !为ut累积控制变量
real temp,utemp
!定义数组
real ut
dimension ut(0:100)

!打开数据文件
open(16,file='Input.dat',status='old')   
!读入数据
read(16,*) rw,re,rs,H,Th1
read(16,*) a,b,T
read(16,*) kh,kw,ks
read(16,*) Ew,Es

write(*,*) rw, re, rs,H,Th1
write(*,*) a,b,T
write(*,*) kh,kw,ks
write(*,*) Ew,Es
pause

!参数计算部分
Pi=3.141592654
n=re/rw
s=rs/rw
Y=Ew/Es
F1=(log(n/s)+(kh/ks)*log(s)-0.75)*(n*n/(n*n-1))
F2=(1-kh/ks)*(1-(s*s)/(4*n*n))*(s*s)/(n*n-1)
F3=(kh/ks)*(1/(n*n-1))*(1-1/(4*n*n))
F=F1+F2+F3


Th=0.0001

10 IF (Th.LE.100) THEN
      temp=0.0
          utemp=0.0
          U=0.0
          mmE=100

  IF (Th.LE.Th1) THEN
          DO mm=1,mmE
              ! temp=0.0
                                          
                   M=(2.0*mm-1.0)*Pi/2.0
                   C1=1/(a*T+b)
                   C2=(a*T+b)
Tm1=(4*kw*(n*n-1+Y)*C2)/(kh*n*n*(n*n-1))
Tm2=(H*H*C2)/(M*M)
Tm3=(F*re*re*kw)/(2.0*n*n*kh)
Tm=Tm1/(Tm2+Tm3)                !就是tao m

temp=1.0/(Tm*Th1)*2.0/(M*M)*(1-exp(-Tm*Th))
utemp=utemp+temp
          ENDDO
U=Th/Th1-Utemp       !原

         ELSEIF (Th.GE.Th1)        THEN
            DO mm=1,mmE
                   M=(2.0*mm-1.0)*Pi/2.0
Tm1=(4*kw*(n*n-1+Y)*C2)/(kh*n*n*(n*n-1))
Tm2=(H*H*C2)/(M*M)
Tm3=(F*re*re*kw)/(2.0*n*n*kh)
Tm=Tm1/(Tm2+Tm3)                !就是tao m
         temp=1.0/(Tm*Th1)*(2.0/(M*M))*(exp(Tm*(Th1-Th))-exp(-Tm*Th))
                 Utemp=Utemp+temp
ENDDO
               U=1.0-Utemp
ENDIF      
          !打开输出文件
          open(16,file='Output.dat',status='Old')
          write(16,*) Th,U

          IF (Th.LT.0.001) THEN                                       
                        Th=Th+0.0001
                        goto 10                                 
          ELSEIF(Th.LT.0.01) THEN
             Th=Th+0.001
                        goto 10         
          ELSEIF(Th.LT.0.1) THEN
                        Th=Th+0.01
                        goto 10         
          ELSEIF(Th.LT.1.0) THEN
                        Th=Th+0.1
                        goto 10       

          ELSEIF(Th.LT.10) THEN
                        Th=Th+1
                        goto 10          
          ELSE
                    Th=Th+10
          ENDIF
          GOTO 10
   ENDIF

END     ! 程序结束符号

08B83F72-3681-4189-A61B-FE4DF6A9BCAD.png (7.08 KB, 下载次数: 140)

出现的错误

出现的错误
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
8 点
沙发
 楼主| 发表于 2023-2-22 00:04:56 | 只看该作者
此帖仅作者可见

使用道具 举报

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

板凳
发表于 2023-2-22 22:54:35 | 只看该作者
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-26 10:36

Powered by Tencent X3.4

© 2013-2024 Tencent

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