38
39
40
44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "param_c.inc"
52
53
54
55 CHARACTER(LEN=NCHARTITLE) :: TITR
56 INTEGER MAT_ID,IOUT, NFUNC
57 INTEGER NPC(*), FUNC_ID(*), IPM(NPROPMI)
58 my_real uparam(*),pld(*),pm(npropm)
59 INTEGER, DIMENSION(NFUNC):: IFUNC
60
61
62
63 INTEGER N,K,ITEST,II,JJ,NSTART,IC1,IC2,NOGD,NDATA,NMULA,IFC,ICRYPT,
64 . ICHECK,NCOMP
65 my_real e,nu,gs,rbulk,d,young,errtol,ave_slope,mu,mu_max,mu_min,dx,
66 . scalefac,stiffmin,stiffmax,stiffini,stfavg
67 my_real ,
DIMENSION(:),
ALLOCATABLE :: stress,stretch
68
69
70
71 icrypt = 0
72 nstart = 2
73 errtol = fiveem3
74 ifc = ifunc(1)
75 ic1 = npc(ifc)
76 ic2 = npc(ifc + 1)
77 scalefac = uparam(3)
78 nogd=(ic2-ic1)/2
79 ndata=nogd
80
81
82
83 icheck = 0
84 ncomp = 0
85 DO jj = ic1,ic2 - 4,2
86 IF (pld(jj) == zero .AND. pld(jj + 1) == zero )icheck = 1
87 IF (pld(jj) < zero ) ncomp = ncomp + 1
88 ENDDO
89 IF (icheck == 0 ) THEN
90
92 . msgtype=msgerror,
93 . anmode=aninfo,
94 . i1=mat_id,
95 . c1=titr,
96 . i2=func_id(ifc))
98 ENDIF
99
100
101
102
103
104
105
106
107
108 ALLOCATE (stretch(nogd))
109 ALLOCATE (stress(nogd))
110
111 ave_slope = zero
112 jj=0
113 stretch=zero
114 stress=zero
115 mu=zero
116 rbulk=zero
117 gs=zero
118
119 CALL func_slope(ifunc(1),scalefac,npc,pld,stiffmin,stiffmax,stiffini,stfavg)
120
121 nu = uparam(1)
122
123 gs = stiffini
124
125 rbulk=two*gs*(one+nu)
126 . /
max(em30,three*(one-two*nu))
127 uparam(4) = gs
128 uparam(5) = rbulk
129 uparam(6) = uparam(4)
130 IF(ncomp == 0) uparam(7) = 1
131
132
133
134 young = two*gs*(one + nu)
135 pm(20) = young
136 pm(21) = nu
137 pm(22) = gs
138 pm(24) = young/(one - nu**2)
139 pm(32) = rbulk
140 pm(100) = rbulk
141
142
143 ipm(252)= 2
144 pm(105) = two*gs/(rbulk + four_over_3*gs)
145
146 IF (icrypt == 0) THEN
147 WRITE(iout,1000)
148 WRITE(iout,1100)gs,rbulk
149 ENDIF
150
151
152
153 RETURN
154
155 1000 FORMAT
156 & (//5x, ' PARAMETERS FOR HYPERELASTIC_MATERIAL LAW111 ' ,/,
157 & 5x, ' --------------------------------------------------')
158 1100 FORMAT(
159
160 & 5x,'MARLOW LAW',/,
161 & 5x,'INITIAL SHEAR MODULUS. . . . . . . . . . .=',1pg20.13/
162 & 5x,'BULK MODULUS . . . . . . . . . . . . . . .=',1pg20.13//)
163
164 RETURN
subroutine func_slope(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)