Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- C User Subroutine for RYIELD---PRESCORR.
- C$ #1 BY: JERRY CHANG, DATE: 4-FEB-2009.
- SUBROUTINE USRPRES (SIN, SOUT, NSUBS, IDXSUB, ITYPE,
- 1 NINT, INT, NREAL, REAL, IDS,
- 2 NPO, NBOPST, NIWORK, IWORK, NWORK,
- 3 WORK)
- C***********************************************************************
- C COPYRIGHT (C) 1989 *
- C ASPEN TECHNOLOGY, INC. *
- C CAMBRIDGE, MA *
- C***********************************************************************
- C-----------------------------------------------------------------------
- C The model to correct the effect of pressure on total yield of
- C volatiles is from the C.-Y Wen et al.'s work (C.-Y. Wen and
- C T.-Z. Chaung, Entrainment Coal Gasification Modeling, Ind. Eng.
- C Chem. Process Des. Dev., 1979, 18(4): 684-695).
- C-----------------------------------------------------------------------
- C-----------------------------------------------------------------------
- C PURPOSE: TO MAKE THE PRESSURE CORRECTION FOR THE AMOUNT OF EACH
- C PYROLYSIS PRODUCT FROM THE PRESSURE DOING THE EXPERIMENT
- C OF COAL PYROLYSIS TO THE REAL PRESSURE IN THE GASIFIER,
- C AND THEN TO CALCULATE THE COMPONENT ATTRIBUTE OF CHAR
- C AFTER CORRECTION.
- C
- C
- C NOTE: IN THE PRESSURE CORRECTION, THE RELATIVE COMPOSITION OF GAS
- C COMPONENTS IN GAS PHASE IS ASSUMED TO BE CONSTANT. THE TOTAL
- C YIELD OF VOLATILES IS CHANGED BY THE EQUATION:
- C
- C V2 = V1 * (1 - A*LN(PT))
- C
- C WHERE: V1 = TOTAL YIELD OF VOLATILES AT THE PRESSURE OF COAL
- C PYROLYSIS EXPERIMENT;
- C V2 = TOTAL YIELD OF VOLATILES AT THE PRESSURE OF REAL
- C GASIFIER;
- C PT = PRESSURE IN REAL GASIFIER, ATM;
- C A = CONSTANT. IN THIS MODEL, A IS SELECTED TO BE 0.066.
- C-----------------------------------------------------------------------
- IMPLICIT NONE
- C
- C DECLARE VARIABLES USED IN DIMENSIONING
- C
- INTEGER NSUBS, NINT, NREAL, NPO, NIWORK, NWORK
- C
- #include "ppexec_user.cmn"
- EQUIVALENCE (RMISS, USER_RUMISS)
- EQUIVALENCE (IMISS, USER_IUMISS)
- #include "dms_ncomp.cmn"
- EQUIVALENCE (B(1), IB(1))
- C
- #include "pputl_ppglob.cmn"
- #include "dms_maxwrt.cmn"
- #include "dms_plex.cmn"
- C DECLARE ARGUMENTS
- C
- INTEGER IDXSUB(NSUBS), ITYPE(NSUBS), INT(NINT), IDS(2,13),
- + NBOPST(6,NPO), IWORK(NIWORK), IMISS, DMS_IFCMNC,
- + LMW, LMWI, I
- C
- REAL*8 SIN(1), SOUT(1), WORK(NWORK), REAL(NREAL),
- + XMW(1), B(1), RMISS
- C
- REAL*8 PT, MCOIN, MH2IN, MCO2IN, MH2OIN, MH2SIN,
- + MN2IN, MCH4IN, MC6H6IN, NCOOUT, NH2OUT, NCO2OUT,
- + NH2OOUT, NH2SOUT, NN2OUT, NCH4OUT, NC6H6OUT, MCHAR1IN,
- + MTOTG, YCO, YH2, YCO2, YH2O, YH2S,
- + YN2, YCH4, YC6H6, MTOTGC
- C
- REAL*8 NPROX1, NULTA1, NSULF1, PAMOIS, PAFC, PAVM,
- + PAASH, UAASH, UAC, UAH, UAN, UACL,
- + UAS, UAO, SAP, SAS, SAO, NPROX2,
- + NULTA2, NSULF2
- C BEGIN EXECUTABLE CODE
- C PRESSURE OF REACTOR (ATM)
- PT = 24.0
- C RETRIVE MOLECULAR WEIGHT OF EACH COMPONENT (KG/KMOL)
- LMW = DMS_IFCMNC('MW')
- DO I = 1,NCOMP_NCC
- LMWI = LMW+I
- XMW(I) = B(LMWI)
- END DO
- C RETRIEVE MASS FLOW RATES OF COMPONENTS IN INLET STREAM(KG/S)
- MCOIN = SIN(IDXSUB(1)-1+2) * XMW(2)
- MH2IN = SIN(IDXSUB(1)-1+3) * XMW(3)
- MCO2IN = SIN(IDXSUB(1)-1+4) * XMW(4)
- MH2OIN = SIN(IDXSUB(1)-1+5) * XMW(5)
- MH2SIN = SIN(IDXSUB(1)-1+6) * XMW(6)
- MN2IN = SIN(IDXSUB(1)-1+7) * XMW(7)
- MCH4IN = SIN(IDXSUB(1)-1+8) * XMW(8)
- MC6H6IN = SIN(IDXSUB(1)-1+9) * XMW(9)
- MCHAR1IN = SIN(IDXSUB(3)-1+2)
- C WEIGHT FRACTION OF GASEOUS COMPONENTS IN GAS PHASE
- MTOTG = MCOIN + MH2IN + MCO2IN + MH2OIN + MH2SIN + MN2IN
- + +MCH4IN + MC6H6IN
- YCO = MCOIN / MTOTG
- YH2 = MH2IN / MTOTG
- YCO2 = MCO2IN / MTOTG
- YH2O = MH2OIN / MTOTG
- YH2S = MH2SIN / MTOTG
- YN2 = MN2IN / MTOTG
- YCH4 = MCH4IN / MTOTG
- YC6H6 = MC6H6IN/ MTOTG
- C TOTAL MASS FLOW RATE OF GAS PHASE AFTER PRESSURE CORRECTION (KG/S)
- MTOTGC = MTOTG * (1.0D0-0.066*LOG(PT))
- C FLOW RATES OF COMPONENTS IN OUTLET STREAMS (MIXED COMPONENTS: KMOL/S;
- C NONCONVENTIONAL COMPONENT: KG/S)
- NCOOUT = MTOTGC * YCO / XMW(2)
- NH2OUT = MTOTGC * YH2 / XMW(3)
- NCO2OUT = MTOTGC * YCO2 / XMW(4)
- NH2OOUT = MTOTGC * YH2O / XMW(5)
- NH2SOUT = MTOTGC * YH2S / XMW(6)
- NN2OUT = MTOTGC * YN2 / XMW(7)
- NCH4OUT = MTOTGC * YCH4 / XMW(8)
- NC6H6OUT = MTOTGC * YC6H6 / XMW(9)
- C
- SOUT(IDXSUB(1)-1+2) = NCOOUT
- SOUT(IDXSUB(1)-1+3) = NH2OUT
- SOUT(IDXSUB(1)-1+4) = NCO2OUT
- SOUT(IDXSUB(1)-1+5) = NH2OOUT
- SOUT(IDXSUB(1)-1+6) = NH2SOUT
- SOUT(IDXSUB(1)-1+7) = NN2OUT
- SOUT(IDXSUB(1)-1+8) = NCH4OUT
- SOUT(IDXSUB(1)-1+9) = NC6H6OUT
- SOUT(IDXSUB(3)-1+3) = MTOTG + MCHAR1IN - MTOTGC
- C TOTAL FLOW RATES OF EACH SUBSTREAM (MIXED COMPONENTS: KMOL/S;
- C NONCONVENTIONAL COMPONENT: KG/S)
- SOUT(IDXSUB(1)+NCOMP_NCC) = NCOOUT + NH2OUT + NCO2OUT + NH2OOUT
- + +NH2SOUT + NN2OUT + NCH4OUT + NC6H6OUT
- SOUT(IDXSUB(3)+NCOMP_NNCC)= SOUT(IDXSUB(3)-1+3)
- C COMPONENT ATTRIBUTE OF NC SUBSTREAM
- C ****COMPONENT ATTRIBUTE OF FEED CHAR1
- C LOCATE BEGINNING OF EACH ANALYSIS ATTRIBUTE
- NPROX1 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + 4 + 7 + 3
- NULTA1 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + 4 + 7 + 3 + 4
- NSULF1 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + 4 + 7 + 3 + 4 + 7
- C PROXIMATE ANALYSIS
- PAMOIS = SIN(NPROX1+1)
- PAFC = SIN(NPROX1+2)
- PAVM = SIN(NPROX1+3)
- PAASH = SIN(NPROX1+4)
- C ULTIMATE ANALYSIS
- UAASH = SIN(NULTA1+1)
- UAC = SIN(NULTA1+2)
- UAH = SIN(NULTA1+3)
- UAN = SIN(NULTA1+4)
- UACL = SIN(NULTA1+5)
- UAS = SIN(NULTA1+6)
- UAO = SIN(NULTA1+7)
- C SULFURNAL ANALYSIS
- SAP = SIN(NSULF1+1)
- SAS = SIN(NSULF1+2)
- SAO = SIN(NSULF1+3)
- C ****COMPONENT ATTRIBUTE OF PRODUCT CHAR2
- C LOCATE BEGINNING OF EACH ANALYSIS ATTRIBUTE
- NPROX2 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + (4+7+3)*2
- NULTA2 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + (4+7+3)*2 + 4
- NSULF2 = IDXSUB(3) - 1 + NCOMP_NNCC + 9 + (4+7+3)*2 + 4 + 7
- C PROXIMATE ANALYSIS
- SOUT(NPROX2+1) = PAMOIS
- SOUT(NPROX2+2) = MCHAR1IN*PAFC *0.01 / SOUT(IDXSUB(3)-1+3) * 100.0
- SOUT(NPROX2+4) = MCHAR1IN*PAASH*0.01 / SOUT(IDXSUB(3)-1+3) * 100.0
- SOUT(NPROX2+3) = 100.0 - SOUT(NPROX2+2) - SOUT(NPROX2+4)
- C ULTIMATE ANALYSIS
- C %%%ASH%%%
- SOUT(NULTA2+1) = SOUT(NPROX2+4)
- C %%%CARBON%%%
- C IT IS CALCULATED BY ATOM BALANCE.
- SOUT(NULTA2+2) = (MCHAR1IN*UAC*0.01
- + +(MCOIN /XMW(2) - NCOOUT )*12.0107
- + +(MCO2IN /XMW(4) - NCO2OUT )*12.0107
- + +(MCH4IN /XMW(8) - NCH4OUT )*12.0107
- + +(MC6H6IN/XMW(9) - NC6H6OUT)*6.0*12.0107)
- + / SOUT(IDXSUB(3)-1+3) *100.0
- C %%%HYDROGEN%%%
- SOUT(NULTA2+3) = (MCHAR1IN*UAH*0.01
- + +(MH2IN /XMW(3) - NH2OUT )*2.0*1.00794
- + +(MH2OIN /XMW(5) - NH2OOUT )*2.0*1.00794
- + +(MH2SIN /XMW(6) - NH2SOUT )*2.0*1.00794
- + +(MCH4IN /XMW(8) - NCH4OUT )*4.0*1.00794
- + +(MC6H6IN/XMW(9) - NC6H6OUT)*6.0*1.00794)
- + / SOUT(IDXSUB(3)-1+3) *100.0
- C %%%NITROGEN%%%
- SOUT(NULTA2+4) = (MCHAR1IN*UAN*0.01
- + +(MN2IN /XMW(7) - NN2OUT) *2.0*14.00674)
- + / SOUT(IDXSUB(3)-1+3) *100.0
- C %%%CHLORINE%%%
- SOUT(NULTA2+5) = (MCHAR1IN*UACL*0.01)
- + / SOUT(IDXSUB(3)-1+3) *100.0
- C %%%SULFUR%%%
- SOUT(NULTA2+6) = (MCHAR1IN*UAS*0.01
- + +(MH2SIN /XMW(6) - NH2SOUT) *32.065)
- + / SOUT(IDXSUB(3)-1+3) *100.0
- C %%%OXYGEN%%%
- SOUT(NULTA2+7) = 100.0 - SOUT(NULTA2+1) - SOUT(NULTA2+2)
- + - SOUT(NULTA2+3) - SOUT(NULTA2+4)
- + - SOUT(NULTA2+5) - SOUT(NULTA2+6)
- C SULFURNAL ANALYSIS
- SOUT(NSULF2+1) = SOUT(NULTA2+6)/3.0
- SOUT(NSULF2+2) = SOUT(NULTA2+6)/3.0
- SOUT(NSULF2+3) = SOUT(NULTA2+6)/3.0
- RETURN
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement