rendered paste body
program main
implicit none
integer, parameter :: experiment_number=50
integer, parameter :: fileid=10
real(kind=4)::N(experiment_number)
real(kind=8)::D(experiment_number)
real(kind=8)::surface_area(experiment_number)
real(kind=8)::klap(experiment_number)
real(kind=8)::klab(experiment_number)
integer i, num, error,ii
common/dat/N,D,surface_area,ii
open(unit=fileid, status="old",file="condition.txt",iostat=error)
if ( error/=0 ) then
write(*,*) "Open condition.txt fail."
stop
end if
do i=1,experiment_number
read(fileid,*) num, N(i), D(i), surface_area(i)
end do
ii=1
do i=1,experiment_number
call mass_transfer(N(i),D(i),surface_area(i), klap(i), klab(i))
ii=ii+1
write(*,*)klap(i),klab(i)
open(unit=20,file="result.txt")
write(20,*)klap(i),klab(i)
end do
stop
end
!***************main program stop here!
! *********************** calculate mass transfer coefficient !
subroutine mass_transfer(speed,diffusion,area,coefficient_packing,coefficient_blade)
use IMSL
implicit none
real(kind=8)::speed,diffusion,area, coefficient_packing,coefficient_blade
real, external::F1,F2
real, parameter :: A = 0.078
real, parameter :: B = 0.093
real, parameter :: C = 0.108
real, parameter :: ERRABS = 1E-5
real, parameter :: ERRREL = 1E-5
real ANS, ERR
call QDAGS (F1, A, B, ERRABS, ERRREL, ANS, ERR)
coefficient_packing=ans
call QDAGS (F2, B, C, ERRABS, ERRREL, ANS, ERR)
coefficient_blade=ans
return
end
!*************************************
!*******************************integrand function in the packing!
real function F1(r)
real:: r !radius,m
real(kind=8)::ae,kl,Lf
integer, parameter :: experiment_number=50
real(kind=8):: acceleration,diameter,thickness,velocity,holdup
common/dat/N,D,ii
real(kind=4)::N(experiment_number)
real(kind=8)::D(experiment_number)
integer ii
real,parameter::p=1113.4 !density,kg/m3
real,parameter::q=0.07833 !surface tension,kg/s2
real,parameter::v=0.000001486 !viscosity,m2/s
real,parameter::L=80.0 !liqudi flow rate ,L/h
Lf=(L*0.001/3600)/(2*3.1415926*r*0.05)
acceleration=r*(2.0*3.1415926*N(ii)/60)**2.0
diameter=0.7284*(q/(acceleration*p)**0.5)
velocity=((Lf/0.039)*((acceleration/100.0)**(0.5))*(0.01**(0.6))*(V/0.000001)**(-0.22))**(1.0/1.6)
holdup=0.039*(acceleration/100.0)**(-0.5)*(velocity/0.01)**0.6*(v/0.000001)**(0.22)
ae=6*holdup/diameter
kl=(D(ii)*8*velocity/0.015)**(0.5)
F1 = ae*kl*r
return
end
!**********************************************
!*************************integrand function in the blades!
real function F2(r)
real:: r !radius,m
real(kind=8)::ae,kl,Lf
integer, parameter :: experiment_number=50
real(kind=8):: acceleration,diameter,thickness,velocity,holdup
common/dat/N,D,surface_area,ii
real(kind=4)::N(experiment_number)
real(kind=8)::D(experiment_number)
real(kind=8)::surface_area(experiment_number)
integer ii
real,parameter::p=1113.4 !density,kg/m3
real,parameter::q=0.07833 !surface tension,kg/s2
real,parameter::v=0.000001486 !viscosity,m2/s
real,parameter::L=80.0 !liqudi flow rate ,L/h
Lf=(L*0.001/3600)/(2*3.1415926*r*0.05)
acceleration=r*(2.0*3.1415926*N(ii)/60)**2.0
diameter=0.7284*(q/(acceleration*p)**0.5)
!thickness=(3*v*Lf/acceleration)**(1/3)
thickness=4.2*(10**8.0)*v*Lf/(surface_area(ii)*acceleration)
velocity=((Lf/0.039)*((acceleration/100.0)**(0.5))*(0.01**(0.6))*(V/0.000001)**(-0.22))**(1.0/1.6)
holdup=0.039*(acceleration/100.0)**(-0.5)*(velocity/0.01)**0.6*(v/0.000001)**(0.22)
ae=6*(holdup-thickness*surface_area(ii))/diameter + surface_area(ii)
kl=(D(ii)*1*velocity/0.015)**(0.5)
F2 = ae*kl*r
return
end
!**********************************