f***t 发帖数: 2247 | 1 【 以下文字转载自 Joke 讨论区 】
发信人: ftmit (八戒), 信区: Joke
标 题: 求教各位大仙一个fortran问题
发信站: BBS 未名空间站 (Mon Mar 29 19:23:20 2021, 美东)
求教各位大仙一个fortran问题:
已知数组A=(0,1,0,2,0,0,5),现需要把其中的非零元素写入另一个数组B,即输出B=(1
,2,5)
中间的那条语句到底应该怎么写?如果您还有别的方法,也请不吝告知,先谢谢了。必须
是fortran :(
do i = 1, 7
if (A(i).ne.0) then
B = A(i) */这个地方到底应该怎么写?多谢!
else
endif
enddo |
T*********s 发帖数: 20444 | 2 j = 1
do i = 1, 7
if (A(i).ne.0) then
B(j) = A(i) */这个地方到底应该怎么写?多谢!
j=j+1
else
endif
enddo |
f***t 发帖数: 2247 | 3 多谢!
我就是这么干的,但编译通不过。既然你也认为这样没错,那我只有检查这个循环内的
其他鬼咚咚了。
【在 T*********s 的大作中提到】 : j = 1 : do i = 1, 7 : if (A(i).ne.0) then : B(j) = A(i) */这个地方到底应该怎么写?多谢! : j=j+1 : else : endif : enddo
|
T*********s 发帖数: 20444 | 4 B 需要先初始化
【在 f***t 的大作中提到】 : 多谢! : 我就是这么干的,但编译通不过。既然你也认为这样没错,那我只有检查这个循环内的 : 其他鬼咚咚了。
|
d******r 发帖数: 16947 | 5 你不会找log查错?
【在 f***t 的大作中提到】 : 多谢! : 我就是这么干的,但编译通不过。既然你也认为这样没错,那我只有检查这个循环内的 : 其他鬼咚咚了。
|
f***t 发帖数: 2247 | 6 好,我先查一下B的初始化。
【在 T*********s 的大作中提到】 : B 需要先初始化
|
P**5 发帖数: 3422 | |
f***t 发帖数: 2247 | 8 gfortan编译的,gfortran xxx.f -o xxx
这个循环比较大,还有其他的咚咚。报错的位置就是上边说的那一行,我被它搞迷糊了
。既然ToyotaYaris (丰田雅力士)的做法和我的一样,那估计是这个循环内的其他咚咚
出问题了。
【在 P**5 的大作中提到】 : 编译器会输出哪里出错了
|
P**5 发帖数: 3422 | 9 编译器会输出一个具体的错误信息
【在 f***t 的大作中提到】 : gfortan编译的,gfortran xxx.f -o xxx : 这个循环比较大,还有其他的咚咚。报错的位置就是上边说的那一行,我被它搞迷糊了 : 。既然ToyotaYaris (丰田雅力士)的做法和我的一样,那估计是这个循环内的其他咚咚 : 出问题了。
|
d******r 发帖数: 16947 | 10 你不如把错误贴出来
【在 f***t 的大作中提到】 : gfortan编译的,gfortran xxx.f -o xxx : 这个循环比较大,还有其他的咚咚。报错的位置就是上边说的那一行,我被它搞迷糊了 : 。既然ToyotaYaris (丰田雅力士)的做法和我的一样,那估计是这个循环内的其他咚咚 : 出问题了。
|