35
36
37
40 USE format_mod , ONLY : fmw_5i_f
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "units_c.inc"
49#include "scr03_c.inc"
50
51
52
53 INTEGER,INTENT(IN) :: NUMNOD
54 INTEGER NSN
55 INTEGER IRECT(4,*), MSR(*), NSV(*), ILOC(*), IRTL(*), ITAB(NUMNOD)
57 INTEGER ID
58 CHARACTER(LEN=NCHARTITLE) :: TITR
59
60
61
62 INTEGER IER1, II, I, J, K, L, M, JJ, IER2
63 my_real n2, n3, ys, zs, t2, t3, xl, ss,ym1,ym2,zm1,zm2
64
65
66
67 ier1=0
68 DO ii=1,nsn
69 i=nsv(ii)
70 j=iloc(ii)
71 k=msr(j)
72 l=irtl(ii)
73 m=msr(irect(1,l))
74 ym1=x(2,m)
75 zm1=x(3,m)
76 m=msr(irect(2,l))
77 ym2=x(2,m)
78 zm2=x(3,m)
79 ys =x(2,i)
80 zs =x(3,i)
81 t2=ym2-ym1
82 t3=zm2-zm1
83 xl=sqrt(t2**2+t3**2)
84 IF(xl == zero)THEN
85 CALL ancmsg(msgid=80,msgtype=msgerror,anmode=aninfo,i1=
id,c1=titr,i2=l,i3=itab(msr(irect(1,l))),i4=itab(msr(irect(2,l))))
86 ENDIF
87 t2=t2/xl
88 t3=t3/xl
89 n2= t3
90 n3=-t2
91 ss=t2*(ys-ym1)+t3*(zs-zm1)
92 ss=ss/xl
93 ss=two*ss-one
94 crst(1,ii)=ss
95 crst(2,ii)=-one
96 ier2=0
97 IF(ss> onep05 .OR. ss<-onep05)THEN
98 ier1=ier1+1
99 ier2=1
100 ENDIF
101 IF(ipri>=1 .OR. ier2>0)THEN
102 WRITE(iout,fmt=fmw_5i_f)itab(i), itab(k), l, itab(msr(irect(1,l))), itab(msr(irect(2,l))), ss
103 ENDIF
104 ENDDO
105
106 IF(ier1 > 0)THEN
107
108 CALL ancmsg(msgid=81,msgtype=msgerror,anmode=aninfo,i1=
id,c1=titr)
109 ENDIF
110
111 RETURN
112
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)