24小时热门版块排行榜    

查看: 1272  |  回复: 13
【悬赏金币】回答本帖问题,作者夕阳西下将赠送您 20 个金币

夕阳西下

金虫 (著名写手)

[求助] 程序无法运行怎么回事

program L
implicit none
integer,parameter:: nx=100,nt=100,p=2,te=5,E=2
integer:: i,j
real v

real:: ne(x,t)
real:: n0=5E+2,m=2.1,q=0.6E-19,k=0.514E-9,R=50.0,me=1.2E-3
v=n0*k

x=0.0
t=0.0
do i=1,nx
  x=x+i*0.02
  do j=1,nt
  t=t+j*0.01
  ne(0,0)=0.6E-19
ne(x+i*0.02,t+(j+1)*0.01)=-25*te/(me*v)*ne(x+(i+1)*0.02,t+j*0.01)+(1+50*te/(me*v))*ne(x+i*0.02,t+j*0.01)-25*te/(me*v)*ne(x+(i-1)*0.02,t+j*0.01)
  
open (unit=10,file="1.txt"
write (10,*) ne(x,t)

  end do
end do

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

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助!欢迎常来程序语言版! 2012-03-04 01:31:56
fortran的东东我都忘了,哈哈,只是楼主写程序的时候,风格很差,难读。

可以一步一步自己测试的,不会用debug工具的话,可以用print 屏幕输出; 如果,编译通不过的,那就摸着石头过河,注释掉不确定的,从程序头部开始慢慢往下测。
很女子很弓虽大
2楼2012-02-20 16:54:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助! 2012-03-04 01:32:09
你这个程序中有太多的错误,先根据编译器的提示进行修改……

举个例子:
real:: ne(x,t)
中的 x,t 都不是常数,那么,你的 ne 的定义就是错误的
ne(0,0)=0.6E-19
默认情况下数组的下标是从 1,1 开始的……
ne(x+i*0.02,t+(j+1)*0.01)=
下标不能是实数,只能是整数……
等等……
3楼2012-02-23 14:09:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

引用回帖:
3脗楼: Originally posted by snoopyzhao at 2012-02-23 14:09:20:
脛茫脮芒赂枚鲁脤脨貌脰脨脫脨脤芦露脿碌脛麓铆脦贸拢卢脧脠赂霉戮脻卤脿脪毛脝梅碌脛脤谩脢戮陆酶脨脨脨脼赂脛隆颅隆颅

戮脵赂枚脌媒脳脫拢潞
real:: ne(x,t)
脰脨碌脛 x,t 露录虏禄脢脟鲁拢脢媒拢卢脛脟脙麓拢卢脛茫碌脛 ne 碌脛露篓脪氓戮脥脢脟麓铆脦贸碌脛
ne(0,0)=0.6E-19
脛卢脠脧脟茅驴枚脧脗脢媒脳茅碌脛脧脗卤锚脢脟麓脫 1,1 驴陋脢录碌脛隆颅隆颅 ...

ne(x,t)脠莽鹿没卤铆脢戮碌脛脢脟潞炉脢媒鹿脴脧碌脛脴拢驴脪虏戮脥脢脟脣碌ne鹿脴脫脷x,t碌脛潞炉脢媒拢卢赂脙脭玫脙麓露篓脪氓ne?
4楼2012-02-23 23:33:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


余泽成(金币+1): 谢谢参与应助! 2012-03-04 01:32:27
引用回帖:
4脗楼: Originally posted by 脧娄脩么脦梅脧脗 at 2012-02-23 23:33:50:
ne(x,t)脠莽鹿没卤铆脢戮碌脛脢脟潞炉脢媒鹿脴脧碌脛脴拢驴脪虏戮脥脢脟脣碌ne鹿脴脫脷x,t碌脛潞炉脢媒拢卢赂脙脭玫脙麓露篓脪氓ne?

脛脟脛茫脪陋脨麓脙梅脕陆脮脽脢脟脡露鹿脴脧碌拢卢卤脠脠莽

ne = a * x + b * t

驴脡脪脭脫脙脪禄赂枚碌楼露脌碌脛潞炉脢媒脌麓脨麓隆颅隆颅
5楼2012-02-24 08:46:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

引用回帖:
5脗楼: Originally posted by snoopyzhao at 2012-02-24 08:46:54:
脛脟脛茫脪陋脨麓脙梅脕陆脮脽脢脟脡露鹿脴脧碌拢卢卤脠脠莽

ne = a * x + b * t

驴脡脪脭脫脙脪禄赂枚碌楼露脌碌脛潞炉脢媒脌麓脨麓隆颅隆颅

脗茅路鲁脛茫掳茂脦脪驴麓驴麓脮芒赂枚鲁脤脨貌隆拢 fin.txt  脢盲脠毛路陆鲁脤脧碌脢媒
脫娄赂脙脭玫脙麓脢盲脠毛脛脴拢驴脦脪脮芒脩霉脢盲脠毛脭玫脙麓虏禄露脭脛脴拢驴脳脺脢脟脤谩脢戮麓铆脦贸A(n,n)
-5 11 -5 -1 0 0 0
0  0  0  -5 11 -5
0  0  0  0  0  0  
-5 11 -5 -1 0 0
0  0  0  -5 11 -5
0  0  0  0  0  0  

B(n,m)

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

module mat_eq
contains
subroutine solve(A,B,X,N,M)
implicit real*8(a-z)
integer::i,k,N,M
integer::id_max  !脰梅脭陋脣脴卤锚潞脜

real*8::A(N,N),B(N,M),X(N,N)

real*8::Aup(N,N),Bup(N,M)
!Ab脦陋脭枚鹿茫戮脴脮贸  [AB]
real*8::AB(N,N+M)

real*8::vtemp1(N+M),vtemp2(N+M)
real*8::vtmp(N),xtmp(N)
AB(1:N,1:N)=A
AB(:,N+1:N+M)=B
!  脮芒露脦脢脟 脕脨脰梅脭陋脧没脠楼路篓碌脛潞脣脨脛虏驴路脰
do k=1,N-1

    elmax=dabs(Ab(k,k))
    id_max=k
   
    !脮芒露脦脦陋虏茅脮脪脰梅脭陋脣脴       
    !脮芒露脦鲁脤脨貌碌脛脰梅脪陋脛驴碌脛虏禄脢脟脦陋脕脣赂鲁脰碌脳卯麓贸脭陋脣脴赂酶elmax拢卢露酶脢脟脦陋脕脣脮脪鲁枚脳卯麓贸脭陋脣脴露脭脫娄碌脛卤锚潞脜       
        do i=k+1,n
      if (dabs(Ab(i,k))>elmax) then
         elmax=Ab(i,k)

         id_max=i
      end if         
    end do   
!脰脕麓脣拢卢脪脩戮颅脥锚鲁脡虏茅脮脪脳卯麓贸脭陋脣脴拢卢虏茅脮脪脥锚鲁脡脪脭潞贸脫毛  碌脷k脨脨陆禄禄禄
!陆禄禄禄脕陆脨脨脭陋脣脴拢卢脝盲脣没虏禄卤盲
    vtemp1=Ab(k,
    vtemp2=Ab(id_max,
   
   
    Ab(k,=vtemp2
    Ab(id_max,=vtemp1   
!脪脭脡脧脪禄麓贸露脦脢脟脦陋陆禄禄禄脕陆脨脨脭陋脣脴拢卢陆禄禄禄脥锚鲁脡脪脭潞贸录麓掳麓脮脮脧没脭陋路篓陆酶脨脨
  
   do i=k+1,27
  
     temp=Ab(i,k)/Ab(k,k)
     
     Ab(i,=Ab(i,-temp*Ab(k,
   
   end do

end do

!-----------------------------
! 戮颅鹿媒脡脧脪禄虏陆拢卢Ab脪脩戮颅禄炉脦陋脠莽脧脗脨脦脢陆碌脛戮脴脮贸
!            | *  *  *  *  #  #|
!     [A b]= | 0  *  *  *  #  #|
!            | 0  0  *  *  #  #|
!            | 0  0  0  *  #  #|
!
Aup(:,=AB(1:N,1:N)

do i=1,m
!碌梅脫脙脫脙脡脧脠媒陆脟路陆鲁脤脳茅碌脛禄脴麓酶路陆路篓
vtmp=AB(:,N+i)
call uptri(Aup,vtmp,xtmp,n)
!掳脩录脝脣茫陆谩鹿没赂鲁脰碌赂酶X
X(:,i)=xtmp
end do

end subroutine solve

subroutine uptri(A,b,x,N)
!---------------------------------subroutine  comment
!  Version   :  V1.0   
!  Coded by  :  syz
!  Date      :  2010-4-8
!-----------------------------------------------------
!  Purpose   :  脡脧脠媒陆脟路陆鲁脤脳茅碌脛禄脴麓酶路陆路篓
!                 Ax=b
!-----------------------------------------------------
!  Input  parameters  :
!       1.   A(N,N)脧碌脢媒戮脴脮贸
!       2.   b(N)脫脪脧貌脕驴
!       3.   N路陆鲁脤脦卢脢媒
!  Output parameters  :
!       1.  x  路陆鲁脤碌脛赂霉
!       2.
!  Common parameters  :
!
!----------------------------------------------------

implicit real*8(a-z)

integer::i,j,N

real*8::A(N,N),b(N),x(N)

x(N)=b(N)/A(N,N)

!禄脴麓酶虏驴路脰
do i=n-1,1,-1
   
    x(i)=b(i)
   do j=i+1,N
    x(i)=x(i)-a(i,j)*x(j)
   end do
    x(i)=x(i)/A(i,i)

end do

end subroutine uptri

subroutine driver(N,M)
!---------------------------------subroutine  comment
!  Version   :  V1.0   
!  Coded by  :  syz
!  Date      :  2010-4-8
!-----------------------------------------------------
!  Purpose   : 脟媒露炉鲁脤脨貌
!-----------------------------------------------------
!  Input  parameters  :
!       1.   N     脙猫脢枚 A(N,N)
!       2.   M     脙猫脢枚路陆鲁脤   X(N,M)拢卢B(N,M)
!  Output parameters  :
!       1.  
!       2.
!  P.S  :
!      N,M  麓脫脦脛录镁脰脨露脕脠隆
!
!----------------------------------------------------

implicit real*8(a-z)

integer::N,M

integer::i,j
real*8::A(N,N),B(N,M),X(N,M)

read(11,*) A(N,N)
read(11,*) B(N,M)


call solve(A,B,X,N,M)



write(12,*) X(n,m)




end subroutine driver


end module mat_eq




program main
!--------------------------------------program comment
!  Version   :  V1.0   
!  Coded by  :  syz
!  Date      :  2010-4-8
!-----------------------------------------------------
!  Purpose   :  脧没脠楼路篓陆芒戮脴脮贸路陆鲁脤
!   
!-----------------------------------------------------
!  In put data  files :
!       1.  fin.txt  脢盲脠毛路陆鲁脤脧碌脢媒
!       2.
!  Output data files  :
!       1. fout.txt  录脝脣茫陆谩鹿没
!       2.
!-----------------------------------------------------
!  Post Script :
!       1.    脨猫脪陋脳录卤赂脢盲脠毛脢媒戮脻
!       2.    脫脡脫脷脟媒露炉潞炉脢媒碌梅脫脙路陆路篓潞炉脢媒
!-----------------------------------------------------
use mat_eq
integer::N,M
open(unit=11,file='fin.txt')
open(unit=12,file='fout.txt')

call driver(N,M)
end program main
6楼2012-02-24 14:13:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

syliu

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2012-02-29 02:24:24
看了你的程序,至少找到两个错误。在读取A(N,N)前没有定义N的数值(也没有定义B(M,N)中的M,子程序subroutine driver(N,M)说明中说从文件读取,但没看到相应地语句哦。另外可能就是你的fin.txt文件第一行有7个数而不是6个哟
7楼2012-02-28 17:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

jjdg(金币+1): 感谢参与 2012-02-29 02:24:31
引用回帖:
7脗楼: Originally posted by syliu at 2012-02-28 17:18:53:
驴麓脕脣脛茫碌脛鲁脤脨貌拢卢脰脕脡脵脮脪碌陆脕陆赂枚麓铆脦贸隆拢脭脷露脕脠隆A(N,N)脟掳脙禄脫脨露篓脪氓N碌脛脢媒脰碌(脪虏脙禄脫脨露篓脪氓B(M,N)脰脨碌脛M拢卢脳脫鲁脤脨貌subroutine driver(N,M)脣碌脙梅脰脨脣碌麓脫脦脛录镁露脕脠隆拢卢碌芦脙禄驴麓碌陆脧脿脫娄碌脴脫茂戮盲脜露隆拢脕铆脥芒驴脡脛脺戮脥脢脟脛茫碌脛fin.txt脦脛录镁碌脷脪禄脨脨脫脨7赂枚脢媒露酶 ...

N碌脛脢媒脰碌脢脟麓脫脦脛录镁脰脨露脕脠隆拢卢禄鹿脨猫脪陋露篓脪氓拢驴
脦脛录镁脰脨碌脛脢媒戮脻脠莽脧脗拢卢脦陋脢虏脙麓禄鹿脢脟麓铆脦贸拢驴
A(n,n)
-5 11 -5 -1 0 0 0
0  0  0  -5 11 -5
0  0  0  0  0  0  
-5 11 -5 -1 0 0
0  0  0  -5 11 -5
0  0  0  0  0  0  

B(n,m)

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
8楼2012-02-28 17:39:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

jjdg(金币+1): 感谢参与 2012-02-29 02:24:36
在声明 A(n,n) 时,n 必须有值,而不能等后面再赋值,除非你动态分配内存……
9楼2012-02-28 18:39:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

引用回帖:
9脗楼: Originally posted by snoopyzhao at 2012-02-28 18:39:05:
脭脷脡霉脙梅 A(n,n) 脢卤拢卢n 卤脴脨毛脫脨脰碌拢卢露酶虏禄脛脺碌脠潞贸脙忙脭脵赂鲁脰碌拢卢鲁媒路脟脛茫露炉脤卢路脰脜盲脛脷麓忙隆颅隆颅

脗茅路鲁赂忙脰陋拢卢脭玫脙麓脡锚脙梅拢驴
10楼2012-02-29 13:15:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 夕阳西下 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见