使用Fortran中的if条件从多个列中提取值

时间:2019-05-17 11:52:53

标签: fortran

我的文件包含多列。我想使用fortran提取col#1和col#2都不等于零时的值。我知道这是我非常基本的疑问,但对此我感到有些困惑。我使用了以下想法,但是没有用。它必须删除col#1和col#2均为零的那些行,并且必须在将得到1的任何地方打印。

谢谢。


  if(col1(ii).ne.0.and.col2(ii).ne.0)then
      print*,col1,col2,col3
  end if

输入:
 0.00 0.00
 1.00 0.00
 1.00 1.00
 0.00 1.00
 0.00 0.00
 1.00 0.00
 1.00 1.00

预期输出:
 1.00 0.00
 1.00 1.00
 0.00 1.00
 1.00 0.00
 1.00 1.00

代码输出:

1.00 1.00
 1.00 1.00

2 个答案:

答案 0 :(得分:1)

我相信您的逻辑是有缺陷的。如果我正确理解你的话;您要删除col#1或col#2不为零的行。试试这个:-

if(col1(ii).NE。0。或。col2(ii).NE。0)然后       打印*,col1,col2   如果结束

或者(相同的输出):

if(.NOT。(col1(ii).EQ。0 .AND。col2(ii).EQ。0))然后       打印*,col1,col2   如果结束

答案 1 :(得分:0)

逻辑有缺陷,您在打印语句中缺少索引:

<div class="awpcp-listing-excerpt-thumbnail">
<img src="https://via.placeholder.com/150">
</div>

假设您有一个总循环数。

还可以查看语句 if(col1(ii).ne.0.or.col2(ii).ne.0)then print*,col1(ii),col2(ii),col3(ii) end if where