Fortran Coder

标题: if then else 语句报错 [打印本页]

作者: sqs    时间: 2022-4-8 14:56
标题: if then else 语句报错
如下图,对数组进行赋值的过程当中,为什么该程序会报错呢
[Fortran] 纯文本查看 复制代码
program  conjgf
    implicit none
    real(8) a(6,6)
    integer i1, i2
    do i1 = 1,6
        do i2 = 1,6
            if (i1=i2) then
                a(i1,i2) = 0.0d0
            else
                a(i1,i2) = i1+i2
            end if
    enddo
enddo
    print*,a
    read(*,*)
end program  conjgf

应该如何修改呢


作者: Transpose    时间: 2022-4-8 17:06
i1==i2,判断相等
作者: sqs    时间: 2022-4-8 17:29
Transpose 发表于 2022-4-8 17:06
i1==i2,判断相等

好的好的,大意了
作者: 青衣巷    时间: 2022-4-9 08:27
Fortran 是个矢量化的语言,所以它应该比C代码简洁一些。

[Fortran] 纯文本查看 复制代码
program conjgf
  implicit none
  real(8) a(6,6)
  integer i1, i2
  Forall(i1=1:6,i2=1:6) a(i1,i2)=merge(0,i1+i2,i1==i2)
  write(*,'(*(6f7.2,/))') a
  read(*,*)
end program conjgf

作者: sqs    时间: 2022-4-9 20:09
青衣巷 发表于 2022-4-9 08:27
Fortran 是个矢量化的语言,所以它应该比C代码简洁一些。

[mw_shl_code=fortran,true]program conjgf

受教了!感谢!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2