|
6#
楼主 |
发表于 2021-2-2 16:05:51
|
只看该作者
不好意思,您能细致的指点下改哪几句吗? 基础很差,这个小问题已经坐着改了几小时没动了,来来回回都改不好,麻烦了
SUBROUTINE STIF_J(r11,r22,t12,t21,E01,E02,h01,h02,p01,p02,BL,m,n,STIFJ)
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION STIFJ(2,2),Tao(2,2),T1(2,2),T2(2,2),T2I(2,2)
REAL*8 Ib,Jinte,Jintea,Jintea_0
EXTERNAL FS,Fp,Fa
……
……
CALL FS(X,Y1,Y2)
CALL Fun2(X,Y,Fa,BL,m,n)
CALL FSIM2(0.d0,BL,FS,Fa,0.0001,Jintea_0)
Jintea=2*Jintea_0
STIFJ(1,1)=STIFJ(1,1)+(T1(1,1)*T2I(1,1)+T1(1,2)*T2I(2,1))*Cg1*Jintea
STIFJ(1,2)=STIFJ(1,2)+(T1(1,1)*T2I(1,2)+T1(1,2)*T2I(2,2))*Cg2*Jintea
STIFJ(2,1)=STIFJ(2,1)+(T1(1,1)*T2I(1,1)+T1(2,2)*T2I(2,1))*Cg1*Jintea
STIFJ(2,2)=STIFJ(2,2)+(T1(2,1)*T2I(1,2)+T1(2,2)*T2I(2,2))*Cg2*Jintea
END
$$
SUBROUTINE Fun2(X,Y,Fa,BL,m,n)
!**** The Lagrangian function of the plates with angle
IMPLICIT REAL*8(A-Z)
DIMENSION Nf(4)
INTEGER m,n
! m,n=1,2,3,4
Nf(1)=(1.d0-X/BL)*(1.d0-Y/BL)
Nf(2)=(1.d0-X/BL)*( Y/BL)
Nf(3)=( X/BL)*(1.d0-Y/BL)
Nf(4)=( X/BL)*( Y/BL)
Fa=Nf(m)*Nf(n)
END
这个子程序中我是想把Fa作为函数输出的
$$
SUBROUTINE FS(X,Y1,Y2)
IMPLICIT REAL*8(A-Z)
Y1=0
Y2=X
RETURN
END
错误 3 error #7112: This actual argument must not be the name of a procedure. [FA] D:\0518Kegangduzhen\sti01\0126\trans1\trans1\Couple-xin.f90 134
我把 CALL FSIM2(0.d0,BL,FS,Fa,0.0001,Jintea_0) 中的Fa变为Fun2,外部声明也改成Fun2后又出现下边的问题
而且改成这样后和FS明明差不多,为什么FS 就没出问题,这个就怎么也不对
错误 3 error #7071: The classification of the associated actual procedure differs from the classification of the dummy procedure; i.e., one is subroutine and one is function. [FUN2] D:\0518Kegangduzhen\sti01\0126\trans1\trans1\Couple-xin.f90 136
|
|