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

Go to the source code of this file.

Functions/Subroutines

subroutine plcopy (plcon, nplcon, plconloc, npmat_, ntmat_, imat, itemp, nelem, kin)
 

Function/Subroutine Documentation

◆ plcopy()

subroutine plcopy ( real*8, dimension(0:2*npmat_,ntmat_,*), intent(in)  plcon,
integer, dimension(0:ntmat_,*), intent(in)  nplcon,
real*8, dimension(802), intent(inout)  plconloc,
integer, intent(in)  npmat_,
integer, intent(in)  ntmat_,
integer, intent(in)  imat,
integer, intent(in)  itemp,
integer, intent(in)  nelem,
integer, intent(in)  kin 
)
21 !
22 ! copies the hardening data for material imat and temperature
23 ! itemp from plcon into plconloc if the number of data points does
24 ! not exceed 200. Else, the equivalent plastic strain range is
25 ! divided into 199 intervals and the values are interpolated.
26 ! Attention: in plcon the odd storage spaces contain the Von
27 ! Mises stress, the even ones the equivalent plastic
28 ! strain. For plconloc, this order is reversed.
29 !
30  implicit none
31 !
32  integer imat,ndata,ntmat_,npmat_,nplcon(0:ntmat_,*),nelem,
33  & kin,k,itemp
34 !
35  real*8 eplmin,eplmax,depl,epla,plcon(0:2*npmat_,ntmat_,*),
36  & plconloc(802),dummy
37 !
38  intent(in) plcon,nplcon,npmat_,ntmat_,
39  & imat,itemp,nelem,kin
40 !
41  intent(inout) plconloc
42 !
43  ndata=nplcon(itemp,imat)
44 !
45  if(ndata.le.200) then
46  if(kin.eq.0) then
47  do k=1,ndata
48  plconloc(2*k-1)=plcon(2*k,itemp,imat)
49  plconloc(2*k)=plcon(2*k-1,itemp,imat)
50  enddo
51  plconloc(801)=real(ndata)+0.5d0
52  else
53  do k=1,ndata
54  plconloc(399+2*k)=plcon(2*k,itemp,imat)
55  plconloc(400+2*k)=plcon(2*k-1,itemp,imat)
56  enddo
57  plconloc(802)=real(ndata)+0.5d0
58  endif
59  else
60  if(kin.eq.0) then
61  eplmin=plcon(2,itemp,imat)
62  eplmax=plcon(2*nplcon(itemp,imat),itemp,imat)-1.d-10
63  depl=(eplmax-eplmin)/199.d0
64  do k=1,200
65  epla=eplmin+(k-1)*depl
66  call plinterpol(plcon,nplcon,itemp,
67  & plconloc(2*k),dummy,npmat_,ntmat_,imat,nelem,epla)
68  plconloc(2*k-1)=epla
69  enddo
70  plconloc(801)=200.5d0
71  else
72  eplmin=plcon(2,itemp,imat)
73  eplmax=plcon(2*nplcon(itemp,imat),itemp,imat)-1.d-10
74  depl=(eplmax-eplmin)/199.d0
75  do k=1,200
76  epla=eplmin+(k-1)*depl
77  call plinterpol(plcon,nplcon,itemp,
78  & plconloc(400+2*k),dummy,npmat_,ntmat_,imat,nelem,epla)
79  plconloc(399+2*k)=epla
80  enddo
81  endif
82  plconloc(802)=200.5d0
83  endif
84 !
85  return
subroutine plinterpol(plcon, nplcon, itemp, f, df, npmat_, ntmat_, imat, nelem, epl)
Definition: plinterpol.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)