38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110#include "implicit_f.inc"
111
112
113
114 INTEGER ,NUVAR,NEL,IPROP,
115 . IX(4,NEL) ,
116 . GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU,
117 . KFUNC,KMAT,KPROP
119 . xl(nel) ,mass(nel) ,xiner(nel) ,stifm(nel) ,
120 . stifr(nel),viscm(nel) ,viscr(nel),uvar(nuvar,*),
121 . get_u_mat,get_u_geo
124 parameter(kfunc=29)
125 parameter(kmat=31)
126 parameter(kprop=33)
127
128
129
130
132 . amas,amas2,elastif
133 INTEGER I,IDENS
134
135 amas = get_u_geo(1,iprop)
136 amas2 = amas
137 elastif = get_u_geo(2,iprop)
138 idens = int(get_u_geo(12,iprop))
139
140
141
142
143
144
145
146 DO i=1,nel
147 IF(xl(i)== zero)THEN
148 WRITE(iout,*)' **ERROR: ZERO LENGTH SPRING :'
149 ENDIF
150 ENDDO
151
152
153
154 DO i=1,nel
155 IF (idens == 0 )THEN
156 amas2 = amas* xl(i)
157 ENDIF
158 mass(i) = amas2
159 xiner(i) = zero
160
161
162
163 uvar(1,i) = zero
164 uvar(2,i) = one
165
166
167
168 uvar(3,i) = xl(i)
169
170
171
172 uvar(4,i) = zero
173
174
175
176 stifm(i) = elastif
177 stifr(i) = zero
178 viscm(i) = zero
179 viscr(i) = zero
180 ENDDO
181
182 RETURN
integer function get_u_pid(ip)
integer function get_u_pnu(ivar, ip, k)
integer function get_u_mid(im)
integer function get_u_mnu(ivar, im, k)