版块导航
正在加载中...
客户端APP下载
论文辅导
调剂小程序
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(4456)
>
导师招生
(749)
>
考研
(626)
>
虫友互识
(324)
>
文献求助
(257)
>
休闲灌水
(149)
>
考博
(91)
>
招聘信息布告栏
(87)
>
硕博家园
(66)
>
论文投稿
(64)
>
博后之家
(55)
>
基金申请
(41)
>
找工作
(30)
>
教师之家
(27)
>
绿色求助(高悬赏)
(23)
>
公派出国
(17)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
Fortran
»
一个FORTRAN90程序,越界了,希望高手帮助
6
1/1
返回列表
查看: 1407 | 回复: 5
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
zyj8119
木虫
(著名写手)
应助: 65
(初中生)
贵宾: 0.003
金币: 915.1
散金: 1440
红花: 35
帖子: 2936
在线: 1329.4小时
虫号: 664177
注册: 2008-11-29
性别: GG
专业: 理论和计算化学
[
求助
]
一个FORTRAN90程序,越界了,希望高手帮助
CODE:
module inv_mat
contains
subroutine inv(A,invA,N)
implicit real*8(a-z)
integer::n
integer::i
real*8::A(n,n),invA(n,n),E(n,n)
E=0
do i=1,n
E(i,i)=1
end do
call mateq(A,B,X,N,N)
end subroutine inv
subroutine mateq(A,B,X,N,M)
implicit real*8(a-z)
integer::N,M,i
real*8::A(M,N),B(N,M),X(N,M)
real*8::btemp(N),xtemp(N)
do i=1,M
btemp=B(:,i)
call elgauss(A,btemp,xtemp,N)
X(:,i)=xtemp
end do
end subroutine mateq
subroutine elgauss(A,b,x,N)
implicit real*8(a-z)
integer::i,k,N
integer::id_max
real*8::A(N,N),b(N),x(N)
real*8::Aup(N,N),bup(N)
real*8::Ab(N,N+1)
real*8::vtemp1(N+1),vtemp2(N+1)
Ab(1:N,1:N)=A
Ab(:,N+1)=b
do k=1,N-1
elmax=dabs(Ab(k,k))
id_max=k
do i=k+1,n
if(dabs(Ab(i,k))>elmax)then
elmax=Ab(i,k)
id_max=i
end if
end do
vtemp1=Ab(k,:)
vtemp2=Ab(id_max,:)
Ab(k,:)=vtemp2
Ab(id_max,:)=vtemp1
do i=k+1,N
temp=Ab(i,k)/Ab(k,k)
Ab(i,:)=Ab(i,:)-temp*Ab(k,:)
end do
end do
Aup(:,:)=Ab(1:N,1:N)
bup(:)=Ab(:,N+1)
call uptri(Aup,bup,x,n)
end subroutine elgauss
subroutine uptri(A,b,x,N)
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
end module inv_mat
module m_bfs
use inv_mat
contains
subroutine solve(x0,N,tol)
implicit real*8(a-z)
integer::i,n,itmax=50
real*8::x1(n),x0(n),y(n),f0(n),f1(n),dx(n)
real*8::v1(n),v2(n),v3(n)
real*8::H0(n,n),H1(n,n),df(n,n)
real*8::m1(n,n),m2(n,n),m3(n,n)
call jac(df,x0)
call inv(df,H0,N)
write(11,101)
write(12,102)
do i=1,itmax
call func(f0,x0)
x1=x0-matmul(H0,f0)
dx=x1-x0
call func(f1,x1)
y=f1-f0
v1=matmul(H0,y)
t1=vdot(y,v1,n)
t2=vdot(dx,y,N)
u=1d0+t1/t2
m1=vvmat(dx,dx,n)*u
m2=vvmat(dx,y,n)
m2=matmul(m2,H0)
v3=matmul(H0,y)
m3=vvmat(v3,dx,n)
t3=vdot(dx,y,n)
H1=(m1-m2-m3)/t3
H1=H0+H1
write(12,103)i,H0
x0x=1
H0=H1
write(11,104)i,x0
dx2=dsqrt(dx(1)**2+dx(2)**2)
if(dx2
end do
101 format(/,T5,'BFS方法计算序列',/)
102 format(/,T5,'BFS方法H矩阵序列为:',/)
103 format(T5,'iter=',I4,/,
(
F16.10/),/)
104 format(I8,3F16.10)
end subroutine solve
function vdot(a,b,N)
integer::i,N
real*8::a(n),b(n),vdot
vdot=0
do i=1,N
vdot=vdot+a(i)*b(i)
end do
end function vdot
function vvmat(a,b,n)
integer::n,i,j
real*8::a(n),b(n),vvmat(n,n)
do i=1,n
do j=1,n
vvmat(i,j)=a(i)*b(j)
end do
end do
end function vvmat
subroutine func(f,x)
implicit real*8(a-z)
real*8::x(3),f(3),pi=3.14159263589793
f(1)=3*x(1)-dcos(x(2)*x(3))-1d0/2
f(2)=x(1)**2-81*(x(2)+0.1d0)**2+dsin(x(3))+1.06d0
f(3)=dexp(-x(1)*x(2))+20*x(3)+(10*pi-3d0)/3
end subroutine func
subroutine jac(df,x)
implicit real*8(a-z)
real*8::x(3),df(3,3)
df(1,1)=3d0
df(1,2)=x(3)*dsin(x(2)*x(3))
df(1,3)=x(2)*dsin(x(2)*x(3))
df(2,1)=2*x(1)
df(2,2)=-162*(x(1)+0.1)
df(2,3)=dcos(x(3))
df(3,1)=-x(2)*dexp(-x(1)*x(2))
df(3,2)=-x(1)*dexp(-x(1)*x(2))
df(3,3)=20d0
end subroutine jac
end module m_bfs
program main
use inv_mat
use m_bfs
implicit real*8(a-z)
integer::N=3
real*8::x0(3)
open(unit=11,file='result.txt')
open(unit=12,file='Hmatrix.txt')
x0=(/0.1d0,0.1d0,-0.1d0/)
call solve(x0,n,1d-8)
end program main
回复此楼
» 猜你喜欢
085601材料工程专硕求调剂
已经有3人回复
293求调剂
已经有10人回复
有没有道铁/土木的想调剂南林,给自己招师弟中~
已经有6人回复
085600材料与化工
已经有3人回复
材料与化工专硕调剂
已经有4人回复
085601专硕,总分342求调剂,地区不限
已经有3人回复
0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287
已经有3人回复
08工科 320总分 求调剂
已经有4人回复
268求调剂
已经有8人回复
26申博
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请教一个应用read时出现数组越界的问题,谢谢
已经有7人回复
有会看fortran程序的,能帮忙看看这个程序吗?
已经有10人回复
怎么使用fortran程序创建一个立方晶格模型
已经有5人回复
如何改变fortran的浮点精度
已经有28人回复
求助高手帮忙编一个Fortran的小程序,重金悬赏......
已经有15人回复
求助计算机高人,编写个Fortran程序
已经有13人回复
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
写了一个fortran90的小程序,编译通不过,请大侠帮忙
已经有59人回复
【求助】如何写FORTRAN程序实现求平均最近邻距离
已经有34人回复
【求助】求高手关于Fortran数据读写的问题。【已完结】
已经有12人回复
【求助】请问fortran90与95区别大吗
已经有4人回复
【求助】此FORTRAN90程序没有错误,但是运行不出来。
已经有4人回复
【求助】求助个Fortran计算,应该不难,半天搞不定,请高手帮忙
已经有11人回复
好好学习,天天向上。
1楼
2011-11-11 23:00:16
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
maomao1210
金虫
(正式写手)
程序强帖: 5
应助: 2
(幼儿园)
金币: 1432.8
散金: 242
红花: 16
沙发: 1
帖子: 991
在线: 442.1小时
虫号: 253215
注册: 2006-05-20
性别:
MM
专业: 考古理论
★
jjdg(金币+1): 感谢参与 2011-11-12 00:40:40
xzhdty: 2011-11-12 22:51:02
ben_ladeng: 专家考核存档 2011-11-12 23:23:07
引用回帖:
1楼
:
Originally posted by
zyj8119
at 2011-11-11 23:00:16:
[code]module inv_mat
contains
subroutine inv(A,invA,N)
implicit real*8(a-z)
integer::n
integer::i
real*8::A(n,n),invA(n,n),E(n,n)
E=0
do i=1,n
E(i,i)=1
end do
call mateq(A,B,X,N,N)
e ...
大哥;
子程序 inv, X是数组,你忘记定义了。X(n,n)
赞
一下
(3人)
回复此楼
2楼
2011-11-11 23:15:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
zyj8119
木虫
(著名写手)
应助: 65
(初中生)
贵宾: 0.003
金币: 915.1
散金: 1440
红花: 35
帖子: 2936
在线: 1329.4小时
虫号: 664177
注册: 2008-11-29
性别: GG
专业: 理论和计算化学
引用回帖:
2楼
:
Originally posted by
maomao1210
at 2011-11-11 23:15:23:
大哥;
子程序 inv, X是数组,你忘记定义了。X(n,n)
谢谢提醒,修改过来了,编译通过。。
赞
一下
回复此楼
好好学习,天天向上。
3楼
2011-11-11 23:29:18
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
snoopyzhao
至尊木虫
(职业作家)
程序强帖: 16
应助: 157
(高中生)
贵宾: 0.02
金币: 18844.7
红花: 29
帖子: 3803
在线: 1422.4小时
虫号: 183750
注册: 2006-02-13
专业: 污染生态化学
【答案】应助回帖
★
dubo(金币+1): 多谢应助 2011-11-12 12:26:34
zyj8119(金币+10): 建议很好,会认真考虑撒。。。 2011-11-12 14:04:34
ben_ladeng: 专家考核存档 2011-11-12 23:23:16
引用回帖:
3楼
:
Originally posted by
zyj8119
at 2011-11-11 23:29:18:
谢谢提醒,修改过来了,编译通过。。
从这个错误来看,一定要用 implicit none……
另外,尽可能不要用 real*4、real*8 这些编译器扩展的用法
赞
一下
(2人)
回复此楼
4楼
2011-11-12 12:13:01
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
exabyss916
新虫
(小有名气)
应助: 1
(幼儿园)
金币: 177
散金: 65
帖子: 78
在线: 57小时
虫号: 507882
注册: 2008-02-20
专业: 理论和计算化学
引用回帖:
4楼
:
Originally posted by
snoopyzhao
at 2011-11-12 12:13:01:
从这个错误来看,一定要用 implicit none……
另外,尽可能不要用 real*4、real*8 这些编译器扩展的用法
能不能简单说一下为什么尽可能不要用 real*4、real*8 这些编译器扩展的用法?
赞
一下
回复此楼
5楼
2011-11-19 10:45:59
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
snoopyzhao
至尊木虫
(职业作家)
程序强帖: 16
应助: 157
(高中生)
贵宾: 0.02
金币: 18844.7
红花: 29
帖子: 3803
在线: 1422.4小时
虫号: 183750
注册: 2006-02-13
专业: 污染生态化学
★
余泽成(金币+1): 谢谢参与应助! 2011-11-19 14:31:13
引用回帖:
5楼
:
Originally posted by
exabyss916
at 2011-11-19 10:45:59:
能不能简单说一下为什么尽可能不要用 real*4、real*8 这些编译器扩展的用法?
因为不是标准,所以尽可能不要用……
有兴趣的话,可以搜一下 comp.lang.fortan 上的 is real*8 a standard declaration style?
大概有 80 多条回复,基本上都是 Fortran 界的 old-timer...
赞
一下
(1人)
回复此楼
6楼
2011-11-19 10:55:33
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
zyj8119
的主题更新
6
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
最具人气热帖推荐
[查看全部]
作者
回/看
最后发表
[
考研
]
一志愿南京大学,080500材料科学与工程,调剂
+4
Jy?
2026-03-16
4/200
2026-03-17 11:02
by
gaoqiong
[
考研
]
271求调剂
+12
生如夏花…
2026-03-11
14/700
2026-03-17 10:56
by
lovewei0727
[
考研
]
289求调剂
+6
步川酷紫123
2026-03-11
6/300
2026-03-17 10:23
by
Sammy2
[
论文投稿
]
有没有大佬发小论文能带我个二作
+3
增锐漏人
2026-03-17
4/200
2026-03-17 09:26
by
xs74101122
[
考研
]
一志愿,福州大学材料专硕339分求调剂
+3
木子momo青争
2026-03-15
3/150
2026-03-17 07:52
by
laoshidan
[
考研
]
328求调剂,英语六级551,有科研经历
+3
生物工程调剂
2026-03-16
4/200
2026-03-16 20:13
by
Wangjingyue
[
考研
]
机械专硕325,寻找调剂院校
+3
y9999
2026-03-15
5/250
2026-03-16 19:58
by
y9999
[
考研
]
0703化学调剂
+6
妮妮ninicgb
2026-03-15
9/450
2026-03-16 16:40
by
houyaoxu
[
考研
]
285求调剂
+6
ytter
2026-03-12
6/300
2026-03-16 15:05
by
njzyff
[
考研
]
一志愿华中师范071000,325求调剂
+6
RuitingC
2026-03-12
6/300
2026-03-16 14:50
by
可淡不可忘
[
考研
]
255求调剂
+3
李嘉慧,
2026-03-12
4/200
2026-03-14 16:58
by
有只狸奴
[
考研
]
材料080500调剂求收留
+3
一颗meteor
2026-03-13
3/150
2026-03-14 10:54
by
peike
[
考研
]
复试调剂
+9
Copy267
2026-03-10
9/450
2026-03-13 23:45
by
userper
[
考研
]
290求调剂
+9
ADT
2026-03-11
9/450
2026-03-13 21:55
by
JourneyLucky
[
考研
]
307求调剂
+5
超级伊昂大王
2026-03-12
5/250
2026-03-13 15:56
by
棒棒球手
[
考研
]
材料301分求调剂
+5
Liyouyumairs
2026-03-12
5/250
2026-03-13 14:42
by
JourneyLucky
[
考研
]
274求调剂0856材料化工
+12
z2839474511
2026-03-11
13/650
2026-03-13 10:39
by
peike
[
考博
]
26读博
+4
Rui135246
2026-03-12
10/500
2026-03-13 07:15
by
gaobiao
[
基金申请
]
提交后的基金本子,已让学校撤回了,可否换口子提交
+3
dut_pfx
2026-03-10
3/150
2026-03-11 08:38
by
kudofaye
[
考研
]
求调剂材料专硕293
+6
段_(:з」∠)_
2026-03-10
6/300
2026-03-10 18:22
by
ms629
信息提示
关闭
请填处理意见
关闭
确定