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 resultsmech_u(co,kon,ipkon,lakon,ne,v, 20 & stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero, 21 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr, 22 & iprestr,eme,iperturb,fn,iout,qa,vold,nmethod, 23 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon, 24 & xstateini,xstiff,xstate,npmat_,matname,mi,ielas,icmd, 25 & ncmat_,nstate_,stiini,vini,ener,eei,enerini,istep,iinc, 26 & reltime,calcul_fn,calcul_qa,calcul_cauchy,nener, 27 & ikin,nal,ne0,thicke,emeini,nelem,ielprop,prop,t0g,t1g) 28! 29! calculates nal,qa,fn,xstiff,ener,eme,eei,stx for user elements 30! 31 implicit none 32! 33 character*8 lakon(*) 34 character*80 matname(*) 35! 36 integer kon(*),mi(*), 37 & nelcon(2,*),nrhcon(*),nalcon(2,*),ielmat(mi(3),*), 38 & ielorien(mi(3),*),ntmat_,ipkon(*),ne0, 39 & istep,iinc,ne,ithermal(*),iprestr, 40 & nener,norien,iperturb(*),iout, 41 & nal,icmd,nmethod,ielas, 42 & ncmat_,nstate_,ikin,ielprop(*), 43 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),npmat_,calcul_fn, 44 & calcul_cauchy,calcul_qa,nelem 45! 46 real*8 co(3,*),v(0:mi(2),*),stiini(6,mi(1),*),t0g(2,*),t1g(2,*), 47 & stx(6,mi(1),*),prop(*), 48 & elcon(0:ncmat_,ntmat_,*),rhcon(0:1,ntmat_,*), 49 & alcon(0:6,ntmat_,*),vini(0:mi(2),*), 50 & alzero(*),orab(7,*),fn(0:mi(2),*), 51 & t0(*),t1(*),prestr(6,mi(1),*),eme(6,mi(1),*), 52 & vold(0:mi(2),*),ener(mi(1),*),eei(6,mi(1),*),enerini(mi(1),*), 53 & veold(0:mi(2),*),qa(*),dtime,time,ttime, 54 & plicon(0:2*npmat_,ntmat_,*),plkcon(0:2*npmat_,ntmat_,*), 55 & xstiff(27,mi(1),*),xstate(nstate_,mi(1),*), 56 & xstateini(nstate_,mi(1),*),reltime, 57 & thicke(mi(3),*),emeini(6,mi(1),*) 58! 59 if(lakon(nelem)(2:2).eq.'1') then 60! 61! user element u1 timoshenko beam 62! 63 call resultsmech_u1(co,kon,ipkon,lakon,ne,v, 64 & stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero, 65 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr, 66 & iprestr,eme,iperturb,fn,iout,qa,vold,nmethod, 67 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon, 68 & xstateini,xstiff,xstate,npmat_,matname,mi,ielas,icmd, 69 & ncmat_,nstate_,stiini,vini,ener,eei,enerini,istep,iinc, 70 & reltime,calcul_fn,calcul_qa,calcul_cauchy,nener, 71 & ikin,nal,ne0,thicke,emeini,nelem,ielprop,prop,t0g,t1g) 72 elseif(lakon(nelem)(2:4).eq.'S45') then 73! 74! user element us45 flat shell element with 4 nodes (5dof) 75! 76 call resultsmech_us45(co,kon,ipkon,lakon,ne,v, 77 & stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero, 78 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr, 79 & iprestr,eme,iperturb,fn,iout,qa,vold,nmethod, 80 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon, 81 & xstateini,xstiff,xstate,npmat_,matname,mi,ielas,icmd, 82 & ncmat_,nstate_,stiini,vini,ener,eei,enerini,istep,iinc, 83 & reltime,calcul_fn,calcul_qa,calcul_cauchy,nener, 84 & ikin,nal,ne0,thicke,emeini,nelem,ielprop,prop,t0g,t1g) 85! 86 elseif(lakon(nelem)(2:3).eq.'S3') then 87! 88! user element us3 flat shell element with 3 nodes (6dof) 89! 90 call resultsmech_us3(co,kon,ipkon,lakon,ne,v, 91 & stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero, 92 & ielmat,ielorien,norien,orab,ntmat_,t0,t1,ithermal,prestr, 93 & iprestr,eme,iperturb,fn,iout,qa,vold,nmethod, 94 & veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon, 95 & xstateini,xstiff,xstate,npmat_,matname,mi,ielas,icmd, 96 & ncmat_,nstate_,stiini,vini,ener,eei,enerini,istep,iinc, 97 & reltime,calcul_fn,calcul_qa,calcul_cauchy,nener, 98 & ikin,nal,ne0,thicke,emeini,nelem,ielprop,prop,t0g,t1g) 99 else 100 write(*,*) '*ERROR in resultsmech_u.f: user element' 101 write(*,*) ' ',lakon(nelem)(1:5),' is not defined' 102 call exit(201) 103 endif 104! 105 return 106 end 107