FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!

FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!,第1张

程序补充:

SUBROUTINE

FN(N,X,Y,Z)

IMPLICIT

REAL(A-H,O-Z)

PARAMETER

(a=180,L=210,G=120)

DIMENSION

R(N,N),X(N),Y(N),Z(N)

CALL

DISTANCE(N,X,Y,Z,R)

FX=0

DO

I=1,N

DO

J=1,N

DO

K=1,N

F1=EXP(G/(R(I,J)-a)+G/(R(I,K)-a))

F2=((R(I,J)2+R(I,K)2-R(J,K)2)/(2R(I,J)R(I,K))+1/3)2

FX=FX+LF1F2

ENDDO

ENDDO

ENDDO

RETURN

END

SUBROUTINE

FT(N,X,Y,Z)

IMPLICIT

REAL(A-H,O-Z)

PARAMETER

(c=7049556277,d=06022245584,P=4,Q=0,a=180)

DIMENSION

R(N,N),X(N),Y(N),Z(N)

CALL

DISTANCE(N,X,Y,Z,R)

FY=0

DO

I=1,N

DO

J=1,N

IF(R(I,J)LTa)

THEN

FY=FY+c((d(-P))-R(I,J)(-Q))EXP(1/(R(I,J)-a))

ELSE

FY=0

ENDIF

ENDDO

ENDDO

RETURN

END

SUBROUTINE

ENERGY(N,X,Y,Z)

IMPLICIT

REAL(A-H,O-Z)

DIMENSION

X(N),Y(N),Z(N)

CALL

FN(N,X,Y,Z)

CALL

FT(N,X,Y,Z)

E=FX+FY

RETURN

END

DO

I=1,N

DO

J=1,N

DO

K=1,N

F1=EXP(G/(R(I,J)-a)+G/(R(I,K)-a))

F2=((R(I,J)2+R(I,K)2-R(J,K)2)/(2R(I,J)R(I,K))+1/3)2

FX=FX+LF1F2

ENDDO

ENDDO

ENDDO

RETURN

END

第一种方法:

1 建立工作目录/ ]"

2 将ABAQUS安装目录\64-pr11\site下的aba_param_dpinc 或 aba_param_spinc拷贝到工作目录,并改名为aba_paraminc;

3 将编译的fortran程序拷贝到工作目录;

4 将obj文件拷贝到工作目录;

5 建立好输入文件inp;

6 运行abaqus job=inp_name user=fortran name即可。

第二种方法:

在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从d出对话框中选择你要调用的子程序文件(后缀为for或f)。

不知道楼主对编译过程了解多少?

你的程序可能是源代码,Fortran的以前没有写过,熟悉的是C/C++的源代码,运行之前,要通过编译链接成可以执行的2进制代码文件,然后才可以运行。你的这个也差不多。

首先找到你的Linux主机的合适的编译器,比如g77,f77或者直接用gcc的子集。

有Makefile就很好了。你也可以看一下有么有configure文件。估计你的源代码比较多,所以自动编译比较好。关于可以用的编译器,你可以参考这个说明:>

CALL SUBROUTINE CCC(X,Z,NX,T)

改为

CALL CCC(X,Z,NX,T)

另外,

IF(X(KX)LEZ) GO TO 24

这一行,没有24可以跳转,检查一下应该跳转到哪儿

以上就是关于FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!全部的内容,包括:FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!、abaqus怎么用fortran怎么编写子程序、如何在linux下运行Fortran主程序,其中主程序还调用了子程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9422744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存