SUBROUTINE DATAN(NSET) C//////////////////////////////////////////////////////////////// C/ / C/ Program-id. DATAN / C/ Date-written. Jan. 16th 1984 / C/ File-name. DATAN.FOR / C/ Remarks. Subroutine DATAN.FOR page 44. / C/ Initialize GASP variables to permit the / C/ starting of the Simulation. / C/ / C//////////////////////////////////////////////////////////////// C C * Defailt size of INTEGER = 2 bytes in F80 C INTEGER*4 NSET(6,1) C COMMON /C1/ID,IM,INIT,JEVNT,JMNIT,MFA,MSTOP,MX,MXC,NCLCT,NHIST, 1 NOQ,NORPT,NOT,NPRMS,NRUN,NRUNS,NSTAT,OUT,SCALE,ISEED, 2 TNOW,TBEG,TFIN,MXX,NPRNT,NCRDR,NEP,VNQ(4) C COMMON /C2/ATRIB(4),ENQ(4),INN(4),JCELS(5,22),KRANK(4),MAXNQ(4), 1 MFE(4),MLC(4),MLE(4),NCELS(5),NQ(4),PARAM(20,4), 2 QTIME(4),SSUMA(10,5),SUMA(10,5),NAME(6),NPROJ,MON, 3 NDAY,NYR,JCLR C IF (NOT) 23,1,2 C C --- NEP is a control variable for determining the starting C card type for multiple run problems. C the value of NEP specifies the starting card type. C 2 NT = NEP GO TO (1,5,6,41,42,8,43,299,15,20),NT 23 CALL ERROR(95,NSET) 1 NOT = 1 NRUN = 1 C C --- Data card type one C WRITE(3,200) 200 FORMAT(1H0,9X,'1',9X,'2',9X,'3',9X,'4',9X,'5',9X,'6',9X,'7' / 1 1H ,'123456789',1H0,'123456789',1H0,'123456789',1H0,'123456789' 2 ,1H0,'123456789',1H0,'123456789',1H0,'1234567890') READ(NCRDR,101) NAME,NPROJ,MON,NDAY,NYR,NRUNS 101 FORMAT(6A2,I4,I2,I2,I4,I4) WRITE(3,201) NAME,NPROJ,MON,NDAY,NYR,NRUNS 201 FORMAT(1H ,6A2,I4,I2,I2,I4,I4) IF (NRUNS) 30,30,5 30 CALL EXIT C C --- Data card type two C 5 READ(NCRDR,803) NPRMS,NHIST,NCLCT,NSTAT,ID,IM,NOQ,MXC,SCALE 803 FORMAT(8I5,F10.2) WRITE(3,804) NPRMS,NHIST,NCLCT,NSTAT,ID,IM,NOQ,MXC,SCALE 804 FORMAT(1H ,8I5,F10.2) IF (NHIST) 41,41,6 C C --- Data card type three is used only if NHIST is greater C than zero. Specify number of cells in histograms not C including end cells. C 6 READ(NCRDR,103) (NCELS(I),I=1,NHIST) 103 FORMAT(10I5) WRITE(3,203) (NCELS(I),I=1,NHIST) 203 FORMAT(1H ,10I5) C C --- Data card type four C Specify KRANK = Ranking row. C 41 READ(NCRDR,103) (KRANK(I),I=1,NOQ) WRITE(3,203) (KRANK(I),I=1,NOQ) C C --- Data card type five C Specify INN=1 for LVF, INN=2 for HVF C 42 READ(NCRDR,103) (INN(I),I=1,NOQ) WRITE(3,203) (INN(I),I=1,NOQ) IF (NPRMS) 23,43,8 8 DO 9 I=1,NPRMS C C --- Data card type six used only if NPRMS is greater than C zero. C READ(NCRDR,106) (PARAM(I,J),J =1,4) 106 FORMAT(4F10.4) WRITE(3,206) (PARAM(I,J),J=1,4) 206 FORMAT(1H ,4F10.4) 9 CONTINUE C C ---Data card type seven. C The NEP value is for the next run. C Set JSEED greater than zero to set tnow equal to TBEG C 43 READ(NCRDR,104) MSTOP,JCLR,NORPT,NEP,TBEG,TFIN,JSEED WRITE(3,204) MSTOP,JCLR,NORPT,NEP,TBEG,TFIN,JSEED 104 FORMAT(4I5,2F10.3,I4) 204 FORMAT(1H ,4I5,2F10.3,I4) IF (JSEED) 27,26,27 27 ISEED = JSEED CALL DRAND(ISEED,RNUM) TNOW = TBEG DO 142 J=1,NOQ 142 QTIME(J) = TNOW 26 JMNIT = 0 C C --- Initialize nset C Specify inputs for next run C Read in initial events C 299 DO 300 JS = 1,ID C C --- Data card type 8 C Initialize NSET by JQ equal to a negative value on C first event card. C Read in intial vents. End initial events and entities C with JQ equal to zero. C READ(NCRDR,1110) JQ WRITE(3,2110) JQ 1110 FORMAT(I10) 2110 FORMAT(1H ,I10) IF (JQ) 44,15,320 44 INIT = 1 CALL SET(1,NSET) GO TO 300 320 READ(NCRDR,1120) (ATRIB(JK),JK=1,IM) 1120 FORMAT(7F10.4) WRITE(3,2120) (ATRIB(JK),JK=1,IM) 2120 FORMAT(1H ,7F10.4) CALL FILEM(JQ,NSET) 300 CONTINUE C C --- JCLR be positive for initialization of storage arrays. C 15 IF (JCLR) 20,20,10 10 IF (NCLCT) 23,110,116 116 DO 18 I = 1,NCLCT DO 17 J = 1,3 17 SUMA(I,J) = 0. SUMA(I,4) = 1.0E20 SUMA(I,5) = -1.0E20 18 CONTINUE 110 IF (NSTAT) 23,111,117 117 DO 360 I=1,NSTAT SSUMA(I,1) = TNOW DO 370 J =2,3 370 SSUMA(I,J) = 0. SSUMA(I,4) = 1.0E20 360 SSUMA(I,5) = -1.0E20 111 IF (NHIST) 23,20,118 118 DO 380 K = 1,NHIST DO 380 L = 1,MXC JCELS(K,L) = 0 380 CONTINUE C C --- Print out program identification information. C 20 WRITE(1,102) NPROJ,NAME,MON,NDAY,NYR,NRUN 102 FORMAT(1H1,19X,'Simulation Project No.',I4,2X,'on',2X, $ 6A2//,20X,'Date',I3,'/',I3,'/',I5,12X,'Run number',I5//) C C --- Print parameter values and scale. C IF (NPRMS) 60,60,62 62 DO 64 I=1,NPRMS 64 WRITE(1,107) I,(PARAM(I,J),J=1,4) 107 FORMAT(10X,' Parameter No.',I5,4F12.4) 60 WRITE(1,1107) SCALE 1107 FORMAT(//37X,' Scale =',F10.4) RETURN END