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,JJ(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, ID ,ILAGM, NBCSLAG,
84 . chkcod,iserr,nod,s_string,sub_index
85 INTEGER IUN,IGR1,IGRS1,IGR2,IGRS2,IAD_L,NBY_NI,NBCSCYCI,ICYC,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
141 IF (key(1:3) ==
'NRF' ) cycle
143 IF (key(1:6) ==
'LAGMUL' ) ilagm = 1
145 IF (key(1:6) ==
'CYCLIC' ) icyc = 1
150 CALL hm_get_intv(
'grnd_ID1',igr1,is_available,lsubmodel
151 CALL hm_get_intv(
'grnd_ID2',igr2,is_available,lsubmodel)
152 CALL hm_get_intv(
'skew_ID',is,is_available,lsubmodel)
154 CALL hm_get_intv(
'dof1',j6(1),is_available,lsubmodel)
155 CALL hm_get_intv(
'dof2',j6(2),is_available,lsubmodel)
156 CALL hm_get_intv(
'dof3',j6(3),is_available,lsubmodel)
157 CALL hm_get_intv(
'dof4',j6(4),is_available,lsubmodel)
158 CALL hm_get_intv(
'dof5',j6(5),is_available,lsubmodel)
159 CALL hm_get_intv(
'dof6',j6(6),is_available,lsubmodel)
160 CALL hm_get_intv(
'inputsystem',is,is_available,lsubmodel)
163 IF(is == 0 .AND. sub_index /= 0 ) is = lsubmodel(sub_index)%SKEW
165 CALL hm_get_intv(
'entityid',igr,is_available,lsubmodel)
169 IF(is == iskn(4,j+1))
THEN
174 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
175 . c1=
'BOUNDARY CONDITION',
176 . c2=
'BOUNDARY CONDITION',
177 . i2=is,i1=id,c3=titr)
188 .
CALL ancmsg(msgid=1051,anmode=aninfo_blind,
189 . msgtype=msgerror,i1=id,c1=titr,c2=code)
190 ic1=j6(1)*4 +j6(2)*2 +j6(3)
191 ic2=j6(4)*4 +j6(5)*2 +j6(6)
193 ingr2usr => igrnod(1:ngrnod)%ID
194 igrs=ngr2usr(igr,ingr2usr,ngrnod)
196 CALL ancmsg(msgid=678,anmode=aninfo,msgtype=msgerror,
197 . i1=id,i2=igr,c1=titr)
200 DO j=1,igrnod(igrs)%NENTITY
201 nosys=igrnod(igrs)%ENTITY(j)
202 icode(nosys)=my_or(ic,icode(nosys))
203 IF(iskew(nosys)==-1.OR.iskew(nosys)==is)
THEN
206 CALL ancmsg(msgid=148,anmode=aninfo,msgtype=msgerror,
207 . i1=itab(nosys),prmod=msg_cumu)
209 iskew(nosys)=check_new
213 .
CALL kinset(1,itab(nosys),ikine(nosys),k,iskew(nosys)
217 CALL ancmsg(msgid=148,anmode=aninfo,msgtype=msgerror,
218 . i1=id,c1=titr,prmod=msg_print)
221 ibcslag(1,nbcslag) = igrs
222 ibcslag(2,nbcslag) = id
223 ibcslag(3,nbcslag) = ic
224 ibcslag(4,nbcslag) = is
225 ibcslag(5,nbcslag) = id
226 DO j=1,igrnod(igrs)%NENTITY
227 nosys=igrnod(igrs)%ENTITY(j)
228 CALL kinset(512,itab(nosys),ikine(nosys),7,0
232 lag_nhf = lag_nhf + 1
233 lag_ncf = lag_ncf + 1
235 lag_nkf = lag_nkf + 1
237 lag_nkf = lag_nkf + 3
246 IF (iskn(5,is)/=0)
THEN
247 CALL ancmsg(msgid=1760,anmode=aninfo,msgtype=msgerror
248 . i1=id,i2=is0,c1=titr,prmod=msg_print)
251 ingr2usr => igrnod(1:ngrnod)%ID
252 igrs1=ngr2usr(igr1,ingr2usr,ngrnod)
253 igrs2=ngr2usr(igr2,ingr2usr,ngrnod)
254 nby_ni = igrnod(igrs1)%NENTITY
255 nbcscyci = nbcscyci + 1
256 ibcscyc(1,nbcscyci)=iad_l
257 ibcscyc(2,nbcscyci)=is
258 ibcscyc(3,nbcscyci)=nby_ni
259 ibcscyc(4,nbcscyci)=id
261 lbcscyc(1,j+iad_l)=igrnod(igrs1)%ENTITY(j)
262 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)