36
37
38
40
41
42
43#include "implicit_f.inc"
44
45
46
47 INTEGER NUMBCSN
48 INTEGER ICODE(*), ISKEW(*), ITAB(*), ITABM1(*), NPBY(*),
49 . ISKWN(LISKN,*), WEIGHT(*)
50
51
52
53#include "com01_c.inc"
54#include "com04_c.inc"
55#include "units_c.inc"
56#include "task_c.inc"
57#include "warn_c.inc"
58#include "param_c.inc"
59
60
61
62 INTEGER JJ(12), JO(12), IC, NC, N, NUSR, IS, NOSYS, ICO, ICO1,
63 . ICO2, ICO3, ICO4, I, IC1, IC2, IC3, IC4, LL, NOSYSV
64 CHARACTER MESS*40
65
66
67
68 INTEGER SYSFUS2
69
70
71
72 DATA mess/'BOUNDARY CONDITIONS '/
73
74 ic=0
75 nc=1
76 DO 10 n=1,numbcsn
77 READ (iin,'(I10,4(1X,3I1),I10)') nusr,jj,is
78 nosys=
sysfus2(nusr,itabm1,numnod)
79 nosysv = nosys
81 IF(ispmd==0) THEN
82 IF(nosysv==0) THEN
83 CALL ancmsg(msgid=202,anmode=aninfo,
84 . i1=nusr)
85 ierr=ierr+1
86 END IF
87 END IF
88 IF(nosys==0)GOTO 10
89
90 ico=icode(nosys)
91 ico1=ico/512
92 ico2=(ico-512*ico1)/64
93 ico3=(ico-512*ico1-64*ico2)/8
94 ico4=(ico-512*ico1-64*ico2-8*ico3)
95 jo(1)=ico1/4
96 jo(2)=(ico1-4*jo(1))/2
97 jo(3)=(ico1-4*jo(1)-2*jo(2))
98 jo(4)=ico2/4
99 jo(5)=(ico2-4*jo(4))/2
100 jo(6)=(ico2-4*jo(4)-2*jo(5))
101 jo(7)=ico3/4
102 jo(8)=(ico3-4*jo(7))/2
103 jo(9)=(ico3-4*jo(7)-2*jo(8))
104 jo(10)=ico4/4
105 jo(11)=(ico4-4*jo(10))/2
106 jo(12)=(ico4-4*jo(10)-2*jo(11))
107
108 DO 5 i=1,12
109 IF(jj(i)==0)THEN
110 jj(i)=jo(i)
111 ELSEIF(jj(i)==2)THEN
112 jj(i)=0
113 ENDIF
114 5 CONTINUE
115
116 ic1=jj(1)*4 +jj(2)*2 +jj(3)
117 ic2=jj(4)*4 +jj(5)*2 +jj(6)
118 ic3=jj(7)*4 +jj(8)*2 +jj(9)
119 ic4=jj(10)*4+jj(11)*2+jj(12)
120 ic=ic1*512+ic2*64+ic3*8+ic4
121 icode(nosys)=ic
122 DO 7 ll=0,numskw
123 7 IF(is==iskwn(4,ll+1)) iskew(nosys)=ll+1
124
125 10 CONTINUE
126
127 IF(ispmd==0) WRITE(iout,1300)
128 DO 500 n=1,numnod
129 ic=icode(n)
130 IF (ic==0) GO TO 500
131 ic1=ic/512
132 ic2=(ic-512*ic1)/64
133 ic3=(ic-512*ic1-64*ic2)/8
134 ic4=(ic-512*ic1-64*ic2-8*ic3)
135 jj(1)=ic1/4
136 jj(2)=(ic1-4*jj(1))/2
137 jj(3)=(ic1-4*jj(1)-2*jj(2))
138 jj(4)=ic2/4
139 jj(5)=(ic2-4*jj(4))/2
140 jj(6)=(ic2-4*jj(4)-2*jj(5))
141 jj(7)=ic3/4
142 jj(8)=(ic3-4*jj(7))/2
143 jj(9)=(ic3-4*jj(7)-2*jj(8))
144 jj(10)=ic4/4
145 jj(11)=(ic4-4*jj(10))/2
146 jj(12)=(ic4-4*jj(10)-2*jj(11))
147 IF(weight(n)==1)
148 . WRITE(iout,'(1X,I10,4(1X,3I2),3X,I10)')itab(n),jj,
149 . iskwn(4,iskew(n))
150 500 CONTINUE
151 RETURN
152
153 1300 FORMAT(/,
154 . 1x,' BOUNDARY CONDITIONS',/
155 . 1x,' -------------------',/
156 . 1x,' NODE TRANS. ROTAT. GRID LAGRA. SKEW',/)
157
integer function sysfus2(iu, itabm1, numnod)
subroutine spmd_glob_isum9(v, len)
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)