平面四边形八节点等参单元的平面有限元分析程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
平⾯四边形⼋节点等参单元的平⾯有限元分析程序
1 C 这是⼀个采⽤平⾯四边形⼋节点等参单元的平⾯有限元分析程序。
2 PROGRAM PLANEFEM
3 IMPLICIT REAL*8(A-H,O-Z)
4 CHARACTER*80 LINECHAR,NEWLINECHAR
5 COMMON A(30000),L(4000)
6 COMMON /SOL/NPOIN,NELEM,NTYPE,NMATS
7 OPEN(5,FILE='FEMDATA',STATUS='OLD')
8 OPEN(6,FILE='FEMOUT',STATUS='UNKNOWN')
9 C 以下进⾏的是从数据⽂件FEMDATA中读⼊数据⽂件主标题信息。
10 READ(5,5000) LINECHAR
11 LOCATECHAR=INDEX(LINECHAR,'输⼊')
12 IF(LOCATECHAR.NE.0) THEN
13 LINECHAR(LOCATECHAR:LOCATECHAR+3)='输出'
14 ENDIF
15 WRITE(6,5100) LINECHAR
165000 FORMAT(A)
175100 FORMAT(80('*')/A/80('*')/)
18 C 以下进⾏的是先读⼊⼀⾏字符,然后从字符中读⼊⽹格单元总数NELEM。
19 READ(5,5000) LINECHAR
20 WRITE(6,5000) LINECHAR
21 LOCATECHAR=INDEX(LINECHAR,'=')
22 LOCATECHAR=LOCATECHAR+1
23 NEWLINECHAR=LINECHAR(LOCATECHAR:80)
24 READ(NEWLINECHAR,5200) NELEM
255200 FORMAT(I5)
26 C 以下进⾏的是先读⼊⼀⾏字符,然后从字符中读⼊单元节点总数NPOIN。
27 READ(5,5000) LINECHAR
28 WRITE(6,5000) LINECHAR
29 LOCATECHAR=INDEX(LINECHAR,'=')
30 LOCATECHAR=LOCATECHAR+1
31 NEWLINECHAR=LINECHAR(LOCATECHAR:80)
32 READ(NEWLINECHAR,5200) NPOIN
33 C 以下进⾏的是先读⼊⼀⾏字符,然后从字符中读⼊问题类型编号NTYPE。
34 READ(5,5000) LINECHAR
35 WRITE(6,5000) LINECHAR
36 LOCATECHAR=INDEX(LINECHAR,'=')
37 LOCATECHAR=LOCATECHAR+1
38 NEWLINECHAR=LINECHAR(LOCATECHAR:80)
39 READ(NEWLINECHAR,5200) NTYPE
40 C 以下进⾏的是先读⼊⼀⾏字符,然后从字符中读⼊材料类型总数NMATS。
41 READ(5,5000) LINECHAR
42 WRITE(6,5000) LINECHAR
43 LOCATECHAR=INDEX(LINECHAR,'=')
44 LOCATECHAR=LOCATECHAR+1
45 NEWLINECHAR=LINECHAR(LOCATECHAR:80)
46 READ(NEWLINECHAR,5200) NMATS
47 C 以下进⾏的是根据以输⼊的控制参数确定虚拟数组在实数组中的起始位置。
48 N1=1
49 N2=N1+NPOIN*2
50 N3=N2+NMATS*3
51 N4=N3+NPOIN*2
52 NN2=N1+NELEM*8
53 NN3=NN2+NPOIN
54 NN4=NN3+NELEM
55 NN5=NN4+NELEM
56 C 以下进⾏的是调⽤⼦程序进⾏有限元分析计算。
57 CALL INPUT(A(N1),A(N2),L(N1),L(NN2),L(NN3))
58 CALL STIF(A(N1),A(N2),L(N1),L(NN3))
59 CALL LOAD(A(N1),L(N1),L(NN4))
60 CALL ASEM(A(N3),A(N4),L(N1),L(NN2),L(NN4),L(NN5))
61 CALL SOLVE(A(N3),A(N4),L(NN5))
62 CALL STRE(A(N1),A(N2),A(N3),L(N1),L(NN3))
63 WRITE(*,5300)
645300 FORMAT(////////////////)
65 STOP ' *** 程序正常运⾏结束 ***'
66 END
67 C*****************************************************************************
68 C 这是⼀个进⾏数据输⼊并进⾏数据检验的⼦程序。 *
69 C*****************************************************************************
70 SUBROUTINE INPUT(COORD,PROPS,LNODS,IFPRE,MATNO)
71 IMPLICIT REAL*8(A-H,O-Z)
72 CHARACTER*80 LINECHAR,NEWLINECHAR,CHARCOMP
73 LOGICAL NOTREADCHAR
74 DIMENSION COORD(2,1),PROPS(3,1),LNODS(8,1),IFPRE(1),MATNO(1)
75 DIMENSION NEROR(6)
76 COMMON/SOL/NPOIN,NELEM,NTYPE,NMATS
77 CHARCOMP='aa(这个字符常量在ASCII序列中介于数字和字符之间)'
78 NNODE=8
79 C 以下进⾏的是对材料类型编号赋初值。
80 I=1