39
40
41
42 USE reader_old_mod , ONLY : irec, nslash
46 USE reader_old_mod , ONLY : line
47 use element_mod , only : nixs,nixc,nixtg
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "scr03_c.inc"
56#include "scr17_c.inc"
57#include "com04_c.inc"
58#include "r2r_c.inc"
59
60
61
62#include "units_c.inc"
63
64
65
66 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
67 INTEGER (*),IXC(NIXC,*),IXTG(NIXTG,*),IXS(NIXS,*),TAGNOD(*)
68 INTEGER IDDLEVEL,TAGREF(*)
69 my_real xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*),xyzref(3,*)
70
71
72
73 INTEGER IE, IN, ID, NN, NNOD
75 CHARACTER MESS*40
76 DATA mess/'REFSTA'/
77
78
79
80 INTEGER USR2SYS,R2R_SYS
81
82
83
84
85 IF(iddlevel == 0) THEN
86 WRITE(iout,1000)
87 IF(ipri >= 5) WRITE(iout,'(8X,A7,3(18X,A2))') 'NODE-ID',' X',' Y',' Z'
88 ENDIF
89 nnod=0
90 DO
91 READ(iin6,fmt='(A)',END=799,ERR=798)line
92 IF (line(1:1) == '#') cycle
94 READ(line,
'(I8,3F16.0)', err=797)
id,xx,yy,zz
95 ELSE
96 READ(line,
'(I10,3F20.0)',err=797)
id,xx,yy,zz
97 ENDIF
99 IF (nsubdom == 0) nn =
usr2sys(
id,itabm1,mess,0)
100 IF (nsubdom > 0) THEN
102 IF (nn == 0) cycle
103 ENDIF
104 tagref(nn) = 1
106 nnod=nnod+1
107 IF(iddlevel == 0.AND.ipri >= 5)
WRITE(iout,
'(5X,I10,5X,1P3G20.13)')
id,xx,yy,zz
108 xyzref(1,nn) = xx
109 xyzref(2,nn) = yy
110 xyzref(3,nn) = zz
111 ELSEIF(iddlevel == 0) THEN
112
114 . msgtype=msgerror,anmode=aninfo,
116 ENDIF
117 ENDDO
118
119 797 CONTINUE
121 . msgtype=msgerror,
122 . anmode=aninfo,
123 . c1=line)
124 798 CONTINUE
126 . msgtype=msgerror,
127 . anmode=aninfo)
128 799 CONTINUE
129 IF(iddlevel == 0.AND.ipri < 5) WRITE(iout,1010) nnod
130
131 DO ie=1,numelc
132 DO in=1,4
133 nn = ixc(in+1,ie)
135 xrefc(in,1,ie) = xyzref(1,nn)
136 xrefc(in,2,ie) = xyzref(2,nn)
137 xrefc(in,3,ie) = xyzref(3,nn)
138 ENDIF
139 ENDDO
140 ENDDO
141 DO ie=1,numeltg
142 DO in=1,3
143 nn = ixtg(in+1,ie)
145 xreftg(in,1,ie) = xyzref(1,nn)
146 xreftg(in,2,ie) = xyzref(2,nn)
147 xreftg(in,3,ie) = xyzref(3,nn)
148 ENDIF
149 ENDDO
150 ENDDO
151 DO ie=1,numels8
152 DO in=1,8
153 nn = ixs(in+1,ie)
155 xrefs(in,1,ie) = xyzref(1,nn)
156 xrefs(in,2,ie) = xyzref(2,nn)
157 xrefs(in,3,ie) = xyzref(3,nn)
158 ENDIF
159 ENDDO
160 ENDDO
161
162 RETURN
163 1000 FORMAT(//
164 & 5x,' REFERENCE STATE (REFSTA) ',/
165 & 5x,' ------------------------ ',/)
166 1010 FORMAT(
167 & 5x,'NUMBER OF NODES . . . . . . . . =',i10)
integer function r2r_sys(iu, itabm1, mess)
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)
integer function usr2sys(iu, itabm1, mess, id)
subroutine tagnod(ix, nix, nix1, nix2, numel, iparte, tagbuf, npart)