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

Go to the source code of this file.

Functions/Subroutines

subroutine loadaddp (nelement, label, nelemload, sideload, xload, nload, nload_, iamload, iamplitude, nam, node)
 

Function/Subroutine Documentation

◆ loadaddp()

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