Professional Documents
Culture Documents
非线性分析程序设计范例
非线性分析程序设计范例
===========================================================
! 非线性分析程序设计范例
! 利用 Newton-Raphson 法求解平面弹塑性桁架
!程序说明
! 程序作者:陆新征
! 北京清华大学土木工程系
! 2006.5.
!===========================================================
module TypDef
implicit none
integer (kind(1)),parameter ::ikind=(kind(1))
integer (kind(1)),parameter ::rkind=(kind(0.D0))
contains
contains
module Data_Input
use TypDef
implicit none
contains
close(55)
return
end subroutine DataInput
contains
subroutine DataOutput(GValue, Node, Elem, Load, Support) ! 计算结果输出模块
type(typ_GValue) :: GValue
type(typ_Node),pointer :: Node(:)
type(typ_Truss),pointer :: Elem(:)
type(typ_Load),pointer :: Load(:)
type(typ_Support),pointer :: Support(:)
integer (ikind) :: i
open(55,file="dispout.txt")
do i=1, size(Node)
write(55,'(I3,2G13.5)') i, Node(i)%Disp(1:2) ! 输出最终节点位移
end do
close(55)
open(55,file="Elemout.txt")
do i=1,size(Elem)
write(55,'(I3,2G13.5)') i, Elem(i)%EPS, Elem(i)%SIG ! 输出最终单元应变,应力
end do
close(55)
return
end subroutine DataOutput
end module Data_Output
program Main
use TypDef
use Main_Iteration
use Data_Input
use Data_Output
type(typ_GValue) :: GValue
type(typ_Node),pointer :: Node(:)
type(typ_Truss),pointer :: Elem(:)
type(typ_Load),pointer :: Load(:)
type(typ_Support),pointer :: Support(:)
integer (ikind) :: Inc ! 增量步