QQ登录

只需一步,快速开始

微信登录

手机微信,扫码同步

用户名登录

用户名,密码登录

搜索
江苏新志成

[ASPEN] Fortran 子程序求助!

[复制链接]
3.8K |30
阅读字号:
人间喜剧。VIP会员 VIP会员 | 显示全部楼层 |阅读模式       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   

加入千万工业人行列

您需要 登录 才可以下载或查看,没有账号?注册

x

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


这行代码是获取所有组分的摩尔质量,DMS_IFCMN 的解释是determine the offset for component data areas in the labeled common DMS_PLEX ,从公共区域DMS_PLEX获取MW(摩尔质量);NCOMP_NCC是所有组分的个数,B是实型PLEX 存储空间。但是看不懂这个循环,是如何做到检索每个组分的分子量的


 

发表于 2022-9-27 20:54:09

声明:

本站是提供个人知识管理及信息存储的网络存储空间,所有内容均由用户发布,不代表本站观点。

请注意甄别主题及回复内容中的联系方式、诱导购买等信息,谨防诈骗。内容及翻译仅供参考

当前内容由会员用户名 人间喜剧。 发布!权益归其或其声明的所有人所有 仅代表其个人观点, 仅供个人学习、研究之用。

本主题及回复中的网友及版主依个人意愿的点评互动、推荐、评分等,均不代表本站认可其内容或确认其权益归属,

如发现有害或侵权内容,可联系我站举证删除,我站在线客服信息service@hcbbs.com 电话188-4091-1640 

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
RETRIEVE TEMPERATURE(K), PRESSURE(ATM), MOLE FLOWS OF COMPONENTS (KMOL/S).
        T      = SOUT(IDXSUB(1)-1+NCOMP_NCC+2)               
        PT     = RPROPS_UPRES / PAMBI                #IDXSUB 1=MIXED 2=CISOLID 3=NC
        NO2    = SOUT(IDXSUB(1)-1+1)
        NCO    = SOUT(IDXSUB(1)-1+2)
        NH2    = SOUT(IDXSUB(1)-1+3)
        NCO2   = SOUT(IDXSUB(1)-1+4)
        NH2O   = SOUT(IDXSUB(1)-1+5)
        NCH4   = SOUT(IDXSUB(1)-1+6)
        NN2    = SOUT(IDXSUB(1)-1+7)
        NH2S   = SOUT(IDXSUB(1)-1+8)
      NC6H6  = SOUT(IDXSUB(1)-1+9)
        NCARB  = SOUT(IDXSUB(2)-1+10)
        NSULF  = SOUT(IDXSUB(2)-1+11)
        NTOTG  = NO2+NCO+NH2+NCO2+NH2O+NCH4+NN2+NH2S+NC6H6


#SOUT 物流矢量        子流在流向量中的位置   NCOMP_NCC+2表示温度   SOUT 出口物流的数组     NCOMP_NCC(常规成分的数量)
#IDXSUB 1=MIXED 2=CISOLID 3=NC  ?????


SOUT(IDXSUB(1)-1   这串字符又是什么意思呢 ?   请大佬解惑

 

发表于 2022-9-27 20:56:52

点评

IDXSUB()这个函数应该返回的是地址,IDXSUB(1)返回MIXED物流物性的第一个地址,IDXSUB(2)返回的是CISOLID物流物性第一个地址,等等。有了第一个地址后,SOUT函数就能依据地址逐个获取相关物性(温压组成等)  详情 回复 发表于 2022-9-28 08:45
回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
DMS_IFCMNC函数应该获取‘MW’的首地址,然后地址+1,再通过B函数获取内容
另外,楼主DMS_IFCMNC的解释在哪儿有,能否将资料共享下?

 

发表于 2022-9-28 08:41:04

点评

是的,函数返回的是寄存器的首地址  发表于 2022-10-10 15:49
回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
人间喜剧。 发表于 2022-9-27 20:56
RETRIEVE TEMPERATURE(K), PRESSURE(ATM), MOLE FLOWS OF COMPONENTS (KMOL/S).
        T      = SOUT(IDXSUB(1) ...

IDXSUB()这个函数应该返回的是地址,IDXSUB(1)返回MIXED物流物性的第一个地址,IDXSUB(2)返回的是CISOLID物流物性第一个地址,等等。有了第一个地址后,SOUT函数就能依据地址逐个获取相关物性(温压组成等)

 

发表于 2022-9-28 08:45:20

点评

IDXSUB()是调用函数,但是楼主给出的代码有点奇怪,用的是#IDXSUB 1 = MIXED 2 = CIOLID 3 = NC。 看了一下它的组分列表,应该是它在气相尾气中定义了固体颗粒碳和硫。 这个是否会和组分数有关  详情 回复 发表于 2022-10-10 15:57
回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-9-28 08:41
DMS_IFCMNC函数应该获取‘MW’的首地址,然后地址+1,再通过B函数获取内容
另外,楼主DMS_IFCMNC的解释在 ...

抱歉,刚看到您宝贵的回复。可以的,我的邮箱是vvddch@163.com

 

发表于 2022-10-8 11:18:21

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-9-28 08:41
DMS_IFCMNC函数应该获取‘MW’的首地址,然后地址+1,再通过B函数获取内容
另外,楼主DMS_IFCMNC的解释在 ...

我应该怎么加您好友呢

 

发表于 2022-10-8 11:22:44

点评

,可以发我这个邮箱,谢谢!  详情 回复 发表于 2022-10-10 10:14
回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
人间喜剧。 发表于 2022-10-8 11:22
我应该怎么加您好友呢

15925614309@163.com,可以发我这个邮箱,谢谢!

 

发表于 2022-10-10 10:14:18

回复

使用道具 举报

真人花林似霰VIP会员 VIP会员 | 显示全部楼层       最后访问IP江苏省
海川高一  |  头衔:  TA未设置 
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-9-28 08:45
IDXSUB()这个函数应该返回的是地址,IDXSUB(1)返回MIXED物流物性的第一个地址,IDXSUB(2)返回的是CISOLI ...

IDXSUB()是调用函数,但是楼主给出的代码有点奇怪,用的是#IDXSUB 1 = MIXED 2 = CIOLID 3 = NC。
看了一下它的组分列表,应该是它在气相尾气中定义了固体颗粒碳和硫。
这个是否会和组分数有关

 

发表于 2022-10-10 15:57:04

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
感谢回复

 

发表于 2022-10-13 18:49:46

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
真人花林似霰 发表于 2022-10-10 15:57
IDXSUB()是调用函数,但是楼主给出的代码有点奇怪,用的是#IDXSUB 1 = MIXED 2 = CIOLID 3 = NC。
看了 ...

请大佬给个学习aspen fortran子程序的 教程 或者指条路

 

发表于 2022-10-13 18:50:52

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
RATES(NCOMP_NCC*2-1) = -RCARO2 *1.0D0   -  RCARH2O*1.0D0 +  RCARCO2*1.0D0 -RCARH2 *1.0D0
RATES(NCOMP_NCC*2)   =  0.0D0                       

#目前已知这两句代码的意思是获取组分的反应速率 REATS(x)括号的内容和aspen定义的组分的顺序有关,NCOMP_NCC代表的是常规组分的数量,那NCOMP_NCC*2-1          为什么能代表CISOLID子物流中的第一个组分?                                       

 

发表于 2022-10-18 22:44:33

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-10-10 10:14
,可以发我这个邮箱,谢谢!

大佬,还有个问题想请教您:
RATES(NCOMP_NCC*2-1) = -RCARO2 *1.0D0   -  RCARH2O*1.0D0 +  RCARCO2*1.0D0 -RCARH2 *1.0D0
RATES(NCOMP_NCC*2)   =  0.0D0                       

#目前已知这两句代码的意思是获取组分的反应速率 REATS(x)括号的内容和aspen定义的组分的顺序有关,NCOMP_NCC代表的是常规组分的数量,那NCOMP_NCC*2-1          为什么能代表CISOLID子物流中的第一个组分?     

 

发表于 2022-10-19 09:00:37

回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
这里暂时看不出什么,前面的代码在贴一下

 

发表于 2022-10-20 08:17:37

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
C     COAL PARTICLE DIAMETER (CM)
        DP     = 2.0D0


C     RETRIEVE OTHER INPUT PARAMETERS, WHICH ARE TRANSFERRED WITH THE HELP OF
C     CALCULATOR "CHARDEC".
C     ***INLET CARBON FLOW RATE (KMOL/S),
C     ***CARBON FLOW RATE LEFT AFTER PYROLYSIS (KMOL/S),      
C     ***INLET ASH FLOW RATE (KG/S),     ASH WEIGHT FRACTION IN ORIGINAL COAL,
C     ***DENSITY OF DRY COAL (KG/M**3).
        NCARIN = REALR(1)
        NCARGF = REALR(2)
        MASH   = REALR(3)
        YASH   = REALR(4)
        RHOCOA = REALR(5)

C     BED VOID FRACTION
        VBED   = RCSTRR_VFRRC


C     DECLARE CONSTANT PARAMETERS: RGAS (CAL/MOL/K), PAMBI (ATM).
      RGAS   = 1.987D0
        PAMBI  = 1.01325D5


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 TEMPERATURE(K), PRESSURE(ATM), MOLE FLOWS OF COMPONENTS (KMOL/S).
        T      = SOUT(IDXSUB(1)-1+NCOMP_NCC+2)
        PT     = RPROPS_UPRES / PAMBI
        NO2    = SOUT(IDXSUB(1)-1+1)
        NCO    = SOUT(IDXSUB(1)-1+2)
        NH2    = SOUT(IDXSUB(1)-1+3)
        NCO2   = SOUT(IDXSUB(1)-1+4)
        NH2O   = SOUT(IDXSUB(1)-1+5)
        NCH4   = SOUT(IDXSUB(1)-1+6)
        NN2    = SOUT(IDXSUB(1)-1+7)
        NH2S   = SOUT(IDXSUB(1)-1+8)
      NC6H6  = SOUT(IDXSUB(1)-1+9)
        NCARB  = SOUT(IDXSUB(2)-1+10)
        NSULF  = SOUT(IDXSUB(2)-1+11)
        NTOTG  = NO2+NCO+NH2+NCO2+NH2O+NCH4+NN2+NH2S+NC6H6


C        CALCULATE COMPONENT MOLE FRACTIONS
        YO2    = NO2  / NTOTG
        YCO    = NCO  / NTOTG
        YH2    = NH2  / NTOTG
        YCO2   = NCO2 / NTOTG
        YH2O   = NH2O / NTOTG
        YCH4   = NCH4 / NTOTG
        YN2    = NN2  / NTOTG
        YH2S   = NH2S / NTOTG
        YC6H6  = NC6H6/ NTOTG


C        CALCULATE COMPONENT PARTIAL PRESSURES(ATM)
        PO2    = YO2  * PT
        PCO    = YCO  * PT
        PH2    = YH2  * PT
        PCO2   = YCO2 * PT
        PH2O   = YH2O * PT
        PCH4   = YCH4 * PT
        PN2    = YN2  * PT
        PH2S   = YH2S * PT
      PC6H6  = YC6H6* PT


C        CARBON AND COEFFICIENT Y=RC/R
        XC     = 1.0 - NCARB/NCARIN
        RCR    = (NCARB/NCARGF)**0.333

       
C        REACTION RATE OF SOLID AND GAS PHASES
C     C + O2
C     PARAMETER FOR CALCULATING RATIO OF CO TO CO2
      Z      = 2500.0D0*EXP(-6249.0D0/T)

C     REACTION RATE (KMOL/S)
        KFILM  = 0.292D0*4.26D0*(T/1800.0D0)**1.75/(DP*T)
        VOID   = 0.75D0
        KASH   = KFILM  * VOID**2.5 * RCR / (1.0D0-RCR)
        KOVER  = KFILM*KASH / (KFILM+KASH)
        RCARO2 = KOVER  * PO2 * 1.0D-3 / 1.0D-6 * (1.0D0-VBED)
     +        *RCSTRR_VOLRC


C        C + H2O
C        CALCULATE CONCENTRATION OF CARBON (KMOL/M**3)
      CCARB  = NCARB / MASH *  RHOCOA*YASH * (1.0-VBED)

C     REACTION RATE (KMOL/S)       
      K      = 930.0D0
        E      = 45000.0D0
        PH2OEQ = PH2 * PCO / EXP(17.29-16330.0D0 / T)
        RCARH2O= K * EXP(-E/RGAS/T) * CCARB * (PH2O - PH2OEQ)
     +           * RCSTRR_VOLRC

       
C        C + CO2 (KMOL/S)
      K      = 930.0D0
        E      = 45000.0D0
        PCO2EQ = PCO * PCO / EXP(20.92-20280.0D0 / T)
        RCARCO2= K * EXP(-E/RGAS/T) * CCARB * (PCO2 - PCO2EQ)
     +           * RCSTRR_VOLRC


C        C + H2 (KMOL/S)
        PH2EQ  = SQRT(PCH4 / EXP(-13.43+10100.0D0/T))
        RCARH2 = EXP(-7.087D0-8078.0D0/T) * CCARB * (PH2-PH2EQ)
     +        *RCSTRR_VOLRC


C        H2 + O2
C        TOTAL MOLAR VOLUME OF GAS PHASE (M**3/KMOL)
        KDIAG  = 4
        KV     = 1
        CALL PPMON_VOLV(T,RPROPS_UPRES,Y,NCOMP,IDX,NBOPST,KDIAG,
     +                KV,VMXV,DVMX,KER)

C     MOLE CONCENTRATION (KMOL/M**3)
        CO2    = YO2 / VMXV
        CH2    = YH2 / VMXV

C     REACTION RATE (KMOL/S)
        KH2O2  = 8.83D5  * DEXP(-9.976D4/8.3145D0/T)
      RH2O2  = KH2O2   * (CH2*1.0D3)  * (CO2*1.0D3)
     +        *1.0D-3  * VBED * RCSTRR_VOLRC


C     CO+H2O (KMOL/S)
        FW     = 0.0084D0
        RCOH2O = FW * 2.877D5 * DEXP(-27760.0D0/RGAS/T)
     +        *(YCO*YH2O - YCO2*YH2/EXP(-3.6890+7234/1.8/T))
     +        * PT**(0.5D0-PT/250.0D0) * DEXP(-8.91D0+5553.0D0/T)
     +        * RHOCOA * YASH * (1.0D0 -VBED) * RCSTRR_VOLRC


C     INITIALIZE RATES
      DO 100 I = 1, NC
        RATES(I) = 0D0
100  CONTINUE


C     REACTION RATE OF COMPONENTS (KMOL/S)
        RATES(1) = -RCARO2*(2.0+Z)/2.0/(1.0+Z)  -  RH2O2*0.5D0

        RATES(2) =  RCARO2*Z/(1.0+Z)            +  RCARH2O*1.0D0      
     +           +RCARCO2*2.0D0               -  RCOH2O

        RATES(3) =  RCARH2O*1.0D0               -  RCARH2 *2.0D0  
     +           +RCOH2O                      -  RH2O2

        RATES(4) =  RCARO2 *1.0/(1.0+Z)         -  RCARCO2*1.0D0
     +           +RCOH2O   
                       
        RATES(5) = -RCARH2O*1.0D0               +  RH2O2                     
     +           -RCOH2O

        RATES(6) =  RCARH2 *1.0D0
       
        RATES(7) =  0.0D0
       
        RATES(8) =  0.0D0
       
        RATES(9) =  0.0D0  

        RATES(NCOMP_NCC*2-1) = -RCARO2 *1.0D0   -  RCARH2O*1.0D0
     +                       -RCARCO2*1.0D0   -  RCARH2 *1.0D0
        RATES(NCOMP_NCC*2)   =  0.0D0


        RETURN
      END

 

发表于 2022-10-20 08:32:10

点评

这个不太明白,把调用的方程贴出来,另外这个是ASPEN哪个模块里的自定义程序  详情 回复 发表于 2022-10-20 12:00
回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
人间喜剧。 发表于 2022-10-20 08:32
C     COAL PARTICLE DIAMETER (CM)
        DP     = 2.0D0

这个不太明白,把调用的方程贴出来,另外这个是ASPEN哪个模块里的自定义程序

 

发表于 2022-10-20 12:00:08

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
Aspen的  动力学子程序  

 

发表于 2022-10-20 19:33:37

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-10-20 12:00
这个不太明白,把调用的方程贴出来,另外这个是ASPEN哪个模块里的自定义程序

C     User Kinetics Subroutine for RCSTR.

C$ #1 BY: JERRY CHANG, DATE: 5-MAY-2009.

      SUBROUTINE USRKIN (SOUT,   NSUBS,  IDXSUB,   ITYPE,  NINT,
     2                   INT,    NREAL,  REAL,     IDS,    NPO,
     3                   NBOPST, NIWORK, IWORK,    NWORK,  WORK,
     4                   NC,     NR,     STOIC,    RATES,  FLUXM,
     5                   FLUXS,  XCURR,  NTCAT,    RATCAT, NTSSAT,
     6                   RATSSA, KCALL,  KFAIL,    KFLASH, NCOMP,
     7                   IDX,    Y,      X,        X1,     X2,
     8                   NRALL,  RATALL, NUSERV,   USERV,  NINTR,
     9                   INTR,   NREALR, REALR,    NIWR,   IWR,
     *                   NWR,    WR,     NRL,      RATEL,  NRV,
     1                   RATEV)

C************************************************************************
C         COPYRIGHT (C) 1989                                            *
C         ASPEN TECHNOLOGY, INC.                                        *
C         CAMBRIDGE, MA                                                 *
C************************************************************************

C-------------------------------------------------------------------------
C     The kinetics models of reactions C+O2, C+H2O, C+CO2, C+H2 and CO+H2O
C     are based on C.-Y. Wen et al.'s work (C.-Y. Wen, H. Chen, M. Onozaki,
C     "User's manual for computer simulation and design of the moving bed
C     coal gasifier", Report submitted to Morgantown Energy Technology Center
C     and U.S. Department of Energy, Contract DOE/MC/16474-1390, 1982).

C     The kinetics model of reaction H2+O2 is from the book (K.-F. Cen,
C     M.-J. Ni, Z.-Y. Luo, Theory, Desigh and Operation of Circulating
C     Fluidized Bed Boilers, Beijing: Chinese Electric Power Press, 1998).
C-------------------------------------------------------------------------

                                                                           
C%%%%%%%%%%%%H2 + 0.5O2 = H2O%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                      
C     R = 8.83E5*EXP(-9.976E4/8.3145/T)*CH2*CO2                                 
C        (UNIT: T = K; CH2, CO2 = MOL/M**3; R = MOL/M**3/S)                        
C                                                                                                                                                         
C%%%%%%%%%%%%CO + H2O = CO2 + H2%%%%%%%%%%%%%%%%%%%%%%%%%%                                                      
C      R = FW*2.877E5*EXP(-27760/1.987/T)*(XCO*XH2O-XCO2*XH2/KWGS)                          
C          *PT**(0.5-PT/250)*EXP(-8.91+5553/T)                                 
C     WHERE:
C           FW  = ADJUSTABLE PARAMETER, WHICH REPRESENTS THE RELATIVE CATALYTIC
C                 REACTIVITY OF ASH TO THAT OF IRON-BASE CATALYST.            
C           XCO, XH2O, XO2, XH2 = MOLE FRACTIONS.
C           PT   = TOTAL PRESSURE.                                 
C           KWGS = EXP(-3.6890+7234/1.8/T)                                    
C     (UNIT: T = K; PT = ATM; R = MOL/S/(G OF ASH))                        
C                                                                              
C%%%%%%%C + (1/FHI)O2 = 2*(1-1/FHI)CO + (2/FHI-1)CO2%%%%%%                                                                                 
C     R = 1/(1/KFILM+1/KASH) * PO2                        
C     WHERE:
C           KFILM     = 0.292*4.26*(T/1800)**1.75/(DP*T)
C           KASH      = KFILM*VOID**2.5*Y/(1-Y)   
C           Y         = RCORE/RPARTICLE
C           RCORE     = RADIUS OF UNREACTED CORE
C           RPARTICLE = RADIUS OF FEED COAL PARTICLE
C           VOID      = VOIDAGE IN THE ASH LAYER
C           DP        = DIAMETER OF COAL PARTICLE
C           PHI       = (2*Z+2)/(Z+2)
C           Z         = 2500*EXP(-6249/T)                                                                          
C     (UNIT: PO2 = ATM; DP = CM; T = K; RCORE, RPARTICLE =CM;  
C            R   = MOL/CM**3/S)                                    
C                                                                              
C%%%%%%%%%%%%%%%%%%%%C + H2O = CO + H2%%%%%%%%%%%%%%%%%%%%                                                        
C     R = 930*EXP(-45000/1.987/T) * CCARB * (PH2O-PH2OEQ)                                                
C     WHERE:
C           PH2OEQ = PH2*PCO/EXP(17.29-16330/T)
C           CCARB  = CARBON CONCENTRATION                                    
C        (UNIT: T = K; PH2O, PH2, PCO = ATM; CCARB = MOL/CM**3; R = MOL/CM**3/S)                           
C                                                                              
C%%%%%%%%%%%%%%%%%%%%C + CO2 = 2CO%%%%%%%%%%%%%%%%%%%%%%%%                                                        
C        R = 930*EXP(-45000/1.987/T) * CCARB * (PCO2-PCO2EQ)                                 
C        WHERE:
C           PCO2EQ = PCO**2/EXP(20.92-20280/T)                                                                                                   
C        (UNIT: T = K; PCO2, PCO = ATM; CCARB = MOL/CM**3; R = MOL/CM**3/S)                                    
C                                                                              
C%%%%%%%%%%%%%%%%%%%%C + 2H2 = CH4%%%%%%%%%%%%%%%%%%%%%%%%
C     R = EXP(-7.087-8078/T) * CCARB * (PH2-PH2EQ)
C        WHERE:
C           PH2EQ  = (PCH4/EXP(-13.43+10100/T))**0.5                                
C        (UNIT: T = K; PH2, PCH4 = ATM; CCARB = MOL/CM**3; R = MOL/CM**3/S)                           
C-------------------------------------------------------------------------

      IMPLICIT NONE
C
C     DECLARE VARIABLES USED IN DIMENSIONING
C
      INTEGER NSUBS, NINT,   NPO,   NIWORK, NWORK,
     +        NC,    NR,     NTCAT, NTSSAT, NCOMP,
     +        NRALL, NUSERV, NINTR, NREALR, NIWR,
     +        NWR
C
#include "ppexec_user.cmn"
      EQUIVALENCE (RMISS, USER_RUMISS)
      EQUIVALENCE (IMISS, USER_IUMISS)
#include "dms_ncomp.cmn"
#include "rxn_rcstrr.cmn"
#include "rxn_rprops.cmn"
      EQUIVALENCE (TEMP,  RPROPS_UTEMP )
      EQUIVALENCE (PRES,  RPROPS_UPRES )
      EQUIVALENCE (VFRAC, RPROPS_UVFRAC)
      EQUIVALENCE (BETA,  RPROPS_UBETA )
      EQUIVALENCE (VVAP,  RPROPS_UVVAP )
      EQUIVALENCE (VLIQ,  RPROPS_UVLIQ )
      EQUIVALENCE (VLIQS, RPROPS_UVLIQS)
        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),
     +        NBOPST(6,NPO), IWORK(NIWORK), IDX(NCOMP), INTR(NINTR),
     +        IWR(NIWR),     NREAL,         KCALL,      KFAIL,   
     +        KFLASH,        NRL,           NRV,        I,   
     +        IMISS,         KDIAG,         KV,         KER,      
     +        DMS_IFCMNC,    LMW,           LMWI
C
      REAL*8  SOUT(1),       WORK(NWORK),   STOIC(NC,NSUBS,NR),   
     +        RATES(1),      FLUXM(1),      FLUXS(1),   RATCAT(NTCAT),
     +        RATSSA(NTSSAT),Y(NCOMP),      X(NCOMP),   X1(NCOMP),  
     +        X2(NCOMP)
C
      REAL*8  RATALL(NRALL), USERV(NUSERV), REALR(NREALR),
     +        WR(NWR),       RATEL(1),      RATEV(1),   XCURR,
     +        XMW(NCOMP_NCC),B(1),          TEMP,       PRES,     
     +        RGAS         
C
      REAL*8  REAL(NREAL),   RMISS,         XLEN,       DIAM,
     +        VFRAC,         BETA,          VVAP,       VLIQ,   
     +        VLIQS,         VMXV,          DVMX
C
      REAL*8  NCARIN,        NCARGF,        NO2,        NCO,     
     +        NH2,           NCO2,          NH2O,       NCH4,      
     +        NN2,           NH2S,          NC6H6,      NTOTG,     
     +        NCARB,         NSULF,         MASH,       YO2,      
     +        YCO,           YH2,           YCO2,       YH2O,      
     +        YCH4,          YN2,           YH2S,       YC6H6,      
     +        YASH      
C     
      REAL*8  CCARB,         CO2,           CH2,        XC,        
     +        DP,            VOID,          RHOCOA,     VBED                       
C   
      REAL*8  PO2,           PCO,           PH2,        PCO2,     
     +        PH2O,          PCH4,          PN2,        PH2S,
     +        PC6H6,         PAMBI,         PT,         T,            
     +        PH2OEQ,        PCO2EQ,        PH2EQ        
C
        REAL*8  RCR,           Z,             FW,         E,   
     +        KFILM,         KASH,          KOVER,      K,         
     +        KH2O2,         RCARO2,        RCARH2O,    RCARCO2,      
     +        RCARH2,        RH2O2,         RCOH2O                                                                  
               
C
C     BEGIN EXECUTABLE CODE

C     COAL PARTICLE DIAMETER (CM)
        DP     = 2.0D0


C     RETRIEVE OTHER INPUT PARAMETERS, WHICH ARE TRANSFERRED WITH THE HELP OF
C     CALCULATOR "CHARDEC".
C     ***INLET CARBON FLOW RATE (KMOL/S),
C     ***CARBON FLOW RATE LEFT AFTER PYROLYSIS (KMOL/S),      
C     ***INLET ASH FLOW RATE (KG/S),     ASH WEIGHT FRACTION IN ORIGINAL COAL,
C     ***DENSITY OF DRY COAL (KG/M**3).
        NCARIN = REALR(1)
        NCARGF = REALR(2)
        MASH   = REALR(3)
        YASH   = REALR(4)
        RHOCOA = REALR(5)

C     BED VOID FRACTION
        VBED   = RCSTRR_VFRRC


C     DECLARE CONSTANT PARAMETERS: RGAS (CAL/MOL/K), PAMBI (ATM).
      RGAS   = 1.987D0
        PAMBI  = 1.01325D5


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 TEMPERATURE(K), PRESSURE(ATM), MOLE FLOWS OF COMPONENTS (KMOL/S).
        T      = SOUT(IDXSUB(1)-1+NCOMP_NCC+2)
        PT     = RPROPS_UPRES / PAMBI
        NO2    = SOUT(IDXSUB(1)-1+1)
        NCO    = SOUT(IDXSUB(1)-1+2)
        NH2    = SOUT(IDXSUB(1)-1+3)
        NCO2   = SOUT(IDXSUB(1)-1+4)
        NH2O   = SOUT(IDXSUB(1)-1+5)
        NCH4   = SOUT(IDXSUB(1)-1+6)
        NN2    = SOUT(IDXSUB(1)-1+7)
        NH2S   = SOUT(IDXSUB(1)-1+8)
      NC6H6  = SOUT(IDXSUB(1)-1+9)
        NCARB  = SOUT(IDXSUB(2)-1+10)
        NSULF  = SOUT(IDXSUB(2)-1+11)
        NTOTG  = NO2+NCO+NH2+NCO2+NH2O+NCH4+NN2+NH2S+NC6H6


C        CALCULATE COMPONENT MOLE FRACTIONS
        YO2    = NO2  / NTOTG
        YCO    = NCO  / NTOTG
        YH2    = NH2  / NTOTG
        YCO2   = NCO2 / NTOTG
        YH2O   = NH2O / NTOTG
        YCH4   = NCH4 / NTOTG
        YN2    = NN2  / NTOTG
        YH2S   = NH2S / NTOTG
        YC6H6  = NC6H6/ NTOTG


C        CALCULATE COMPONENT PARTIAL PRESSURES(ATM)
        PO2    = YO2  * PT
        PCO    = YCO  * PT
        PH2    = YH2  * PT
        PCO2   = YCO2 * PT
        PH2O   = YH2O * PT
        PCH4   = YCH4 * PT
        PN2    = YN2  * PT
        PH2S   = YH2S * PT
      PC6H6  = YC6H6* PT


C        CARBON AND COEFFICIENT Y=RC/R
        XC     = 1.0 - NCARB/NCARIN
        RCR    = (NCARB/NCARGF)**0.333

       
C        REACTION RATE OF SOLID AND GAS PHASES
C     C + O2
C     PARAMETER FOR CALCULATING RATIO OF CO TO CO2
      Z      = 2500.0D0*EXP(-6249.0D0/T)

C     REACTION RATE (KMOL/S)
        KFILM  = 0.292D0*4.26D0*(T/1800.0D0)**1.75/(DP*T)
        VOID   = 0.75D0
        KASH   = KFILM  * VOID**2.5 * RCR / (1.0D0-RCR)
        KOVER  = KFILM*KASH / (KFILM+KASH)
        RCARO2 = KOVER  * PO2 * 1.0D-3 / 1.0D-6 * (1.0D0-VBED)
     +        *RCSTRR_VOLRC


C        C + H2O
C        CALCULATE CONCENTRATION OF CARBON (KMOL/M**3)
      CCARB  = NCARB / MASH *  RHOCOA*YASH * (1.0-VBED)

C     REACTION RATE (KMOL/S)       
      K      = 930.0D0
        E      = 45000.0D0
        PH2OEQ = PH2 * PCO / EXP(17.29-16330.0D0 / T)
        RCARH2O= K * EXP(-E/RGAS/T) * CCARB * (PH2O - PH2OEQ)
     +           * RCSTRR_VOLRC

       
C        C + CO2 (KMOL/S)
      K      = 930.0D0
        E      = 45000.0D0
        PCO2EQ = PCO * PCO / EXP(20.92-20280.0D0 / T)
        RCARCO2= K * EXP(-E/RGAS/T) * CCARB * (PCO2 - PCO2EQ)
     +           * RCSTRR_VOLRC


C        C + H2 (KMOL/S)
        PH2EQ  = SQRT(PCH4 / EXP(-13.43+10100.0D0/T))
        RCARH2 = EXP(-7.087D0-8078.0D0/T) * CCARB * (PH2-PH2EQ)
     +        *RCSTRR_VOLRC


C        H2 + O2
C        TOTAL MOLAR VOLUME OF GAS PHASE (M**3/KMOL)
        KDIAG  = 4
        KV     = 1
        CALL PPMON_VOLV(T,RPROPS_UPRES,Y,NCOMP,IDX,NBOPST,KDIAG,
     +                KV,VMXV,DVMX,KER)

C     MOLE CONCENTRATION (KMOL/M**3)
        CO2    = YO2 / VMXV
        CH2    = YH2 / VMXV

C     REACTION RATE (KMOL/S)
        KH2O2  = 8.83D5  * DEXP(-9.976D4/8.3145D0/T)
      RH2O2  = KH2O2   * (CH2*1.0D3)  * (CO2*1.0D3)
     +        *1.0D-3  * VBED * RCSTRR_VOLRC


C     CO+H2O (KMOL/S)
        FW     = 0.0084D0
        RCOH2O = FW * 2.877D5 * DEXP(-27760.0D0/RGAS/T)
     +        *(YCO*YH2O - YCO2*YH2/EXP(-3.6890+7234/1.8/T))
     +        * PT**(0.5D0-PT/250.0D0) * DEXP(-8.91D0+5553.0D0/T)
     +        * RHOCOA * YASH * (1.0D0 -VBED) * RCSTRR_VOLRC


C     INITIALIZE RATES
      DO 100 I = 1, NC
        RATES(I) = 0D0
100  CONTINUE


C     REACTION RATE OF COMPONENTS (KMOL/S)
        RATES(1) = -RCARO2*(2.0+Z)/2.0/(1.0+Z)  -  RH2O2*0.5D0

        RATES(2) =  RCARO2*Z/(1.0+Z)            +  RCARH2O*1.0D0      
     +           +RCARCO2*2.0D0               -  RCOH2O

        RATES(3) =  RCARH2O*1.0D0               -  RCARH2 *2.0D0  
     +           +RCOH2O                      -  RH2O2

        RATES(4) =  RCARO2 *1.0/(1.0+Z)         -  RCARCO2*1.0D0
     +           +RCOH2O   
                       
        RATES(5) = -RCARH2O*1.0D0               +  RH2O2                     
     +           -RCOH2O

        RATES(6) =  RCARH2 *1.0D0
       
        RATES(7) =  0.0D0
       
        RATES(8) =  0.0D0
       
        RATES(9) =  0.0D0  

        RATES(NCOMP_NCC*2-1) = -RCARO2 *1.0D0   -  RCARH2O*1.0D0
     +                       -RCARCO2*1.0D0   -  RCARH2 *1.0D0
        RATES(NCOMP_NCC*2)   =  0.0D0


        RETURN
      END

 

发表于 2022-10-20 19:34:25

点评

大概明白了,就是当子流类型不止MIXED一种时,例如包括MIXED和CISOLID是,RATES数组长度就会根据子流数量扩容(每个单独的子流均需包含所有组分,别问为什么,ASPEN这么规定的),MIXED和CISOLID的类型都属于CONVENT  详情 回复 发表于 2022-10-21 13:02
回复

使用道具 举报

zhxbkofkyoVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川工程师(荣誉)  |  头衔:  【海川资深技术人员】
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   
人间喜剧。 发表于 2022-10-20 19:34
C     User Kinetics Subroutine for RCSTR.

C$ #1 BY: JERRY CHANG, DATE: 5-MAY-2009.

大概明白了,就是当子流类型不止MIXED一种时,例如包括MIXED和CISOLID是,RATES数组长度就会根据子流数量扩容(每个单独的子流均需包含所有组分,别问为什么,ASPEN这么规定的),MIXED和CISOLID的类型都属于CONVENTIAL,所以案例里直接*2了,如果是MIXED+NC这两种子流,则RATES数组长度就是NCOMP_NCC+NCOMP_NNCC

 

发表于 2022-10-21 13:02:22

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
非常感谢您!解决了困扰我一个月的问题! 太感谢了!
我在Fortran 子程序上推进的很困难,还请老师指导一二。如何才能像您一样,理解的这么透彻,如何才能知晓Aspen 帮助文档中没提及的这些规定。(例如刚才的数组长度)

 

发表于 2022-10-21 21:37:22

回复

使用道具 举报

人间喜剧。楼主 VIP会员 VIP会员 | 显示全部楼层       最后访问IP山西省
海川小学1年  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   
zhxbkofkyo 发表于 2022-10-21 13:02
大概明白了,就是当子流类型不止MIXED一种时,例如包括MIXED和CISOLID是,RATES数组长度就会根据子流数量 ...

非常感谢您!解决了困扰我一个月的问题!太感谢了!
我在Fortran 子程序上推进的很困难,还请老师指导一二。如何才能像您一样,理解的这么透彻,如何才能知晓Aspen 帮助文档中没提及的这些规定。(例如刚才的数组长度)

 

发表于 2022-10-25 21:26:44

回复

使用道具 举报

【发主题】高级


          特别提示:

          本站系信息发布平台,仅提供信息内容存储服务。

         禁止发布上传, 包括但不限于:不能公开传播或无传播权的出版物、无传播权的在行标准规范、涉密内容等
          不听劝告后果自负!造成平台或第三方损失的,依法追究相关责任。

          请遵守国家法规;不要散播涉爆类、涉黄毒赌类、涉及宗教、政治议题、谣言负面等信息   

     

您需要登录后才可以回帖 登录 | 注册

本版积分规则

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Español العربية Persian

联系

0411-88254066

18840911640

(工作时间09:00-17:00)

其它时间请联【微信客服】或 电子信箱

信箱service@hcbbs.com

微信群

加微信

说入群

拉你入群  禁发广告

100多个海川专业群

QQ群

QQ群:7990017 申请时注明你的QQ号


 

关于我们  -  隐私协议    -  网站声明   -  广告服务   -  企业会员   -  个人会员  -     -   专家智库  -  服务市场    -  APP和微信   -  分类信息   -     -  在线计算  -  单位换算


不良信息举报 0411-88254066  举报中心       在线客服#微信号:  18840911640    电子信箱   service@hcbbs.com   【QQ客服】3153267246   


海川化工论坛网(hcbbs) @Discuz! X3  0.436850 second(s), 96 queries , Redis On.


辽公安备21100302203002号  | 辽ICP备17009251号  |  辽B2证-20170197