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

Go to the source code of this file.

Functions/Subroutines

subroutine substructuregenerates (inpc, textpart, nmethod, iperturb, isolver, istep, istat, n, iline, ipol, inl, ipoinp, inp, ithermal, ipoinpc, filab)
 

Function/Subroutine Documentation

◆ substructuregenerates()

subroutine substructuregenerates ( character*1, dimension(*)  inpc,
character*132, dimension(16)  textpart,
integer  nmethod,
integer  iperturb,
integer  isolver,
integer  istep,
integer  istat,
integer  n,
integer  iline,
integer  ipol,
integer  inl,
integer, dimension(2,*)  ipoinp,
integer, dimension(3,*)  inp,
integer  ithermal,
integer, dimension(0:*)  ipoinpc,
character*87, dimension(*)  filab 
)
22 !
23 ! reading the input deck: *SUBSTRUCTURE GENERATE
24 !
25 ! isolver=0: SPOOLES
26 ! 7: pardiso
27 !
28  implicit none
29 !
30  character*1 inpc(*)
31  character*20 solver
32  character*87 filab(*)
33  character*132 textpart(16)
34 !
35  integer nmethod,iperturb,isolver,istep,istat,n,key,i,
36  & iline,ipol,inl,ipoinp(2,*),inp(3,*),ithermal,ipoinpc(0:*)
37 !
38  if((iperturb.eq.1).and.(istep.ge.1)) then
39  write(*,*) '*ERROR reading *SUBSTRUCTURE GENERATE:'
40  write(*,*) ' perturbation analysis is'
41  write(*,*) ' not provided in a *SUBSTRUCTURE'
42  write(*,*) ' GENERATE step.'
43  call exit(201)
44  endif
45 !
46  if(istep.lt.1) then
47  write(*,*) '*ERROR reading *SUBSTRUCTURE GENERATE:'
48  write(*,*) ' *SUBSTRUCTURE GENERATE can only be used'
49  write(*,*) ' within a STEP'
50  call exit(201)
51  endif
52 !
53 ! no heat transfer analysis
54 !
55  if(ithermal.gt.1) then
56  ithermal=1
57  endif
58 !
59 ! default solver
60 !
61  solver=' '
62  if(isolver.eq.0) then
63  solver(1:7)='SPOOLES'
64  elseif(isolver.eq.2) then
65  solver(1:16)='ITERATIVESCALING'
66  elseif(isolver.eq.3) then
67  solver(1:17)='ITERATIVECHOLESKY'
68  elseif(isolver.eq.4) then
69  solver(1:3)='SGI'
70  elseif(isolver.eq.5) then
71  solver(1:5)='TAUCS'
72  elseif(isolver.eq.7) then
73  solver(1:7)='PARDISO'
74  endif
75 !
76  do i=2,n
77  if(textpart(i)(1:7).eq.'SOLVER=') then
78  read(textpart(i)(8:27),'(a20)') solver
79  else
80  write(*,*) '*WARNING reading *SUBSTRUCTURE GENERATE:'
81  write(*,*) ' parameter not recognized:'
82  write(*,*) ' ',
83  & textpart(i)(1:index(textpart(i),' ')-1)
84  call inputwarning(inpc,ipoinpc,iline,
85  &"*SUBSTRUCTURE GENERATE%")
86  endif
87  enddo
88 !
89  if(solver(1:7).eq.'SPOOLES') then
90  isolver=0
91  elseif(solver(1:7).eq.'PARDISO') then
92  isolver=7
93  else
94  write(*,*) '*ERROR reading *SUBSTRUCTURE GENERATE:'
95  write(*,*) ' solver:',solver,'is not allowed.'
96  write(*,*) ' please specify SPOOLES or PARDISO'
97  call exit(201)
98  endif
99 !
100  nmethod=11
101  filab(5)(1:4)='RF '
102 !
103  call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
104  & ipoinp,inp,ipoinpc)
105 !
106  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
Hosted by OpenAircraft.com, (Michigan UAV, LLC)