nanfudianchi 发表于 2012-3-5 16:44:40

子程序调试必读!大家多多支持,第一次发技术贴

学习marc很长时间了,子程序的学习用了我大部分时间,经过长时间的时间,我发现了一个代码非常好用,在调试子程序时这两句话可以使你的效率大大提高,很快定为到问题处,今天分享给大家,多多支持!!!代码如下:
      OPEN(UNIT=10,FILE='text.txt')
      WRITE(10,*) N(2)
虽然非常简单,但是非常有用!
下面介绍一下如何使用这两个代码。我想大家一看便知,这两句话的意思无非是建立一个文件,然后写入一些东西,对,就这么简单,但是在调试子程序时作用很大的~~
下面这是我做激光焊接模拟时的子程序代码,激光焊接热源模型是用高斯柱状热源和高斯面热源复合来完成的,不做解释,主要介绍那两句代码的用处。
      subroutine flux(f,temflu,N,time)
      implicit real*8 (a-h,o-z)
      dimension N(3),temflu(6)
      REAL rb,h,b,z0,r0,k,p,v,pi,ka,kb,c,ib,d
c      OPEN(UNIT=10,FILE='text.txt')
c      WRITE(10,*) N(2)
      r=sqrt((temflu(4)-v*time)**2
   &    +temflu(5)**2)
      c=abs(temflu(6))
      if((N(2).eq.3).and.r.le.r0) then
            IF(c.le.z) THEN
         ib=kb+b
                f=ib*exp(-2*r*r/(rb*rb))*exp(-h*c)
             ELSE f=0
             END IF
      else if((N(2).ne.3).and.r.lt.10*rb) then
             rb=10*rb
             f=0.7*2*p*(1-k)/(pi*rb*rb)*exp(-2*r*r/(rb*rb))
      else f=0
      end if
      RETURN
      END
如果把代码加在开头,那么通过看当前文件夹里有没有生成text.txt的文件就可以确定子程序是否编译成功。
当你想知道子程序里某个变量的数值时,就可以把N(2)换成相应的变量,这样就会在该文件里输出变量的数值。
小弟菜鸟一个,忘大侠们多多关照,第一次发技术贴,希望大家多多支持,谢谢了!!!

corehearty 发表于 2014-6-14 21:25:14

yanghongyu 发表于 2012-4-7 10:53
楼主 你能不能告诉我怎样在vs2005中调试fortran子程序啊?万分感谢

看log 文件,他会提示subroutine 哪里有问题。

nanfudianchi 发表于 2012-3-5 19:13:24

伤心呀!没人看!

ywluck 发表于 2012-3-5 22:59:27

这么好技术贴 一定要收藏 感谢LZ分享!

nanfudianchi 发表于 2012-3-6 13:57:22

为什么没有人看呢!!!难道大家都知道这个方法了!!!好失望……

xd_utopia 发表于 2012-3-7 23:00:34

楼主,你的东西还是很有用的,我最近也想把数据输出出来,不过就是不行,包括你的方法,是不是子程序有问题啊?
不过.log里面说
         This is a successful completion to an MSC.Marc
             analysis, indicating that no additional incremental data was
             found and that the analysis is complete.
那是哪里有问题呢?

xd_utopia 发表于 2012-3-7 23:10:36

是我程序有问题,谢谢楼主了,这个东西对初学者还是挺有用的

zwqbill 发表于 2012-3-9 17:43:57

说的不错。。有启发。

usher88429 发表于 2012-3-12 21:46:40

LINK : fatal error LNK1181: 无法打开输入文件ws2_32.lib

楼主能帮忙解决这个问题么~?

hanscao207 发表于 2012-3-13 16:37:54

我的是这样的问题,请楼主施以援手:fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

killera27 发表于 2012-3-24 17:05:08

支持楼主的东西 对于我们新手来说 很有用

yanghongyu 发表于 2012-4-7 10:51:35

楼主 请教您一个问题 我的子程序在调用时出现如下错误:: error #5149: Illegal character in statement label field[?]

                                                                              : error #5149: Illegal character in statement label field[?
怎么解决啊,退出号3.
我不会在vs2005中编译程序,找不到这个选项。写出字程序后直接调用的,我都是一个一个代码检查的,不知道错误在哪里。:(

yanghongyu 发表于 2012-4-7 10:53:23

楼主 你能不能告诉我怎样在vs2005中调试fortran子程序啊?万分感谢:)

bzj986328 发表于 2012-4-12 13:40:09

楼主要是真的热心的话,将在vs2005中调试fortran子程序的详细过程图,截图截下来,让我们这些菜鸟学习下!

王兆喜 发表于 2012-4-12 14:44:42

楼主,问个问题,你用的Fortran95的还是77的?有没有什么推荐的书?我是个新手,周围没有人开发子程序,我没有头绪啊!希望能指导一下?

546823810 发表于 2012-4-30 20:40:29

你好,我也在做激光焊接的模拟,我想问一下,你的材料是哪种材料?

546823810 发表于 2012-4-30 20:49:52

还有就是,楼主的子程序subroutine dflux(f,temflux,n,time),为什么论坛里的都是subroutine dflux(flux,sol,kstep,kinc,time,noel,npt,coords,jltyp,temp,press,sname),有什么区别?还有就是可否推荐一下你当初学习的相关资料

郭子歌 发表于 2012-11-13 22:16:03

546823810 发表于 2012-4-30 20:49 static/image/common/back.gif
还有就是,楼主的子程序subroutine dflux(f,temflux,n,time),为什么论坛里的都是subroutine dflux(flux,sol ...

希望交流!

郭子歌 发表于 2012-11-13 22:14:09

王兆喜 发表于 2012-4-12 14:44 static/image/common/back.gif
楼主,问个问题,你用的Fortran95的还是77的?有没有什么推荐的书?我是个新手,周围没有人开发子程序,我 ...

去看谭浩强的RORTRAN77吧简单易懂,图书馆都有的

zhuxianglouis 发表于 2013-1-4 15:24:42

谢谢楼主!

cxwzygx 发表于 2013-1-11 15:04:31

子程序还没研究,先收藏了,谢谢
页: [1] 2
查看完整版本: 子程序调试必读!大家多多支持,第一次发技术贴