Fortran Programs: 1-Cross Sections
Fortran Programs: 1-Cross Sections
1-cross sections
program crosssection
dimension x(12),y(12)
print*,"enter num of cross sections "
read*,k
do 20 i=1,k
print*,"enter N "
read*,n
do 30 j=1,n
30 read(*,*)x(j),y(j)
do 50 l=2,n-1
50 sum=sum+x(l)*(y(l+1)-y(l-1))
b=x(1)*(y(2)-y(n))
c=x(n)*(y(1)-y(n-1))
area=sum+b+c
area=0.5*abs(area)
20 write(*,*)"area = ",area,"m2"
end
subroutine dep(t,y,n,q,delta,a)
dimension t(n+1),y(n+1)
t(1)=0.0
y(1)=0.0
do 10 i=2,n+1
t(i)=t(i-1)+delta
y(i)=y(i-1)+(q/a)*((3.0*sin(t(i-1))**2) -1.0)*delta
10 continue
return
end
program area
dimension h(501)
real m
open(12,file="water.txt")
read(12,*)b,deltx
m=b/deltx
n=m+1
read(12,*)(h(i),i=1,n)
!trapezoidal rule
sum1=0.5*(h(1)+h(n))
do 10 i=2,n-1
10 sum2=sum2+h(i)
area1=deltx*(sum1+sum2)
!simpson rule
remainder=mod(m,2.0)
if(remainder.eq.0.0)then
sum3=h(1)+h(n)
do 20 j=2,n-1,2
20 sum4=sum4+h(j)
do 30 k=3,n-2,2
30 sum5=sum5+h(k)
area2=(deltx/3)*(sum3+4*sum4+2*sum5)
area2=area0+(deltx/3)*(sum3+4*sum4+2*sum5)
endif