读有限元Fortran程序笔记

上传人:豆浆 文档编号:740295 上传时间:2017-05-13 格式:DOCX 页数:18 大小:620.45KB
返回 下载 相关 举报
读有限元Fortran程序笔记_第1页
第1页 / 共18页
读有限元Fortran程序笔记_第2页
第2页 / 共18页
读有限元Fortran程序笔记_第3页
第3页 / 共18页
读有限元Fortran程序笔记_第4页
第4页 / 共18页
读有限元Fortran程序笔记_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《读有限元Fortran程序笔记》由会员分享,可在线阅读,更多相关《读有限元Fortran程序笔记(18页珍藏版)》请在金锄头文库上搜索。

1、1读有限元程序笔记1. ALLOCATABLE:COORD(:,:),PROPS(:,:,:) !声明两个可变大小的数组, COORD(:,:)是二维数组,PROPS(:,:,:)是三维数组。2. Fortran 程序行首为 C 代表改行为注释,不会被编译3. 全局变量(common) ,不同的程序之间,也就是在不同的函数之间或者是主程序跟函数之间,除了可以通过传递参数的方法来共享内存,还可以通过“全局变量”来让不同程序中声明出来的变量使用相同的内存位置。4. Dimensional 维的,viscoplastic 塑性的,elastic 有弹力的,finite 有限的,element 元素,

2、program 程序。5. THREE DIMENSIONAL ELASTIC-VISCOPLASTIC FINITE ELEMENT PROGRAM 三维弹塑性有限元程序6. Module 可以用来封装程序模块,通常是用来把程序中,具备相关功能的函数及变量封装在一起。程序在开始定义了一个 module 模块,在模块中定义了MXKKK=50000000,MXGSJ=1000 ,MXGSJ=1000 三个常量(PARAMETER 表示常量) ,并且每个常量都赋了值。在 module 模块中定义了 NELEM,NPOIN,NPROP,MXDFN,NSTEP,IDEVP,IDDP,LTYPE以及 N

3、FIX1,NPL,NVL,NSL,NHL,NTL,IDCVG,NTOTV,NKK 以及 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

4、(:,:,:),DJEMX(:,:,:,:)以及 CREMX(:,:,:),CJEMX(:,:,:,:)以及 MELEM(:,:),MPROP(:),ISSOR(:,:),NNDEX(:)以及 MPFIX(:,:),MPSJ(:),MMATP(:),MPIV(:)以及 TSTIF(:)以及 ADISP(:),TDISP(:),ALOAD(:)以及 PSNBR(:,:,:),PSNBJ(:,:)以及 PSTNR(:,:,:),PSTNJ(:,:)以及 STRSP(:,:),STRSJ(:,:)这些维数确定但是大小不确定的可变大小的数组,ALLOCATABLE 表示可变大小的数组变量。 Modul

5、e 的程序代码要编写在最前面,整个程序在主程序以及子程序中都使用了 MODULE DIMDATA。模块 module 的名字是DIMDATA,表示模块里面定义的变量都是内容不确定或者大小不确定的,需要后面补充。7. RESIZE 调整大小的意思,采用子程序 SUBROUTINE RESIZE(KELEM,KPOIN,KPROP,KFIX1),子程序名称 RESIZE(KELEM,KPOIN,KPROP,KFIX1)括号里面的 KELEM,KPOIN,KPROP,KFIX1 是指定四个变量用来接收传递进来的参数,名字可以完全自定,不需要跟呼叫时所放入的变量 名称有任何联系。子程序的目的是把 mo

6、dule 模块里面的可变大小的数组变量的维数与大小都确定下来,相应的数组变量的内存大小也就确定下来了。在子程序 SUBROUTINE RESIZE(KELEM,KPOIN,KPROP,KFIX1)里面要用到 module 模块里面的变量,要在子程序开始声明之前就使用 USE DIMDATA 的描述来使用这个 module。8. 在声明时,只能使用常数来赋数组的大小,常数包括填入数字或者使用声明为 parameter 的常数。9.2这段程序作用是给各个数组内容赋予初值。这段程序代码的作用是配置数组的内存空间大小。ALLOCATE(A(STUDENTS) ! 配置内存空间 10主程序并不一定要放在

7、整个程序代码的最开头,它可以安排在程序中的任意位置,可以先写子程序再写主程序。PROGRAM FEM3 v04 是主程序开头,主程序没有放在最开头,放在中间了。但是 module的程序代码需要编写在整个程序的最前面。11.3Module 模块截图。12.这些语句用于赋予数组的初值。13. ALLOCATE MEMORY OK!配置内存完毕14. CARRIAGECONTROL=FORTRAN的字段用来指定所要开启的文件名称,“6” 的作用是给后面的文件指定一个代码。主程序 PROGRAM FEM3 v04 里面调用了很多个主程序,每一个主程序都有一个特定的功能。主程序 PROGRAM FEM3

8、 v04 里面调用了 COPYRIGHT、READDATA、GAUSINDEX、4INISTRESS、GAUSTRAN、FORMLOAD、ELASMATX、STFINDEX 、FORMSTIF、ITERATION 、OUTRESULT、WRITE2TECPLOT,每调用一个子程序后在调用一个子程序 SHOWTIME。子程序SHOWTIME 在前述每个子程序被调用后调用,与它们混合调用。此语局意思是“停止计算完成的”15. iteration 迭代,copyright 版权, readdata 读取数据,index 索引,gausindex 高斯索引,INISTRESS 初始应力,dimensi

9、on 维度,16. 这是第一个子程序 COPYRIGHT, 这个字段定义了一个一维数组 CH(),数组大小为 10,数组 CH()是 CHARACTER 类型数组, 意思就是数组 CH()里面的每一个变量是CHARACTER(字符串)类型变量。 表示数组 CH()内每一个变量都是CHARACTER(字符串)类型变量,数组内每一个变量大小都是 71。后面给出了数组里面每一个变量的值。WRITE(*,*) (CH(I),I=1,7)语句表示在默认位置(也就是电脑屏幕)上不用特定格式输出数组的内容,还用了一个简单循环(CH(I),I=1,7)。17.5这是主程序里面调用的第二个子程序 SUBROUT

10、INE READDATA, 定义了一个字符串类型变量 TITLE,大小为 80,意思就是变量 TITLE 里面可以保存 80 个字符位置的数据。打开代号为 10 的文件 CORE04.DAT 与打开代号为 20 的文件CHECK.OUT, 使用 read 来读取代号为 10 的文件 CORE04.DAT 中的文本到字符串变量 TITLE 中。使用 read 来读取代号为 10 的文件CORE04.DAT 中的文本到 DTIME,NSTEP, TOLER,IDDP, SCALE,DSCALE 这些变量中去。因为前面module 模块里面定义了 DTIME,NSTEP, TOLER,IDDP, S

11、CALE,DSCALE 这些变量,在子程序SUBROUTINE READDATA 里面使用 USE DIMDATA 语句就可以在子程序里面直接使用前面 module 模块里面定义的变量,不需要再子程序里面重复定义。此语句以 C 作为开头,表明此句是注释。使用 read 来读取代号为 10 的文件 CORE04.DAT 中的文本到 NELEM,NPOIN,NPROP,NFIX1 这些变量中。在子程序 SUBROUTINE READDATA 里面又调用了READELEM、READNODE、READMATER、READBOND 这四个子程序,嵌套调用子程序。READELEM 读单元,READNODE

12、 读结点,READBOND 读结合处。618.这是子程序 SUBROUTINE READELEM 的内容。关闭代号是“1005”的文件。这是子程序 SUBROUTINE READNODE 的内容。7以上两个图片合并就是一个子程序 SUBROUTINE READMATER 的截图。8子程序独立地拥有属于自己的变量声明,也就是说在子程序与其它子程序之间,子程序与子程序之间所声明变量彼此是不相干的,即使在主程序与其它的子程序中使用了同样的变量名称,它们也是彼此没有关系的不同变量。主程序跟子程序是两种不同的程序,不同程序之间可以各自拥有属于自己的变量声明以及自己的行代码定义。material 材料,c

13、onstant 常数,input 输入,READMATER 读取材料参数,rock岩石,PROPS 后盾,1-E 表示弹性,2-POISSON RATIO 表示泊松比,4-FRICTION ANGLE 表示摩擦角,5-UNIT WEIGHT 表示材料容重, 6-DILATAION 表示材料的膨胀系数, 7-GAMA 表示材料的通用性质,TRANSFERRED 传递,JOINT 节点,DIP 倾斜角,INTERVAL 间隔,TENSILE STRENGTH 抗拉强度。此部分用于定义材料的性能参数与定义节点的性能参数。此语句把“MATERIAL CONSTANT=” 字符串写入代码是20 的文件中

14、。代码是 20 的文件名称是 CHECK.OUT,代码为 10 的文件名称是 CORE04.DAT,代码为1005 的文件名称是 CHNAME。一行程序代码的最后如果是符号&,代表下一行程序会和这一行连接;如果一行程序代码的开头是符号& ,代表它会和上一行程序连接。此句是逻辑判断语句,.GT.判断是否“大于” (Greater Than)。输出变量的值到代码为 20 的文件中去,输出格式代码是 12.代码 12 的内容为 ,设置输出格式,对应书本第 50 面。CRITERION 标准,准则,尺度。 INNER CONE 内切圆,INNER OUTER CONE 内接圆(内角点外接)。注释语句。

15、OUTER OUTER CONE 外接圆(外角点外接)。不理解这个字段的意思,Fortran 语法没有看懂。9这个没有怎么看懂它是什么意思,不太理解,对于语法与内容本身都不甚理解。子程序 SUBROUTINE READBOND 的字段,表示这个子程序是关于约束信息,边界条件信息都写在子程序里面了。CONSTRAINTS n. 数 约束;10限制;约束条件(constraint 的复数形式), DOF(Degree of Freedom)自由度,DOF CONSTRAINTS 自由度限制。BOUNDARY CONDITION FINISHED 边界条件完成,boundary 边界,conditi

16、on 条件。19. GAUSINDEX 高斯索引INDEX MATRIX OF GAUSS STRESSES FOR JOINT, BOLT 强调对于接合处,螺栓的高斯索引矩阵20INISTRESS 初始应力;INITIAL STRESS 初始应力,预应力;VISCOPLASTIC STRAIN 粘塑性应变, 判断是否“小于”(Little Than)。GOTO 跳转命令,跳转到行代码指定的那一行去执行。11这个子程序的内容就是关于初始应力的。代码是 46 的文件就是 STRSS.IN。20. 12SHAPE FUNCTION & DERIVATIVES TO LOCAL COORDINATES 形函数与导数的局部坐标。GAUSTRAN 高斯转换。 DERIVATIVES 导数,LOCAL COORDINATES OF NODES ICM 在 节点局部坐标系,DERIVA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号