在使用Marc进行导入子程序计算时,出现上述错误,我的MSC.MARC是2010版的,装的是Intel Fortran 11.0-061,使用的编译器是Microsoft Visual Studio 9.0
子程序代码是:
subroutine forcem(press,th1,th2,nn,n)
c
implicit real*8 (a-h,o-z)
c
c ** Start of generated type statements **
c ** End of generated type statements **
c* * * * * *
c
c defined non-uniformed distributed force on an element.
c
c If NOT table driven input style:
c press distributed load increment magnitude
c if follower force then give total magnitude at the end of increment
c If table driven input style:
c press total distributed load magnitude at the end of increment
c---------------------
c 2D analyis
c
c th1 1st component of the integration point coordinate
c th2 2nd component of the integration point coordinate
c---------------------
c 3D analyis
c
c th1 x,y,z coordinte of the integration point
c th2 direction vector of the pressure
c---------------------
c 2D and 3D analysis
c nn integration point number (for distributed load analysis)
c n(1) user element number
c n(2) parameter identifying the type of load
c n(3) not used
c n(4) not used
c n(5) distributed load index for non-table driven input style
c it can be used to indentify which loads is being process
c in case of multiple DIST LOADS definition in the model
c n(6) not used
c n(7) internal element number
c n(8) not used
c n(9) 0= not general CID load flag
c 1= general CID load flag
c n(10) not used
c cdum not used
c bcname boundary condition name for table driven input style
c it can be used to indentify which loads is being process
c in case of multiple DIST LOADS definition in the model
c prnorm direction cosine of the direction of the load
c with respect to the global system.
c It has to be set for general CID traction load,
c nonuniform volumetric load (IBODY=107),
c nonuniform force per unit length (IBODY=111) or
c nonuniform for per unit area (IBODY=113
c* * * * * *
dimension th1(3),th2(3),n(7)
include 'H:\MSC.Software\Marc\2010\marc2010\common\creeps'
c
b=1.0d0
v=sqrt(2.0d0)
distan=v*(cptim+timinc)
xc=0.5d0*sqrt(2.0d0)*distan
yc=0.5d0*sqrt(2.0d0)*distan
xmin=xc-b/2.0d0
xmax=xc+b/2.0d0
ymin=yc-b/2.0d0
ymax=yc+b/2.0d0
press=0.0d0
if (th1(1).le.xmax.and.th1(1).ge.xmin.and.
$ th1(2).le.ymax.and.th1(2).ge.ymin) press=2.0d0
th2(1)=0.0d0
th2(2)=0.0d0
th2(3)=-1.0d0
c
return
end