主题:我编的一个小程序,把1002*2的数组转换成501*4,总出问题,希望高手指点
hncqhlj
[专家分:0] 发布于 2011-04-11 18:23:00
program main
implicit none
integer I
real :: ff(501,4),FT(1002,2)
open(unit = 5, file='avdf.dat',status='old')
do I=1,1002
read(unit = 5, fmt = *) FT(I,1:2)
end do
do I=1,501
ff(I,1)=FT(2I-1,1)
ff(I,2)=FT(2I-1,2)
ff(I,3)=FT(2I,1)
ff(I,4)=FT(2I,2)
end do
open(unit=10,file='avdf2.dat',status='replace')
Do I=1,501
write(unit=10,fmt =100) ff(I,1:4)
end do
100 format(1X,F10.2,5X,F15.2,5X,F10.2,5X,F15.2)
close(5)
pause
stop
end program main
回复列表 (共5个回复)
沙发
hncqhlj [专家分:0] 发布于 2011-04-11 18:40:00
这是编译后的错误提示
Compiling with Intel Fortran 9.1 C:\Program Files\Intel\Compiler\Fortran\9.1\IA32\...
ifort /nologo /Zi /Od /module:"Debug/" /object:"Debug/" /traceback /check:bounds /libs:static /threads /dbglibs /c /Qvc8 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 8\VC\bin" "C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90"
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(12) : Error: Missing mandatory separating blank
ff(I,1)=FT(2I-1,1)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(12) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
ff(I,1)=FT(2I-1,1)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(13) : Error: Missing mandatory separating blank
ff(I,2)=FT(2I-1,2)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(13) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
ff(I,2)=FT(2I-1,2)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(14) : Error: Missing mandatory separating blank
ff(I,3)=FT(2I,1)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(14) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
ff(I,3)=FT(2I,1)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(15) : Error: Missing mandatory separating blank
ff(I,4)=FT(2I,2)
--------------------------------------------^
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90(15) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
ff(I,4)=FT(2I,2)
--------------------------------------------^
compilation aborted for C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Console9\Console9\Console9.f90 (code 1)
Console9 build failed
板凳
cgl_lgs [专家分:21040] 发布于 2011-04-11 21:01:00
do I=1,501
ff(I,1)=FT(2I-1,1)
ff(I,2)=FT(2I-1,2)
ff(I,3)=FT(2I,1)
ff(I,4)=FT(2I,2)
end do
應該改為:
do I=1,501
ff(I,1)=FT(2*I-1,1)
ff(I,2)=FT(2*I-1,2)
ff(I,3)=FT(2*I,1)
ff(I,4)=FT(2*I,2)
end do
3 楼
cgl_lgs [专家分:21040] 发布于 2011-04-11 21:05:00
乘號不能省。
4 楼
hncqhlj [专家分:0] 发布于 2011-04-13 09:25:00
多谢cgl_lgs大哥
5 楼
cgl_lgs [专家分:21040] 发布于 2011-04-13 13:36:00
呵呵,近来叫俺啥的都有哈:)
不客气啦:)
我来回复