24小时热门版块排行榜    

查看: 10996  |  回复: 157
本帖产生 1 个 程序强帖 ,点击这里进行查看

jihe01

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
微尘、梦想(金币+2): 谢谢回贴交流…… 2011-04-19 15:13:08
看了maomao1210开的这个帖子,很受启发,对Fortran学习帮助很大。有个程序问题请教一下,这是网上一个产生随机数的程序,用95编写的,当我在调用FUNCTION时(用6.6版本),出现Access volidation错误,问题出在11 continue后面一行  IDUM=1.0上,但我不明白什么原因,请帮忙看一下,谢谢!


FUNCTION RAN1(IDUM)


      DIMENSION R(97)                                         
      PARAMETER(M1=259200,IA1=7141,IC1=54773,RM1=1./M1)
      PARAMETER(M2=134456,IA2=8121,IC2=28411,RM2=1./M2)
      PARAMETER(M3=243000,IA3=4561,IC3=51349)
      
          DATA IFF/0/

      IF(IDUM.LT.0.OR.IFF.EQ.0) THEN
        IFF=1
        IX1=MOD(IC1-IDUM,M1)
        IX1=MOD(IA1*IX1+IC1,M1)
        IX2=MOD(IX1,M2)
        IX1=MOD(IA1*IX1+IC1,M1)
        IX3=MOD(IX1,M3)

        DO 11 J=1,97
        IX1=MOD(IA1*IX1+IC1,M1)
        IX2=MOD(IA2*IX2+IC2,M2)
        R(J)=(real(IX1)+real(IX2)*RM2)*RM1
   11   CONTINUE
        IDUM=1.0
      ENDIF

      IX1=MOD(IA1*IX1+IC1,M1)
      IX2=MOD(IA2*IX2+IC2,M2)
      IX3=MOD(IA3*IX3+IC3,M3)
      J=1+(97*IX3)/M3
      IF(J.GT.97.OR.J.LT.1)PAUSE
      RAN1=R(J)
      R(J)=(real(IX1)+real(IX2)*RM2)*RM1

      RETURN
      END function
101楼2011-04-11 15:24:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

★ ★
微尘、梦想(金币+2): 谢谢回复! 2011-04-19 15:13:35
引用回帖:
Originally posted by jihe01 at 2011-04-11 15:24:00:
看了maomao1210开的这个帖子,很受启发,对Fortran学习帮助很大。有个程序问题请教一下,这是网上一个产生随机数的程序,用95编写的,当我在调用FUNCTION时(用6.6版本),出现Access volidation错误,问题出在11 ...

我刚测试了一下(用的是你说的vf6.6),结果一切都不错,估计程序不是出现这个函数中吧,是你操作有问题,或者其他模块的程序有问题。打开资源管理器,把相应的exe关掉,再运行一下,看是否还会出现类似的错误。
102楼2011-04-11 15:52:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jihe01

木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
dubo(金币+1): 欢迎讨论 2011-08-27 16:39:20
谢谢maomao的测试,可能确实不是这个function的问题,可能是其他程序调用的问题,这个程序有点复杂,我是从网上下的,是关于MCMC方法计算的,当我调试时,总是到这个地方出现措施(IDUM=1)。附件是原程序和错误提示,请看一下,谢谢。
103楼2011-04-11 19:57:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qwer_2009

铜虫 (小有名气)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 欢迎常来程序语言版,鼓励新虫多发话题! 2011-04-19 15:15:09
program main
implicit none
type node
real x   !设置随机数
type(node),pointer::next
end type
type(node),pointer::head,q,p
real rand
integer i,j
integer::m=0,n=0


call random_seed( )
nullify(head)


do i=1,10
call random_number(rand)
allocate(q)
q%x=rand
q%next=>head
head=>q
end do

q=>head
do while(associated(q))
print*,q%x
q=>q%next
end do

!判断是否大于0.50
q=>head

do while(associated(q))


if(q%x<0.50.and.associated(q,head))then
n=n+1  !判断小于0.5的个数
head=>q%next
deallocate(q)
q=>head
else if(q%x<0.50.and..not.associated(q,head))then
n=n+1
p=>q%next
deallocate(q)
q=>p
else
m=m+1
q=>q%next
end if

end do


write(*,*) "大于0.5的个数m=", m
write(*,*) "小于0.5的个数n=", n

!输出大于0.5的数
q=>head
do while(associated(q))

print*,q%x
q=>q%next
end do

end

请大家帮忙看看这个程序问题出在哪里了,在输出m和n的值时还是正确的,为什么加上最后几句 显示大于0.5的数时就会无限循环下去,而且得到的结果还是错误的呢,谢谢
104楼2011-04-19 11:06:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abc__1203

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖
可否提供一段Fortran调用MATLAB函数的实例程序
例如想调用MATLAB里边的besselj函数
谢谢!
105楼2011-05-16 21:29:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

suxingtao

铁杆木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 欢迎讨论 2011-08-27 16:40:22
我有个Fortran插值问题,http://muchong.com/bbs/viewthread.php?tid=3305448&fpage=1,向您请教!
106楼2011-06-16 14:43:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿水哥王

铜虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 欢迎讨论 2011-08-27 16:40:11
楼主你好  我目前在算一个球星量子点矩阵的本征值和本征矢  我想问下这个矩阵元的积分里怎样编译这个沿径向函数的积分元
沉默越久 爆发越大
107楼2011-06-20 15:42:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shaofain

铁虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+1): 感谢参与 2011-08-01 17:02:39
楼主你好:能不能推荐一个关于fortran工程算法的网站或是书?谢谢
108楼2011-08-01 15:24:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anshenyu

铜虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 欢迎讨论 2011-08-27 16:39:57
请教下fortran能不能处理这样的矩阵代数方程?
P=(I-PH^TH/r)(APA^T+BB^Tq)
其中大写字母均代表矩阵
109楼2011-08-25 16:19:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+1): 鼓励发帖交流~ 2011-09-07 11:54:33
本帖仅楼主可见
110楼2011-09-05 09:23:29
已阅   申请程序强帖   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 maomao1210 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见