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

Go to the source code of this file.

Functions/Subroutines

subroutine loadaddt (nelement, label, valfilm, valtemp, nelemload, sideload, xload, nload, nload_, iamload, iamptemp, iampfilm, nam, node, iload)
 

Function/Subroutine Documentation

◆ loadaddt()

subroutine loadaddt ( integer  nelement,
character*20  label,
real*8  valfilm,
real*8  valtemp,
integer, dimension(2,*)  nelemload,
character*20, dimension(*)  sideload,
real*8, dimension(2,*)  xload,
integer  nload,
integer  nload_,
integer, dimension(2,*)  iamload,
integer  iamptemp,
integer  iampfilm,
integer  nam,
integer  node,
integer  iload 
)
22 !
23 ! adds a thermal dload condition to the data base
24 !
25  implicit none
26 !
27  character*20 label,sideload(*)
28 !
29  integer nelemload(2,*),iamload(2,*),id,iload,
30  & nelement,nload,nload_,j,iamptemp,nam,iampfilm,node
31 !
32  real*8 xload(2,*),valfilm,valtemp
33 !
34  call nident2(nelemload,nelement,nload,id)
35  if(id.gt.0) then
36 !
37 ! it is possible that several *DLOAD, *FILM or
38 ! *RADIATE boundary conditions are applied to one
39 ! and the same element
40 !
41  if(nelemload(1,id).eq.nelement) then
42  do
43  if(sideload(id).eq.label) then
44 !
45 ! loading on same element face detected: values
46 ! are replaced
47 !
48  xload(1,id)=valfilm
49  xload(2,id)=valtemp
50  nelemload(2,id)=node
51  if(nam.gt.0) then
52  iamload(1,id)=iampfilm
53  iamload(2,id)=iamptemp
54  endif
55  iload=id
56  return
57 cc elseif(sideload(id).lt.label) then
58 cc exit
59  endif
60  id=id-1
61  if((id.eq.0).or.(nelemload(1,id).ne.nelement)) then
62  exit
63  endif
64  enddo
65  endif
66  endif
67 !
68 ! loading a element face on which no previous loading
69 ! was applied
70 !
71 ! loading conditions on one and the same element are
72 ! alphabetized based on field sideload
73 !
74  nload=nload+1
75  if(nload.gt.nload_) then
76  write(*,*) '*ERROR in loadadd: increase nload_'
77  call exit(201)
78  endif
79 !
80 ! shifting existing loading
81 !
82  do j=nload,id+2,-1
83  nelemload(1,j)=nelemload(1,j-1)
84  nelemload(2,j)=nelemload(2,j-1)
85  sideload(j)=sideload(j-1)
86  xload(1,j)=xload(1,j-1)
87  xload(2,j)=xload(2,j-1)
88  if(nam.gt.0) then
89  iamload(1,j)=iamload(1,j-1)
90  iamload(2,j)=iamload(2,j-1)
91  endif
92  enddo
93 !
94 ! inserting new loading
95 !
96  nelemload(1,id+1)=nelement
97  nelemload(2,id+1)=node
98  sideload(id+1)=label
99  xload(1,id+1)=valfilm
100  xload(2,id+1)=valtemp
101  if(nam.gt.0) then
102  iamload(1,id+1)=iampfilm
103  iamload(2,id+1)=iamptemp
104  endif
105  iload=id+1
106 !
107  return
subroutine nident2(x, px, n, id)
Definition: nident2.f:27
Hosted by OpenAircraft.com, (Michigan UAV, LLC)