“无法分配给命名常量”(重新分配变量)

jamesh625

我正在使用标志f进行一些错误检查。当我要执行另一项检查时,Fortran(或gfortran)不允许我重新分配其值。

integer, dimension(:,:), allocatable :: A
integer :: f, n        

write (*, *) "Give an integer n > 0. n = "

   read (*, IOSTAT=f) n

   do while(f /= 0)
      print *, "Error with input. Please try again."
      read (*, IOSTAT=f) n
   end do

   write (*, "(a, i5)") "You have entered n = ", n

   allocate(A(n), STAT=f)
   if (f /= 0) 
      print *, "Error: not enough memory for A."
   end if

NB:我认为复制粘贴可能会弄乱我的空间。

f已被宣布为一个整数(而不是作为一个参数整数): integer :: f

我是Fortran的初学者,所以很可能我犯了一些无法想象的错误!

弗拉基米尔F

此错误消息令人困惑,但问题是

   if (f /= 0) 
      print *, "Error: not enough memory for A."
   end if

应该

   if (f /= 0) then
      print *, "Error: not enough memory for A."
   end if

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章