加入五千万化工人社群
您需要 登录 才可以下载或查看,没有账号?注册
x
SUBROUTINE ME (NSIN, NINFI, SIN1, SIN2, SIN3,
SIN4, SINFI, NSOUT, NINFO, SOUT1,
SOUT2, SOUT3, SOUT, SINFO, NSUBS,
IDXSUB, ITYPE, NINT, INT, NREAL,
REAL, IDS, NPO, NBOPST, NIWORK,
IWORK, NWORK, WORK, NSIZE, SIZE,
INTSIZ, LD )
IMPLICIT NONE
INTEGER NSUBS, NINT, NPO, NIWORK, NWORK, NSIZE
#include "ppexec_user.cmn"
EQUIVALENCE (RMISS, USER_RUMISS)
EQUIVALENCE (IMISS, USER_IUMISS)
#include "dms_ncomp.cmn"
INTEGER IDXSUB(NSUBS), ITYPE(NSUBS), INT(NINT),
IDS(2,13), NBOPST(6,NPO),
IWORK(NIWORK), INTSIZ(NSIZE), MSIN, NINFI,
NSOUT, NINFO, NREAL, LD, I
REAL*8 SIN1(1), SIN2(1), SIN3(1),
SIN4(1), SOUT1(1), SOUT2(1),
SOUT3(1), SOUT4(1), WORK(NWORK),
SIZE(NSIZE), SINFI, SINFO
INTEGER IMISS
REAL*8 REAL(NREAL), RMISS, SPLIT
! INTERGER NCOMP_NCC
REAL*8 K,E,R,T,PH,PL_H2,P,FRAC_H2,FRAC_H21,OUT_DH2,DC,PL,C,H,A,B
INTEGER G
REAL*8 FIN_MOL(NCOMP_NCC+1),FIN_MOL1(NCOMP_NCC+1),PHEND,OUT_H2
PARAMETER (K=1.084E-10, E=9.18E03, R=8.3145)
T=SIN1(NCOMP_NCC+2)
P=SIN1(NCOMP_NCC+3)
C=120;
H=1;
PL_H2=30000;
OUT_DH2=0
DC=C/10000
DO 50 G=1, NCOMP_NCC+1
FIN_MOL(G)=SIN1(G)
50 CONTINUE
FRAC_H2=FIN_MOL(1)/FIN_MOL(NCOMP_NCC+1)
PH=FRAC_H2*P
IF(PH<PL_H2) THEN
OUT_DH2=0
ELSE
DO G=1,10000
OUT_H2=K*(PH**0.6-PL_H2**0.5)*EXP(-E/R/T)*DC/H*0.6
OUT_DH2=OUT_DH2+OUT_H2
FIN_MOL(1)=FIN_MOL(1)-OUT_H2
FIN_MOL(NCOMP_NCC+1)=FIN_MOL(NCOMP_NCC+1)-OUT_H2
PH=FIN_MOL(1)/FIN_MOL(NCOMP_NCC+1)*P
END DO
END IF
SOUT2(1)=OUT_DH2;
SOUT1(1)=SIN1(1)-OUT_DH2;
D0 100 G=2, NCOMP_NCC+1
SOUT1(G)=SIN1(G)
SOUT2(G)=0
100 CONTINUE
DO 200 I=NCOMP_NCC+2, NCOMP_NCC+8
SOUT1(I)=SIN1(I)
SOUT2(I)=SIN1(I)
200 CONTINUE
RETURN
END |
发表于 2011-6-30 21:54:50
 |