CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
steps.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine steps (inpc, textpart, iperturb, iprestr, nbody, nforc, nload, ithermal, t0, t1, nk, irstrt, istep, istat, n, jmax, ctrl, iline, ipol, inl, ipoinp, inp, newstep, ipoinpc, network)
 

Function/Subroutine Documentation

◆ steps()

subroutine steps ( character*1, dimension(*)  inpc,
character*132, dimension(16)  textpart,
integer, dimension(*)  iperturb,
integer  iprestr,
integer  nbody,
integer  nforc,
integer  nload,
integer  ithermal,
real*8, dimension(*)  t0,
real*8, dimension(*)  t1,
integer  nk,
integer  irstrt,
integer  istep,
integer  istat,
integer  n,
integer, dimension(2)  jmax,
real*8, dimension(*)  ctrl,
integer  iline,
integer  ipol,
integer  inl,
integer, dimension(2,*)  ipoinp,
integer, dimension(3,*)  inp,
integer  newstep,
integer, dimension(0:*)  ipoinpc,
integer  network 
)
22 !
23 ! reading the input deck: *STEP
24 !
25  implicit none
26 !
27  character*1 inpc(*)
28  character*132 textpart(16)
29 !
30  integer iperturb(*),nforc,nload,ithermal,nk,istep,istat,n,key,
31  & i,j,iprestr,jmax(2),irstrt,iline,ipol,inl,ipoinp(2,*),inp(3,*),
32  & newstep,nbody,ipoinpc(0:*),network
33 !
34  real*8 t0(*),t1(*),ctrl(*)
35 !
36  if(newstep.eq.1) then
37  write(*,*) '*ERROR reading *STEP: *STEP statement detected'
38  write(*,*) ' within step ',istep
39  call exit(201)
40  else
41  newstep=1
42  endif
43 !
44  if(iperturb(1).lt.2) iperturb(1)=0
45  if(irstrt.lt.0) irstrt=0
46  istep=istep+1
47  jmax(1)=100
48  jmax(2)=10000
49 !
50  do i=2,n
51  if(textpart(i)(1:12).eq.'PERTURBATION') then
52  iperturb(1)=1
53 c iperturb(2)=1
54  write(*,*) '*INFO reading *STEP: nonlinear geometric'
55  write(*,*) ' effects are turned on'
56  write(*,*)
57 !
58 ! removing the present loading (check!!)
59 !
60  nforc=0
61  iprestr=0
62  if((ithermal.eq.1).or.(ithermal.eq.3)) then
63  do j=1,nk
64  t1(j)=t0(j)
65  enddo
66  endif
67 !
68  elseif((textpart(i)(1:6).eq.'NLGEOM').and.
69  & (textpart(i)(7:9).ne.'=NO')) then
70 !
71 ! geometrically nonlinear calculations
72 !
73  iperturb(2)=1
74  write(*,*) '*INFO reading *STEP: nonlinear geometric'
75  write(*,*) ' effects are turned on'
76  write(*,*)
77  if(iperturb(1).eq.0) then
78  iperturb(1)=2
79  elseif(iperturb(1).eq.1) then
80  write(*,*)
81  & '*ERROR reading *STEP: PERTURBATION and NLGEOM'
82  write(*,*) ' are mutually exclusive; '
83  call inputerror(inpc,ipoinpc,iline,
84  &"*STEP%")
85  call exit(201)
86  endif
87 !
88  elseif(textpart(i)(1:9).eq.'NLGEOM=NO') then
89 !
90 ! geometrically linear calculations
91 ! iperturb(1) is not changed, i.e. iterations will
92 ! occur (e.g. they may be needed due to contact,
93 ! nonlinear material laws....)
94 !
95  iperturb(2)=0
96  write(*,*) '*INFO reading *STEP: nonlinear geometric'
97  write(*,*) ' effects are turned off'
98  write(*,*)
99 !
100  elseif(textpart(i)(1:4).eq.'INC=') then
101 !
102 ! maximum number of increments
103 !
104  read(textpart(i)(5:14),'(i10)',iostat=istat) jmax(1)
105  if(istat.gt.0) call inputerror(inpc,ipoinpc,iline,
106  &"*STEP%")
107 !
108  elseif(textpart(i)(1:5).eq.'INCF=') then
109 !
110 ! maximum number of fluid increments
111 !
112  read(textpart(i)(6:15),'(i10)',iostat=istat) jmax(2)
113  if(istat.gt.0) call inputerror(inpc,ipoinpc,iline,
114  &"*STEP%")
115  elseif(textpart(i)(1:14).eq.'THERMALNETWORK') then
116  if(istep.ne.1) then
117  write(*,*) '*ERROR reading *STEP'
118  write(*,*) ' THERMAL NETWORK can only be used'
119  write(*,*) ' on the first step'
120  call exit(201)
121  endif
122 !
123 ! purely thermal network, i.e. Dx-elements are defined
124 ! for thermal purposes only (calculation of heat transfer
125 ! coefficient based on Reynolds number et...)
126 !
127  network=1
128  elseif(textpart(i)(1:9).eq.'AMPLITUDE') then
129  write(*,*) '*ERROR reading *STEP'
130  write(*,*) ' AMPLITUDE cannot be used'
131  write(*,*) ' on a *STEP card.'
132  write(*,*) ' Please apply the amplitude'
133  write(*,*) ' on each loading seperately.'
134  call exit(201)
135  else
136  write(*,*)
137  & '*WARNING reading *STEP: parameter not recognized:'
138  write(*,*) ' ',
139  & textpart(i)(1:index(textpart(i),' ')-1)
140  call inputwarning(inpc,ipoinpc,iline,
141  &"*STEP%")
142  endif
143  enddo
144 !
145  call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
146  & ipoinp,inp,ipoinpc)
147 !
148  return
subroutine inputwarning(inpc, ipoinpc, iline, text)
Definition: inputwarning.f:20
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21
subroutine inputerror(inpc, ipoinpc, iline, text)
Definition: inputerror.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)