- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
读有限元程序笔记
ALLOCATABLE::COORD(:,:),PROPS(:,:,:)!声明两个可变大小的数组, COORD(:,:)是二维数组,
PROPS(:,:,:)是三维数组。
Fortran程序行首为C代表改行为注释,不会被编译
全局变量(common),不同的程序之间,也就是在不同的函数之间或者是主程序跟函数之间,除了可以通过传递参数的方法来共享内存,还可以通过“全局变量”来让不同程序中声明出来的变量使用相同的内存位置。
Dimensional维的,viscoplastic塑性的,elastic有弹力的,finite有限的,element元素,program程序。
THREEDIMENSIONALELASTIC-VISCOPLASTICFINITEELEMENTPROGRAM三维弹塑性有限元程序
Module可以用来封装程序模块,通常是用来把程序中,具备相关功能的函数及变量封装在一起。程序
在开始定义了一个module模块,在模块中定义了MXKKKMXGSJ=1000,MXGSJ=1000三个常量(PARAMETER表示常量),并且每个常量都赋了值。在module模块中定义了NELEM,NPOIN,NPROP,MXDFN,NSTEP,IDEVP,IDDP,LTYPE 以 及
NFIX1,NPL,NVL,NSL,NHL,NTL,IDCVG,NTOTVNKK以及DTIME,TOLER,SCALE,DSCALE这些全局变量(common表示全局变量),定义了ICM(3,8),CGAUS(2),VSHAP(8,8),DERIV(3,8,8)以及POSGP(3),COPG(3),EJ(3,3),EJACI(3,3),R(8,8)这些维数与大小都确定的全局数组变量,定义了COORD(:,:),PROPS(:,:,:)以及STRSG(:,:,:),DJ(:,:),CARTD(:,:,:,:)以及TRANJ(:,:,:,:),DJRMX(:,:,:)以及DREMX(:,:,:),DJEMX(:,:,:,:)以及CREMX(:,:,:),CJEMX(:,:,:,:)以及MELEM(:,:),MPROP(:),ISSOR(:,:),NNDEX(:)以及MPFIX(:,:),MPSJ(:),MMATP(:),MPIV(:)以及TSTIF(:)以及ADISP(:),TDISP(:),ALOAD(:)以及PSNBR(:,:,:),PSNBJ(:,:)以及PSTNR(:,:,:),PSTNJ(:,:)以及STRSP(:,:),STRSJ(:,:)这些维数确定但是大小不确定的可变大小的数组,ALLOCATABLE表示可变大小的数组变量。Module的程序代码要编写在最前面,整个程序在主程序以及子程序中都使用了MODULEDIMDATAo模块module的名字是DIMDATA表示模块里面定义的变量都是内容不确定或者大小不确定的,需要后面补充。
RESIZE调整大小的意思,采用子程序SUBROUTINERESIZE(KELEM,KPOIN,KPROP,KFIX1),子程序名称RESIZE(KELEM,KPOIN,KPROP,KFIX1)括号里面的KELEM,KPOIN,KPROP,KFIX1是指定四个变量用来接收传递进来的参数,名字可以完全自定,不需要跟呼叫时所放入的变量名称有任何联系。子程序的目的是把module模块里面的可变大小的数组变量的维数与大小都确定下来,相应的数组变量的内存大小也就确定下来了。在子程序SUBROUTINERESIZE(KELEM,KPOIN,KPROP,KFIX1)里面要用到module模块里面的变量,要在子程序开始声明之前就使用USEDIMDATA的描述来使用这个module。
在声明时,只能使用常数来赋数组的大小,常数包括填入数字或者使用声明为parameter的常数。
9.
COORD=
a.a;
9;
9;
PROPS
NPROP=a;
mpsj=a;
=a.a
IWWOR=
NMftTP=
s
MELEM
MPFIX
STRSG
a.a;
STRSJ
=a.a
DJ
a.a;
CARTD
=a.a
TRANJ
a.a;
DJRMK
=a.a
DJEMX
a.a;
DREMX
=a.a
CJEMX
a.a;
CREMX
=a.a
MPIU
9;
HMDEX=0
TSTIF
a.a;
ADISP
=a.a
TDISP
a.a;
ALOAD
=a.a
PSNBR
a.a;
PSHBJ
=a.a
PSTNR
a.a;
PSTHJ
=a.a
文档评论(0)