3、并且每个常量都赋了值。在module模块中定义了NELEM,NPOIN,NPROP,MXDFN,NSTEP,IDEVP,IDDP,LTYPE以及NFIX1,NPL,NVL,NSL,NHL,NTL,IDCVG,NTOTV,NKK以及DTIME,TOLER,SCALE,DSCALE这些全局变量,CGAUS(2>,VSHAP(8,8>,DERIV(3,8,8>以及POSGP(3>,COPG(3>,EJ(3,3>,EJACI(3,3>,R(8,8>这些维数与大小都确定的全局
4、数组变量,定义了COORD(:,:>,PROPS(:,:,:>以及STRSG(:,:,:>,DJ(:,:>,CARTD(:,:,:,:>以及TRANJ(:,:,:,:>,DJRMX(:,:,:>以及DREMX(:,:,:>,DJEMX(:,:,:,:>以及CREMX(:,:,:>,CJEMX(:,:,:,:>以及MELEM(:,:>,MPROP(:>,ISSOR(:,:>,NNDEX(:>以及MPFIX(:,:>,MPSJ(:>,MMATP(:>,MPIV(:>以及TSTIF(:>以及ADISP(:>,TDISP(:
5、>,ALOAD(:>以及PSNBR(:,:,:>,PSNBJ(:,:>以及PSTNR(:,:,:>,PSTNJ(:,:>以及STRSP(:,:>,STRSJ(:,:>这些维数确定但是大小不确定的可变大小的数组,ALLOCATABLE表示可变大小的数组变量。Module的程序代码要编写在最前面,整个程序在主程序以及子程序中都使用了MODULEDIMDATA。模块module的名字是DIMDATA,表示模块里面定义的变量都是内容不确定或者大小不确定的,需要后面补充。RTCrpUDGiT7.RESIZE调整大小的意思,采用
6、子程序SUBROUTINERESIZE(KELEM,KPOIN,KPROP,KFIX1>,子程序名称RESIZE(KELEM,KPOIN,KPROP,KFIX1>括号里面的KELEM,KPOIN,KPROP,KFIX1是指定四个变量用来接收传递进来的参数,名字可以完全自定,不需要跟呼叫时所放入的变量名称有任何联系。子程序的目的是把module模块里面的可变大小的数组变量的维数与大小都确定下来,相应的数组变量的内存大小也就确定下来了。在子程序SUBROUTINERESIZE(KELEM,KPOIN,KPROP,KFIX
7、1>里面要用到module模块里面的变量,要在子程序开始声明之前就使用USEDIMDATA的描述来使用这个module。5PCzVD7HxA8.在声明时,只能使用常数来赋数组的大小,常数包括填入数字或者使用声明为parameter的常数。16/16这段程序作用是给各个数组内容赋予初值。这段程序代码的作用是配置数组的内存空间大小。ALLOCATE(A(STUDENTS>>!配置内存空间10.主程序并不一定要放在整个程序代码的最开头,它可以安排在程序中的任意位置,可以先写子程序再写主程序。PROGRAMFEM3v04是主
8、程序开头,主程序没有放在最开头,放在中间了。但是module的程序代码需要编写在整个程序的最前面。jLBHrnAILg11.16/16Module模块截图。12.这些语句用于赋予数组的初值。13.ALLOCATEMEMORYOK!配置内存完毕14.CARRIAGECONTROL='FORTRAN'的字段用来指定所要开启的文件名称,“6”的作用是