home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol266 / datan.for < prev    next >
Encoding:
Text File  |  1986-05-19  |  5.3 KB  |  173 lines

  1.         SUBROUTINE      DATAN(NSET)
  2. C////////////////////////////////////////////////////////////////
  3. C/                                                              /
  4. C/      Program-id.     DATAN                                   /
  5. C/      Date-written.   Jan. 16th 1984                          /
  6. C/      File-name.      DATAN.FOR                               /
  7. C/      Remarks.        Subroutine DATAN.FOR page 44.           /
  8. C/            Initialize GASP variables to permit the /
  9. C/            starting of the Simulation.        /
  10. C/                                                              /
  11. C////////////////////////////////////////////////////////////////
  12. C
  13. C    * Defailt size of INTEGER = 2 bytes in F80
  14. C       
  15.         INTEGER*4       NSET(6,1)
  16. C
  17.       COMMON /C1/ID,IM,INIT,JEVNT,JMNIT,MFA,MSTOP,MX,MXC,NCLCT,NHIST,
  18.      1           NOQ,NORPT,NOT,NPRMS,NRUN,NRUNS,NSTAT,OUT,SCALE,ISEED,
  19.      2           TNOW,TBEG,TFIN,MXX,NPRNT,NCRDR,NEP,VNQ(4)
  20. C
  21.       COMMON /C2/ATRIB(4),ENQ(4),INN(4),JCELS(5,22),KRANK(4),MAXNQ(4),
  22.      1           MFE(4),MLC(4),MLE(4),NCELS(5),NQ(4),PARAM(20,4),
  23.      2           QTIME(4),SSUMA(10,5),SUMA(10,5),NAME(6),NPROJ,MON,
  24.      3         NDAY,NYR,JCLR
  25. C
  26.         IF (NOT) 23,1,2
  27. C
  28. C       --- NEP is a control variable for determining the starting
  29. C           card type for multiple run problems.        
  30. C           the value of NEP specifies the starting card type.
  31. C
  32. 2       NT = NEP
  33.         GO TO (1,5,6,41,42,8,43,299,15,20),NT
  34.    23    CALL    ERROR(95,NSET)
  35.     1   NOT = 1
  36.         NRUN = 1
  37. C
  38. C       --- Data card type one
  39. C
  40.     WRITE(3,200)
  41.   200    FORMAT(1H0,9X,'1',9X,'2',9X,'3',9X,'4',9X,'5',9X,'6',9X,'7' /
  42.      1  1H ,'123456789',1H0,'123456789',1H0,'123456789',1H0,'123456789'
  43.      2  ,1H0,'123456789',1H0,'123456789',1H0,'1234567890')
  44.         READ(NCRDR,101) NAME,NPROJ,MON,NDAY,NYR,NRUNS
  45.   101     FORMAT(6A2,I4,I2,I2,I4,I4)
  46.     WRITE(3,201) NAME,NPROJ,MON,NDAY,NYR,NRUNS
  47.   201      FORMAT(1H ,6A2,I4,I2,I2,I4,I4)
  48.         IF (NRUNS) 30,30,5
  49.    30   CALL    EXIT
  50. C
  51. C       --- Data card type two
  52. C
  53.     5   READ(NCRDR,803) NPRMS,NHIST,NCLCT,NSTAT,ID,IM,NOQ,MXC,SCALE
  54.   803     FORMAT(8I5,F10.2)
  55.     WRITE(3,804) NPRMS,NHIST,NCLCT,NSTAT,ID,IM,NOQ,MXC,SCALE
  56.   804      FORMAT(1H ,8I5,F10.2)
  57.         IF (NHIST) 41,41,6
  58. C
  59. C       --- Data card type three is used only if NHIST is greater
  60. C           than zero. Specify number of cells in histograms not
  61. C           including end cells.
  62. C
  63. 6       READ(NCRDR,103) (NCELS(I),I=1,NHIST)
  64.   103     FORMAT(10I5)
  65.     WRITE(3,203) (NCELS(I),I=1,NHIST)
  66.   203      FORMAT(1H ,10I5)
  67. C
  68. C       --- Data card type four
  69. C           Specify KRANK = Ranking row.
  70. C
  71.    41   READ(NCRDR,103) (KRANK(I),I=1,NOQ)
  72.     WRITE(3,203) (KRANK(I),I=1,NOQ)
  73. C
  74. C       --- Data card type five
  75. C           Specify INN=1 for LVF, INN=2 for HVF
  76. C
  77.    42   READ(NCRDR,103) (INN(I),I=1,NOQ)
  78.     WRITE(3,203) (INN(I),I=1,NOQ)
  79.         IF (NPRMS) 23,43,8
  80.     8 DO 9 I=1,NPRMS
  81. C       
  82. C       --- Data card type six used only if NPRMS is greater than
  83. C           zero.
  84. C
  85.         READ(NCRDR,106) (PARAM(I,J),J =1,4)
  86.   106     FORMAT(4F10.4)
  87.     WRITE(3,206) (PARAM(I,J),J=1,4)
  88.   206      FORMAT(1H ,4F10.4)
  89.     9 CONTINUE
  90. C
  91. C       ---Data card type seven.
  92. C          The NEP value is for the next run.
  93. C          Set JSEED greater than zero to set tnow equal to TBEG
  94. C
  95.    43   READ(NCRDR,104) MSTOP,JCLR,NORPT,NEP,TBEG,TFIN,JSEED
  96.     WRITE(3,204) MSTOP,JCLR,NORPT,NEP,TBEG,TFIN,JSEED
  97.   104     FORMAT(4I5,2F10.3,I4)
  98.   204    FORMAT(1H ,4I5,2F10.3,I4)
  99.         IF (JSEED) 27,26,27
  100.    27   ISEED = JSEED
  101.     CALL    DRAND(ISEED,RNUM)
  102.         TNOW = TBEG
  103.         DO 142 J=1,NOQ
  104.   142     QTIME(J) = TNOW
  105.    26   JMNIT = 0
  106. C
  107. C       --- Initialize nset
  108. C           Specify inputs for next run
  109. C           Read in initial events
  110. C
  111.   299 DO 300 JS = 1,ID
  112. C
  113. C       --- Data card type 8
  114. C           Initialize NSET by JQ equal to a negative value on
  115. C           first event card.
  116. C           Read in intial vents. End initial events and entities
  117. C           with JQ equal to zero.
  118. C
  119.     READ(NCRDR,1110) JQ
  120.     WRITE(3,2110) JQ
  121.  1110    FORMAT(I10)
  122.  2110    FORMAT(1H ,I10)
  123.         IF (JQ) 44,15,320
  124.    44      INIT = 1
  125.     CALL    SET(1,NSET)
  126.                         GO TO 300
  127.   320    READ(NCRDR,1120) (ATRIB(JK),JK=1,IM)
  128.  1120    FORMAT(7F10.4)
  129.     WRITE(3,2120) (ATRIB(JK),JK=1,IM)
  130.  2120    FORMAT(1H ,7F10.4)
  131.     CALL    FILEM(JQ,NSET)
  132.   300 CONTINUE
  133. C
  134. C       --- JCLR be positive for initialization of storage arrays.
  135. C
  136.    15      IF (JCLR) 20,20,10
  137.    10      IF (NCLCT) 23,110,116
  138.   116 DO 18 I = 1,NCLCT
  139.         DO 17 J = 1,3
  140.    17     SUMA(I,J) = 0.
  141.         SUMA(I,4) = 1.0E20
  142.         SUMA(I,5) = -1.0E20
  143.    18 CONTINUE
  144.   110   IF (NSTAT) 23,111,117
  145.   117 DO 360 I=1,NSTAT
  146.         SSUMA(I,1) = TNOW
  147.         DO 370 J =2,3
  148.   370     SSUMA(I,J) = 0.
  149.     SSUMA(I,4) = 1.0E20
  150.   360    SSUMA(I,5) = -1.0E20
  151.   111   IF (NHIST) 23,20,118
  152.   118 DO 380 K = 1,NHIST
  153.         DO 380 L = 1,MXC
  154.         JCELS(K,L) = 0
  155.   380 CONTINUE
  156. C
  157. C       --- Print out program identification information.
  158. C
  159.    20      WRITE(1,102) NPROJ,NAME,MON,NDAY,NYR,NRUN
  160.   102     FORMAT(1H1,19X,'Simulation Project No.',I4,2X,'on',2X,
  161.      $ 6A2//,20X,'Date',I3,'/',I3,'/',I5,12X,'Run number',I5//)
  162. C
  163. C       --- Print parameter values and scale.
  164. C
  165.         IF (NPRMS) 60,60,62
  166.    62 DO 64 I=1,NPRMS
  167.    64   WRITE(1,107) I,(PARAM(I,J),J=1,4)
  168.   107     FORMAT(10X,' Parameter No.',I5,4F12.4)
  169.    60   WRITE(1,1107) SCALE
  170.  1107    FORMAT(//37X,' Scale =',F10.4)
  171.         RETURN
  172.         END
  173.