| 
 | 
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         
 |   
 
 
 
 |