24小时热门版块排行榜    

查看: 1548  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

nwpusolid

铁虫 (正式写手)

[求助] 再问一段fortran代码

关于一段fortran的子例程子程序
SUBROUTINE UCP(DECRA,DESWA,STATEV,SERD,EC0,ESW0,P,QTILD,
        1  TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
        2  COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
.......
.......
.......
           GOTO 100
............
.........
100        RETURN
        END
请问大家,这段程序中,goto语句 转到 标号100位置后,执行 returan语句,
程序返回开始位置 还是结束呢??谢谢大家
回复此楼

» 猜你喜欢

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

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

nwpusolid

铁虫 (正式写手)

引用回帖:
2楼: Originally posted by btx97 at 2013-06-16 05:23:02
return语句表示子程序运行结束。

那么为什么一定要goto语句呢,既然是结束语句,直接将goto换成returen可以吗?
5楼2013-06-16 13:21:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nwpusolid

铁虫 (正式写手)

引用回帖:
4楼: Originally posted by nono2009 at 2013-06-16 07:45:57
RETURN表示结束这个子程序,回到调用这个子程序的上一级程序。

那么为什么一定要goto语句呢,既然是结束语句,直接将goto换成returen可以吗?
6楼2013-06-16 13:21:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nwpusolid

铁虫 (正式写手)

引用回帖:
3楼: Originally posted by wangfeidd at 2013-06-16 06:10:11
reture 是回到程序开始处

开始处是什么意思?是继续继续子程序还是就回到主程序??
7楼2013-06-16 13:22:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nwpusolid

铁虫 (正式写手)

引用回帖:
4楼: Originally posted by nono2009 at 2013-06-16 07:45:57
RETURN表示结束这个子程序,回到调用这个子程序的上一级程序。

把源代码给您看看,这里goto语句用的真的不好吗?
        SUBROUTINE UCP(DECRA,DESWA,STATEV,SERD,EC0,ESW0,P,QTILD,
        1  TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
        2  COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
        INCLUDE 'ABA_PARAM.INC'
C
        CHARACTER*80 CMNAME
C
        DIMENSION DECRA(5),DESWA(5),STATEV(*),PREDEF(*),DPRED(*),
        1  TIME(2),COORDS(*)
C
C        DEFINE CONSTANTS
C
        AA=0.009
        DD=70.0
        AIWA=0.0
        BB=0.001
        QQ=10000.0
        RT=8.314
        XX_sat=8.0
        miu=7.0
        omig=0.015
        NN=1.2
        YY=0.1
C
c    set initial RR, XX
c
        IF(KSTEP.EQ.1.AND.KINC.EQ.1) THEN
        STATEV(4)=2.0
        STATEV(3)=0.0
        ENDIF
        IF(KSTEP.GE.2.AND.KINC.EQ.1) THEN
        STATEV(4)=STATEV(4)+YY/STATEV(3)
        ENDIF
        IF(KINC.EQ.1) THEN
        STATEV(1)=STATEV(4)
        STATEV(2)=0.0
        ENDIF
c
c     set FLAG_SIGN (elastic or inelastic)
c
        IF(KINC.EQ.1) THEN
        FLAG_SIGN=0
        ENDIF
c
        RR=STATEV(1)
        XX=STATEV(2)
c
        KK=1.5**0.5*(QTILD-AIWA)-RR
        IF(KK.LT.0) THEN
        DECRA(1)=0
        DECRA(5)=0
        FLAG_SIGN=1
        GOTO 100
        ELSE
        SV=KK
        DFSV=1.5**0.5
        END IF
c
        IF(FLAG_SIGN.EQ.0) THEN
        GOTO 100
        ENDIF

c
c         calculat inelastic strain rate
c
        DECRA(1)=1.5**0.5*AA*(SV/DD)**NN*EXP(BB*(SV/DD)**(NN+1))
     1         *EXP(-QQ/(RT*TEMP))*DTIME
        IF(LEXIMP.EQ.1) THEN
          DECRA(5)=1.5**0.5*AA*NN*(SV/DD)**(NN-1)*(1/DD)*DFSV
     2                 *EXP(BB*(SV/DD)**(NN+1))*EXP(-QQ/RT*TEMP)*DTIME
     3           +1.5**0.5*AA*(SV/DD)**NN*EXP(BB*(SV/DD)**(NN+1))
     4           *BB*(NN+1)*(SV/DD)**NN
        5           *(1/DD)*DFSV*EXP(-QQ/(RT*TEMP))*DTIME
        END IF
c
c          calculat XX
c
        CR_rate=DECRA(1)/DTIME
        XX_rate=miu*CR_rate*(XX_sat-XX)
        XX=XX+XX_rate*DTIME
        STATEV(2)=XX
        STATEV(3)=STATEV(3)+XX_rate*DTIME
        STATEV(1)=STATEV(4)+XX_rate*(1-omig)
c
100        RETURN
        END
13楼2013-06-16 18:16:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nwpusolid

铁虫 (正式写手)

引用回帖:
14楼: Originally posted by nono2009 at 2013-06-16 19:15:48
首要是程序运行正确,至于程序写的是否漂亮是其次的。...

你好,想像您提问一个问题,我能否再subroutine子程序利用文件操作,(因为这个子程序是被主程序多次调用的)每调用一次子程序将子程序的一些重要变量就写入到文件,我只知道一些简单的write函数和文件打开的open函数,你能帮帮我吗?这个假想合理吗?能实现吗?
15楼2013-06-16 21:51:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nwpusolid

铁虫 (正式写手)

引用回帖:
16楼: Originally posted by nono2009 at 2013-06-17 06:27:01
subroutine子程序中可以操作文件。我已经10多年没有自己写程序了,帮不了你。...

好吧,谢谢
17楼2013-06-17 10:55:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 nwpusolid 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 论文已接收,但发现修改稿传的是旧版该怎么办? +3 zsq54321 2024-06-15 6/300 2024-06-17 19:45 by wjykycg
[基金申请] F口信息学部拿面上,大概需要什么样的成果 +6 _奋黎_ 2024-06-16 8/400 2024-06-17 19:31 by guoer713108
[找工作] 初始合伙人来啦!(生物试剂耗材标准品) +11 欢快的小科研人 2024-06-15 21/1050 2024-06-17 18:47 by 欢快的小科研人
[基金申请] 我标书代码变了 +44 学员NHuqdk 2024-06-16 58/2900 2024-06-17 17:39 by wenfengw83
[基金申请] 化学会年会改成一年开一次了? +6 babu2015 2024-06-12 14/700 2024-06-17 14:41 by 我想更懂你29
[催化] 镍负载氧化铝的保存问题 8+3 lwn0130 2024-06-15 4/200 2024-06-17 10:48 by adaihao
[硕博家园] 博士毕业高校和就业的相关问题 +6 SCITOPPP 2024-06-14 10/500 2024-06-17 10:08 by SCITOPPP
[找工作] 成都产品质量检测研究院 200+3 鲸鱼663 2024-06-11 10/500 2024-06-17 08:31 by yudaoqian88
[论文投稿] 二审返修送审10天了,原来一审的3个审稿人只有2个接受了审稿,会邀请新审稿人么? 50+3 huanpo116 2024-06-15 5/250 2024-06-16 10:27 by bobvan
[考博] 上海交大招收材料化学方向科研助理/“申请考核”博士(已招满) +3 灵梦and紫 2024-06-12 4/200 2024-06-15 20:58 by 1822836277
[论文投稿] 求机械类四区sci推荐 5+3 迷茫小旷 2024-06-14 4/200 2024-06-15 11:25 by bobvan
[基金申请] 博后基金,以往的结果点不开,怎么回事呢?最后一次机会了,两次都没中前面。 +7 kyukitu 2024-06-14 13/650 2024-06-15 06:46 by 我是王小帅
[基金申请] 面上基金有一个(两个)C是不是就没戏了.... 5+3 zzzm116 2024-06-13 17/850 2024-06-14 22:26 by lzt8076
[基金申请] E12面上申请 +4 汉风之遗 2024-06-13 4/200 2024-06-14 15:28 by 天外飞去来
[硕博家园] 关于硕博连读的一些疑问? +4 Lwenter 2024-06-14 4/200 2024-06-14 14:32 by ou0551
[基金申请] 工材E10口函评结束了吗 10+3 我1的飞翔 2024-06-13 5/250 2024-06-14 06:35 by nono2009
[论文投稿] 投稿后发现其他作者的邮箱填错了该怎么办呀 10+4 在飞的猪 2024-06-13 6/300 2024-06-14 04:45 by 小虫子咔咔
[硕博家园] 科研求助 +5 杲www 2024-06-12 6/300 2024-06-13 16:16 by 姓李名明
[硕博家园] 机械研究生如何拿到年薪40+w +13 阿巴阿巴哦哦 2024-06-11 15/750 2024-06-13 15:40 by 113745685
[硕博家园] 申博 +3 悦悦小小鱼 2024-06-12 3/150 2024-06-12 15:11 by chen5805
信息提示
请填处理意见