혼자서 해결해 볼려구해도 잘모르겠네요..아래보시면 컴파일시에는 에러가 없다고 뜨는데.,.
고수님들께 조언을 부탁드려요..보시는 프로그램 및에 컴파일과 빌드시 에러메세지가 있구요..
약간의 조언의 말도 큰도움이 될꺼 같애요...꼭좀 훑어 보시고 도움좀 부탁드려요...
program pip_valve
parameter (im=51)
dimension u(im),p(im),cww(im),cee(im),cw(im),ce(im)
data a,rho,d,hr,xl,f,aoocv,tc,e,tlim/1200.,1000.,0.5,150.,600.,0.018,0.009,2.1,1.5,10./
open(10,file='opipe')
!cc..constants.
pi=2.*asine(1.)
g=9.8
beta=rho*a**2
dx=xl/(im-1)
ab=pi*d**2/4.
rko=aoocv*sqrt(2/rho)/ab
!cc..Initial values.
pb=rho*g*hr/(1.+f*rho*xl*rko**2/(2*d))
do i=1,im
x=dx*(i-1.)
u(i)=rko*sqrt(pb)
p(i)=-f*rho*u(i)**2*x+rho*g*hr
end do
!cc..Begin the main computation starting from t=dt.
t=0.
10 continue
!cc..Find dt, and update the time level, t.
umax=0.
do i=2,im-1
uab=abs(u(i))
if(umax.lt.uab) umax=uab
end do
dt=dx/(a+umax)
t=t+dt
!cc..Compute cww and cee at each grid point and then cw and ce.
do i=1,im
res=f*u(i)*abs(u(i))/(2*d)*dt
cww(i)=u(i)+a/beta*p(i)-res
cee(i)=u(i)-a/beta*p(i)+res
end do
do i=2,im
cw(i)=cww(i)-(a+u(i-1))/dx*dt*(cww(i)-cww(i-1))
end do
do i=1,im-1
ce(i)=cee(i)+(a+u(i+1))/dx*dt*(cee(i+1)-cee(i))
end do
!cc..Set the boundary conditions at the pipe inlet and the orifice.
p(1)=rho*g*hr
u(1)=ce(1)+a/beta*p(1)
tau0=1-t/tc
if(tau0.le.0.) then
tau=0.
p(im)=cw(im)*beta/a
else
tau=tau0**e
rkac=(rko*tau)**2+2*a*cw(im)/beta
p(im)=(rkac-sqrt(rkac**2-4*(a/beta)**2*cw(im)**2))/(2*(a/beta)**2)
end if
u(im)=cw(im)-a/beta*p(im)
!cc..Obtain u(i) and p(i) at the interior grids.
do i=2,im-1
u(i)=(cw(i)+ce(i))/2.
p(i)=beta/(2*a)*(cw(i)-ce(i))
end do
!cc..Write the results. pressure is in [MPa].
write(*,900) t,tau,u(1),p(im)*1e-06
write(10,900) t,tau,u(1),p(im)*1e-06
900 format(4e13.5)
!cc..Stop if t becomes large enough.
if(t.lt.tlim) go to 10
stop
end
--------------------Configuration: pipe - Win32 Debug--------------------
Compiling Fortran...
C:\pipe\pipe.f90
첫댓글 pi=2.*asine(1.) -> pi=2.*asin(1.)로 바꾸면 되겠군요.
아~~너무 감사합니다..값이 뜨네요..^^ 근데..값이 나오다가 런타임오류가 뜨는데요..자주나오는 질문 게시판엔 sqrt값이 문제라고 적혀있어서요..계속 봤더니..제가 쓰는 sqrt 뒤에의 식이 원래는 루뜨안에 있는 식이더라구요..절대값으로 취해줘야할듯 한데..이부분은 어떻게 해야하나요~??
절대값 함수가 있죠? ABS 인가..그거사용하시면..
너무 감사해요..결과치 완벽하게 나오네요..정말 정말 감사합니다 ^^