|
各位高手:
一个子程序 INITIA 调用另一个子程序MATISW,然后出现如下错误。主要是INITIA调用时对应的第6、8、11、13个参数,分别是LDUMMY,DUMMY,DUMMY,DUMMY;而相应子程序MATISW中的参数是LALGVL,RALGVL,RSTAVL,STRESL.二者有些不匹配,所以出现错误,具体可见代码。
这是别人写的代码,不大懂DUMMY是什么意思?是系统默认的关键词吗?那程序INITIA定义的LDUMMY又是什么?有相关资料可以学习一下吗?谢谢!
1>E:\work directory\HYPLAS_v2.0\src\GENERAL\initia.f(44): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [LALGVL]
1>E:\work directory\HYPLAS_v2.0\src\GENERAL\initia.f(44): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [RALGVL]
1>E:\work directory\HYPLAS_v2.0\src\GENERAL\initia.f(44): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [RSTAVL]
1>E:\work directory\HYPLAS_v2.0\src\GENERAL\initia.f(44): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic. [STRESL]
[Fortran] 纯文本查看 复制代码 SUBROUTINE INITIA
1( DLAMD ,IFNEG ,KUNLD ,TFACT )
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C Hyplas global database
INCLUDE '../MAXDIM.INC'
INCLUDE '../MATERIAL.INC'
INCLUDE '../ELEMENTS.INC'
INCLUDE '../GLBDBASE.INC'
C Local variables and numerical constants
LOGICAL LDUMMY
DATA R0 /
1 0.0D0/
C***********************************************************************
C INITIALISES SOME ARRAYS AND VARIABLES
C
C REFERENCE: Section 5.3.4
C***********************************************************************
KUNLD=0
TFACT=R0
DLAMD=R0
IFNEG=1
DO 10 IELEM=1,NELEM
IGRUP=IGRPID(IELEM)
IELIDN=IELTID(IGRUP)
NEVAB=IELPRP(5,IELIDN)
CALL RVZERO(ELOAD(1,IELEM),NEVAB)
CALL RVZERO(ELOADO(1,IELEM),NEVAB)
10 CONTINUE
CALL RVZERO(DTANG,NTOTV)
CALL RVZERO(TDISP,NTOTV)
CALL RVZERO(TDISPO,NTOTV)
CALL RVZERO(DINCR,NTOTV)
CALL RVZERO(DINCRO,NTOTV)
CALL RVZERO(DITER,NTOTV)
C Arrays from common block STATE
DO 30 IELEM=1,NELEM
IGRUP=IGRPID(IELEM)
IELIDN=IELTID(IGRUP)
NGAUSP=IELPRP(4,IELIDN)
DO 20 IGAUSP=1,NGAUSP
C Call material interface routine to initialise material-specific Gauss
C point data
MODE=0
CALL MATISW
1( MODE ,NLARGE ,NTYPE ,
2 IPROPS(1,MATTID(IGRUP)),LALGVA(1,IGAUSP,IELEM,1) ,
3 LDUMMY ,RALGVA(1,IGAUSP,IELEM,1) ,DUMMY ,
4 RPROPS(1,MATTID(IGRUP)) ,
5 RSTAVA(1,IGAUSP,IELEM,1) ,DUMMY ,
6 STRSG(1,IGAUSP,IELEM,1) ,DUMMY )
20 CONTINUE
30 CONTINUE
RETURN
END
C----------------(以下仅部分相关代码)----
SUBROUTINE MATISW
1( MODE ,NLARGE ,NTYPE ,IPROPS ,LALGVC ,
2 LALGVL ,RALGVC ,RALGVL ,RPROPS ,RSTAVC ,
3 RSTAVL ,STRESC ,STRESL )
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
INCLUDE '../MATERIAL.INC'
C Arguments
LOGICAL
1 LALGVC ,LALGVL
DIMENSION
1 IPROPS(*) ,LALGVC(*) ,LALGVL(*) ,
2 RALGVC(*) ,RALGVL(*) ,RPROPS(*) ,
3 RSTAVC(*) ,RSTAVL(*) ,STRESC(*) ,
4 STRESL(*)
C***********************************************************************
|
|