首页 > 解决方案 > 使用 Fortran 中的 if 条件从多列中提取值

问题描述

我的文件包含多列。当 col#1 和 col#2 都不等于 0 时,我想使用 fortran 提取值。我知道这是我的一个非常基本的疑问,但我对此有点困惑。我使用了以下想法但没有工作。它必须删除 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

标签: fortran

解决方案


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

if(col1(ii) .NE. 0 .OR. col2(ii) .NE. 0)then print*,col1,col2 end if

或者(相同的输出):

if(.NOT. (col1(ii) .EQ. 0 .AND. col2(ii) .EQ. 0) )then print*,col1,col2 end if


推荐阅读