| 查看: 267 | 回复: 0 | ||
[求助]
麻烦大家帮忙看看这个程序错在哪里了
|
|
program bhs !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++声明 implicit none integer,parameter::Num=10 !能量的格点数 integer,parameter::Num1=100 !位置的格点数 real::bhs(Num,Num1) !存放波函数的数组 real::bhs1(Num,Num1) !存放波函数的中间过渡数组 real::energy(Num) !存放能量本征值的数组 integer::n !既是本征态量子数,又是能量循环指标 integer::c ! denote 2 real::w !谐振子的振动频率 real::x !表示位置的变量 real::xx !位置的最大值 real::dx !数值模拟的位置间隔 real::kjc(1) !k的阶乘 real::efkjc(1) !二分之k的阶乘 integer::j !位置循环指标 integer::i !厄密多项式项数循环指标 integer::k !n取一定值时,波函数的项数由第项叠加至第n项的循环指标 integer::g !用来求k的阶乘,以及二分之k的阶乘的循环指标 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++赋值 xx=4.0 dx=xx/Num1 w=2.0 c=2 open(unit=60,file='bhs.txt') open(unit=70,file='energy.txt') !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++运算 ! do j=1,Num1=100 !x=j*dx !bhs(0,j)=exp((-1.0/2.0)*x**2) !end do energy(0)=(1.0/2.0)*w do j=1,Num1 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++the loop of station energy(n)=(n+1.0/2.0)*w x=j*dx do n=1,Num !++++++++++++++++++++++++++++++++++++++++++++++++++++++++the loop of energy if (n%c==0) then do k=1,n !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++the loop of k do g=1,k !++++++++++++++++++++++++++++++++++++++++++++++++++++++++the loop of g kjc(0) =kjc(0)*g efkjc(0)=efkjc(0)*(g/2.0) end do !+++++++++++++++++++++++++++++++++++++++++++++++++++++++end g bhs1(k,j)=exp((-1.0/2.0)*x**2)*((-1)**(n/2.0)*kjc(0)*(2x)**(n-2*(n/2.0))/efkjc(0)) bhs1(n,j)=bhs1(n,j)+bhs1(k,j) kjc(0)=0.0 efkjc(0)=0.0 end do !++++++++++++++++++++++++++++++++++++++++++++++++++++++end k bhs(n,j)=bhs1(n,j)+exp((-1.0/2.0)*x**2) end if !bhs(0,j)=exp((-1.0/2.0)*x**2) if (n%c==1)then do k=1,n do g=1,k kjc(0)=kjc(0)*g efkjc(0)=efkjc(0)*(g/2.0) end do bhs1(k,j)=exp((-1.0/2.0)*x**2)*((-1)**((n-1)/2.0)*kjc(0)*(2x)**(n-2*((n-1)/2.0))/efkjc(0)) bhs1(n,j)=bhs1(n,j)+bhs(k,j) kjc(0)=0.0 efkjc(0)=0.0 end do bhs(n,j)=bhs1(n,j)+exp((-1.0/2.0)*x**2) end if end do !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++end the loop of energy end do !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++end the loop of station do n=1,Num do j=1,Num1 write(60,*)bhs(n,j) write(70,*)energy(n) end do end do close(60) close(70) end program |
» 猜你喜欢
基金申报
已经有6人回复
存款400万可以在学校里躺平吗
已经有6人回复
推荐一本书
已经有13人回复
拟解决的关键科学问题还要不要写
已经有5人回复
基金委咋了?2026年的指南还没有出来?
已经有9人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复











回复此楼