首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第50行出现错误:尝试在类型声明中提供数据

第50行出现错误:尝试在类型声明中提供数据
EN

Stack Overflow用户
提问于 2015-09-21 12:43:39
回答 1查看 191关注 0票数 0

我试图编译FORTRAN 77代码,我也遇到了类似的问题。

代码语言:javascript
复制
  integer row(nnzmax+nszero),column(nnzmax+nszero),
 +        ireg(nximax),florsm(nzimax)/nzimax*2/
  real lambda,imodel(nximax,nzimax),dm(nmmax),
 +     dum1(nmmax),dum2(nmmax),data(ndmax+nsconst),
 +     anz(nnzmax+nszero),ibmodel(nximax,nzimax),
 +     smwz(nzimax)/nzimax*-1./,spwz(nzimax)/nzimax*-1./

Error on line 50: attempt to give DATA in type-declaration
Error on line 52: attempt to give DATA in type-declaration

我以前使用过这段代码,但它是用Intel Fotran编译器编译的。我已经搬到了其他国家,所以我没有在这里安装ifort。我现在正在使用fort77。我应该尝试使用一些编译选项或者?我已经使用这个脚本从这个文件夹编译应用程序.f。

代码语言:javascript
复制
#! /bin/csh -f

set list=`ls *.f`
set FLAG="-o"
echo $list
foreach file (${list})
  echo $file
  f77 ${file} ${FLAG} ${file:r}
  mv ${file:r} ../bin/.

end

我改变了这样的声明:

整数行(nnzmax+nszero)、列(nnzmax+nszero)、+nmmax( nzimax)、florsm(nzimax)、+ data florsm /nzimax*2/实λ、imodel(nximax、nzimax)、dm(nmmax)、+ dum1(nmmax)、dum2(nmmax)、data(ndmax+nsconst)、+ anz(nnzmax+nszero)、模型(nzimax、nzimax)、+ data smwz /nzimax*-1./、+ data spwz /nzimax*-1.

但我还是有

代码语言:javascript
复制
Error on line 50: attempt to give DATA in type-declaration
Error on line 53: attempt to give DATA in type-declaration
Error on line 385: Declaration error for smwz: used as variable
Error on line 385: Declaration error for smwz: may not appear in namelist
Error on line 385: Declaration error for spwz: used as variable
Error on line 385: Declaration error for spwz: may not appear in namelist
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 13:16:34

这个片段,和后来类似的片段

代码语言:javascript
复制
florsm(nzimax)/nzimax*2/

看起来是一种用合并到声明中的data语句初始化变量的非标准方法。一种更标准的方法将两者分开,类似于

代码语言:javascript
复制
florsm(nzimax)
...
data florsm /nzimax*2/

使用Intel Fortran编译器的好处之一是其悠久的历史;在此过程中,它已经并将继续接受各种非标准特性。我猜这就是其中之一,你提到的另一个编译器是不能接受的。

当然,这似乎是错误声明告诉我们的。

标准的替换可能是

代码语言:javascript
复制
florsm(nzimax) = 2

但是,这利用了Fortran 90的一个特性,这种特性被称为fort77,但它也可能无法理解。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32695563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档