主题:求Fortran高手分析一段程序
! ******************************************************************
!
program sondes
!
! ******************************************************************
!
implicit none
!
integer, parameter :: nx=513,ny=257,np=5
real(4) :: champ(nx,ny)
real(8) :: xlx,yly,dx,dy,dt
real(4) :: t,xm,ym
!
integer :: im(np),jm(np)
integer :: i,j,istretch,ind,kt
character(len=100) chemin
character(len=3) car3
!
! ------------------------------------------------------------
!
istretch=0
dt=7.191835884530847E-003*100.
xlx=20.
yly=10.
chemin='~/rectangle/09_10_01.rec/09_10_01.dat/'
ind=index(chemin,' ')-1
!
dx=xlx/(nx-1)
dy=yly/(ny-1)
!
im(1)=188
im(2)=193
im(3)=219
im(4)=224
jm(1)=134
jm(2)=142
jm(3)=116
jm(4)=124
im(5)=17./dx
jm(5)=116
!
open(10,file=chemin(1:ind)//'sondes.dat',&
form='formatted')
! write(10,*) 'VARIABLES = t,wz1,wz2,wz3,wz4,wz5'
! write(10,*) 'ZONE T = "champ",I=',nx,',J=',ny
do kt=1,151
t=(kt-1)*dt
print *,'k, t :',kt,t
call numcar3(kt,car3)
open(90,file=chemin(1:ind)//'ux.'//car3//'.dat',&
form='unformatted')
read(90) champ
close(90)
write(10,*) t,champ(im(1),jm(1)),champ(im(2),jm(2)),&
champ(im(3),jm(3)),champ(im(4),jm(4)),&
champ(im(5),jm(5))
enddo
close(10)
!
end
!
! ***************************************************************
!
subroutine numcar3(num,car)
!
! **************************************************************
!
implicit none
!
character(len=3),intent(out) :: car
integer,intent(in) :: num
!
if (num.ge.100) then
write(car,1) num
1 format(i3)
else
if (num.ge.10) then
write(car,2) num
2 format('0',i2)
else
write(car,3) num
3 format('00',i1)
endif
endif
!
return
end
!
!
其实我知道这样提问有点太强人所难了,但是本人真的对F一窍不通.此段程序是老师编完的用来分析流体计算以后产生的dat文件的.但是用完这段程序以后产生的新文件里面就只有6列数据......没任何说明,所以完全不懂是什么东西.
请高手帮我解释下这产生的6列数据的意义,个代表了什么? 谢谢
!
program sondes
!
! ******************************************************************
!
implicit none
!
integer, parameter :: nx=513,ny=257,np=5
real(4) :: champ(nx,ny)
real(8) :: xlx,yly,dx,dy,dt
real(4) :: t,xm,ym
!
integer :: im(np),jm(np)
integer :: i,j,istretch,ind,kt
character(len=100) chemin
character(len=3) car3
!
! ------------------------------------------------------------
!
istretch=0
dt=7.191835884530847E-003*100.
xlx=20.
yly=10.
chemin='~/rectangle/09_10_01.rec/09_10_01.dat/'
ind=index(chemin,' ')-1
!
dx=xlx/(nx-1)
dy=yly/(ny-1)
!
im(1)=188
im(2)=193
im(3)=219
im(4)=224
jm(1)=134
jm(2)=142
jm(3)=116
jm(4)=124
im(5)=17./dx
jm(5)=116
!
open(10,file=chemin(1:ind)//'sondes.dat',&
form='formatted')
! write(10,*) 'VARIABLES = t,wz1,wz2,wz3,wz4,wz5'
! write(10,*) 'ZONE T = "champ",I=',nx,',J=',ny
do kt=1,151
t=(kt-1)*dt
print *,'k, t :',kt,t
call numcar3(kt,car3)
open(90,file=chemin(1:ind)//'ux.'//car3//'.dat',&
form='unformatted')
read(90) champ
close(90)
write(10,*) t,champ(im(1),jm(1)),champ(im(2),jm(2)),&
champ(im(3),jm(3)),champ(im(4),jm(4)),&
champ(im(5),jm(5))
enddo
close(10)
!
end
!
! ***************************************************************
!
subroutine numcar3(num,car)
!
! **************************************************************
!
implicit none
!
character(len=3),intent(out) :: car
integer,intent(in) :: num
!
if (num.ge.100) then
write(car,1) num
1 format(i3)
else
if (num.ge.10) then
write(car,2) num
2 format('0',i2)
else
write(car,3) num
3 format('00',i1)
endif
endif
!
return
end
!
!
其实我知道这样提问有点太强人所难了,但是本人真的对F一窍不通.此段程序是老师编完的用来分析流体计算以后产生的dat文件的.但是用完这段程序以后产生的新文件里面就只有6列数据......没任何说明,所以完全不懂是什么东西.
请高手帮我解释下这产生的6列数据的意义,个代表了什么? 谢谢