42 . IGRNOD ,IBCSLAG ,LAG_NCF ,LAG_NKF,LAG_NHF,
43 . IKINE1LAG ,ISKN ,NOM_OPT ,UNITAB ,LSUBMODEL,
57#include "implicit_f.inc"
68 INTEGER ICODE(*), ISKEW(*), ITAB(*), ITABM1(*), IKINE(*),
70 . LAG_NCF,LAG_NKF,LAG_NHF,IKINE1LAG(*),ISKN(LISKN,*)
71 INTEGER NOM_OPT(LNOPT1,*),IBCSCYC(4,*) ,LBCSCYC(2,*)
73 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
76 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
80 INTEGER I,(12), IC, NC, N, NUSR, IS, IC1, IC2, IC3, IC4,
81 . NOSYS, J,J10(10),IGR,IGRS,ISU,IBCALE,J6(6),K,
82 . IC0, IC01, IC02, IC03, IC04, ,ILAGM, NBCSLAG,
84 . chkcod,iserr,nod,s_string,sub_index
85 INTEGER IUN,IGR1,,IGR2,IGRS2,IAD_L,NBY_NI,NBCSCYCI,IS0
87 CHARACTER(LEN=NCHARKEY) :: KEY, KEY2
88 CHARACTER(LEN=NCHARFIELD) :: STRING
89 CHARACTER(LEN=NCHARTITLE) :: TITR
93 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IKINE1
97 INTEGER USR2SYS,MY_OR,CHECK_NEW,NGR2USR
99 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
105 DATA mess/
'BOUNDARY CONDITIONS '/
108 is_available = .false.
116 ALLOCATE(ikine1(3 * numnod))
135 . option_titr = titr,
136 . submodel_index = sub_index,
139 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
140 IF (key(1:4) ==
'WALL' ) cycle
142 IF (key(1:6) ==
'LAGMUL' ) ilagm = 1
144 IF (key(1:6) ==
'CYCLIC' ) icyc = 1
150 CALL hm_get_intv(
'grnd_ID2',igr2,is_available,lsubmodel)
151 CALL hm_get_intv(
'skew_ID',is,is_available,lsubmodel)
153 CALL hm_get_intv(
'dof1',j6(1),is_available,lsubmodel)
154 CALL hm_get_intv(
'dof2',j6(2),is_available,lsubmodel)
155 CALL hm_get_intv(
'dof3',j6(3),is_available,lsubmodel)
156 CALL hm_get_intv(
'dof4',j6(4),is_available,lsubmodel)
157 CALL hm_get_intv(
'dof5',j6(5),is_available,lsubmodel)
158 CALL hm_get_intv(
'dof6',j6(6),is_available,lsubmodel)
159 CALL hm_get_intv(
'inputsystem',is,is_available,lsubmodel)
162 IF(is == 0 .AND. sub_index /= 0 ) is = lsubmodel(sub_index)%SKEW
164 CALL hm_get_intv(
'entityid',igr,is_available,lsubmodel)
168 IF(is == iskn(4,j+1))
THEN
173 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
174 . c1=
'BOUNDARY CONDITION',
175 . c2=
'BOUNDARY CONDITION',
176 . i2=is,i1=
id,c3=titr)
187 .
CALL ancmsg(msgid=1051,anmode=aninfo_blind,
188 . msgtype=msgerror,i1=
id,c1=titr,c2=code)
189 ic1=j6(1)*4 +j6(2)*2 +j6(3)
190 ic2=j6(4)*4 +j6(5)*2 +j6(6)
192 ingr2usr => igrnod(1:ngrnod)%ID
193 igrs=ngr2usr(igr,ingr2usr,ngrnod)
195 CALL ancmsg(msgid=678,anmode=aninfo,msgtype=msgerror,
196 . i1=
id,i2=igr,c1=titr)
199 DO j=1,igrnod(igrs)%NENTITY
200 nosys=igrnod(igrs)%ENTITY(j)
201 icode(nosys)=my_or(ic,icode(nosys))
202 IF(iskew(nosys)==-1.OR.iskew(nosys)==is)
THEN
205 CALL ancmsg(msgid=148,anmode=aninfo,msgtype=msgerror,
206 . i1=itab(nosys),prmod=msg_cumu)
208 iskew(nosys)=check_new
212 .
CALL kinset(1,itab(nosys),ikine(nosys),k,iskew(nosys)
216 CALL ancmsg(msgid=148,anmode=aninfo,msgtype=msgerror,
217 . i1=
id,c1=titr,prmod=msg_print)
220 ibcslag(1,nbcslag) = igrs
221 ibcslag(2,nbcslag) =
id
222 ibcslag(3,nbcslag) = ic
224 ibcslag(5,nbcslag) =
id
225 DO j=1,igrnod(igrs)%NENTITY
226 nosys=igrnod(igrs)%ENTITY(j)
227 CALL kinset(512,itab(nosys),ikine(nosys),7,0
231 lag_nhf = lag_nhf + 1
232 lag_ncf = lag_ncf + 1
234 lag_nkf = lag_nkf + 1
236 lag_nkf = lag_nkf + 3
245 IF (iskn(5,is)/=0)
THEN
246 CALL ancmsg(msgid=1760,anmode=aninfo,msgtype=msgerror,
247 . i1=
id,i2=is0,c1=titr,prmod=msg_print)
250 ingr2usr => igrnod(1:ngrnod)%ID
251 igrs1=ngr2usr(igr1,ingr2usr,ngrnod)
252 igrs2=ngr2usr(igr2,ingr2usr,ngrnod)
253 nby_ni = igrnod(igrs1)%NENTITY
254 nbcscyci = nbcscyci + 1
255 ibcscyc(1,nbcscyci)=iad_l
256 ibcscyc(2,nbcscyci)=is
257 ibcscyc(3,nbcscyci)=nby_ni
258 ibcscyc(4,nbcscyci)=
id
260 lbcscyc(1,j+iad_l)=igrnod(igrs1)%ENTITY(j)
261 lbcscyc(2,j+iad_l)=igrnod(igrs2)%ENTITY(j)
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)