33 . AV, R0, C0, C1, C2, C3, C4, C5,
34 . E0, PM, RHO0, RHOR, IEXP, PEXT,IFLG,
37 . SSP1,SSP2, SSP3, SSP4,
38 . LC1 ,LC2 , LC3, LC4,
56#include "implicit_f.inc"
61 . av(4),r0(4), c0(4), c1(4),c2(4), c3(4),
63 . c4(4),c5(4), e0(4), pm(4), pext, rho0, rhor,
65 . ssp1,ssp2,ssp3,ssp4,
68 INTEGER IEXP, IFLG,PLA(4)
70 CHARACTER(LEN=NCHARTITLE)::TITR
74 INTEGER i,j, TEST1,TEST2,TEST3,TEST4,TEST5,
91 ssp(1:4) = (/ssp1,ssp2,ssp3,ssp4/)
92 lc(1:4) = (/ lc1, lc2, lc3, lc4/)
121 IF ((av(i)<zero).OR.(av(i)>one))
THEN
123 write(chain(8:8),
'(i1)')i
124 chain1=
'INITIAL VOLUMETRIC FRACTION MUST BE BETWEEN 0 AND 1 FOR '//chain(1:8)
125 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=id,c1=titr,c2=chain1)
143 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,i1=id,c1=titr,
144 . c2=
'INITIAL VOLUMETRIC FRACTIONS ARE NULL , SUBMAT-1 SET TO 100%')
145 ELSEIF (abs(1-sum)>em03)
THEN
146 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo_blind_1,i1=id,c1=titr,
147 . c2=
'SUM OF INITIAL VOLUMETRIC FRACTION IS NOT EQUAL TO 1')
158 IF ( ((r0(i)<zero).OR.((av(i)>zero).AND.(r0(i)<=zero))) )
THEN
160 write(chain(8:8),
'(i1.1)')i
162 chain3=
'NULL OR NEGATIVE INITIAL DENSITIES FOR '//chain
163 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo,i1=id,c1=titr,c2=chain3)
174 IF(imax==4)p0a(4) = c0(4)
176 if (r0(i)==zero)cycle
177 p0a(i)=c0(i)+c4(i)*e0(i)
179 IF (r0(j)==zero)cycle
181 p0b=c0(j)+c4(j)*e0(j)
183 IF (err<=em20) err=zero
185 IF (err/
max(abs(p0a(i)),abs(p0b))>em06)
THEN
188 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,
189 . i1=id,c1=titr,c2=
'PRESSURES ARE UNBALANCED WITH JWL MATERIAL')
193 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,
194 . i1=id,c1=titr,c2=
'INITIAL PRESSURES ARE UNBALANCED')
222 IF ((c1(i)<zero))
THEN
224 write(chain(8:8),
'(i1.1)')i
225 chain1=
'POLYNOMIAL COEFFICIENT C1 MUST BE POSITIVE OR NULL FOR '//chain
226 CALL ancmsg(msgid=99,msgtype
231 IF ((c2(i)<zero))
THEN
233 write(chain(8:8),
'(i1.1)')i
234 chain1=
'POLYNOMIAL COEFFICIENT C2 IS NEGATIVE FOR '//chain
235 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,i1=id,c1=titr,c2=chain1
240 IF ((c3(i)<zero))
THEN
242 write(chain(8:8),
'(i1.1)')i
243 chain1=
'POLYNOMIAL COEFFICIENT C3 IS NEGATIVE FOR '//chain
244 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,i1=id,c1=titr,c2=chain1)
249 IF ((c4(i)<zero))
THEN
251 write(chain(8:8),
'(i1.1)')i
252 chain1=
'POLYNOMIAL COEFFICIENT C4 MUST BE POSITIVE OR NULL FOR '//chain
253 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo_blind_1,i1=id,c1=titr,c2=chain1
258 IF ((c5(i)<zero))
THEN
260 write(chain(8:8),
'(i1.1)')i
261 chain1=
'POLYNOMIAL COEFFICIENT C5 MUST BE POSITIVE OR NULL FOR '//chain
262 CALL ancmsg(msgid=99,msgtype=msgerror,anmode=aninfo_blind_1,i1=id,c1=titr,c2=chain1)
273 p0a(i) = pext+c0(i)+c4(i)*e0(i)
274 IF(((pext+c0(i))==c1(i)).AND.(c2(i)==zero).AND.
275 . (c3(i)==zero).AND.(c4(i)==c5(i)).AND.
276 . (c4(i)>zero).AND.(p0a(i)>zero))
THEN
278 IF(pm(i)/=zero .AND. pext/=zero)
THEN
279 IF(abs(pm(i)+pext)>em06)
THEN
282 write(chain(8:8),
'(i1.1)')i
284 . chain//
' IS A PERFECT GAS:MINIMUM PRESSURE SHOULD BE -PEXT '
285 CALL ancmsg(msgid=98,msgtype=msgwarning,anmode=aninfo_blind_1,i1=id,c1=titr,c2=chain1)
296 write(chain(8:8),
'(i1.1)')i
298 IF(a1(i) < zero .AND. a2(i) == zero)
THEN
299 chain1 = chain//
': INVERTED YIELD SURFACE. CHECK A1 SIGN. '
300 CALL ancmsg(msgid=829,msgtype=msgwarning,anmode=aninfo,i1=51,i2=id,c1=
'WARNING',c2=titr,c3=chain)
303 chain1 = chain//
': UNTIPYCAL YIELD SURFACE. CHECK A2 SIGN. '
304 CALL ancmsg(msgid=829,msgtype=msgwarning,anmode=aninfo,i1=51,i2=id,c1=
'WARNING',c2=titr,c3=chain)
subroutine lecm51__check_initial_state(av, r0, c0, c1, c2, c3, c4, c5, e0, pm, rho0, rhor, iexp, pext, iflg, a1, a2, pla, id, titr, ssp1, ssp2, ssp3, ssp4, lc1, lc2, lc3, lc4, p0a)
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)