42 SUBROUTINE freanim(IKAD,KEY0,KANIM,SENSORS)
54#include "implicit_f.inc"
63#include "scrcut_c.inc"
69 TYPE (SENSORS_),
INTENT(INOUT) :: SENSORS
77 INTEGER I, , K, IKEY, N1, N2, N3, ITYP,J,NTITLE, IXITKEY
78 CHARACTER *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
101 IF(ikad(ikey)/=ikad(ikey+1))
THEN
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)
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
116 310
READ(iusc2,*,err=320,
END=320)tanim0
119 IF (dtanim0 <= zero)
THEN
120 CALL ancmsg(msgid=293,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
124 IF (tanim_stop0 < zero)
THEN
125 CALL ancmsg(msgid=304,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
127 ELSEIF (tanim_stop0 == zero)
THEN
130 tanim_stop0 =
max(tanim_stop0,
max(zero,tanim0))
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
137 ELSEIF(key2(1:5)==
'LSENS')
THEN
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)
143 sensors%NANIM = sensors%NANIM + 1
147 ELSEIF(key2(1:5)==
'TITLE')
THEN
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
153 ntitletab(nltitle)=ntitle
154 titletab(nltitle)=title2
156 ELSEIF(key2(1:3)==
'CUT')
THEN
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
163 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
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
168 READ(iusc2,*,err=9990,
END=9990)N1,N2,n3
169 WRITE(iin,
'(3I8)')n1,n2,n3
178 IF(ixitkey/=0)
GOTO 9990
181 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1160
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)
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
217 IF (ncuts>0.AND.nspmd>1)
THEN
218 CALL ancmsg(msgid=191,anmode=aninfo)
221 IF(anim_vers<40)
THEN
222 CALL ancmsg(msgid=192,anmode=aninfo)
225 IF (anim_vers>=50)
THEN
226 CALL ancmsg(msgid=193,anmode=aninfo)
232 CALL ancmsg(msgid=73,anmode=aninfo,c1=key0(ikey),c2=line(1:35))
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)