PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Fortran
[问题] 传入副程式阵列维度不同? 悬赏1000P...
楼主:
silverair
(木栅福山雅治)
2019-11-25 18:19:00
最近在把fortran90改成C
但本身不是学f90,网络上资料能找到的也有限...
最近碰到一个奇怪的问题,
CALL GATEOPEN(QU, HO, INGT(IST2, 1), GT(1, 1, IST2), MDC_GT);
这边的GT应该是一个三维阵列中取出来的REAL值
但是在GATEOPEN这个subroutine中
SUBROUTINE GATEOPEN( T,F,N,FT,MAXD )
.....
INTEGER, INTENT(IN) :: N,MAXD
REAL(SP), INTENT(IN) :: T,FT(MAXD,2)
...
我实在是看不懂为何这边会变成FT(MAXD,2)
后面使用也是变成二维阵列的形式
DO I = 1, N
IF( T <= FT(I,1) ) THEN
F = FT(I,2)
RETURN
END IF
END DO
求解...悬赏1000P
感谢各位大神。
作者:
fragmentwing
(片翼碎梦)
2019-11-26 00:55:00
老实说我看不太懂你的程式码1不过我记得是有很奇耙的技巧会故意少输入东西来跑但问题是 我记得那个案例是用项在顺序上跑的差异来进行操作 而不是针对同一项内的阵列进行操作还有 你的N怎么从阵列变成整数了这不是不会给过吗?它不是对到INGT(IST2, 1)这一项吗?阿哩 好像找到了 我拍一下
好像是这个?虽然书上说很常用,不过我没用过,这样交接起来会有麻烦吧w我都手动写程式码来降维的
作者: youlieme (仙女吃槟榔)
2019-11-26 14:05:00
fortran传的只是reference 里面的资料排列如果清楚阵列不需要一样大 他会从GT(1,1,ist2)这个位址开始往后取MAXD*2的内存当作FT我不知道你的GT是什么资料 但看起来会是成对或可能是两两一组 subroutine只判断奇数值是否=>T而已
作者:
blc
(Anemos)
2019-11-26 15:15:00
fortran的阵列在内存中是连续的,所以可以从阵列第一个元素跟阵列大小得到整个阵列。就像C的指标那样。优点是会快很多(以前),现在编译器最佳化不知道
作者:
fragmentwing
(片翼碎梦)
2019-11-30 14:44:00
收到推另外我果然还需要精进阿......
作者:
blc
(Anemos)
2019-12-01 22:57:00
晚了,我也有收到,感谢。
继续阅读
Fw: [公告] 请使用安全的连线方式连线本站
blc
[问题] 启动档案问题
workhard0815
Re: [问题] 变量自行改变
fragmentwing
[问题] 变量自行改变
sven1130
[心得] 关于entry的用法(与recursive的关系)
fragmentwing
[问题] 没有endif的版本
BanPeeBan
[问题] subroutine call 自己时的return
fragmentwing
[问题] 让文字输出不换行
fragmentwing
[问题] int计算后变成float?
BanPeeBan
[问题] 输出值显示问号
dregsgod
Links
booklink
Contact Us: admin [ a t ] ucptt.com