sudo apt-get install fort77
$ make
f77 -c -w touppr.for
touppr:
Error on line 12: attempt to give DATA in type-declaration
touppr.for
的整个源文件:
character*(*) function touppr(char)
*-----------------------------------------------------------------------
*
*--- Converts a string to upper case
*
*--- Input
* char - string to be converted
*--- Output
* touppr - uppercase char as value of function
*-----------------------------------------------------------------------
character*(*) char
character*26 cup /'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
character*26 clo /'abcdefghijklmnopqrstuvwxyz'/
save cup,clo
touppr = char
do 1 i=len(char),1,-1
ipos = index(clo,char(i:i))
if(ipos.ne.0) touppr(i:i) = cup(ipos:ipos)
1 continue
end
第12和13行是:
character*26 cup /'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
character*26 clo /'abcdefghijklmnopqrstuvwxyz'/
第12行和第13行有什么问题阻止代码编译,你会如何解决?
答案 0 :(得分:2)
这不是合法的Fortran 77或任何其他标准。错误消息非常正确。数据语句必须是独立的,或者必须使用Fortran 90的初始化语句。或者更确切地说将它们定义为PARAMETER,然后删除SAVE。
以下将使用f77进行编译:
character*26 cup
character*26 clo
data cup/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
data clo/'abcdefghijklmnopqrstuvwxyz'/
save cup,clo