以梦为马,不负韶华

搜索
查看: 6121|回复: 0
收起左侧

aspen中编译fortran子程序

[复制链接]
发表于 1970-1-1 08:00:00 显示全部楼层 |阅读模式
aspen中编译fortran子程序时,如果里面再有子程序怎么办?
比如
SUBROUTINE USRKNT (N,NCOMP,NR,NRL,NRV,T,TLIQ,TVAP,P,PHFRAC,F,X, Y,IDX,NBOPST,KDIAG,STOIC,IHLBAS,HLDLIQ,TIMLIQ,IHVBAS,HLDVAP,TIMVAP,NINT,INT,NREAL,REAL,RATES,RATEL,RATEV,NINTB,INTB,NREALB,REALB,NIWORK,IWORK,NWORK,WORK)

      IMPLICIT NONE

!DECLARE VARIABLES USED IN DIMENSIONING

      INTEGER NCOMP, NR,    NRV,   NINT,  NINTB, NREALB,NIWORK,NWORK, USER_IUMISS
   real  USER_RUMISS

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


     !DECLARE ARGUMENTS

      INTEGER NRL(3),IDX(NCOMP),NBOPST(6), INT(NINT),INTB(NINTB),&
              IWORK(NIWORK),N,KDIAG, IHLBAS, IHVBAS,NREAL
      
   REAL*8 PHFRAC(3),X(NCOMP,3),Y(NCOMP),&
             STOIC(NCOMP,NR),RATES(NCOMP),&
             RATEL(1),RATEV(NRV),&
             REALB(NREALB),WORK(NWORK),  T,TLIQ,&
             TVAP,P,F,HLDLIQ,TIMLIQ
      REAL*8 HLDVAP,TIMVAP

     !DECLARE LOCAL VARIABLES

      INTEGER IMISS
      REAL*8 REAL(NREAL),  RMISS

     !BEGIN EXECUTABLE CODE

      INTEGER I
       REAL*8 C,G,E,R,Dp,K,RATE
       K=f(...)  
       RETURN
      END
!其中f(...)为一函数或者为子程序
谢谢了~~~

本帖被以下云收藏推荐:

发表于 1970-1-1 08:00:00 显示全部楼层
好像fortran 子程序之间是可以互相调用的吧,你可以试试吧子程序写在一个文件里面啊

点评

SUBROUTINE USRKNT (N,NCOMP,NR,NRL,NRV,T,TLIQ,TVAP,P,PHFRAC,F,X, Y,IDX,NBOPST,KDIAG,STOIC,IHLBAS,HLDLIQ,TIMLIQ,IHVBAS,HLDVAP,TIMVAP,NINT,INT,NREAL,REAL,RATES,RATEL,RATEV,NINTB,INTB,NREALB,REALB,NIWORK,  详情 回复 发表于 2011-6-7 21:10
 楼主| 发表于 1970-1-1 08:00:00 显示全部楼层

SUBROUTINE USRKNT (N,NCOMP,NR,NRL,NRV,T,TLIQ,TVAP,P,PHFRAC,F,X, Y,IDX,NBOPST,KDIAG,STOIC,IHLBAS,HLDLIQ,TIMLIQ,IHVBAS,HLDVAP,TIMVAP,NINT,INT,NREAL,REAL,RATES,RATEL,RATEV,NINTB,INTB,NREALB,REALB,NIWORK,IWORK,NWORK,WORK)

      IMPLICIT NONE

!DECLARE VARIABLES USED IN DIMENSIONING

      INTEGER NCOMP, NR,    NRV,   NINT,  NINTB, NREALB,NIWORK,NWORK, USER_IUMISS
   real  USER_RUMISS

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


     !DECLARE ARGUMENTS

      INTEGER NRL(3),IDX(NCOMP),NBOPST(6), INT(NINT),INTB(NINTB),&
              IWORK(NIWORK),N,KDIAG, IHLBAS, IHVBAS,NREAL
      
   REAL*8 PHFRAC(3),X(NCOMP,3),Y(NCOMP),&
             STOIC(NCOMP,NR),RATES(NCOMP),&
             RATEL(1),RATEV(NRV),&
             REALB(NREALB),WORK(NWORK),  T,TLIQ,&
             TVAP,P,F,HLDLIQ,TIMLIQ
      REAL*8 HLDVAP,TIMVAP

     !DECLARE LOCAL VARIABLES

      INTEGER IMISS
      REAL*8 REAL(NREAL),  RMISS

     !BEGIN EXECUTABLE CODE

      INTEGER I
       REAL*8 C,G,E,R,Dp,K,RATE
       CALL F(...)  
       RETURN
      END

      SUBROUTINE F(...)
      ............
      END
我这样做的然后生成.dll好像不对吧?
发表于 1970-1-1 08:00:00 显示全部楼层
看不懂,还是等待高手
发表于 1970-1-1 08:00:00 显示全部楼层
我眼中你们都是高手阿{:1106_366:}
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-2-12 04:39

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表