24小时热门版块排行榜    

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

zmoyanyu

铜虫 (正式写手)

[求助] 求高手帮忙解答这个程序问题已有1人参与

没有提示warning,也没有提示error,但是运行的时候,却说触发了一个断点,让选择继续或中断,选择继续后,根据得不到想要的数据。这到底怎么回事呢?求高手帮忙看看,不胜感激


subroutine bohanshu(n,bhs,energy)
IMPLICIT NONE
!+++++++++++++++++++++++++++++++++++++++++++++++声明
integer,parameter::num=10    !num1代表n,n表示第n个态
integer,parameter::num1=100   !num2代表x,即坐标
real, parameter::pi=3.14
real::bhs(num,num1)     !放波函数的数组
real::energy(num)       !存放能量本征值得数组
integer::n  
real::x,a   
real ::xx
real ::dx     
integer:: j

!++++++++++++++++++++++++++++++++++++++++++++++++赋值
xx=2.0                      !空间宽度
dx=xx/num1
a=1.50                      !势阱宽度

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++运算

do n=1,num     !++++++++++++++++++++++++++++n循环
   energy(n)=pi**2*(n**2)/(2*a**2)
  do j=1,num1   !+++++++++++++++++++++++++++x循环
     x=dx*j
     bhs(n,j)=sqrt(2/a)*sin(n*pi*x/a)
   end do
end do

return
end


!******************************************************求微扰矩阵Hnk以及exp(energy(n)-energy(k))*t的子程序



program bobo
IMPLICIT NONE
!+++++++++++++++++++++++++++++++++++++++++++++++声明
integer,parameter::num=10       !在该程序中选取的最高能量本征态对应的量子数
integer,parameter::num1=100     !位置的份数
integer,parameter::num2=200     !时间的份数
real ,parameter::pi=3.14
real::H                           !哈密顿量中的微扰部分
real::bhs(num,num1)           !放波函数的数组
real::WRJZnk(num)               !存放微扰矩阵的数组
real::energy(num)             !存放能量本征值的数组
complex::Wnk(num,num2)                !用来存放exp(energy(n)-energy(k))*t的数组
complex::b                       !虚数单位i
real::x                          !位置变量
real::xx                         !能到达的最大位置
real ::dx                        !表示位置的变化
integer::k                       !第k个态的量子数
integer n                        !是第n个态的量子数,同时也是能量的循环指标
integer ::j                      !位置循环指标
integer::i                       !时间循环指标
real::t                          !时间
real::tx                         !微扰作用在系统上的截止时间
real::dt                          !数值模拟的时间间隔
!++++++++++++++++++++++++++++++++++++++++++++++++赋值
tx=10.0
xx=2.0
H=1.105   !微扰
!k=4                        !代表初始状态为第4个能量本征态
dx=xx/num1                 !位置的数值间隔
dt=tx/num2                 !时间的数值间隔
b=(0,1)
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++运算

open(unit=60,file='WRJZnk.txt')
open(unit=70,file='Wnk.txt')
call bohanshu(n,bhs,energy)

do  n=1,num            !#################################################################################能量循环
     do j=1,num1       !#################################################################################位置循环
     WRJZnk(n)=WRJZnk(n)+bhs(n,j)*H*bhs(k,j)*dx          !###########################################################计算出了Hnk
     end do
     write(60,*)WRJZnk(n)
end do

do n=1,num             !################################################################################能量循环
   do i=1,num2         !################################################################################时间循环
   t=i*dt
   Wnk(n,i)=exp(b*(energy(n)-energy(k))*t)
   
   write(70,*)Wnk(n,i)
   end do
end do


end  program bobo
回复此楼

» 猜你喜欢

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

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

zmoyanyu

铜虫 (正式写手)

引用回帖:
2楼: Originally posted by wxws.2008 at 2015-12-29 20:41:09
没看代码,是不是有除数为0或者底数为负数的情况

后来发现其实是调用子函数出错了
4楼2016-01-09 09:26:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

wxws.2008

木虫 (正式写手)

没看代码,是不是有除数为0或者底数为负数的情况

发自小木虫Android客户端
2楼2015-12-29 20:41:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FortranDrYu

新虫 (初入文坛)

【答案】应助回帖

你在编译后的debug文件夹下运行*.exe文件试一下。要把需要读取的文件一起放到debug文件夹下。不要用编译器的运行按钮运行。
3楼2016-01-01 20:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见