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 specificgasconstants(inpc,textpart,shcon,nshcon,
20     &  nmat,ntmat_,irstrt,istep,istat,n,iline,ipol,inl,ipoinp,
21     &  inp,ipoinpc,ier)
22!
23!     reading the input deck: *SPECIFIC GAS CONSTANT
24!
25      implicit none
26!
27      character*1 inpc(*)
28      character*132 textpart(16)
29!
30      integer nshcon(*),nmat,ntmat_,istep,istat,n,ipoinpc(0:*),
31     &  key,irstrt(*),iline,ipol,inl,ipoinp(2,*),inp(3,*),i,ier
32!
33      real*8 shcon(0:3,ntmat_,*)
34!
35      if((istep.gt.0).and.(irstrt(1).ge.0)) then
36         write(*,*)
37     &   '*ERROR reading *SPECIFIC GAS CONSTANT: *SPECIFIC GAS CONSTANT'
38         write(*,*) '  should be placed before all step definitions'
39         ier=1
40         return
41      endif
42!
43      if(nmat.eq.0) then
44         write(*,*)
45     &   '*ERROR reading *SPECIFIC GAS CONSTANT: *SPECIFIC GAS CONSTANT'
46         write(*,*) '  should be preceded by a *MATERIAL card'
47         ier=1
48         return
49      endif
50!
51      do i=2,n
52         write(*,*)
53     &     '*WARNING in specificgasconstants: parameter not recognized:'
54         write(*,*) '         ',
55     &        textpart(i)(1:index(textpart(i),' ')-1)
56         call inputwarning(inpc,ipoinpc,iline,
57     &"*SPECIFIC GAS CONSTANT%")
58      enddo
59!
60      do
61         call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
62     &        ipoinp,inp,ipoinpc)
63         if((istat.lt.0).or.(key.eq.1)) return
64         read(textpart(1)(1:20),'(f20.0)',iostat=istat)
65     &        shcon(3,1,nmat)
66         if(istat.gt.0) then
67            call inputerror(inpc,ipoinpc,iline,
68     &           "*SPECIFIC GAS CONSTANT%",ier)
69            return
70         endif
71      enddo
72!
73      return
74      end
75
76