程序说明1编程语言为Fortran902本程序可以求解任意空间杆系.PDF

程序说明1编程语言为Fortran902本程序可以求解任意空间杆系.PDF

程序说明: 1:编程语言为Fortran 90 2 :本程序可以求解任意空间杆系结构 3 :节点位移编码为(X, Y, Z, θx, θy, θz ),荷载编码为(Fx, Fy, Fz, Mx, My, Mz ) 4 :单元输入信息为:起点号,终点号,EA, EIy, EIz, GIx, α( α为参考坐标系与整体坐标系 夹角 5:程序为使编程简化,采用了多文件技术 程序清单: 程序由以下四个文件组成 1:Lxz_Tools.f90 主要为一些工具函数 2:TypeDef.f90 变量定义,单元属性分析 3:SolveDisp.f90 矩阵求解 4:3dframe.f90 整体控制模块 1:Lxz_Tools.f90 module Lxz_Tools implicit none integer (kind(1)),parameter ::ikind=(kind(1)) integer (kind(1)),parameter ::rkind=(kind(0.D0)) real (rkind), parameter :: Zero=0.D0,One=1.D0,Two=2.D0,Three=3.D0, Four=4.D0,Five=5.D0,Six=6.D0,Seven=7.D0,Eight=8.D0,Nine=9.D0, Ten=10.D0 contains function matinv(A) result (B) real(rkind) ,intent (in)::A(:,:) !real(rkind) , allocatable::B(:,:) real(rkind) , pointer::B(:,:) integer(ikind):: N,I,J,K real(rkind)::D,T real(rkind), allocatable::IS(:),JS(:) N=size(A,dim=2) allocate(B(N,N)) allocate(IS(N));allocate(JS(N)) B=A do K=1,N D=0.0D0 do I=K,N do J=K,N if(abs(B(I,J))D) then D=abs(B(I,J)) IS(K)=I JS(K)=J end if end do end do do J=1,N T=B(K,J) B(K,J)=B(IS(K),J) B(IS(K),J)=T end do do I=1,N T=B(I,K) B(I,K)=B(I,JS(K)) B(I,JS(K))=T end do B(K,K)=1/B(K,K) do J=1,N if(J.NE.K) then B(K,J)=B(K,J)*B(K,K) end if end do do I=1,N if(I.NE.K) then do J=1,N if(J.NE.K) then B(I,J)=B(I,J)-B(I,K)*B(K,J) end if

文档评论(0)

1亿VIP精品文档

相关文档