猛犸论坛【以梦为马,不负韶华】

搜索
搜索附件  

985B9F62C2C997B57B95074D6E40A25F.jpg

 

Aspen Plus-Fortran:
关于fortran的任何问题可以在下方提问交流,
不能保证及时回复,请谅解。
黄盖 发表于 2017-1-4 08:40
请问楼主有没有aspen fortran方面入门的教程之类的,还是说直接学习fortran语言就行了

入门的话建议先简单看下F77的基本语法,懂得判断循环就差不多了。然后对照
C:\Program Files (x86)\AspenTech\Aspen Plus VX.X\Engine\User下给的模版和Aspen Plus User Models.pdf看就可以了。
楼主,对于反应精馏,考虑催化剂内外扩散阻力的条件下进行计算。怎么通过Fortan语言获得传质方程最基本的参数:如St,浓度梯度等用于求解扩散方程?
xsahh 发表于 2017-1-5 21:50
楼主,对于反应精馏,考虑催化剂内外扩散阻力的条件下进行计算。怎么通过Fortan语言获得传质方程最基本的参 ...

user defined subroutines 只能算气液相间传递,你说的内外扩散无解。
我不知道St是什么,浓度梯度应该是解微分方程算出来的,内扩散就是个PDE方程,扩散系数由一堆经验关联式计算。
编程,感觉很高深啊!{:1106_363:}
本帖最后由 huweijilian 于 2017-1-8 13:08 编辑

Fortranv6在aspenv9和win7下没法设置,全是erorr。但aspenv7  时可行。必须加装Visual-Studio-2010吗?
huweijilian 发表于 2017-1-8 13:04
Fortranv6在aspenv9和win7下没法设置,全是erorr。但aspenv7  时可行。必须加装Visual-Studio-2010吗?

按description对应匹配的Fortran和VS版本安装。V9.0貌似只支持F9.X之后版本了。
huweijilian 发表于 2017-1-8 13:04
Fortranv6在aspenv9和win7下没法设置,全是erorr。但aspenv7  时可行。必须加装Visual-Studio-2010吗?

按description对应匹配的Fortran和VS版本安装。V9.0貌似只支持F9.X之后版本了。
bshao_sh 发表于 2017-1-8 22:02
按description对应匹配的Fortran和VS版本安装。V9.0貌似只支持F9.X之后版本了。

谢谢,学习 啦
想问您一下 我有一个费托合成的反应精馏塔 体系在规定物性的时候methods选用PRMHV2, 但是计算liquid phase activity coefficient想用UNIFAC计算 请问怎么设置 需要用到fortran吗?
附件是我的apwz
一柱张 发表于 2017-1-12 07:31
想问您一下 我有一个费托合成的反应精馏塔 体系在规定物性的时候methods选用PRMHV2, 但是计算liquid phase ...

不用这么费劲,更改液相活度计算方程就可以
一柱张 发表于 2017-1-12 07:31
想问您一下 我有一个费托合成的反应精馏塔 体系在规定物性的时候methods选用PRMHV2, 但是计算liquid phase ...

参考10楼的方法。
本帖最后由 一柱张 于 2017-1-13 02:27 编辑
bshao_sh 发表于 2017-1-12 20:08
参考10楼的方法。

但是貌似这样不能定义亨利组分啊,求指教!
一柱张 发表于 2017-1-13 02:26
但是貌似这样不能定义亨利组分啊,求指教!

你自己在研究下吧,这块不是很了解。
大神你好,我用fortran自定义了一个模块,模拟的系统中有两个部件都由该模型模拟,但是嵌入后,只能实现一个正确模拟,另一个得到的结果是自己的结果与第一个模块模拟结果的和,大神您有比较好的建议吗?谢谢您
大神你好,我用fortran自定义了一个模块,模拟的系统中有两个部件都由该模型模拟,但是嵌入后,只能实现一个正确模拟,另一个得到的结果是自己的结果与第一个模块模拟结果的和,大神您有比较好的建议吗?谢谢您
静水流深3456 发表于 2017-2-17 20:54
大神你好,我用fortran自定义了一个模块,模拟的系统中有两个部件都由该模型模拟,但是嵌入后,只能实现一 ...

方便的话把文件发我看看。
楼主大大你好,我想模拟干燥器,但是运行时候弹出来FORTRAN OVERFLOW ENCOUNTERED.

楼主你好,如果aspen中没有的模块,选user1,用Fortran来做,然后编一个程序,让流股中其中一种物料被吸收,其他组成不变,这样能做到吗?
大仁仁 发表于 2017-5-18 22:06
楼主大大你好,我想模拟干燥器,但是运行时候弹出来FORTRAN OVERFLOW ENCOUNTERED.

麻烦附上文件。
X.. 发表于 2017-5-21 20:57
大神可不可以帮忙编写一个&#21 ...

如果你写好有问题的话我可以帮你看看。
zsyall 发表于 2017-5-23 09:16
楼主你好,如果aspen中没有的模块,选user1,用Fortran来做,然后编一个程序,让流股中其中一种物料被吸收 ...

这个用calculator不行么???
bshao_sh 发表于 2017-5-27 22:59
这个用calculator不行么???

如果用calculator依附于哪一个模块?
zsyall 发表于 2017-5-28 15:45
如果用calculator依附于哪一个模块?

给你个例子参考。
bshao_sh 发表于 2017-6-3 12:49
给你个例子参考。

谢谢!
大神,Fortran内嵌子程序可以写条件代码么?
设计规定中manipulate的变量是通过一系列fortran语句表达的,但是运行结束,发现fortran中的中间变量都没有被计算,这些变量是流程中的属于自己定义parameter变量,想问下怎么解决
楼主你好,V8.4版本,编译器组合是IVF12+VS2008

可以编译生成OBJ文件,但是生成DLL这一步的ASPLINK命令无法执行


从网上找的文件,链接DLL文件时可以执行,但是链接OBJ文件的时候就出错


怀疑是编译器没安装好,但是SetCompiler那里又显示OK,这是怎么回事?求楼主解惑。
楼主你好,请问fortran如何和aspen关联起来做优化
李田所 发表于 2018-1-8 20:44
楼主你好,V8.4版本,编译器组合是IVF12+VS2008

可以编译生成OBJ文件,但是生成DLL这一步的ASPLINK命令 ...

编译dll改成 asplink usrkin.dll
1354071132 发表于 2018-1-22 18:56
楼主你好,请问fortran如何和aspen关联起来做优化

大概你得去找找AOS相关的东西,难度比较大。
建议用过c#或者vb.net 连接aspen, 然后实现相应的优化算法会简单一点。
晓伙子QT 发表于 2018-1-5 21:10
设计规定中manipulate的变量是通过一系列fortran语句表达的,但是运行结束,发现fortran中的中间变量都没有 ...

发个文件看看。
水门 发表于 2017-11-5 11:02
大神,Fortran内嵌子程序可以写条件代码么?

不能吧,大概要 user subroutine。
bshao_sh 发表于 2018-1-22 20:14
大概你得去找找AOS相关的东西,难度比较大。
建议用过c#或者vb.net 连接aspen, 然后实现相应的优化算法 ...

您好,我导师建议我先将aspen与fortran链接起来,但现在还不知道怎么做,您有什么经验或者教程之类的吗?

希望通过改变fsplit的分离率来研究其对物流3、4的温度影响,但是建立灵敏度分析后运行之后这两个参数不变
咨询一个问题:ASPEN中IDX代表什么意思?能不能举一个例子或简单的代码说明下,查了help文件,没有太明白
大神您好,我在嵌入自己编程的动力学子程序时出现了下面的问题,是什么原因导致的?
*** SEVERE ERROR       COULD NOT RESOLVE USER OR IN-LINE FORTRAN SUBROUTINE(S):        SUBROUTINE "USRKNT" IS MISSING    *** SEVERE ERROR       PROGRAM TERMINATED DUE TO UNRESOLVED ROUTINES    动力学方程用fortran6.6编写,引入aspen时没报错,一运行aspen就出上面的错误 -
您好,我想问一下Aspen plus用Fortran编写程序实现液体膜分离怎么做,比如我是想分离甲醇,实现富集
大神,我想做吸收模拟分离二元混合气,想用自己做的吸收模型(压力和溶解度关联模型),请问可以实现吗

求简单指导方向,我慢慢学~万分感谢
bshao_sh 发表于 2018-5-12 10:15
有两个选择,用user2 model或者写 ACM model。自己去找例子吧。

你好,不知道您有没有时间,可以教我做一个ASPEN流程模拟吗,需要加入一些模型,有偿帮忙
本帖最后由 波波 于 2018-6-14 15:08 编辑

请教
aspen自带的SOLID1例子是关于煤干燥的例子。
其中用到calculator,用fortran语言。
请讲讲含义,谢谢!
本帖最后由 bshao_sh 于 2018-6-14 16:47 编辑
波波 发表于 2018-6-14 15:06
请教
aspen自带的SOLID1例子是关于煤干燥的例子。
其中用到calculator,用fortran语言。
  • H2OIN定义为stream WET-COAL中 NC-Substream 里 mositure(水)含量。
  • CONV是煤到水的转化率。因为煤是一个含水的混合物,干燥过程是添加一个反应让煤反应生成水来处理。Plus 里NC 分子量默认为1, 所以水反应系数是1/18=0.0555084。
  • H2ODry是反应器内NC-Substream     中 mositure(水)含量。
  • H2ODRY =     10.0 指定出口含水量
  • CONV =     (H2OIN - H2ODRY) / (100 - H2ODRY) 计算达到指定出口含水量时coal转化率。
  • 公式推导
       以100mol coal进料为例:
       反应前水量=生成水量 + 剩余水量
       100*H2OIN /100 = 100*CONV+100*(1-CONV)*H2ODry/100
       H2OIN = 100*CONV+(1-CONV)*H2ODry
bshao_sh 发表于 2018-6-14 16:45
  • H2OIN定义为stream WET-COAL中 NC-Substream 里 mositure(水)含量。
  • CONV是煤到水的转化率。因为 ...

  • 谢谢
    那么第二行中,ID1=1是什么含义?

    第三行中,ID1=NCPSD,ID2=COAL,ID3=PROXANAL是什么含义

    再次感谢
    波波 发表于 2018-6-19 08:53
    谢谢
    那么第二行中,ID1=1是什么含义?

    1. ID1=1 表示第一个反应。
    2. ID1 是solid sustream, ID2是solid component, ID3是组成分析,ID4表示第一个值即mositure含量。
    仔细看,tooltip是有写的。
    bshao_sh 发表于 2018-6-20 17:58
    1. ID1=1 表示第一个反应。
    2. ID1 是solid sustream, ID2是solid component, ID3是组成分析,ID4表示第 ...

    谢谢!
    楼主,你是做二次开发的吗?还是学习玩的?
    haha123456 发表于 2018-7-16 21:56
    楼主,你是做二次开发的吗?还是学习玩的?

    你觉得呢{:1106_379:}
    请问能不能讲一下user模块软件的界面怎么设置?就是number of parameter,length of work arrays,和values for parameters都应该怎么填,谢谢!
    楼主你好 对于石油催化裂化的集总反应 该如何编写?与一般反应动力学有什么区别?
    请问下载完fortran和Visual ststudio 后如何配置呢?

                                   
    登录/注册后可看大图
    在吗  我也在研究aspen和fortan问题  方便加下联系方式吗?2219159317
    请问楼主有关于Fortran编写的L-H吸附动力学的例子吗,我想参考一下,近期要做这方面的工作
    楼主您好,我的电脑上装了Aspen Plus V8.4、Visual Studio 2012和Intel Parallel Studio XE 2013,可以正常编译程序和调试。但是,在链接的时候出现了问题,首先是在Set Compiler for V8.4窗口未出现可用的编译器组合。其次,在调用子程序的时候。未找到可用的子程序,(错误可以参考截图),请问是什么原因导致的?多谢回答,多谢
    帮忙看看这个Fortran编的有问题吗?导入ASPEN之后运行不收敛,反应精馏塔中profile中的reaction显示都是0                       C*********************************************************************** C  LICENSED MATERIAL.  PROPERTY OF ASPEN TECHNOLOGY, INC.  TO BE       * C  TREATED AS ASPEN TECH PROPRIETARY INFORMATION UNDER THE TERMS       * C  OF THE ASPEN PLUS SUBSCRIPTION AGREEMENT.                           * C*********************************************************************** C----------------------------------------------------------------------- C         COPYRIGHT (C) 1994 C          ASPEN TECHNOLOGY, INC. C          CAMBRIDGE, MA C----------------------------------------------------------------------- C C     calculation of MTBE synthesis reaction rate C     User Kinetics Subroutine for RADFRAC, BATCHFRAC, RATEFRAC C       SUBROUTINE DIB (NSTAGE, NCOMP,   NR,     NRL,     NRV,      2                   T,      TLIQ,    TVAP,   P,       VF,      3                   F,      X,       Y,      IDX,     NBOPST,      4                   KDIAG,  STOIC,   IHLBAS, HLDLIQ,  TIMLIQ,      5                   IHVBAS, HLDVAP,  TIMVAP, NINT,    INT,      6                   NREAL,  REAL,    RATES,  RATEL,   RATEV,      7                   NINTB,  INTB,    NREALB, REALB,   NIWORK,      8                   IWORK,  NWORK,   WORK) C C      VARIABLES IN ARGUMENT LIST C C       VARIABLE  I/O  TYPE     DIMENSION     DESCRIPTION AND RANGE C       NSTAGE     I    I          -          STAGE NUMBER C       NCOMP      I    I          -          NUMBER OF COMPONENTS C       NR         I    I          -          TOTAL NUMBER OF KINETIC C                                             REACTIONS C       NRL        I    I          -          NUMBER OF LIQUID PHASE C                                             KINETIC REACTIONS C       NRV        I    I          -          NUMBER OF VAPOR PHASE C                                             KINETIC REACTIONS C       T          I    R          -          STAGE TEMPERATURE (K) C       TLIQ       I    R          -          LIQUID TEMPERATURE (K) C                                             * USED ONLY BY RATEFRAC ** C       TVAP       I    R          -          VAPOR TEMPERATURE (K) C                                             * USED ONLY BY RATEFRAC ** C       P          I    R          -          STAGE PRESSURE (N/SQ.M) C       VF         I    R          -          VAPOR FRACTION C       F          I    R          -          TOTAL FLOW ON STAGE C                                             (VAPOR+LIQUID) (KMOL/SEC) C       X          I    R         NCOMP,3     LIQUID MOLE FRACTION C       Y          I    R         NCOMP       VAPOR MOLE FRACTION C       IDX        I    I         NCOMP       COMPONENT INDEX VECTOR C       NBOPST     I    I          6          OPTION SET BEAD POINTER C       KDIAG      I    I          -          LOCAL DIAGNOSTIC LEVEL C       STOIC      I    R         NCOMP,NR    REACTION STOICHIOMETRY C       IHLBAS     I    I          -          BASIS FOR LIQUID C                                             HOLDUP SPECIFICATION C                                             1:VOLUME,2:MASS,3:MOLE C       HLDLIQ     I    R          -          LIQUID HOLDUP C                                             IHLBAS    UNITS C                                             1         CU.M. C                                             2         KG C                                             3         KMOL C       TIMLIQ     I    R          -          LIQUID RESIDENCE TIME C                                             (SEC) C       IHVBAS     I    I          -          BASIS FOR VAPOR C                                             HOLDUP SPECIFICATION C                                             1:VOLUME,2:MASS,3:MOLE C       HLDVAP     I    R          -          VAPOR HOLDUP C                                             IHVBAS    UNITS C                                             1         CU.M. C                                             2         KG C                                             3         KMOL C       TIMVAP     I    R          -          VAPOR RESIDENCE TIME (SEC) C       NINT       I    I          -          LENGTH OF INTEGER VECTOR C       INT       I/O   I         NINT        INTEGER VECTOR C       NREAL      I    I          -          LENGTH OF REAL VECTOR C       REAL      I/O   R         NREAL       REAL VECTOR C       RATES      O    R         NCOMP       COMPONENT REACTION RATES C                                             (KMOL/SEC) C       RATEL      O    R         NRL         INDIVIDUAL REACTION RATES C                                             IN THE LIQUID PHASE C                                             (KMOL/SEC) C                                             * USED ONLY BY RATEFRAC ** C       RATEV      O    R         NRV         INDIVIDUAL REACTION RATES C                                             IN THE VAPOR PHASE C                                             (KMOL/SEC) C                                             * USED ONLY BY RATEFRAC ** C       NINTB      I    I          -          LENGTH OF INTEGER VECTOR C                                             (FROM UOS BLOCK) C       INTB      I/O   I         NINTB       INTEGER VECTOR C                                             (FROM UOS BLOCK) C       NREALB     I    I          -          LENGTH OF REAL VECTOR C                                             (FROM UOS BLOCK) C       REALB     I/O   R         NREALB      REAL VECTOR C                                             (FROM UOS BLOCK) C       NIWORK     I    I          -          LENGTH OF INTEGER WORK C                                             VECTOR C       IWORK     I/O   I         NIWORK      INTEGER WORK VECTOR C       NWORK      I    I          -          LENGTH OF REAL WORK VECTOR C       WORK      I/O   R         NWORK       REAL WORK VECTOR C C*********************************************************************** C       IMPLICIT NONE C C     DECLARE VARIABLES USED IN DIMENSIONING C       INTEGER NCOMP, NR,    NRL,   NRV,   NINT,      +        NINTB, NREALB,NIWORK,NWORK, N_COMP C C     DECLARE PARAMETERS & VARIABLES USED IN PARAMETERS C       INTEGER K_IB,K_DIB, K_TI, K_IP, K_TBA       PARAMETER(K_IB=1)       PARAMETER(K_DIB=2)       PARAMETER(K_TI=3)       PARAMETER(K_IP=4)       PARAMETER(K_TBA=5)       PARAMETER(N_COMP=5)  C     component order C     =============== C     this routine assumes that the components are in this order :   C C     DECLARE ARGUMENTS C       INTEGER IDX(NCOMP),   NBOPST(6),    INT(NINT),      +        INTB(NINTB),  IWORK(NIWORK),NSTAGE,      +        KDIAG, IHLBAS,IHVBAS,NREAL, KPHI,      +        KER,   L_GAMMA,      J       REAL*8 X(NCOMP,3),   Y(NCOMP),      +       STOIC(NCOMP,NR),     RATES(NCOMP),      +       RATEL(NRL),   RATEV(NRV),      +       REALB(NREALB),WORK(NWORK),  B(1),  T,      +       TLIQ,  TVAP,  P,     VF,    F       REAL*8 HLDLIQ,TIMLIQ,HLDVAP,TIMVAP C C C     DECLARE SYSTEM FUNCTIONS C       REAL*8 DLOG C C     DECLARE LOCAL VARIABLES C       INTEGER IMISS, IDBG       REAL*8 REAL(NREAL),  RMISS,  DKR(2),      +     RATE(2),  RATNET(2),  KA,  KB       REAL*8 PHI(N_COMP)       REAL*8 DPHI(N_COMP)       REAL*8 ACTIV(N_COMP)  C #include "ppexec_user.cmn"       EQUIVALENCE (RMISS, USER_RUMISS)       EQUIVALENCE (IMISS, USER_IUMISS) C C #include "dms_maxwrt.cmn"   #include "dms_ipoff3.cmn" #include "dms_lclist.cmn"       INTEGER FN  #include "dms_plex.cmn"       EQUIVALENCE(B(1),IB(1))        FN(J)=J+LCLIST_LBLCLIST              C C      DATA STATEMENTS C       DATA IDBG/0/  C     thermodynamic rate constant DKA C     =============================== 9010 FORMAT(1X,3(G13.6,1X)) 9000 FORMAT(' fugly failed at T=',G12.5,' P=',G12.5,' ker=',I4) 9020 FORMAT(' compo ',I3,' mole-frac=',G12.5,' activity=',G12.5) 9030 FORMAT(' stage=',I4,' spec-rate=',G12.5,' net-rate=',G12.5) C C     BEGIN EXECUTABLE CODE C       DKR(1)=(2.278D+10*DEXP(-30000.D+00/8.314/T))       DKR(2)=(1.81D+9*DEXP(-1800.D+00/8.314/T))       KA=7.D+00       KB=1.2D-01        IF(IDBG.GE.1)THEN         WRITE(MAXWRT_MAXBUF(1),9010) DKR(1),DKR(2),KA,KB         CALL DMS_WRTTRM(1)       ENDIF  C     calculation of components activities C     ==================================== C     calculate only fugacity coefficient       KPHI=1  C     fugacity coefficient of components in the mixture       CALL PPMON_FUGLY(T,P,X(1,1)      +     ,Y,NCOMP,IDX,NBOPST,KDIAG,KPHI,PHI,DPHI,KER)       IF(KER.NE.0)THEN         WRITE(MAXWRT_MAXBUF(1),9000) T,P,KER         CALL DMS_WRTTRM(1)       ENDIF  C     set offset to get activity coefficients C     (see vol5, p 11-11 and asp$sor search for 'GAMMAL')       L_GAMMA=IPOFF3_IPOFF3(24)  C     calculate activities for plex data       DO J=1,NCOMP         ACTIV(J)=DEXP(B(FN(L_GAMMA)+J))*X(J,1)       END DO       IF(IDBG.GE.1)THEN         DO J=1,NCOMP           WRITE(MAXWRT_MAXBUF(1),9020) J,X(J,1),ACTIV(J)           CALL DMS_WRTTRM(1)         END DO       ENDIF   C     use mass holdup as kgcata C  SCRATCH THAT...THATS WITH VERSION 9, IN 10 USE REALB(1) AS TOTAL MASS.       IF (ACTIV(K_IB) .GT. 0.D0) THEN         RATE(1)=(DKR(1)*(ACTIV(K_IB))**2.d0/(ACTIV(K_IB)+KA*ACTIV(K_TBA)      *  +KB*ACTIV(K_IP))**2.d0)         RATE(2)=(DKR(2)*ACTIV(K_IB)*ACTIV(K_DIB)/(ACTIV(K_IB)+KA      *  *ACTIV(K_TBA)+KB*ACTIV(K_IP))**3.d0)       ELSE         RATE(1) = 0.D+00         RATE(2) = 0.D+00       END IF           RATNET(1)=RATE(1)*REALB(1)*1.D-03       RATNET(2)=RATE(2)*REALB(1)*1.D-03                RATES(K_IB)=-RATNET(1)-RATNET(1)-RATNET(2)       RATES(K_DIB)=RATNET(1)-RATNET(2)       RATES(K_TI)=RATNET(2)       RATES(K_TBA)=0.D+00       RATES(K_IP)=0.D+00        IF(IDBG.GE.1)THEN         WRITE(MAXWRT_MAXBUF(1),9030) NSTAGE,RATE(1),RATE(2),RATNET(1),      +       RATNET(2)         CALL DMS_WRTTRM(1)       ENDIF       RETURN #undef P_MAX3       END  - 本文出自马后炮化工-让天下没有难学的化工技术,原文地址:https://meng.horse/thread-214404-1-1.html                       
    楼主,这是我编写的一个动力学方程,能成功嵌入到ASPEN中,不过运行后发现反应精馏塔的反应段reaction全为0.是不是我动力学方程编写的出了问题,请楼主帮忙看看
    C***********************************************************************
    C  LICENSED MATERIAL.  PROPERTY OF ASPEN TECHNOLOGY, INC.  TO BE       *
    C  TREATED AS ASPEN TECH PROPRIETARY INFORMATION UNDER THE TERMS       *
    C  OF THE ASPEN PLUS SUBSCRIPTION AGREEMENT.                           *
    C***********************************************************************
    C-----------------------------------------------------------------------
    C         COPYRIGHT (C) 1994
    C          ASPEN TECHNOLOGY, INC.
    C          CAMBRIDGE, MA
    C-----------------------------------------------------------------------
    C
    C     calculation of MTBE synthesis reaction rate
    C     User Kinetics Subroutine for RADFRAC, BATCHFRAC, RATEFRAC
    C
          SUBROUTINE DIB (NSTAGE, NCOMP,   NR,     NRL,     NRV,
         2                   T,      TLIQ,    TVAP,   P,       VF,
         3                   F,      X,       Y,      IDX,     NBOPST,
         4                   KDIAG,  STOIC,   IHLBAS, HLDLIQ,  TIMLIQ,
         5                   IHVBAS, HLDVAP,  TIMVAP, NINT,    INT,
         6                   NREAL,  REAL,    RATES,  RATEL,   RATEV,
         7                   NINTB,  INTB,    NREALB, REALB,   NIWORK,
         8                   IWORK,  NWORK,   WORK)
    C
    C      VARIABLES IN ARGUMENT LIST
    C
    C       VARIABLE  I/O  TYPE     DIMENSION     DESCRIPTION AND RANGE
    C       NSTAGE     I    I          -          STAGE NUMBER
    C       NCOMP      I    I          -          NUMBER OF COMPONENTS
    C       NR         I    I          -          TOTAL NUMBER OF KINETIC
    C                                             REACTIONS
    C       NRL        I    I          -          NUMBER OF LIQUID PHASE
    C                                             KINETIC REACTIONS
    C       NRV        I    I          -          NUMBER OF VAPOR PHASE
    C                                             KINETIC REACTIONS
    C       T          I    R          -          STAGE TEMPERATURE (K)
    C       TLIQ       I    R          -          LIQUID TEMPERATURE (K)
    C                                             * USED ONLY BY RATEFRAC **
    C       TVAP       I    R          -          VAPOR TEMPERATURE (K)
    C                                             * USED ONLY BY RATEFRAC **
    C       P          I    R          -          STAGE PRESSURE (N/SQ.M)
    C       VF         I    R          -          VAPOR FRACTION
    C       F          I    R          -          TOTAL FLOW ON STAGE
    C                                             (VAPOR+LIQUID) (KMOL/SEC)
    C       X          I    R         NCOMP,3     LIQUID MOLE FRACTION
    C       Y          I    R         NCOMP       VAPOR MOLE FRACTION
    C       IDX        I    I         NCOMP       COMPONENT INDEX VECTOR
    C       NBOPST     I    I          6          OPTION SET BEAD POINTER
    C       KDIAG      I    I          -          LOCAL DIAGNOSTIC LEVEL
    C       STOIC      I    R         NCOMP,NR    REACTION STOICHIOMETRY
    C       IHLBAS     I    I          -          BASIS FOR LIQUID
    C                                             HOLDUP SPECIFICATION
    C                                             1:VOLUME,2:MASS,3:MOLE
    C       HLDLIQ     I    R          -          LIQUID HOLDUP
    C                                             IHLBAS    UNITS
    C                                             1         CU.M.
    C                                             2         KG
    C                                             3         KMOL
    C       TIMLIQ     I    R          -          LIQUID RESIDENCE TIME
    C                                             (SEC)
    C       IHVBAS     I    I          -          BASIS FOR VAPOR
    C                                             HOLDUP SPECIFICATION
    C                                             1:VOLUME,2:MASS,3:MOLE
    C       HLDVAP     I    R          -          VAPOR HOLDUP
    C                                             IHVBAS    UNITS
    C                                             1         CU.M.
    C                                             2         KG
    C                                             3         KMOL
    C       TIMVAP     I    R          -          VAPOR RESIDENCE TIME (SEC)
    C       NINT       I    I          -          LENGTH OF INTEGER VECTOR
    C       INT       I/O   I         NINT        INTEGER VECTOR
    C       NREAL      I    I          -          LENGTH OF REAL VECTOR
    C       REAL      I/O   R         NREAL       REAL VECTOR
    C       RATES      O    R         NCOMP       COMPONENT REACTION RATES
    C                                             (KMOL/SEC)
    C       RATEL      O    R         NRL         INDIVIDUAL REACTION RATES
    C                                             IN THE LIQUID PHASE
    C                                             (KMOL/SEC)
    C                                             * USED ONLY BY RATEFRAC **
    C       RATEV      O    R         NRV         INDIVIDUAL REACTION RATES
    C                                             IN THE VAPOR PHASE
    C                                             (KMOL/SEC)
    C                                             * USED ONLY BY RATEFRAC **
    C       NINTB      I    I          -          LENGTH OF INTEGER VECTOR
    C                                             (FROM UOS BLOCK)
    C       INTB      I/O   I         NINTB       INTEGER VECTOR
    C                                             (FROM UOS BLOCK)
    C       NREALB     I    I          -          LENGTH OF REAL VECTOR
    C                                             (FROM UOS BLOCK)
    C       REALB     I/O   R         NREALB      REAL VECTOR
    C                                             (FROM UOS BLOCK)
    C       NIWORK     I    I          -          LENGTH OF INTEGER WORK
    C                                             VECTOR
    C       IWORK     I/O   I         NIWORK      INTEGER WORK VECTOR
    C       NWORK      I    I          -          LENGTH OF REAL WORK VECTOR
    C       WORK      I/O   R         NWORK       REAL WORK VECTOR
    C
    C***********************************************************************
    C
          IMPLICIT NONE
    C
    C     DECLARE VARIABLES USED IN DIMENSIONING
    C
          INTEGER NCOMP, NR,    NRL,   NRV,   NINT,
         +        NINTB, NREALB,NIWORK,NWORK, N_COMP
    C
    C     DECLARE PARAMETERS & VARIABLES USED IN PARAMETERS
    C
          INTEGER K_IB,K_DIB, K_TI, K_IP, K_TBA
          PARAMETER(K_IB=1)
          PARAMETER(K_DIB=2)
          PARAMETER(K_TI=3)
          PARAMETER(K_IP=4)
          PARAMETER(K_TBA=5)
          PARAMETER(N_COMP=5)

    C     component order
    C     ===============
    C     this routine assumes that the components are in this order :


    C
    C     DECLARE ARGUMENTS
    C
          INTEGER IDX(NCOMP),   NBOPST(6),    INT(NINT),
         +        INTB(NINTB),  IWORK(NIWORK),NSTAGE,
         +        KDIAG, IHLBAS,IHVBAS,NREAL, KPHI,
         +        KER,   L_GAMMA,      J
          REAL*8 X(NCOMP,3),   Y(NCOMP),
         +       STOIC(NCOMP,NR),     RATES(NCOMP),
         +       RATEL(NRL),   RATEV(NRV),
         +       REALB(NREALB),WORK(NWORK),  B(1),  T,
         +       TLIQ,  TVAP,  P,     VF,    F
          REAL*8 HLDLIQ,TIMLIQ,HLDVAP,TIMVAP
    C
    C
    C     DECLARE SYSTEM FUNCTIONS
    C
          REAL*8 DLOG
    C
    C     DECLARE LOCAL VARIABLES
    C
          INTEGER IMISS, IDBG
          REAL*8 REAL(NREAL),  RMISS,  DKR(2),
         +     RATE(2),  RATNET(2),  KA,  KB
          REAL*8 PHI(N_COMP)
          REAL*8 DPHI(N_COMP)
          REAL*8 ACTIV(N_COMP)

    C
    #include "ppexec_user.cmn"
          EQUIVALENCE (RMISS, USER_RUMISS)
          EQUIVALENCE (IMISS, USER_IUMISS)
    C
    C
    #include "dms_maxwrt.cmn"


    #include "dms_ipoff3.cmn"
    #include "dms_lclist.cmn"
          INTEGER FN

    #include "dms_plex.cmn"
          EQUIVALENCE(B(1),IB(1))

          FN(J)=J+LCLIST_LBLCLIST
                
    C
    C      DATA STATEMENTS
    C
          DATA IDBG/0/

    C     thermodynamic rate constant DKA
    C     ===============================
    9010 FORMAT(1X,3(G13.6,1X))
    9000 FORMAT(' fugly failed at T=',G12.5,' P=',G12.5,' ker=',I4)
    9020 FORMAT(' compo ',I3,' mole-frac=',G12.5,' activity=',G12.5)
    9030 FORMAT(' stage=',I4,' spec-rate=',G12.5,' net-rate=',G12.5)
    C
    C     BEGIN EXECUTABLE CODE
    C
          DKR(1)=(2.278D+10*DEXP(-30000.D+00/8.314/T))
          DKR(2)=(1.81D+9*DEXP(-1800.D+00/8.314/T))
          KA=7.D+00
          KB=1.2D-01

          IF(IDBG.GE.1)THEN
            WRITE(MAXWRT_MAXBUF(1),9010) DKR(1),DKR(2),KA,KB
            CALL DMS_WRTTRM(1)
          ENDIF

    C     calculation of components activities
    C     ====================================
    C     calculate only fugacity coefficient
          KPHI=1

    C     fugacity coefficient of components in the mixture
          CALL PPMON_FUGLY(T,P,X(1,1)
         +     ,Y,NCOMP,IDX,NBOPST,KDIAG,KPHI,PHI,DPHI,KER)
          IF(KER.NE.0)THEN
            WRITE(MAXWRT_MAXBUF(1),9000) T,P,KER
            CALL DMS_WRTTRM(1)
          ENDIF

    C     set offset to get activity coefficients
    C     (see vol5, p 11-11 and asp$sor search for 'GAMMAL')
          L_GAMMA=IPOFF3_IPOFF3(24)

    C     calculate activities for plex data
          DO J=1,NCOMP
            ACTIV(J)=DEXP(B(FN(L_GAMMA)+J))*X(J,1)
          END DO
          IF(IDBG.GE.1)THEN
            DO J=1,NCOMP
              WRITE(MAXWRT_MAXBUF(1),9020) J,X(J,1),ACTIV(J)
              CALL DMS_WRTTRM(1)
            END DO
          ENDIF


    C     use mass holdup as kgcata
    C  SCRATCH THAT...THATS WITH VERSION 9, IN 10 USE REALB(1) AS TOTAL MASS.
          IF (ACTIV(K_IB) .GT. 0.D0) THEN
            RATE(1)=(DKR(1)*(ACTIV(K_IB))**2.d0/(ACTIV(K_IB)+KA*ACTIV(K_TBA)
         *  +KB*ACTIV(K_IP))**2.d0)
            RATE(2)=(DKR(2)*ACTIV(K_IB)*ACTIV(K_DIB)/(ACTIV(K_IB)+KA
         *  *ACTIV(K_TBA)+KB*ACTIV(K_IP))**3.d0)
          ELSE
            RATE(1) = 0.D+00
            RATE(2) = 0.D+00
          END IF   

          RATNET(1)=RATE(1)*REALB(1)*1.D-03
          RATNET(2)=RATE(2)*REALB(1)*1.D-03


          
          RATES(K_IB)=-RATNET(1)-RATNET(1)-RATNET(2)
          RATES(K_DIB)=RATNET(1)-RATNET(2)
          RATES(K_TI)=RATNET(2)
          RATES(K_TBA)=0.D+00
          RATES(K_IP)=0.D+00

          IF(IDBG.GE.1)THEN
            WRITE(MAXWRT_MAXBUF(1),9030) NSTAGE,RATE(1),RATE(2),RATNET(1),
         +       RATNET(2)
            CALL DMS_WRTTRM(1)
          ENDIF
          RETURN
    #undef P_MAX3
          END

    - 本文出自马后炮化工-让天下没有难学的化工技术,原文地址:https://meng.horse/thread-214404-1-1.html
    ZL琳 发表于 2019-5-20 09:11
    楼主您好,我的电脑上装了Aspen Plus V8.4、Visual Studio 2012和Intel Parallel Studio XE 2013,可以正常 ...

    Visual Studio 2010 和 Intel Parallel Studio XE2011是标配,基本上Aspen7.3-10都能链接
    C:\Program Files (x86)\AspenTech\reaction>aspcomp CSTR.F
    拒绝访问。
    拒绝访问。
    拒绝访问。

      Error in compiling preprocessed file: Check compile.log
    请问这个是什么原因呢
    czhllt 发表于 2019-7-15 11:21
    Visual Studio 2010 和 Intel Parallel Studio XE2011是标配,基本上Aspen7.3-10都能链接

    是的,我已经安装上了,运行很顺利,谢谢。
    763918331 发表于 2019-8-19 23:07
    fortran与aspen可连接

    是的,非常可行
    楼主 您好 我的 Aspen V10 后面装了 VS2015和IVF2017 显示OK了 但是在Aspen里面还是显示缺少合适的编译器 求指导
    ZL琳 发表于 2019-5-20 09:11
    楼主您好,我的电脑上装了Aspen Plus V8.4、Visual Studio 2012和Intel Parallel Studio XE 2013,可以正常 ...

    请问这个问题你解决了嘛?我遇到相同问题
    19811211 发表于 2019-11-13 11:14
    请问这个问题你解决了嘛?我遇到相同问题

    我现在装的是VS2010和IVF2013,可以适用于Aspen Plus V8.4
    楼主你好,动力学方程多了一个机理函数,和转化率有关,如附件所示,应该怎样用Fortran编程或者怎样在aspen中设置一些参数?万分感谢
    用engine编译obj的时候,报错,出现  No compiler set is selected for use with this version of AspenPlus.   You need to run correct "Set Compiler for Vxx" and select a supported   C++ and Fortran compiler set that have been installed on your system.
    g12121212f 发表于 2022-6-16 22:08
    用engine编译obj的时候,报错,出现  No compiler set is selected for use with this version of AspenPlu ...

    这是什么情况,没有装C++吗?
    ***SEVERE ERROR    FORTRAN INVALID OPERATION ENCOUNTERED. 楼主这个代表什么意思?
    985B9F62C2C997B57B95074D6E40A25F.jpg

    手机版|猛犸论坛【以梦为马,不负韶华】

    GMT+8, 2025-7-13 19:16

    Powered by 猛犸论坛【以梦为马,不负韶华】

    © 2024-2099 Meng.Horse

    返回顶部