38
39
40
43 USE format_mod , ONLY : fmw_4i
44
45
46
47
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "units_c.inc"
56#include "com01_c.inc"
57#include "com04_c.inc"
58#include "scr03_c.inc"
59
60
61
62 INTEGER NRT, IR,MSN
63 INTEGER,INTENT(IN) :: S_MSV,SIRECT
64 INTEGER IRECT(4,SIRECT/4), ITAB(NUMNOD), MSV(S_MSV),SURF_NODES(NRT,4)
65 INTEGER ID
66 CHARACTER(LEN=NCHARTITLE) :: TITR
67 INTEGER, DIMENSION(2*NUMNOD+1), INTENT(INOUT) :: NTAG
68 LOGICAL, INTENT(INOUT) :: TYPE18
69
70
71
72 INTEGER I, N23, J, K, L, , K4
73 INTEGER OLDIRECT,OLDIRECT1
74
75
76
77
78 i=1
79 l=1
80 DO j=1,nrt
81 DO k=1,4
82 irect(k,j)=surf_nodes(j,k)
83 l=l+1
84 ENDDO
85 l=l+2
86 ENDDO
87
88 DO i=1,nrt
89 IF(irect(4,i)==0) irect(4,i)=irect(3,i)
90 IF(irect(1,i)==irect(4,i)) THEN
91 oldirect=irect(4,i)
92 irect(4,i)=irect(3,i)
93 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
95 . c1=titr,
96 . i2=irect(1,i),
97 . i3=irect(2,i),
98 . i4=irect(3,i),
99 . i5=oldirect,
100 . i6=irect(1,i),
101 . i7=irect(2,i),
102 . i8=irect(3,i),
103 . i9=irect(4,i))
104 ELSEIF(irect(2,i)==irect(3,i)) THEN
105 oldirect=irect(3,i)
106 irect(3,i)=irect(4,i)
107 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
109 . c1=titr,
110 . i2=irect(1,i),
111 . i3=irect(2,i),
112 . i4=oldirect,
113 . i5=irect(4,i),
114 . i6=irect(1,i),
115 . i7=irect(2,i),
116 . i8=irect(3,i),
117 . i9=irect(4,i))
118 ELSEIF(irect(1,i)==irect(2,i)) THEN
119 oldirect=irect(2,i)
120 oldirect1=irect(3,i)
121 irect(2,i)=irect(3,i)
122 irect(3,i)=irect(4,i)
123 CALL ancmsg(msgid=106,msgtype=msgwarning,anmode=aninfo_blind_2,
125 . c1=titr,
126 . i2=irect(1,i),
127 . i3=oldirect,
128 . i4=oldirect1,
129 . i5=irect(4,i),
130 . i6=irect(1,i),
131 . i7=irect(2,i),
132 . i8=irect(3,i),
133 . i9=irect(4,i))
134 ENDIF
135 ENDDO
136
137 IF(ir/=0 .AND. ir/=2)THEN
138 DO j=1,nrt
139 ir1=irect(1,j)
140 irect(1,j)=irect(2,j)
141 irect(2,j)=ir1
142 ir1=irect(3,j)
143 irect(3,j)=irect(4,j)
144 irect(4,j)=ir1
145 ENDDO
146 ENDIF
147 n23=4
148
149 IF(ipri>=1 .AND. .NOT.type18) THEN
150 WRITE(iout,'(/,A,/)')' SEGMENTS USED FOR SURFACE DEFINITION'
151 k=1
152 k4=4
153 IF(n2d/=0)k4=2
154 DO i=1,nrt
155 WRITE(iout,fmt=fmw_4i)(itab(irect(k,i)),k=1,k4)
156 ENDDO
157 ENDIF
158 IF (nrt/=0)
CALL count3(irect,msv,msn,nrt,ntag)
159
160 RETURN
subroutine count3(irect, mnn, n, nrt, ntag)
integer, parameter nchartitle
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)