|
!!!!!!!!!第二部分
program kakusann
Include 'link_fnl_shared.h'
USE NEQNJ_INT
USE UMACH_INT
USE XXX
implicit none
real(8),parameter::exp=2.71828
real(8),parameter::FF=96485
real(8),parameter::tau=86400
real(8),parameter::RR=8.3145
real(8),parameter::T=298.15
real(8)::dx1,dx2,dx,r1,r2,Lall,Lf,La,D1,D2,dt1,dt2,dt,L,S1,sum,sum1,sum2,Sall,Sall1,Sall2,Sall3
real(8)::Kbio,y1,y2,fe0,P2,qmaxE,KsE,Ye,binaE,bresE,qmaxC,KsC,Yc,binaC,bresC,dLf,Xf
real(8)::S(0:10000) !変化前の基質濃度
real(8)::Sn(0:10000) !変化後の基質濃度
real(8)::Xe(0:10000) !発電微生物密度(mg-VS/cm^3)
real(8)::Xei(0:10000) !不活性発電微生物密度(mg-VS/cm^3)
real(8)::Xen(0:10000) !内生呼吸発電微生物密度(mg-VS/cm^3)
real(8)::Xes(0:10000) !不活性と活性発電微生物密度(mg-VS/cm^3)
real(8)::dXe(0:10000) !単位時間の発電微生物変化量
real(8)::dXei(0:10000) !単位時間の不活性発電微生物変化量
real(8)::dXen(0:10000) !単位時間の内生呼吸発電微生物変化量
real(8)::Xc(0:10000) !従属微生物密度(mg-VS/cm^3)
real(8)::Xci(0:10000) !不活性従属微生物密度(mg-VS/cm^3)
real(8)::Xcn(0:10000) !内生呼吸従属微生物密度(mg-VS/cm^3)
real(8)::Xcs(0:10000) !不活性と活性従属微生物密度(mg-VS/cm^3)
real(8)::dXc(0:10000) !単位時間の従属微生物変化量
real(8)::dXci(0:10000) !単位時間の不活性従属微生物変化量
real(8)::dXcn(0:10000) !単位時間の内生呼吸従属微生物変化量
real(8)::dXcs(0:10000) !単位時間の従属微生物変化量
real(8)::dXs(0:10000) !単位時間の微生物変化量(内生呼吸微生物以外)
real(8)::Xs(0:10000) !微生物密度変化量(mg-VS/cm^3)(内生呼吸微生物以外)
real(8)::qE(0:10000) !発電微生物基質消費量(mg-VS/cm^3)
real(8)::qC(0:10000) !従属微生物基質消費量(mg-VS/cm^3)
real(8)::Ac=0.0003 !最初水槽内の基質濃度(mmol/cm^3)
integer::i,j,m,i1,j1,p
integer::imax=20 !拡散層の分割数
integer::jmax !生物膜の分割数
integer::mmax !拡散層と生物層の総分割数
!itaを求める時、使われる値
!external::fcn,lsjac
integer::N !行列の数
integer::K,nout
real(8)::fnorm
real(8),allocatable::X(:) !ita
real(8),allocatable::Xguess(:) !予測値
real(8),allocatable::FJAC(:,:) !ヤコビアン式
real(8),allocatable::F(:) !求める方程式
real(8),allocatable::P1(:)
N=jmax-3
!拡散層の初期値
L=0.01 !拡散層の長さ、単位(cm)
D1=0.941/24/60/60 !拡散層の拡散係数、単位(cm2/s)
dx1=L/imax
!生物層の初期値
Lf=0.002 !生物層の長さ、単位(cm)
D2=0.753/24/60/60 !生物層の拡散係数、単位(cm2/s)
dx2=dx1
jmax=Lf/dx2
dt1=dx1**2/D1*0.3
dt2=dx2**2/D2*0.3
N=jmax-3
if(dt2>=dt1) then
dt=dt1
else
dt=dt2
end if
allocate(X(N))
allocate(Xguess(N))
allocate(FJAC(N,N))
allocate(F(N))
allocate(P1(N))
write(*,*)'dt1=',dt1,'dt2=',dt2,'dt=',dt
!----------------------------------------------------------------------------------
r1=D1*dt/dx1**2
r2=D2*dt/dx2**2
! 初期値
Lall=7 !総長さ、単位(cm)
S(0)=Ac
La=Lall-L-Lf !反応層の長さ
mmax=imax+jmax
qmaxE=0.132/24/60/60 !発電微生物最大基質消費速度(mmol-Ac/mgVS/day)→(mmol-Ac/mgVS/s)
qmaxC=0.234/24/60/60 !従属微生物最大基質消費速度(mmol-Ac/mgVS/day)→(mmol-Ac/mgVS/s)
KsE=0.00003 !発電微生物の飽和定数(mmol/cm^3)
KsC=0.0011 !従属微生物の飽和定数(mmol/cm^3)
Ye=4.52 !発電微生物増殖収率(mg-VS/mmol-ED)
Yc=3.0 !従属微生物増殖収率(mg-VS/mmol-ED)
binaE=0.05/24/60/60 !発電微生物不活性に変換される速度(/day)→(/s)
bresE=0.05/24/60/60 !発電微生物内部減衰定数(内生呼吸)速度(/day)→(/s)
binaC=0.02/24/60/60 !従属微生物不活性に変換される速度(/day)→(/s)
bresC=0.07/24/60/60 !従属微生物内部減衰定数(内生呼吸)速度(/day)→(/s)
Xf=80.0 !飽和密度
Xe=20.0 !発電微生物活性微生物密度(mg-VS/cm^3)
Xc=80.0 !従属微生物活性微生物密度(mg-VS/cm^3)
do p=1,imax
Xe(p)=0
Xc(p)=0
end do
!電圧の部分
Kbio=0.00005 !電気伝導性係数
y1=8 !酢酸の電子当量
y2=0.177 !微生物電子当量
fe0=0.9 !微生物の基質から得られた電子を電極に渡す割合
do p=imax+1,mmax
Xei(p)=0
Xen(p)=0
Xe(p)=20
Xes(p)=20
Xci(p)=0
end do
do p=2,mmax
S(p)=0.0
end do
S(1)=(S(0)*La)/(La+dx1)
S(0)=S(1)
!リサイクルの開始
do m=1,10000
sum1=0
do p=2, mmax
sum1=sum1+S(p)
end do
!係数の表示
do p=imax+3,mmax-1
P1(p)=FF*Xe(p)/(tau*Kbio)*(y1*fe0*qmaxE*(S(p)/(S(p)+KsE))+y2*bresE)*dx2**2
end do
P2=-FF/(RR*T)
!do p=imax+3,mmax-1
!write(*,*)P1(p),P2
!end do
!予測値
do p=imax+3,mmax-1
Xguess(p)=0.3
end do
|
|