主题:请教高手!
module mianji
implicit none
contains
function fun(filename) result(total)
implicit none
character(len=79)::filename
integer,parameter::fileid=10
real,dimension(1:23)::a,b
real::s
integer::i
real::area=0
real::total
logical::alive
inquire(file=filename,exist=alive)
if(alive)then
open(fileid,file=filename,status='old')
do i=1,23
read(fileid,*)a(i),b(i)
end do
write(*,'(23f6.3)')(a(i),i=1,23)
write(*,'(23f8.4)')(b(i),i=1,23)
else
write(*,*)'文件不存在'
end if
do i=1,22
s=((b(i+1)+b(i))/2)*(a(i+1)-a(i))
area=area+s
end do
total=area
write(*,*)'area=',total
end function fun
end module
program jian
use mianji
implicit none
character(len=79)::filename1,filename2
real::afilename1,afilename2,atotal
write(*,*)'filename1'
read(*,'(A79)')filename1
write(*,*)'filename2'
read(*,'(A79)')filename2
afilename1=fun(filename1)
afilename2=fun(filename2)
atotal=afilename2-afilename1
print*,afilename1
print*,afilename2
write(*,*)'cl=',atotal
end program jian
分开计算时afilename1=-0.7092733,afilename2=-2.587754E-02。用上面程序计算得到的afilename1=-0.7092733,afilename2=-0.7351311,afilename2是错的。为什么afilename2差这么多,是不是格式设置的问题?
望您指教!
implicit none
contains
function fun(filename) result(total)
implicit none
character(len=79)::filename
integer,parameter::fileid=10
real,dimension(1:23)::a,b
real::s
integer::i
real::area=0
real::total
logical::alive
inquire(file=filename,exist=alive)
if(alive)then
open(fileid,file=filename,status='old')
do i=1,23
read(fileid,*)a(i),b(i)
end do
write(*,'(23f6.3)')(a(i),i=1,23)
write(*,'(23f8.4)')(b(i),i=1,23)
else
write(*,*)'文件不存在'
end if
do i=1,22
s=((b(i+1)+b(i))/2)*(a(i+1)-a(i))
area=area+s
end do
total=area
write(*,*)'area=',total
end function fun
end module
program jian
use mianji
implicit none
character(len=79)::filename1,filename2
real::afilename1,afilename2,atotal
write(*,*)'filename1'
read(*,'(A79)')filename1
write(*,*)'filename2'
read(*,'(A79)')filename2
afilename1=fun(filename1)
afilename2=fun(filename2)
atotal=afilename2-afilename1
print*,afilename1
print*,afilename2
write(*,*)'cl=',atotal
end program jian
分开计算时afilename1=-0.7092733,afilename2=-2.587754E-02。用上面程序计算得到的afilename1=-0.7092733,afilename2=-0.7351311,afilename2是错的。为什么afilename2差这么多,是不是格式设置的问题?
望您指教!