24小时热门版块排行榜    

查看: 2204  |  回复: 12

霹雳旋风

荣誉版主 (著名写手)

[求助] 求高人帮忙看一下我这个Fortran程序的错误出在哪里?

程序代码如下:


    program ganeiliwucha
                implicit none
        External FS
        Integer I,L,N
        Dimension X(2),Y(2),C(2)
        Double Precision X, Y, EPS,C
        open (2000, file='test.dat', status='old' )
        Data X/0.00,0.01/
           EPS=1.0E-06
        CALL DSNSE(2,EPS, X, Y, FS, L)
        IF(L.GT.0)then
       C(1)=cos(X(2))/sin(X(1)+X(2))*tan(20.0/180*3.14)-1.0   ! AC杆的内力误差
    C(2)=cos(X(1))/sin(X(1)+X(2))*sin(20.0/180*3.14)-1.0   ! BC杆的内力误差
        do I=1,2
    write(2000,*) X(I)
        end do
    end IF
        close(2000)
        end

        SUBROUTINE DSNSE(N,EPS,X,Y,FS,L)
        DIMENSION X(N),Y(N)
        DOUBLE PRECISION X,Y,F,D,S
        L=500
5        CALL FS(X,N,F,Y)
        IF (F.GE.EPS) THEN
          L=L-1
          IF (L.EQ.0) RETURN
          D=0.0
          DO 20 J=1,N
20          D=D+Y(J)*Y(J)
          IF (D+1.0.EQ.1.0) THEN
            L=-1
            RETURN
          END IF
          S=F/D
          DO 30 I=1,N
30          X(I)=X(I)-S*Y(I)
          GOTO 5
        END IF
        RETURN
        END

    SUBROUTINE FS(X, N, F, Y)
        DIMENSION X(N), Y(N)
        Double precision X,Y,F,F1,F2,DF1,DF2,A,B
          A=20.0/180*3.14                           
          K=0.5
          F1=X(1)+X(2)-cos(A)
          F2=sin(X(1))*cos(A)*(1+K*cotan(A))+SIN(X(2))*(1.0-K/sin(A))-cos(A)
          F=F1*F1+F2*F2
          DF1=1.0
          DF2=cos(X(1))*cos(A)*(1+K*cotan(A))
          Y(1)=2.0*(F1*DF1+F2*DF2)
          DF1=1.0
          DF2=COS(X(2))*(1.0-K/sin(A))
          Y(2)=2.0*(F1*DF1+F2*DF2)
    RETURN
        END

  程序编译通过,但是出现计算数据无法输出的问题,请高手帮忙看一下。不胜感激。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢应助 2012-02-20 01:39:45
open (2000, file='test.dat', status='old' )
write(2000,*) X(I)
write 2000这样写是不是有问题呢?
2楼2012-02-19 09:17:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haizhfly

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢应助 2012-02-20 01:39:55
open (2000, file='test.dat', status='old' )
write(2000,*) X(I)

status='old'  要求输出文本 test.dat是已经存在的文件,删去这一文件状态控制语句试一下看,个人觉得最大问题在这里
3楼2012-02-19 11:21:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霹雳旋风

荣誉版主 (著名写手)

引用回帖:
: Originally posted by haizhfly at 2012-02-19 11:21:31:
open (2000, file='test.dat', status='old' )
write(2000,*) X(I)

status='old'  要求输出文本 test.dat是已经存在的文件,删去这一文件状态控制语句试一下看,个人觉得最大问题在这里

这个我已经调试过。文件能编译完,也能运行,就是没有输出结果。
4楼2012-02-19 19:48:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygl820

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
霹雳旋风(金币+10): 谢谢 2012-02-21 10:29:01
按你的意思,将文件test.dat作为输出了,运行完成后后,打开它。fortran文件操作性不强,看看test.dat是否只读。
5楼2012-02-21 10:24:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霹雳旋风

荣誉版主 (著名写手)

引用回帖:
: Originally posted by ygl820 at 2012-02-21 10:24:17:
按你的意思,将文件test.dat作为输出了,运行完成后后,打开它。fortran文件操作性不强,看看test.dat是否只读。

也不是只读。运行可以就是没有输出数据。急死我了。
6楼2012-02-21 10:28:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygl820

至尊木虫 (知名作家)

运行后,test.dat生成了没有。
7楼2012-02-21 10:31:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霹雳旋风

荣誉版主 (著名写手)

引用回帖:
: Originally posted by ygl820 at 2012-02-21 10:31:22:
运行后,test.dat生成了没有。

运行后,生成了test.dat
8楼2012-02-22 13:05:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

余泽成(金币+1): 谢谢参与应助! 2012-02-25 04:29:52
这个程序用 gfortran 没有办法编译,显示 cotan 未定义……

你这个 test.dat 是空的很正常啊,说明 L .LE. 0 啊,呵呵……
9楼2012-02-23 13:54:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霹雳旋风

荣誉版主 (著名写手)

引用回帖:
: Originally posted by snoopyzhao at 2012-02-23 13:54:41:
这个程序用 gfortran 没有办法编译,显示 cotan 未定义……

你这个 test.dat 是空的很正常啊,说明 L .LE. 0 啊,呵呵……

谢谢楼上,
程序中的cotan() 的含义是求角度的余切值呀。请高人指点哦。
10楼2012-02-23 19:37:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 霹雳旋风 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 朋友圈看到的 +4 wangzilk 2026-08-18 4/200 2026-08-18 18:31 by Niubile666
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳变了,能看出什么问题? +8 基诺咪客 2026-08-17 11/550 2026-08-18 17:13 by 悠然熊猫
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +50 医学老男孩 2026-08-13 109/5450 2026-08-18 16:56 by 医学老男孩
[基金申请] 重要消息,中午系统在维护 +9 yuleib84 2026-08-18 10/500 2026-08-18 16:52 by archvillain
[教师之家] 两姐妹,一个辛辛苦苦30岁工作当大学教师,另一个23岁就工作当开车教练 +3 瞬息宇宙 2026-08-11 7/350 2026-08-18 16:42 by LNP@mRNA
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +4 Tide man 2026-08-14 5/250 2026-08-18 11:35 by Tide man
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
信息提示
请填处理意见