43
44
45
50 USE sensor_mod
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "units_c.inc"
59#include "com01_c.inc"
60#include "warn_c.inc"
61#include "scr06_c.inc"
62#include "scr14_c.inc"
63#include "scrcut_c.inc"
64
65
66
67 INTEGER IKAD(0:*),KANIM
68 CHARACTER KEY0(*)*5
69 TYPE (SENSORS_), INTENT(INOUT) :: SENSORS
70
71
72
73 INTEGER NVAR
74
75
76
77 INTEGER I, NBC, K, IKEY, N1, N2, N3, ITYP,J,NTITLE, IXITKEY
78 CHARACTER TITLE*72, TITLE2*80
79 CHARACTER(LEN=LINE120)::LINE
80 CHARACTER(LEN=NCHARLINE100)::CARTE
81 CHARACTER(LEN=NCHARKEY)::KEY2
82 CHARACTER(LEN=NCHARKEY)::KEY3
83 CHARACTER(LEN=NCHARKEY)::KEY4
84 CHARACTER(LEN=NCHARKEY)::KEY5
85 CHARACTER(LEN=NCHARKEY)::KEY6
86 CHARACTER(LEN=NCHARKEY)::KEY7
87 CHARACTER(LEN=NCHARKEY)::KEY8
88
90
91 ikey = kanim
92 animcont = 0
93
94
95
97
98
99
100 ixitkey=0
101 IF(ikad(ikey)/=ikad(ikey+1))THEN
102 k=0
103 1160 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)')line
104 CALL fredec_8key_i(line,key2,key3,key4,key5,key6,key7,key8,nbc)
105
106 k=k+1
107
108 IF(nbc/=0)THEN
109
110
111
112 IF(key2(1:5)=='DT ')THEN
113 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
114 READ(iusc2,*,err=310,END=320)TANIM0,DTANIM0,tanim_stop0
115 GOTO 320
116 310 READ(iusc2,*,err=320,END=320)tanim0
117 320 CONTINUE
118
119 IF (dtanim0 <= zero) THEN
120 CALL ancmsg(msgid=293,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
122 ENDIF
123
124 IF (tanim_stop0 < zero) THEN
125 CALL ancmsg(msgid=304,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
127 ELSEIF (tanim_stop0 == zero)THEN
128 tanim_stop0 = ep20
129 ELSE
130 tanim_stop0 =
max(tanim_stop0,
max(zero,tanim0))
131 ENDIF
132
133 ELSEIF(key2(1:5)=='SENSO')THEN
134 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
135 READ(iusc2,*,err=9990) sensors%ANIM_ID,sensors%ANIM_DT
136
137 ELSEIF(key2(1:5)=='LSENS')THEN
138 DO i=1,nbc
139 READ(iusc1,rec=ikad(ikey)+k+i-1,fmt='(A)',err=9990)carte
140 CALL wriusc2(ikad(ikey)+k+i-1,1,key0(ikey))
141 READ(iusc2,*,err=9990,END=9990) (SENSORS%ANIM_TMP(J+SENSORS%NANIM),J=1,NVAR(CARTE)
143 sensors%NANIM = sensors%NANIM + 1
144 ENDDO
145 ENDDO
146
147 ELSEIF(key2(1:5)=='TITLE')THEN
148 DO i=1,nbc
149 READ(iusc1,rec=ikad(ikey)+k+i-1,fmt='(A)',err=9990)carte
150 CALL wriusc2(ikad(ikey)+k+i-1,1,key0(ikey))
151 READ(iusc2,*,err=9990,END=9990) NTITLE,title2
152 nltitle=nltitle+1
153 ntitletab(nltitle)=ntitle
154 titletab(nltitle)=title2
155 ENDDO
156 ELSEIF(key2(1:3)=='CUT')THEN
157 ncuts=ncuts+1
158 READ(key3(1:4),'(I4)')ityp
159 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
160 READ(iusc2,'(A)',err=9990,END=9990)title
161 WRITE(iin,'(I8,A)')ityp,title
162 k=k+1
163 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
164 IF(ityp<3)THEN
165 READ(iusc2,*,err=9990,END=9990)X0,Y0,Z0,VNX,VNY,VNZ,v0
166 WRITE(iin,'(7E16.9)')x0,y0,z0,vnx,vny,vnz,v0
167 ELSE
168 READ(iusc2,*,err=9990,END=9990)N1,N2,n3
169 WRITE(iin,'(3I8)')n1,n2,n3
170 ENDIF
171 k=k-1
172 END IF
173 ELSE
174
175
176
178 IF(ixitkey/=0) GOTO 9990
179 ENDIF
180 k=k+nbc
181 IF(ikad(ikey)+k/=ikad(ikey+1))GO TO 1160
182 ENDIF
183
184
185
186
187
189
190 nv_ani = 0
191 nt_ani = 0
192 ne_ani = 0
193 nn_ani = 0
194 nct_ani = 0
195 nce_ani = 0
196 nst_ani = 0
197 nse_ani = 0
198 nft_ani = 0
199 nfe_ani = 0
200 DO i = 1,mx_ani
201 nv_ani = nv_ani + anim_v(i)
202 nt_ani = nt_ani + anim_t(i)
203 ne_ani = ne_ani + anim_e(i)
204 nn_ani = nn_ani + anim_n(i)
205 nst_ani = nst_ani + anim_st(i)
206 nse_ani = nse_ani + anim_se(i)
207 nct_ani = nct_ani + anim_ct(i)
208 nce_ani = nce_ani + anim_ce(i)
209 nft_ani = nft_ani + anim_ft(i)
210 nfe_ani = nfe_ani + anim_fe(i)
211 ENDDO
212 IF(anim_v(12)==1)nv_ani=nv_ani+1
213 IF(anim_v(4)==1.AND.animcont == 0) nv_ani=nv_ani-1
214 IF(anim_v(27)==1)nv_ani=nv_ani+1
215
216
217 IF (ncuts>0.AND.nspmd>1) THEN
218 CALL ancmsg(msgid=191,anmode=aninfo)
219 ierr=ierr+1
220 ENDIF
221 IF(anim_vers<40) THEN
222 CALL ancmsg(msgid=192,anmode=aninfo)
223 ierr=ierr+1
224 ENDIF
225 IF (anim_vers>=50) THEN
226 CALL ancmsg(msgid=193,anmode=aninfo)
227 ierr=ierr+1
228 ENDIF
229 RETURN
230
231 9990 CONTINUE
232 CALL ancmsg(msgid=73,anmode=aninfo,c1=key0(ikey),c2=line(1:35))
subroutine anim_dcod_key_0(key2, key3, key4, key5, key6, jerr, ixitkey)
subroutine anim_reset_index_all()
subroutine anim_set2zero_struct(sensors)
subroutine fredec_8key_i(cart, key2, key3, key4, key5, key6, key7, key8, nbc)
integer, parameter line120
integer, parameter ncharline100
integer, parameter ncharkey
integer function nvar(text)
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)
subroutine wriusc2(irec, nbc, key0)