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 umatht(u,dudt,dudg,flux,dfdt,dfdg,
20     &  statev,temp,dtemp,dtemdx,time,dtime,predef,dpred,
21     &  cmname,ntgrd,nstatv,props,nprops,coords,pnewdt,
22     &  noel,npt,layer,kspt,kstep,kinc,vold,co,lakonl,konl,
23     &  ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,mi)
24!
25!     heat transfer material subroutine
26!
27!     INPUT:
28!
29!     statev(nstatv)      internal state variables at the start
30!                         of the increment
31!     temp                temperature at the start of the increment
32!     dtemp               increment of temperature
33!     dtemdx(ntgrd)       current values of the spatial gradients of the
34!                         temperature
35!     time(1)             step time at the beginning of the increment
36!     time(2)             total time at the beginning of the increment
37!     dtime               time increment
38!     predef              not used
39!     dpred               not used
40!     cmname              material name
41!     ntgrd               number of spatial gradients of temperature
42!     nstatv              number of internal state variables as defined
43!                         on the *DEPVAR card
44!     props(nprops)       user defined constants defined by the keyword
45!                         card *USER MATERIAL,TYPE=THERMAL
46!     nprops              number of user defined constants, as specified
47!                         on the *USER MATERIAL,TYPE=THERMAL card
48!     coords              global coordinates of the integration point
49!     pnewd               not used
50!     noel                element number
51!     npt                 integration point number
52!     layer               not used
53!     kspt                not used
54!     kstep               not used
55!     kinc                not used
56!     vold(0..4,1..nk)    solution field in all nodes
57!                         0: temperature
58!                         1: displacement in global x-direction
59!                         2: displacement in global y-direction
60!                         3: displacement in global z-direction
61!                         4: static pressure
62!     co(3,1..nk)         coordinates of all nodes
63!                         1: coordinate in global x-direction
64!                         2: coordinate in global y-direction
65!                         3: coordinate in global z-direction
66!     lakonl              element label
67!     konl(1..20)         nodes belonging to the element
68!     ipompc(1..nmpc))   ipompc(i) points to the first term of
69!                        MPC i in field nodempc
70!     nodempc(1,*)       node number of a MPC term
71!     nodempc(2,*)       coordinate direction of a MPC term
72!     nodempc(3,*)       if not 0: points towards the next term
73!                                  of the MPC in field nodempc
74!                        if 0: MPC definition is finished
75!     coefmpc(*)         coefficient of a MPC term
76!     nmpc               number of MPC's
77!     ikmpc(1..nmpc)     ordered global degrees of freedom of the MPC's
78!                        the global degree of freedom is
79!                        8*(node-1)+direction of the dependent term of
80!                        the MPC (direction = 0: temperature;
81!                        1-3: displacements; 4: static pressure;
82!                        5-7: rotations)
83!     ilmpc(1..nmpc)     ilmpc(i) is the MPC number corresponding
84!                        to the reference number in ikmpc(i)
85!     mi(1)              max # of integration points per element (max
86!                        over all elements)
87!     mi(2)              max degree of freedomm per node (max over all
88!                        nodes) in fields like v(0:mi(2))...
89!
90!     OUTPUT:
91!
92!     u                   not used
93!     dudt                not used
94!     dudg(ntgrd)         not used
95!     flux(ntgrd)         heat flux at the end of the increment
96!     dfdt(ntgrd)         not used
97!     dfdg(ntgrd,ntgrd)   variation of the heat flux with respect to the
98!                         spatial temperature gradient
99!     statev(nstatv)      internal state variables at the end of the
100!                         increment
101!
102      implicit none
103!
104      character*8 lakonl
105      character*80 cmname
106!
107      integer ntgrd,nstatv,nprops,noel,npt,layer,kspt,kstep,kinc,
108     &  konl(20),ipompc(*),nodempc(3,*),nmpc,ikmpc(*),ilmpc(*),mi(*)
109!
110      real*8 u,dudt,dudg(ntgrd),flux(ntgrd),dfdt(ntgrd),
111     &  statev(nstatv),pnewdt,temp,dtemp,dtemdx(ntgrd),time(2),dtime,
112     &  predef,dpred,props(nprops),coords(3),dfdg(ntgrd,ntgrd),
113     &  vold(0:mi(2),*),co(3,*),coefmpc(*)
114!
115!     insert here your code
116!
117      return
118      end
119