51#include "implicit_f.inc"
70 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
79 INTEGER J,MANIM0, MREST0, MSTOP0, MFILR, MCYCLE, LK2, IKEY, WMCHECK0,
80 . MSG_R2R, R2R_MSTOP_LOC,ICTLSTOP0, MH3D0,SENS_ID
81 my_real tmpman(50), tman,tman_loc
82 CHARACTER FILNAM*100, KEY2*80, FMT*80, KEY0(NKEY)*5,REC*1
83 CHARACTER(LEN=NCHARLINE100)::CARTE
84 INTEGER :: LEN_TMP_NAME
85 CHARACTER(len=2148) :: TMP_NAME
91 SAVE manim0,mrest0,mstop0,mfilr,key0,ictlstop0,mh3d0
101 DATA key0/
'TIME ',
'CYCLE',
'GFILE',
'PATRA',
'RFILE',
'STOP ',
102 .
'KILL ',
'INFO ',
'ANIM ',
'OUTP ',
'LFLUS',
'CHKPT',
116 IF ((irad2r==1).AND.(ncycle<2)) r2r_mfilr = 0
118 IF(
ale%SUB%IALESUB/=0 .AND. tt+dt2<=t1s+dt2s)
RETURN
123 IF (sensors%ANIM_ID > 0)
THEN
124 IF (tt > sensors%SENSOR_TAB(sensors%ANIM_ID)%TSTART)
THEN
126 sensors%ANIM_ID = -sensors%ANIM_ID
127 tanimsens = tt + sensors%ANIM_DT
131 ELSEIF (sensors%ANIM_ID < 0)
THEN
132 IF (tt < sensors%SENSOR_TAB(-sensors%ANIM_ID)%TSTART)
THEN
134 sensors%ANIM_ID = -sensors%ANIM_ID
135 ELSEIF (tt > tanimsens)
THEN
137 tanimsens = tanimsens + sensors%ANIM_DT
144 IF (sensors%NANIM > 0)
THEN
146 sens_id = sensors%ANIM(i)
147 IF (sensors%ANIM(i) > 0)
THEN
148 IF (tt > sensors%SENSOR_TAB(sens_id)%TSTART)
THEN
149 sensors%ANIM(i) = -sens_id
153 ELSEIF (sens_id < 0)
THEN
154 IF (tt < sensors%SENSOR_TAB(-sens_id)%TSTART)
THEN
155 sensors%ANIM(i) = -sens_id
161 IF(h3d_data%N_SENS_H3D>0)
THEN
162 DO i=1,h3d_data%N_SENS_H3D
163 IF(h3d_data%LSENS_H3D(i)>0)
THEN
164 IF (tt > sensors%SENSOR_TAB(h3d_data%LSENS_H3D(i))%TSTART)
THEN
166 h3d_data%LSENS_H3D(i)=-h3d_data%LSENS_H3D(i)
169 ELSEIF (h3d_data%LSENS_H3D(i)<0)
THEN
170 IF (tt < sensors%SENSOR_TAB(-h3d_data%LSENS_H3D(i))%TSTART)
THEN
172 h3d_data%LSENS_H3D(i)=-h3d_data%LSENS_H3D(i)
181 IF((ncycle/ncinp)*ncinp==ncycle)
THEN
183 filnam=rootnam(1:rootlen)//
'_'//chrun//
'.ctl'
186 OPEN(unit=iusc3,file=tmp_name(1:len_tmp_name),
187 . status=
'OLD',err=999)
188 READ(iusc3,
'(A)',err=990,
END=990)carte
189 IF(carte(1:1)/=
'/')
GOTO 990
202 5
CALL redkey2(key2,lk2,key0,nkey,carte,ikey)
203 GOTO (10,20,30,40,50,60,70,80,90,95,96,97,98)ikey
206 10
IF(lk2>1.AND.lk2<10)
THEN
207 WRITE(fmt,
'(A,I1,A)')
'(E',lk2,
'.0)'
209 WRITE(fmt,
'(A,I2,A)')
'(E',lk2,
'.0)'
213 READ(key2,fmt,err=990,
END=990)tman
216 20
IF(lk2>1.AND.lk2<10)
THEN
217 WRITE(fmt,
'(A,I1,A)')
'(I',lk2,
')'
219 WRITE(fmt,
'(A,I2,A)')
'(I',lk2,')
'
223 READ(KEY2,FMT,ERR=990,END=990)MCYCLE
266 READ(IUSC3,'(a)
',ERR=400,END=400)CARTE
272 WRITE (IUSC3,'(a)
',ERR=990) ' run control file
'
273 WRITE (IUSC3,'(a,/)
',ERR=990) ' ----------------
'
274.AND.
IF(TMAN==0.0MCYCLE==0)THEN
276 WRITE (IUSC3,'(a)
',ERR=990)
277 . ' multidomains -> /cycle not allowed
'
279 WRITE(CARTE,'(a)
')' at current cycle
'
280 ELSEIF(TMAN==0.0)THEN
281 WRITE(CARTE,'(a,i10)
')' at cycle
',MCYCLE
282 ELSEIF(MCYCLE==0)THEN
283 WRITE(CARTE,'(a,g14.7)
')' at time
',TMAN
285 WRITE(CARTE,'(a,g14.7,a,i10)
')' IF time >=
',TMAN,
286 . ' and
IF cycle >=
',MCYCLE
288.OR..OR.
IF(MANIM0==1 MANIM0== 3
289.OR..OR.
. MANIM0==5 MANIM0== 7
290.OR..OR.
. MANIM0==9 MANIM0==11
291.OR.
. MANIM0==13MANIM0==15)
292 . WRITE(IUSC3,'(/a,a)
',ERR=990)' WRITE next plot file
',CARTE
293.OR..OR.
IF(MANIM0== 2MANIM0== 3
294.OR..OR.
. MANIM0== 6MANIM0== 7
295.OR..OR.
. MANIM0==10MANIM0==11
296.OR.
. MANIM0==14MANIM0==15)
297 . WRITE(IUSC3,'(a,a)
',ERR=990)' WRITE next patran files
',CARTE
298.OR..OR.
IF(MANIM0== 4MANIM0== 5
299.OR..OR.
. MANIM0== 6MANIM0== 7
300.OR..OR.
. MANIM0==12MANIM0==13
301.OR.
. MANIM0==14MANIM0==15)
302 . WRITE(IUSC3,'(a,a)
',ERR=990)' WRITE next animation files
',
304.OR..OR.
IF(MANIM0== 8MANIM0== 9
305.OR..OR.
. MANIM0==10MANIM0==11
306.OR..OR.
. MANIM0==12MANIM0==13
307.OR.
. MANIM0==14MANIM0==15)
308 . WRITE(IUSC3,'(a,a)
',ERR=990)' WRITE next output files
',
311 . WRITE(IUSC3,'(a,a)
',ERR=990)' WRITE next restart file
',CARTE
313 . WRITE(IUSC3,'(a,a)
',ERR=990)' run stop
',CARTE
315 . WRITE(IUSC3,'(a,a)
',ERR=990)' update h3d file
', CARTE
317 IF (IRAD2R==1) R2R_MFILR=1
336 IF (R2R_MFILR == 1) THEN
341 R2R_CTR(3) = WMCHECK0
342 ELSEIF (R2R_MFILR == 2) THEN
351 IF(NSPMD > 1) CALL SPMD_IBCAST(MFILR,MFILR,1,1,0,2)
357.OR..OR..OR.
IF((SENSORS%ANIM_ID /=0 SENSORS%NANIM /=0 H3D_DATA%N_SENS_H3D > 0)
358.OR..AND.
. ((NCYCLE/NCINP)*NCINP==NCYCLE) (IRAD2R==1 MFILR==1)) THEN
371 TMPMAN(12) = ICTLSTOP0
373 TMPMAN(14) = H3D_DATA%MH3D
375 IF(NSPMD > 1)CALL SPMD_RBCAST(TMPMAN,TMPMAN,1,14,0,2)
377 MDESS = NINT(TMPMAN(1))
378 MREST0 = NINT(TMPMAN(2))
379 MREST = NINT(TMPMAN(3))
380 MSTOP0 = NINT(TMPMAN(4))
381 MSTOP = NINT(TMPMAN(5))
382 MANIM0 = NINT(TMPMAN(6))
383 MANIM = NINT(TMPMAN(7))
384 MCYCLE = NINT(TMPMAN(8))
385 MFILR = NINT(TMPMAN(9))
387 WMCHECK0 = NINT(TMPMAN(11))
388 ICTLSTOP0 = NINT(TMPMAN(12))
389 MH3D0 = NINT(TMPMAN(13))
390 H3D_DATA%MH3D = NINT(TMPMAN(14))
396.AND.
IF(TT>=TMANNCYCLE>=MCYCLE)THEN