1!
2!     CalculiX - A 3-dimensional finite element program
3!              Copyright (C) 1998-2021 Guido Dhondt
4!
5!     This program is free software; you can redistribute it and/or
6!     modify it under the terms of the GNU General Public License as
7!     published by the Free Software Foundation(version 2);
8!
9!
10!     This program is distributed in the hope that it will be useful,
11!     but WITHOUT ANY WARRANTY; without even the implied warranty of
12!     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13!     GNU General Public License for more details.
14!
15!     You should have received a copy of the GNU General Public License
16!     along with this program; if not, write to the Free Software
17!     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18!
19      subroutine depvars(inpc,textpart,nelcon,nmat,
20     &        nstate_,irstrt,istep,istat,n,iline,ipol,inl,ipoinp,inp,
21     &        ncocon,ipoinpc,ier)
22!
23!     reading the input deck: *DEPVAR
24!
25      implicit none
26!
27      character*1 inpc(*)
28      character*132 textpart(16)
29!
30      integer nelcon(2,*),nmat,istep,nstate_,ncocon(2,*),ipoinpc(0:*),
31     &  n,key,istat,nstate,irstrt(*),iline,ipol,inl,ipoinp(2,*),
32     &  inp(3,*),i,ier
33!
34      if((istep.gt.0).and.(irstrt(1).ge.0)) then
35         write(*,*) '*ERROR reading *DEPVAR: *DEPVAR should be placed'
36         write(*,*) '  before all step definitions'
37         ier=1
38         return
39      endif
40!
41      if(nmat.eq.0) then
42         write(*,*) '*ERROR reading *DEPVAR: *DEPVAR should be preceded'
43         write(*,*) '  by a *MATERIAL card'
44         ier=1
45         return
46      endif
47!
48      do i=2,n
49         write(*,*)
50     &        '*WARNING reading *DEPVAR: parameter not recognized:'
51         write(*,*) '         ',
52     &        textpart(i)(1:index(textpart(i),' ')-1)
53         call inputwarning(inpc,ipoinpc,iline,
54     &"*DEPVAR%")
55      enddo
56!
57      call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
58     &     ipoinp,inp,ipoinpc)
59      if((istat.lt.0).or.(key.eq.1)) then
60         write(*,*) '*ERROR reading *DEPVAR: incomplete definition'
61         ier=1
62         return
63      endif
64      read(textpart(1)(1:10),'(i10)',iostat=istat) nstate
65      if(istat.gt.0) then
66         call inputerror(inpc,ipoinpc,iline,
67     &        "*DEPVAR%",ier)
68         return
69      endif
70      nstate_=max(nstate_,nstate)
71!
72      call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
73     &     ipoinp,inp,ipoinpc)
74!
75      return
76      end
77
78