36
37
38
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "scr17_c.inc"
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "units_c.inc"
53#include "scr03_c.inc"
54#include "titr_c.inc"
55#include "param_c.inc"
56
57
58
59 INTEGER ICODE(*), ISKEW(*), ITAB(*), ITABM1(*), IKINE(*),
60 . IBCSLAG(5,*),
61 . LAG_NCF,LAG_NKF,LAG_NHF,IKINE1LAG(*),ISKN(LISKN,*)
62 INTEGER NOM_OPT(LNOPT1,*), NBCSLAG
63
64 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
65
66
67
68 INTEGER I,JJ(12), IC, NC, N, NUSR, IS, IC1, IC2, IC3, IC4,
69 . NOSYS, J,J10(10),IGR,IGRS,ISU,IBCALE,J6(6),K,
70 . IC0, IC01, IC02, IC03, IC04, ID ,ILAGM,
71 . FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP,SUB_ID,
72 . CHKCOD,ISERR,NOD
73 INTEGER IUN
74 CHARACTER MESS*40,CODE*7,OPT*8
75 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
76 CHARACTER(LEN=NCHARFIELD) :: STRING
77 CHARACTER(LEN=NCHARTITLE) :: TITR
78
79
80
81 INTEGER USR2SYS,MY_OR,CHECK_NEW,NGR2USR
82
83 INTEGER, DIMENSION(:), POINTER :: INGR2USR
84C
85
86
87
88 DATA iun/1/
89 DATA mess/'BOUNDARY CONDITIONS '/
90
91
92 DO i=1,numnod
93 IF(iskew(i)==-1)iskew(i)=0
94 ENDDO
95
96 IF(iale==0)THEN
97 WRITE(iout,'(/A/A/A/)')titre(80),titre(81),
98 . ' NODE TRANS. ROTAT. SKEW'
99
100 ELSE
101 WRITE(iout,'(/A/A/A/)')titre(80),titre(81),titre(82)
102 ENDIF
103 IF(ipri>=2)THEN
104 DO 500 n=1,numnod
105 ic=icode(n)
106 IF (ic==0) GO TO 500
107 ic1=ic/512
108 ic2=(ic-512*ic1)/64
109 ic3=(ic-512*ic1-64*ic2)/8
110 ic4=(ic-512*ic1-64*ic2-8*ic3)
111 j6(1)=ic1/4
112 j6(2)=(ic1-4*j6(1))/2
113 j6(3)=(ic1-4*j6(1)-2*j6(2))
114 j6(4)=ic2/4
115 j6(5)=(ic2-4*j6(4))/2
116 j6(6)=(ic2-4*j6(4)-2*j6(5))
117 IF(iale==0)THEN
118
119 WRITE(iout,'(1X,I10,2(1X,3I2),3X,I10)')itab(n),j6,
120 . iskn(4,iskew(n))
121 ELSE
122 jj(1)=j6(1)
123 jj(2)=j6(2)
124 jj(3)=j6(3)
125 jj(4)=j6(4)
126 jj(5)=j6(5)
127 jj(6)=j6(6)
128 jj(7)=ic3/4
129 jj(8)=(ic3-4*jj(7))/2
130 jj(9)=(ic3-4*jj(7)-2*jj(8))
131 jj(10)=ic4/4
132 jj(11)=(ic4-4*jj(10))/2
133 jj(12)=(ic4-4*jj(10)-2*jj(11))
134
135 WRITE(iout,'(1X,I10,4(1X,3I2),3X,I10)')itab(n),jj,
136 . iskn(4,iskew(n))
137 ENDIF
138 500 CONTINUE
139 ENDIF
140 IF (nbcslag>0) THEN
141 WRITE(iout,1000)
142 DO i = 1, nbcslag
143 igrs=ibcslag(1,i)
144 is = ibcslag(4,i)
146 ic = ibcslag(3,i)
147 ic1=ic/512
148 ic2=(ic-512*ic1)/64
149 ic3=(ic-512*ic1-64*ic2)/8
150 ic4=(ic-512*ic1-64*ic2-8*ic3)
151 j6(1)=ic1/4
152 j6(2)=(ic1-4*j6(1))/2
153 j6(3)=(ic1-4*j6(1)-2*j6(2))
154 j6(4)=ic2/4
155 j6(5)=(ic2-4*j6(4))/2
156 j6(6)=(ic2-4*j6(4)-2*j6(5))
157 IF (ipri>=2) THEN
158 DO j=1,igrnod(igrs)%NENTITY
159 nosys=igrnod(igrs)%ENTITY(j)
160
161 WRITE(iout,'(1X,I10,2(1X,3I2),3X,I10)')itab(nosys)
162 . iskn(4,is)
163 ENDDO
164 ENDIF
165 ic1=j6(1)*4 +j6(2)*2 +j6(3)
166 ic2=j6(4)*4 +j6(5)*2 +j6(6)
167 ibcslag(2,i) = ic1
168 ibcslag(3,i) = ic2
169 ENDDO
170 ENDIF
171
1721000 FORMAT(/,
173 . ' BOUNDARY CONDITIONS BY LAGRANGE MULTIPLIERS'/
174 . ' ----------------------- '/
175 . ' NODE TRANS. ROTAT. SKEW'/)
176 RETURN
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield