| 查看: 699 | 回复: 4 | |||
gelitao1234金虫 (正式写手)
|
[求助]
子程序变量赋值后自动改变 已有2人参与
|
|
调动子程序的时候,第一调动子程序运行一切正常,第二次调动子程序的时候变量就变了,这是为什么呢? NZ2=31 NZ3=131 DZ1=0.015D0 DZ2=DZ1 DZ3=DZ1 CZ2=1.5D0 CALL STRETCH1(NZ2,NZ3,CZ2,DZ2,DZ3,ZZ) DO K=NZ2,NZ3 ZZ(K)=ZZ(K)+CZ1 END DO SUBROUTINE STRETCH1(N0,N,C,DX0,DXN,X) SEP=1.D0/DFLOAT(N-N0) S0=C*SEP/DX0 S1=C*SEP/DXN WRITE(6,*) S0,S1 WRITE(6,*) C,SEP,DX0 在屏幕上C现实为:0000000 |
» 猜你喜欢
参与限项
已经有3人回复
假如你的研究生提出不合理要求
已经有7人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab里如何实现用向量赋值数组元素并且时数组实现运算?
已经有10人回复
求MATLAB批量读取文件代码,并赋值指定的变量名
已经有4人回复
Fortran怎么从一个dat文件中读取不同类型数据赋值给不同的变量?
已经有8人回复
fortran module 中如何进行赋值计算
已经有7人回复
fortran 如何在子程序中实现动态数组的定义和声明?
已经有15人回复
Fortran的subroutine和function有什么区别,是在于输入输出的特点吗?
已经有13人回复
VF程序里子程序和主程序分开写和合在一起,有不一样吗
已经有5人回复
大家帮我看一个fortran的程序,我总是计算不出正确的结果
已经有20人回复
Fortran中子程序与函数的区别
已经有7人回复
intel fortran局部变量自动更新
已经有19人回复
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
2011注册化工工程师基础考试大纲 是不是和往年的有改变???
已经有5人回复
【求助】FORTRAN编译通过,但是运行不了
已经有19人回复
pippi6
铁杆木虫 (著名写手)
工程和科学数值计算咨询
- 应助: 413 (硕士)
- 贵宾: 0.002
- 金币: 7116.5
- 散金: 15
- 红花: 63
- 帖子: 1639
- 在线: 798.9小时
- 虫号: 2469437
- 注册: 2013-05-14
- 专业: 计算数学与科学工程计算
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
gelitao1234: 金币+150, ★★★★★最佳答案 2015-02-06 14:32:38
感谢参与,应助指数 +1
gelitao1234: 金币+150, ★★★★★最佳答案 2015-02-06 14:32:38
|
那个变量变了,C吗 ? 你这有两个问题 (1) WRITE(6,*) C,SEP,DX0里面第二个逗号不是ascii 码 (2) 在SUBROUTINE STRETCH1里 没有定义哑元,也许你删了? 如果你定了所有的变量,应该没问题,像这样 subroutine testStretch1 implicit none integer :: nz2,nz3 real*8 :: dz1,dz2,dz3,cz2,zz nz2=31 nz3=131 dz1=0.015d0 dz2=dz1 dz3=dz1 cz2=1.5d0 zz=1d0 call stretch1(nz2,nz3,cz2,dz2,dz3,zz) end subroutine testStretch1 subroutine stretch1(n0,n,c,dx0,dxn,x) implicit none integer :: n0,n real*8 :: c,dx0,dxn,x,sep,s0,s1 sep=1.d0/dfloat(n-n0) s0=c*sep/dx0 s1=c*sep/dxn write(6,*) s0,s1 write(6,*) c,sep,dx0 end subroutine stretch1 |
2楼2015-02-05 11:10:30
gelitao1234
金虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 1787.6
- 散金: 366
- 红花: 4
- 帖子: 577
- 在线: 1339.1小时
- 虫号: 1206537
- 注册: 2011-02-19
- 性别: GG
- 专业: 边界层大气物理学和大气湍
3楼2015-02-06 14:32:18
jiangxingge
金虫 (正式写手)
- 应助: 15 (小学生)
- 金币: 2498.6
- 红花: 5
- 帖子: 322
- 在线: 55.4小时
- 虫号: 3205681
- 注册: 2014-05-14
- 性别: GG
- 专业: 石油、天然气地质学
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
gelitao1234: 金币+50, ★★★★★最佳答案 2015-02-11 09:52:01
gelitao1234: 金币+50, ★★★★★最佳答案 2015-02-11 09:52:01
|
既然 不用提前定义变量,按规定 ,CZ2 是 实型(4字节),你为啥 要赋一个 双精度 的 值 1.5D0(8字节)。 这样 的 情况 有好几处,你到底 要用 单精度还是 双精度?搞不明白,在子程序传来传去,很容易出问题。 你只要把所有 变量 的 类型 搞明白了,简单一点 ,全部 显式定义,不要利用缺省规定。 估计就没问题了。 |
4楼2015-02-10 15:58:11
gelitao1234
金虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 1787.6
- 散金: 366
- 红花: 4
- 帖子: 577
- 在线: 1339.1小时
- 虫号: 1206537
- 注册: 2011-02-19
- 性别: GG
- 专业: 边界层大气物理学和大气湍
5楼2015-02-11 09:52:04












回复此楼