| 查看: 963 | 回复: 21 | |||
| 当前主题已经存档。 | |||
[交流]
【讨论】数组定义的问题
|
|||
|
比如 SUBROUTINE GETTRN REAL FRICTH(1),FRICTB(1) 意思是定义两个数组? 数组长度为1 的时候,是不是可调数组? |
» 猜你喜欢
环境工程 085701,267求调剂
已经有5人回复
275求调剂
已经有17人回复
334分 一志愿武理 材料求调剂
已经有6人回复
一志愿北京化工大学材料与化工(085600)296求调剂
已经有15人回复
085600 286分 材料求调剂
已经有9人回复
材料与化工272求调剂
已经有10人回复
南京大学化学调剂
已经有9人回复
085601材料工程找调剂
已经有13人回复
考研调剂
已经有6人回复
085600 材料与化工 329分求调剂
已经有13人回复

maomao1210
金虫 (正式写手)
- 程序强帖: 5
- 应助: 2 (幼儿园)
- 金币: 1432.8
- 散金: 242
- 红花: 16
- 沙发: 1
- 帖子: 991
- 在线: 442.1小时
- 虫号: 253215
- 注册: 2006-05-20
- 性别: MM
- 专业: 考古理论
★ ★ ★ ★ ★ ★
rjjy(金币+1,VIP+0):谢谢交流! 6-17 23:07
calf5983(金币+3,VIP+0):非常感谢 6-18 08:19
woshilsh(金币+2,VIP+0):thanks 6-18 19:19
rjjy(金币+1,VIP+0):谢谢交流! 6-17 23:07
calf5983(金币+3,VIP+0):非常感谢 6-18 08:19
woshilsh(金币+2,VIP+0):thanks 6-18 19:19
|
看你用的是哪个编译器了,呵呵。 一般的CVF,如果主程序传递给子程序该数组的话,该数组时可调的,否则将报错。 不过Gfortran下编译时可以调节的,建议你测试下下面的这个程序,就明白了。 IMPLICIT REAL*8(A-H,O-Z) DIMENSION A(10) CALL SUB( A) call subb() END SUBROUTINE SUB(B ) IMPLICIT REAL*8(A-H,O-Z) DIMENSION B(1) DO I=1,10 WRITE(*,*) B(I) ENDDO RETURN END SUBROUTINE SUBb() IMPLICIT REAL*8(A-H,O-Z) DIMENSION Bc(1) DO I=1,10 WRITE(*,*) Bc(I) ENDDO RETURN END |
2楼2009-06-17 22:03:18
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术

3楼2009-06-18 01:11:25
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
4楼2009-06-18 13:54:54
maomao1210
金虫 (正式写手)
- 程序强帖: 5
- 应助: 2 (幼儿园)
- 金币: 1432.8
- 散金: 242
- 红花: 16
- 沙发: 1
- 帖子: 991
- 在线: 442.1小时
- 虫号: 253215
- 注册: 2006-05-20
- 性别: MM
- 专业: 考古理论
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来 6-19 03:02
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来 6-19 03:02
|
定义的却是是A(1) ,输出A(10)的话,这样用的话一般不会出问题的,不过这样用不是很好。 为什么输出A(10)呢?因为编译器没有检测A()的边界范围,A(2),(3),A(4)...A(10)等等,这些数据占据了别的数组的分配空间。 SNOOPYZHAO可以测试一下这个程序: implicit real*8(a-h,o-z) dimension a(1),b(3) call ABT(a,b) end subroutine ABT(a,b) implicit real*8(a-h,o-z) dimension a(1),b(3) a(1)=1 a(2)=2 a(3)=3 b(1)=40 b(2)=50 b(3)=6 write(*,*) a(1),a(2),a(3) write(*,*) b(1),b(2),b(3) return end 程序给定的地址只有四个: A(1) B(1) B(2) B(3) 上述程序,A(2) A(3) 和B(1) B(2)共用空间。 但是如果你多定义了几个地址空间,多定义两个地址就够了,Dimension C(2),比如: implicit real*8(a-h,o-z) dimension a(1),b(3) dimension c(2) call ABT(a,b) write(*,*) 'Interesting',c end subroutine ABT(a,b) implicit real*8(a-h,o-z) dimension a(1),b(3) a(1)=1 a(2)=2 a(3)=3 b(1)=40 b(2)=50 b(3)=6 write(*,*) a(1),a(2),a(3) write(*,*) b(1),b(2),b(3) return end 这样的话程序就可以正常运行了。 [ Last edited by maomao1210 on 2009-6-18 at 16:05 ] |
5楼2009-06-18 15:54:28
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
6楼2009-06-18 16:20:16
argo
铁杆木虫 (著名写手)
上善若水
- 应助: 4 (幼儿园)
- 金币: 9672.8
- 散金: 200
- 红花: 34
- 帖子: 1940
- 在线: 486.4小时
- 虫号: 507533
- 注册: 2008-02-19
- 性别: GG
- 专业: 凝聚态物性 II :电子结构

7楼2009-06-18 16:22:36

8楼2009-06-18 16:33:55
maomao1210
金虫 (正式写手)
- 程序强帖: 5
- 应助: 2 (幼儿园)
- 金币: 1432.8
- 散金: 242
- 红花: 16
- 沙发: 1
- 帖子: 991
- 在线: 442.1小时
- 虫号: 253215
- 注册: 2006-05-20
- 性别: MM
- 专业: 考古理论
9楼2009-06-18 16:35:01
argo
铁杆木虫 (著名写手)
上善若水
- 应助: 4 (幼儿园)
- 金币: 9672.8
- 散金: 200
- 红花: 34
- 帖子: 1940
- 在线: 486.4小时
- 虫号: 507533
- 注册: 2008-02-19
- 性别: GG
- 专业: 凝聚态物性 II :电子结构

10楼2009-06-18 17:35:13














回复此楼
