summaryrefslogtreecommitdiff
path: root/Dragon/src/EDILUM.f
blob: bbf8c36d9fa1793edc0db679fd9445c95e810ee6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
*DECK EDILUM
      SUBROUTINE EDILUM(IPRINT,IPEDIT,MAXFP,NBISO,NBFISS,NBDPF,NSUPS,
     & NREAC,NFATH,NBCH,HICH,HISO,MYLIST,HREAC,IDREAC,DENER,DDECA,
     & IPREAC,PRATE,YIELD,LISO,NBFISS2,NBFPCH2)
*
*-----------------------------------------------------------------------
*
*Purpose:
* Complete and lump the burnup chain from NBISO to NBCH isotopes.
* Write the lumped chain on the LCM object. Based on subroutine
* dralum.f in dragr module.
*
*Copyright:
* Copyright (C) 2007 Ecole Polytechnique de Montreal
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version
*
*Author(s): A. Hebert
*
*Parameters: input
* IPRINT  print parameter.
* IPEDIT  pointer to the edition LCM object.
* MAXFP   second dimension of array 'YIELD'.
* NBISO   number of depleting nuclides before lumping.
* NBFISS  number of fissile isotopes with fission yields.
* NBDPF   number of fission products before lumping.
* NSUPS   number of stable isotopes producing energy.
* NREAC   number of depleting reactions including radioactive decay
* NFATH   maximum number of parent isotopes leading to the production of
*         an isotope in the depletion chain before lumping.
* NBCH    number of depleting nuclides after lumping.
* HICH    names of remaining isotopes after lumping.
* HISO    'ISOTOPESDEPL' record before lumping.
* MYLIST  'CHARGEWEIGHT' record before lumping.
* HREAC   'DEPLETE-IDEN' record before lumping.
* IDREAC  'DEPLETE-REAC' record before lumping.
* DENER   'DEPLETE-ENER' record before lumping.
* DDECA   'DEPLETE-DECA' record before lumping.
* IPREAC  'PRODUCE-REAC' record before lumping.
* PRATE   'PRODUCE-RATE' record before lumping.
* YIELD   'FISSIONYIELD' record before lumping.
* LISO    =.true. when all isotopes are kept separately during 
*         the merging.
* NBFISS2 new number of fissile isotopes with fission yields.
* NBFPCH2 new maximum number of fission products after lumping.
*
*-----------------------------------------------------------------------
*
      USE GANLIB
*----
*  SUBROUTINE ARGUMENTS
*----
      TYPE(C_PTR) IPEDIT
      INTEGER IPRINT,MAXFP,NBISO,NBFISS,NBDPF,NSUPS,NREAC,NFATH,
     & MYLIST(NBISO),HICH(3,NBCH),HISO(3,NBISO),NBCH,HREAC(2,NREAC),
     & IDREAC(NREAC,NBISO),IPREAC(NFATH,NBISO),NBFISS2,NBFPCH2
      REAL DENER(NREAC,NBISO),DDECA(NBISO),PRATE(NFATH,NBISO),
     & YIELD(NBFISS,MAXFP)
      LOGICAL LISO
*----
*  LOCAL VARIABLES
*----
      PARAMETER (NSTATE=40,MAXIT=20,NSYSO=6)
      CHARACTER HNAME*8,TEXT4*4
      INTEGER ISTATE(NSTATE),MIX(NBCH),IMIX
      INTEGER, ALLOCATABLE, DIMENSION(:,:) :: JPREAC,JDREAC,IPOS,HHHH
      REAL, ALLOCATABLE, DIMENSION(:) :: EYIEL,DDDD
      REAL, ALLOCATABLE, DIMENSION(:,:) :: RRATE,EENER
*----
*  SCRATCH STORAGE ALLOCATION
*----
      PARAMETER (MAXFAT=25)
      ALLOCATE(JPREAC(MAXFAT,NBCH),JDREAC(NREAC,NBCH),IPOS(NBCH,3),
     & HHHH(3,NBCH))
      ALLOCATE(RRATE(MAXFAT,NBCH),EENER(NREAC,NBCH),
     & EYIEL(NBFISS2*NBFPCH2),DDDD(NBCH))
*----
*  FIND THE POSITION OF THE LUMPED ISOTOPES IN THE COMPLETE CHAIN
*----
      J0OLD=0
      J0=0
      DO ISO=1,NBCH
        DO JSO=1,NBISO
          J0=JSO
          IF((HICH(1,ISO).EQ.HISO(1,JSO)).AND.
     &       (HICH(2,ISO).EQ.HISO(2,JSO))) GO TO 10
        ENDDO
        WRITE(NSYSO,'(/35H EDILUM: LIST OF AVAILABLE ISOTOPES)')
        DO JSO=1,NBISO
          WRITE(NSYSO,'(2X,I5,5H --> ,2A4)') JSO,HISO(1,JSO),HISO(2,JSO)
        ENDDO
        WRITE(HNAME,'(2A4)') HICH(1,ISO),HICH(2,ISO)
        CALL XABORT('EDILUM: UNABLE TO FIND '//HNAME)
 10     IF(.NOT.LISO) THEN
          IF(J0.LE.J0OLD) THEN
             WRITE(HNAME,'(2A4)') HISO(1,J0),HISO(2,J0)
             CALL XABORT('EDILUM: ISOTOPIC DATA NOT SORTED:'//HNAME)
          ENDIF
        ENDIF
        J0OLD=J0
        IPOS(ISO,1)=J0
      ENDDO
      DO I=1,NBCH
        IMIX=1
        IF(I.EQ.1) GOTO 15
        DO J=1,I-1
          IF(IPOS(I,1).EQ.IPOS(J,1)) IMIX=IMIX+1
        ENDDO
 15     MIX(I)=IMIX
      ENDDO
*----
*  REMOVE THE LUMPED FATHERS THAT ARE NEUTRON INDUCED REACTIONS.
*----
      DO ISO=1,NBISO
        DO IFATH=1,NFATH
          IF(IPREAC(IFATH,ISO).EQ.0) GO TO 20
          IF(MOD(IPREAC(IFATH,ISO),100).EQ.1) GO TO 20
          JND=IPREAC(IFATH,ISO)/100
          DO J=1,NBCH
            IF(IPOS(J,1).EQ.JND) GO TO 20
          ENDDO
          IPREAC(IFATH,ISO)=0
          PRATE(IFATH,ISO)=0.0
   20     CONTINUE
        ENDDO
      ENDDO
*----
*  LUMP IDREAC, DENER, IPREAC AND PRATE.
*----
      ITER=0
   40 ITER=ITER+1
      IF(ITER.GT.MAXIT) CALL XABORT('EDILUM: TOO MANY ITERATIONS.')
      NLUMP=0
      DO ISO=1,NBCH
        IND=IPOS(ISO,1)
        DO IFATH=1,NFATH
          IF(IPREAC(IFATH,IND).EQ.0) GO TO 50
          IF(MOD(IPREAC(IFATH,IND),100).NE.1) GO TO 50
          JND=IPREAC(IFATH,IND)/100
          IF(MYLIST(JND).EQ.0) GO TO 50
          DO J=1,NBCH
            IF(IPOS(J,1).EQ.JND) GO TO 50
          ENDDO
          NLUMP=NLUMP+1 ! ISOTOPE JND IS LUMPED
          DO IDA=1,NBISO
            DO IFA=1,NFATH
              IPGAR=IPREAC(IFA,IDA)
              IF((IPGAR/100.EQ.JND).AND.(MOD(IPGAR,100).EQ.1)) THEN
                IF(MYLIST(IDA).EQ.0) GO TO 50
              ENDIF
            ENDDO
          ENDDO
          DO IDA=1,NBISO
            DO IFA=1,NFATH
              IPGAR=IPREAC(IFA,IDA)
              IF((IPGAR/100.EQ.JND).AND.(MOD(IPGAR,100).EQ.1)) THEN
                IF(IDA.EQ.JND) CALL XABORT('EDILUM: BUG.')
                PRGAR=PRATE(IFA,IDA)
                DO IM=IFA,NFATH-1
                  IPREAC(IM,IDA)=IPREAC(IM+1,IDA)
                  PRATE(IM,IDA)=PRATE(IM+1,IDA)
                ENDDO
                IPREAC(NFATH,IDA)=0
                PRATE(NFATH,IDA)=0.0
                DO JFATH=1,NFATH
                  IF(IPREAC(JFATH,JND).EQ.0) GO TO 45
                  IM=NFATH+1
                  DO K=NFATH,1,-1
                    IF(IPREAC(K,IDA).EQ.IPREAC(JFATH,JND)) THEN
                      PRATE(K,IDA)=PRATE(K,IDA)+PRGAR*PRATE(JFATH,JND)
                      GO TO 44
                    ENDIF
                    IF(IPREAC(K,IDA).EQ.0) IM=K
                  ENDDO
                  IF(IM.GT.NFATH) CALL XABORT('EDILUM: NFATH OVERFLOW.')
                  IPREAC(IM,IDA)=IPREAC(JFATH,JND)
                  PRATE(IM,IDA)=PRGAR*PRATE(JFATH,JND)
   44             CONTINUE
                ENDDO
   45           IF(MOD(IDREAC(2,JND),100).EQ.5) THEN
                  JFP=IDREAC(2,JND)/100
                  IF(MOD(IDREAC(2,IDA),100).EQ.5) THEN
                    IFP=IDREAC(2,IDA)/100
                  ELSE
                    NBDPF=NBDPF+1
                    IF(NBDPF.GT.MAXFP) THEN
                      CALL XABORT('EDILUM: MAXFP OVERFLOW.')
                    ENDIF
                    IFP=NBDPF
                    YIELD(:NBFISS,IFP)=0.0
                  ENDIF
                  DO IFI=1,NBFISS
                    YIELD(IFI,IFP)=YIELD(IFI,IFP)+YIELD(IFI,JFP)*PRGAR
                  ENDDO
                  IDREAC(2,IDA)=IFP*100+5
                ENDIF
              ENDIF
            ENDDO
          ENDDO
          DO JFATH=1,NFATH
            IF(IPREAC(JFATH,JND).GT.0) THEN
              KT=MOD(IPREAC(JFATH,JND),100)
              KND=IPREAC(JFATH,JND)/100
              DENER(KT,KND)=DENER(KT,KND)+PRATE(JFATH,JND)*DENER(1,JND)
            ENDIF
            IPREAC(JFATH,JND)=0
            PRATE(JFATH,JND)=0.0
          ENDDO
          YMAX=0.0
          IF(MOD(IDREAC(2,JND),100).EQ.5) THEN
            JFP=IDREAC(2,JND)/100
            DO KSO=1,NBISO
              IF(MOD(IDREAC(2,KSO),100).EQ.4) THEN
                IFI=IDREAC(2,KSO)/100
                DENER(2,KSO)=DENER(2,KSO)+YIELD(IFI,JFP)*DENER(1,JND)
              ENDIF
            ENDDO
            DO IFI=1,NBFISS
              YMAX=MAX(YMAX,ABS(YIELD(IFI,JFP)))
              YIELD(IFI,JFP)=0.0
            ENDDO
            DENER(2,JND)=0.0
            IDREAC(2,JND)=0
          ENDIF
          DENER(1,JND)=0.0
          IDREAC(1,JND)=0
          HALF=1.0E8*LOG(2.0)/DDECA(JND)/86400.0
          IF(DDECA(JND).EQ.0.0) THEN
            WRITE(HNAME,'(2A4)') HISO(1,JND),HISO(2,JND)
            IF(YMAX.GT.1.0E-2) THEN
              WRITE(NSYSO,6020) TRIM(HNAME),HALF,YMAX*100.0
              CALL XABORT('EDILUM: ISOTOPE '//HNAME//' SHOULD NOT BE L'
     &        //'UMPED.(1)')
            ENDIF
            IF(IPRINT.GT.2) WRITE(NSYSO,6020) HNAME,HALF,YMAX*100.0
          ELSE IF((HALF.GT.30.0).AND.(HALF.LT.999999.99)) THEN
            WRITE(HNAME,'(2A4)') HISO(1,JND),HISO(2,JND)
            IF(YMAX.GT.1.0E-2) THEN
              WRITE(NSYSO,6020) TRIM(HNAME),HALF,YMAX*100.0
              CALL XABORT('EDILUM: ISOTOPE '//HNAME//' SHOULD NOT BE L'
     &        //'UMPED.(2)')
            ENDIF
            IF(IPRINT.GT.2) WRITE(NSYSO,6020) HNAME,HALF,YMAX*100.0
          ELSE IF(HALF.GT.30.0) THEN
            WRITE(HNAME,'(2A4)') HISO(1,JND),HISO(2,JND)
            IF(YMAX.GT.1.0E-2) THEN
              WRITE(NSYSO,6020) TRIM(HNAME),HALF,YMAX*100.0
              CALL XABORT('EDILUM: ISOTOPE '//HNAME//' SHOULD NOT BE L'
     &        //'UMPED.(3)')
            ENDIF
            IF(IPRINT.GT.2) WRITE(NSYSO,6020) HNAME,HALF,YMAX*100.0
          ENDIF
          DDECA(JND)=0.0
          MYLIST(JND)=0
   50     CONTINUE
        ENDDO
      ENDDO
      IF(IPRINT.GT.2) WRITE(NSYSO,'('' ......... NLUMP='',I5)') NLUMP
      IF(NLUMP.GT.0) GO TO 40
*----
*  WRITE VECTORS 'PRODUCE-REAC' AND 'PRODUCE-RATE' TO THE LCM OBJECT
*----
      DO ISO=1,NBCH
        DO IFATH=1,MAXFAT
          JPREAC(IFATH,ISO)=0
          RRATE(IFATH,ISO)=0.0
        ENDDO
        IND=IPOS(ISO,1)
        NN=0
        DO IFATH=1,NFATH
          IF(IPREAC(IFATH,IND).NE.0) THEN
            DO J=1,IFATH-1
              IF(IPREAC(IFATH,IND).EQ.IPREAC(J,IND)) THEN
                JND1=IPREAC(IFATH,IND)/100
                JND2=IPREAC(J,IND)/100
                WRITE(NSYSO,'(/27H EDILUM: DUPLICATE FATHERS:,2A4,
     &          1X,2A4)') HISO(1,JND1),HISO(2,JND1),HISO(1,JND2),
     &          HISO(2,JND2)
                WRITE(HNAME,'(2A4)') HISO(1,IND),HISO(2,IND)
                CALL XABORT('EDILUM: DUPLICATE FATHERS FOR '//HNAME)
              ENDIF
            ENDDO
            DO I=1,NBCH
              JSO=I
              IF((IPOS(I,1).EQ.IPREAC(IFATH,IND)/100).AND.
     &            (MIX(I).EQ.MIX(ISO)))GO TO 70
            ENDDO
            JSO=-1
   70       IF(JSO.EQ.-1) THEN
              JND=IPREAC(IFATH,IND)/100
              IF(IPRINT.GT.2) THEN
                WRITE(NSYSO,'(/24H EDILUM: UNKNOWN FATHER ,2A4,5H FOR ,
     &          2A4)') HISO(1,JND),HISO(2,JND),HISO(1,IND),HISO(2,IND)
              ENDIF
            ELSE
              NN=NN+1
              IF(NN.GT.MAXFAT) THEN
                WRITE(TEXT4,'(I4)') NN
                CALL XABORT('EDILUM: MAXFAT OVERFLOW NN='//TEXT4)
              ENDIF
              JPREAC(NN,ISO)=100*JSO+MOD(IPREAC(IFATH,IND),100)
              RRATE(NN,ISO)=PRATE(IFATH,IND)
            ENDIF
          ENDIF
        ENDDO
      ENDDO
      CALL LCMPUT(IPEDIT,'PRODUCE-REAC',MAXFAT*NBCH,1,JPREAC)
      CALL LCMPUT(IPEDIT,'PRODUCE-RATE',MAXFAT*NBCH,2,RRATE)
*----
*  WRITE THE ISOTOPE ASCII NAMES ON LCM OBJECT
*----
      CALL LCMPUT(IPEDIT,'DEPLETE-IDEN',2*NREAC,3,HREAC(1,1))
*----
*  WRITE THE LUMPED FISSION YIELD MATRIX TO THE LCM OBJECT
*----
      IBFI=0
      IBFP=0
      DO ISO=1,NBCH
        IND=IPOS(ISO,1)
        IPOS(ISO,2)=0
        IPOS(ISO,3)=0
        IF(MOD(IDREAC(2,IND),100).EQ.4) THEN
          IBFI=IBFI+1
          IF(IBFI.GT.NBFISS2) CALL XABORT('EDILUM: NBFISS OVERFLOW.')
          IPOS(ISO,2)=IBFI
        ELSE IF(MOD(IDREAC(2,IND),100).EQ.5) THEN
          IBFP=IBFP+1
          IF(IBFP.GT.NBFPCH2) CALL XABORT('EDILUM: NBFPCH2 OVERFLOW.')
          IPOS(ISO,3)=IBFP
        ENDIF
      ENDDO
      DO ISO=1,NBCH
        IFI=IPOS(ISO,2)
        IF(IFI.GT.0) THEN
          DO JSO=1,NBCH
            IFP=IPOS(JSO,3)
            IF(IFP.GT.0) THEN
              IND=IPOS(ISO,1)
              JND=IPOS(JSO,1)
              IF(MIX(ISO).NE.MIX(JSO)) THEN
                EYIEL((IFP-1)*IBFI+IFI)=0.0
              ELSE
                EYIEL((IFP-1)*IBFI+IFI)=YIELD(IDREAC(2,IND)/100,
     &          IDREAC(2,JND)/100)
              ENDIF
            ENDIF
          ENDDO
        ENDIF
      ENDDO
      IF(IBFI*IBFP.GT.0) CALL LCMPUT(IPEDIT,'FISSIONYIELD',IBFI*IBFP,2,
     & EYIEL)
*----
*  WRITE VECTORS 'DEPLETE-REAC' AND 'DEPLETE-ENER' TO THE LCM OBJECT
*----
      DO ISO=1,NBCH
        IND=IPOS(ISO,1)
        DO I=1,NREAC
          IF(IDREAC(I,IND)/100.GT.0) THEN
            KREAC=MOD(IDREAC(I,IND),100)
            IF((KREAC.LE.0).OR.(KREAC.GT.5)) THEN
              CALL XABORT('EDILUM: INVALID REACTION.')
            ENDIF
          ENDIF
          IF((I.EQ.2).AND.(MOD(IDREAC(I,IND),100).EQ.4)) THEN
            IF(IPOS(ISO,2).EQ.0) CALL XABORT('EDILUM: FAILURE 1.')
            JDREAC(I,ISO)=IPOS(ISO,2)*100+4
            IF(IPRINT.GT.2) THEN
              WRITE(NSYSO,6010) (HISO(I0,IPOS(ISO,1)),I0=1,3)
            ENDIF
          ELSE IF((I.EQ.2).AND.(MOD(IDREAC(I,IND),100).EQ.5)) THEN
            IF(IPOS(ISO,3).EQ.0) CALL XABORT('EDILUM: FAILURE 2.')
            JDREAC(I,ISO)=IPOS(ISO,3)*100+5
          ELSE
            JDREAC(I,ISO)=IDREAC(I,IND)
          ENDIF
          EENER(I,ISO)=DENER(I,IND)
        ENDDO
      ENDDO
      CALL LCMPUT(IPEDIT,'DEPLETE-REAC',NREAC*NBCH,1,JDREAC)
      CALL LCMPUT(IPEDIT,'DEPLETE-ENER',NREAC*NBCH,2,EENER)
*----
*  WRITE VECTORS 'CHARGEWEIGHT', 'DEPLETE-DECA', 'ISOTOPESDEPL' AND
*  'STATE-VECTOR' TO THE LCM OBJECT
*----
      NBHEAV=0
      NSUPS2=0
      DO ISO=1,NBCH
        IF(IPOS(ISO,1).GT.NBISO-NSUPS) NSUPS2=NSUPS2+1
        HHHH(1,ISO)=HISO(1,IPOS(ISO,1))
        HHHH(2,ISO)=HISO(2,IPOS(ISO,1))
        HHHH(3,ISO)=HISO(3,IPOS(ISO,1))
        DDDD(ISO)=DDECA(IPOS(ISO,1))
        IPOS(ISO,1)=MYLIST(IPOS(ISO,1))
      ENDDO
      CALL LCMPUT(IPEDIT,'ISOTOPESDEPL',3*NBCH,3,HHHH)
      CALL LCMPUT(IPEDIT,'CHARGEWEIGHT',NBCH,1,IPOS(1,1))
      CALL LCMPUT(IPEDIT,'DEPLETE-DECA',NBCH,2,DDDD)
      ISTATE(:NSTATE)=0
      ISTATE(1)=NBCH
      ISTATE(2)=IBFI
      ISTATE(3)=IBFP
      ISTATE(4)=NBHEAV
      ISTATE(5)=NBCH-NBHEAV
      ISTATE(7)=NSUPS2
      ISTATE(8)=NREAC
      ISTATE(9)=MAXFAT
      CALL LCMPUT(IPEDIT,'STATE-VECTOR',NSTATE,1,ISTATE)
      IF(IPRINT.GT.2) WRITE(NSYSO,6000) (ISTATE(ISTA),ISTA=1,9)
*----
*  SCRATCH STORAGE DEALLOCATION
*----
      DEALLOCATE(DDDD,EYIEL,EENER,RRATE)
      DEALLOCATE(HHHH,IPOS,JDREAC,JPREAC)
      RETURN
*----
*  FORMAT
*----
 6000 FORMAT(/' STATE-VECTOR FOR LUMPED DEPLETION CHAIN'/' -------'/
     >  ' NDEPL  ',I6,' (NUMBER OF DEPLETING ISOTOPES)'/
     >  ' NDFI   ',I6,' (NUMBER OF DIRECT FISSILE ISOTOPES)'/
     >  ' NDFP   ',I6,' (NUMBER OF DIRECT FISSION PRODUCT)'/
     >  ' NHEAVY ',I6,' (NUMBER OF HEAVY ISOTOPES)'/
     >  ' NLIGHT ',I6,' (NUMBER OF FISSION PRODUCTS)'/
     >  ' NOTHER ',I6,' (NUMBER OF OTHER ISOTOPES)'/
     >  ' NSTABL ',I6,' (NUMBER OF STABLE ISOTOPES PRODUCING ENERGY)'/
     >  ' NREAC  ',I6,' (MAXIMUM NUMBER OF DEPLETION REACTIONS)'/
     >  ' NPAR   ',I6,' (MAXIMUM NUMBER OF PARENT REACTIONS)'/)
 6010 FORMAT(45H EDILUM: FISSILE ISOTOPE WITH FISSION YIELD: ,3A4)
 6020 FORMAT(18H EDILUM: ISOTOPE ',A,30H' IS LUMPED AND HAS A HALF-LIF,
     > 4HE OF,1P,E12.4,25H DAYS. MAX FISSION YIELD=,1P,E8.1,2H%.)
      END