56#include "implicit_f.inc"
68 TYPE(
mlaw_tag_),
DIMENSION(NUMMAT),
INTENT(INOUT) :: MLAW_TAG
69 INTEGER ,
DIMENSION(NPROPMI,NUMMAT),
INTENT(INOUT) :: IPM
70 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
71 TYPE (SUBMODEL_DATA) ,
DIMENSION(*) ,
INTENT(IN) :: LSUBMODEL
72 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
76 INTEGER :: INL,FLAGMAT,FLAGUNIT,IUNIT,UID,MAT_ID,IMAT,ILAW,NNLOC
78 CHARACTER(LEN=NCHARTITLE)::TITR
81 is_available = .false.
88 IF ((nnloc > 0).OR.(nloc_dmg%IMOD>0))
THEN
90 IF (.NOT.
ALLOCATED(nloc_dmg%LEN))
ALLOCATE(nloc_dmg%LEN(nummat))
91 IF (.NOT.
ALLOCATED(nloc_dmg%LE_MAX))
ALLOCATE(nloc_dmg%LE_MAX(nummat))
92 IF (.NOT.
ALLOCATED(nloc_dmg%DENS))
ALLOCATE(nloc_dmg%DENS(nummat))
93 IF (.NOT.
ALLOCATED(nloc_dmg%DAMP))
ALLOCATE(nloc_dmg%DAMP(nummat
94 IF (.NOT.
ALLOCATED(nloc_dmg%SSPNL))
ALLOCATE(nloc_dmg%SSPNL(nummat))
95 nloc_dmg%LEN(1:nummat) = zero
96 nloc_dmg%LE_MAX(1:nummat) = zero
97 nloc_dmg%DENS(1:nummat) = zero
98 nloc_dmg%DAMP(1:nummat) = zero
99 nloc_dmg%SSPNL(1:nummat) = zero
112 . option_id = mat_id ,
121 IF (mat_id == ipm(1,imat))
THEN
123 CALL fretitl2(titr,ipm(npropmi-ltitr+1,imat),ltitr)
127 IF (mat_id > 0 .AND. flagmat == 0)
THEN
128 CALL ancmsg(msgid=1663,anmode=aninfo,msgtype=msgerror,
129 . i1= mat_id, c1=
'NONLOCAL', c2=
'NONLOCAL', c3=
'')
136 DO iunit=1,unitab%NUNITS
137 IF (unitab%UNIT_ID(iunit) == uid)
THEN
142 IF (uid > 0 .AND. flagunit == 0)
THEN
143 CALL ancmsg(msgid=659, anmode=aninfo, msgtype=msgerror,
153 CALL hm_get_floatv(
'LENGTH' ,rlen ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv(
'LE_MAX' ,le_max ,is_available, lsubmodel, unitab)
158 IF (le_max > zero)
THEN
160 nloc_dmg%LE_MAX(imat) = le_max
162 CALL get_length(nloc_dmg%LEN(imat),nloc_dmg%LE_MAX(imat))
165 nloc_dmg%LEN(imat) =
max(zero,rlen)
170 mat_param(imat)%NLOC = 1
174 mlaw_tag(imat)%G_PLANL = 1
175 mlaw_tag(imat)%L_PLANL = 1
176 mlaw_tag(imat)%G_EPSDNL = 1
177 mlaw_tag(imat)%L_EPSDNL = 1
181 WRITE(iout,2000) mat_id,ilaw,nloc_dmg%LEN(imat),nloc_dmg%LE_MAX(imat)
186 & 5x,
' NON-LOCAL REGULARIZATION ',/,
187 & 5x,
' ------------------------ ',/,
188 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . . . . . =',i10/,
189 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . . =',i10/,
190 & 5x,
'NON-LOCAL INTERNAL LENGTH . . . . . . . . . . =',1pg20.13/,
191 & 5x,
'MAXIMAL ELEMENT LENGTH TARGET . . . . . . . . =',1pg20.13/)
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)