42 SUBROUTINE freanim(OUTPUT,IKAD,KEY0,KANIM,SENSORS)
54#include "implicit_f.inc"
63#include "scrcut_c.inc"
67 type(output_),
intent(inout) :: OUTPUT
68 INTEGER IKAD(0:*),KANIM
70 TYPE (SENSORS_),
INTENT(INOUT) :: SENSORS
78 INTEGER I, NBC, K, IKEY, N1, N2, N3, ITYP,J,NTITLE, IXITKEY
79 CHARACTER TITLE*72, TITLE2*80
80 CHARACTER(LEN=LINE120)::LINE
81 CHARACTER(LEN=NCHARLINE100)::CARTE
82 CHARACTER(LEN=NCHARKEY)::KEY2
83 CHARACTER(LEN=NCHARKEY)::KEY3
84 CHARACTER(LEN=NCHARKEY)::KEY4
85 CHARACTER(LEN=NCHARKEY)::KEY5
86 CHARACTER(LEN=NCHARKEY)::KEY6
87 CHARACTER(LEN=NCHARKEY)::KEY7
88 CHARACTER(LEN=NCHARKEY)::KEY8
94 output%nb_anim_frame = 0
95 output%DTANIM_FCT_ID = 0
104 IF(ikad(ikey)/=ikad(ikey+1))
THEN
106 1160
READ(iusc1,rec=ikad(ikey)+k,fmt=
'(A)')line
107 CALL fredec_8key_i(line,key2,key3,key4,key5,key6,key7,key8,nbc)
115 IF(key2(1:5)==
'DT ')
THEN
116 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
117 READ(iusc2,*,err=310,
END=320)OUTPUT%TANIM0,output%DTANIM0,output%TANIM_STOP0,outp
119 310
READ(iusc2,*,err=320,
END=320)OUTPUT%tanim0
133 IF (output%DTANIM0 <= zero.AND.output%DTANIM_FCT_ID == 0.AND.output%nb_anim_frame==0)
THEN
134 CALL ancmsg(msgid=293,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
138 IF (output%TANIM_STOP0 < zero)
THEN
139 CALL ancmsg(msgid=304,anmode=aninfo,c1=
'ANIM',c2=
'ANIM')
141 ELSEIF (output%TANIM_STOP0 == zero)
THEN
142 output%TANIM_STOP0 = ep20
144 output%TANIM_STOP0 =
max(output%TANIM_STOP0,
max(zero,output%TANIM0))
147 ELSEIF(key2(1:5)==
'SENSO')
THEN
148 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
149 READ(iusc2,*,err=9990) sensors%ANIM_ID,sensors%ANIM_DT
151 ELSEIF(key2(1:5)==
'LSENS')
THEN
153 READ(iusc1,rec=ikad(ikey)+k+i-1,fmt=
'(A)',err=9990)carte
154 CALL wriusc2(ikad(ikey)+k+i-1,1,key0(ikey))
155 READ(iusc2,*,err=9990,
END=9990) (SENSORS%ANIM_TMP(J+SENSORS%NANIM),J=1,NVAR(CARTE))
157 sensors%NANIM = sensors%NANIM + 1
161 ELSEIF(key2(1:5)==
'TITLE')
THEN
163 READ(iusc1,rec=ikad(ikey)+k+i-1,fmt=
'(A)',err=9990)carte
164 CALL wriusc2(ikad(ikey)+k+i-1,1,key0(ikey))
165 READ(iusc2,*,err=9990,
END=9990) NTITLE,title2
167 ntitletab(nltitle)=ntitle
168 titletab(nltitle)=title2
170 ELSEIF(key2(1:3)==
'CUT')
THEN
172 READ(key3(1:4),
'(I4)')ityp
173 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
174 READ(iusc2,
'(A)',err=9990,
END=9990)title
175 WRITE(iin,
'(I8,A)')ityp,title
177 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
179 READ(iusc2,*,err=9990,
END=9990)X0,Y0,Z0,VNX,VNY,VNZ,v0
180 WRITE(iin,
'(7E16.9)')x0,y0,z0,vnx,vny,vnz,v0
182 READ(iusc2,*,err=9990,
END=9990)N1,N2,n3
183 WRITE(iin,
'(3I8)')n1,n2,n3
192 IF(ixitkey/=0)
GOTO 9990
195 IF(ikad(ikey)+k/=ikad(ikey+1))
GO TO 1160
215 nv_ani = nv_ani + anim_v(i)
216 nt_ani = nt_ani + anim_t(i)
217 ne_ani = ne_ani + anim_e(i)
218 nn_ani = nn_ani + anim_n(i)
219 nst_ani = nst_ani + anim_st(i)
220 nse_ani = nse_ani + anim_se(i)
221 nct_ani = nct_ani + anim_ct(i)
222 nce_ani = nce_ani + anim_ce(i)
223 nft_ani = nft_ani + anim_ft(i)
224 nfe_ani = nfe_ani + anim_fe(i)
226 IF(anim_v(12)==1)nv_ani=nv_ani+1
227 IF(anim_v(4)==1.AND.animcont == 0) nv_ani=nv_ani-1
228 IF(anim_v(27)==1)nv_ani=nv_ani+1
231 IF (ncuts>0.AND.nspmd>1)
THEN
232 CALL ancmsg(msgid=191,anmode=aninfo)
235 IF(anim_vers<40)
THEN
239 IF (anim_vers>=50)
THEN
240 CALL ancmsg(msgid=193,anmode=aninfo)
246 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)