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

Go to the source code of this file.

Functions/Subroutines

subroutine complexfrequencys (inpc, textpart, nmethod, mei, iperturb, istep, istat, n, iline, ipol, inl, ipoinp, inp, ithermal, xboun, nboun, ipoinpc, mcs, cs, cyclicsymmetry)
 

Function/Subroutine Documentation

◆ complexfrequencys()

subroutine complexfrequencys ( character*1, dimension(*)  inpc,
character*132, dimension(16)  textpart,
integer  nmethod,
integer, dimension(4)  mei,
integer, dimension(2)  iperturb,
integer  istep,
integer  istat,
integer  n,
integer  iline,
integer  ipol,
integer  inl,
integer, dimension(2,*)  ipoinp,
integer, dimension(3,*)  inp,
integer  ithermal,
real*8, dimension(*)  xboun,
integer  nboun,
integer, dimension(0:*)  ipoinpc,
integer  mcs,
real*8, dimension(17,*)  cs,
integer  cyclicsymmetry 
)
22 !
23 ! reading the input deck: *COMPLEX FREQUENCY
24 !
25  implicit none
26 !
27  character*1 inpc(*)
28  character*132 textpart(16)
29 !
30  integer nmethod,mei(4),istep,istat,iperturb(2),i,nboun,
31  & n,key,iline,ipol,inl,ipoinp(2,*),inp(3,*),nev,ithermal,
32  & ipoinpc(0:*),mcs,cyclicsymmetry
33 !
34  real*8 xboun(*),cs(17,*)
35 !
36  mei(4)=0
37 !
38  if(istep.lt.1) then
39  write(*,*) '*ERROR reading *COMPLEX FREQUENCY:'
40  write(*,*) ' *COMPLEX FREQUENCY can only be used'
41  write(*,*) ' within a STEP'
42  call exit(201)
43  endif
44 !
45 ! no heat transfer analysis
46 !
47  if(ithermal.gt.1) then
48  ithermal=1
49  endif
50 !
51 ! check for cyclic symmetry
52 !
53  if((mcs.ne.0).and.(cs(2,1).ge.0.d0)) then
54  cyclicsymmetry=1
55  endif
56 !
57  nmethod=0
58  do i=2,n
59  if(textpart(i)(1:8).eq.'CORIOLIS') then
60  nmethod=6
61  elseif(textpart(i)(1:7).eq.'FLUTTER') then
62  nmethod=7
63  elseif(textpart(i)(1:11).eq.'STORAGE=YES') then
64  mei(4)=1
65  else
66  write(*,*)
67  & '*WARNING reading *COMPLEX FREQUENCY:'
68  write(*,*) ' parameter not recognized:'
69  write(*,*) ' ',
70  & textpart(i)(1:index(textpart(i),' ')-1)
71  call inputwarning(inpc,ipoinpc,iline,
72  &"*COMPLEX FREQUENCY%")
73  endif
74  enddo
75  if(nmethod.eq.0) then
76  write(*,*)
77  & '*ERROR reading *COMPLEX FREQUENCY:'
78  write(*,*) ' either parameter CORIOLIS'
79  write(*,*) ' or parameter FLUTTER is required'
80  call inputerror(inpc,ipoinpc,iline,
81  &"*COMPLEX FREQUENCY%")
82  call exit(201)
83  endif
84 !
85 c nmethod=6
86  if(iperturb(1).gt.1) iperturb(1)=0
87  iperturb(2)=0
88 !
89  call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
90  & ipoinp,inp,ipoinpc)
91  if((istat.lt.0).or.(key.eq.1)) then
92  write(*,*) '*ERROR reading *COMPLEX FREQUENCY:'
93  write(*,*) ' definition not complete'
94  write(*,*) ' '
95  call inputerror(inpc,ipoinpc,iline,
96  &"*COMPLEX FREQUENCY%")
97  call exit(201)
98  endif
99  read(textpart(1)(1:10),'(i10)',iostat=istat) nev
100  if(istat.gt.0) call inputerror(inpc,ipoinpc,iline,
101  &"*COMPLEX FREQUENCY%")
102  if(nev.le.0) then
103  write(*,*) '*ERROR reading *COMPLEX FREQUENCY:'
104  write(*,*) ' less than 1 eigenvalue requested'
105  call exit(201)
106  endif
107 !
108  mei(1)=nev
109 !
110 ! removing nonzero boundary conditions
111 !
112  do i=1,nboun
113  xboun(i)=0.d0
114  enddo
115 !
116 ! correction for cyclic symmetric structures:
117 ! if the present step was not preceded by a frequency step
118 ! no nodal diameter has been selected. To make sure that
119 ! mastructcs is called instead of mastruct a fictitious
120 ! minimum nodal diameter is stored
121 !
122  if((cyclicsymmetry.eq.1).and.(mcs.ne.0).and.(cs(2,1)<0.d0))
123  & cs(2,1)=0.d0
124 !
125  call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
126  & ipoinp,inp,ipoinpc)
127 !
128  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)