+C ============================================================ 00001000
+C ENEA - TIB - CLEMENTEL CENTER - VIA MAZZINI 2,BOLOGNA -ITALY 00002000
+C ============================================================ 00003000
+C == == 00004000
+C == T E S E O == 00005000
+C == == 00006000
+C ====================================================== 00007000
+C == A CODE WHICH PROCESS ENDFB OR JEF DATA TO OBTAIN == 00008000
+C == EIGTH BINARY LIBRARY FILES FOR THE MC2-2 CODE == 00009000
+C ====================================================== 00010000
+C == == 00011000
+C == AUTHOR : MARCELLO GALLI == 00012000
+C == DATE : 13- 8 - 1987 == 00013005
+C == == 00014000
+C == == 00015000
+C ====================================================== 00016000
+C 00017000
+C 00018000
+C MAIN PROGRAM 00019000
+C 00020000
+C THE MAIN PROGRAM DEFINES THE DIMENSION OF THE BLANK COMMON 00021000
+C AND THE AREA IN THE BLANK COMMON WHICH WILL BE USED BY THE 00022000
+C SLAVE3 ROUTINES TO STORE ENDFB OR JEF RECORDS 00023000
+C 00024000
+C TO CHANGE THE AMOUNT OF SPACE AVAILABLE TO TESEO YOU 00025000
+C MUST CHANGE THE FOLLOWING STATEMENTS: 00026000
+C COMMON MAXA,AD( ... ) 00027000
+C MAD= ... 00028000
+C TO CHANGE THE AMOUNT OF SPACE AVAILABLE TO SLAVE3 ROUTINES 00029000
+C YOU MUST CHANGE THE STATEMENTS: 00030000
+C N2X= .... 00031000
+C MX = .... 00032000
+C JX = .... 00033000
+C N1X= .... IF YOU CHANGE N1X YOU MUST CHANGE ALSO 00034000
+C THE DIMENSION OF NBT AND JNT IN COMMON RECS THROUGHOUT 00035000
+C ALL THE CODE. 00036000
+C 00037000
+C ------------------------------------------------------- 00038000
+C 00039000
+ COMMON MAXA,AD(800000) 00040000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 00041000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 00042000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 00043000
+C 00044000
+C RECS AND DENS COMMONS ARE USED BY THE SLAVE3 ROUTINES 00045000
+C BY HONEK ( BNL 50300 - ENDF 110 - (1971) ) THE ORIGINAL 00046000
+C SLAVE3 ROUTINES HAVE BEEN MODIFIED BY G.C.PANINI TO 00047000
+C ALLOW THE DINAMICAL ALLOCATION OF RECS AND DENS COMMONS. 00048000
+C THESE COMMONS CONTAIN NOW ONLY THE POINTERS TO THE BLANK 00049000
+C COMMON IN WHICH ENDFB RECORDS ARE STORED. 00050000
+C 00051000
+C 00052000
+C MAD = NUMBER OF WORDS IN BLANK COMMON AREA 00053000
+C MAXA= NUMBER OF WORDS USED BY SLAVE3 ROUTINES (COMPUTED 00054000
+C BY THIS MAIN ROTINE) 00055000
+C MA = NUMBER OF WORDS IN BLANK COMMON AVAILABLE TO TESEO 00056000
+C (COMPUTED BY THIS MAIN ROUTINE) 00057000
+C 00058000
+ MAD=800000 00059000
+C 00060000
+C 00061000
+C N1X= MAXIMUM NUMBER OF INTERPOLATION RANGES IN ENDFB 00062000
+C RECORDS . THIS NUMBER MUST MATCH THE IMENSIONS OF 00063000
+C JNT AND NBT IN RECS COMMON THROUGHT THE WHOLE CODE 00064000
+C N2X= MAXIMUM NUMBER OF TABULATED POINT IN ENDFB RECORDS 00065000
+C MX = MAXIMUM NUMBER OF ENDFB RECORDS WHICH CAN BE STORED 00066000
+C IN BLANK COMMON AT THE SAME TIME 00067000
+C JX = SPACE IN BLANK COMMON TO STORE ENDFB RECORDS 00068000
+C 00069000
+C 00070000
+ N1X=200 00071000
+ N2X=70000 00072000
+ MX=400 00073000
+ JX=200000 00074000
+C 00075000
+C DEFINE POINTERS IN BLANK COMMON FOR RECS COMMON SIMULATION 00076000
+ LX=1 00077000
+ LY=LX+N2X 00078000
+ LB=LY+N2X 00079000
+C DEFINE POINTERS IN BLANK COMMON FOR DENS COMMON SIMULATION 00080000
+ JMT=LB+N2X 00081000
+ JAT=JMT+MX 00082000
+ JTT=JAT+MX 00083000
+ JLT=JTT+MX 00084000
+ LA=JLT+MX 00085000
+C 00086000
+ MAXA=LA+JX 00087000
+C YOU MUST HAVE: 00088000
+C MAXA=3*N2X+4*MX+JX .LT. MAD ; OR TESEO WILL NOT BE ABLE 00089000
+C TO ALLOCATE SPACE IN BLANK COMMON 00090000
+ IF(MAXA.GT.MAD) CALL ERR(8HMAIN ,0) 00091000
+C 00092000
+C 00093000
+ LAA=MAXA+1 00094000
+ MA=MAD-MAXA 00095000
+ CALL GELIB(MA,AD(LAA)) 00096000
+C 00097000
+ STOP 00098000
+ END 00099000
+ SUBROUTINE GELIB(MA,A) 00100000
+C **************************************************************** 00101000
+C THIS ROUTINE IS THE FIRST ROUTINE OF THE TESEO CODE. IT 00102000
+C READS INPUT COMMANDS AND CALL SUBROUTINES TO PERFORM CALCULATION 00103000
+C *************************************************************** 00104000
+C ============================================================ 00105000
+C ENEA - TIB - CLEMENTEL CENTER - VIA MAZZINI 2,BOLOGNA -ITALY 00106000
+C ============================================================ 00107000
+C == == 00108000
+C == T E S E O == 00109000
+C == == 00110000
+C ====================================================== 00111000
+C == A CODE WHICH PROCESS ENDFB OR JEF DATA TO OBTAIN == 00112000
+C == EIGTH BINARY LIBRARY FILES FOR THE MC2-2 CODE == 00113000
+C ====================================================== 00114000
+C == == 00115000
+C == AUTHOR : MARCELLO GALLI == 00116000
+C == DATE : 13 - 8 - 1987 == 00117005
+C == == 00118000
+C == == 00119000
+C ====================================================== 00120000
+C 00121000
+ DIMENSION A(MA) 00122000
+ DIMENSION TITL(20) 00123000
+C 00124000
+C :::::::::::::::::::::::::::::::::::::::::: 00125000
+C THIS COMMON CONTAINS THE INPUT COMMAND 00126000
+ REAL*8C 00127000
+ COMMON /COMM/C,IC(6),AC(4) 00128000
+C ::::::::::::::::::::::::::::::::::::::::::::::::::: 00129000
+C THIS COMMON CONTAIN THE LOGICAL UNIT SPECIFICATIONS 00130000
+ COMMON/FILES/NT(4,99) 00131000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 00132000
+C 00133000
+C FILES: NT(1,.)= LOGICAL NUMBER 00134000
+C NT(2,.)= FIRST RECORD (NO MORE USED) 00135000
+C NT(3,.)= FIRST RECORD AVAILABLE 00136000
+C NT(4,.)= CURRENT RECORD 00137000
+C 00138000
+C :::::::::::::::::::::::::::::::::::::::::::: 00139000
+C THIS COMMON CONTAINS THE CALCULATION OPTIONS 00140000
+ COMMON/OPZIO/ OPZ(4,8,10) 00141000
+C 00142000
+C OPZ= OPTION( PART 1,2 .. ; FILE MCC2F1,2 .. ; OPTION) 00143000
+C 00144000
+C 00145000
+C ::::::::::::::::::::::::::::::::::::::::::::::::: 00146000
+C THIS COMMON CONTAINS DIMENSIONS OF ARRAYS 00147000
+ COMMON/DIM/M(5) 00148000
+C DIMENSIONI EFFETTIVE DI VARIE MATRICI : 00149000
+C M(1)=DIMENSION OF THE INPUT TABLE OF PART ONE 00150000
+C M(2)=DIMENSION OF THE INDEX OF FIRST INTERMEDIATE FILES 00151000
+C M(3)=DIMENSION OF THE INPUT TABLE OF PART TWO 00152000
+C M(4)=DIMENSION OF THE INDEX OF SECOND INTERMEDIATE FILE 00153000
+C M(5)=DIMENSION OF THE INPUT TABLE OF PART THREE 00154000
+C 00155000
+C :::::::::::::::::::::::::::::::::::::::::::::::: 00156000
+C THIS COMMON CONTAINS DIMENSIONS OF ARRAYS 00157000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 00158000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 00159000
+C 00160000
+C DIMENSION OF COMMON ARRAYS: 00161000
+C MMA= DIMENSIONI DI A (FISICAMENTE NEL BLANK COMMON,DOPO A(MAXA)) 00162000
+C INDX(MINDX1,MINDX2) 00163000
+C MIX(MMIX1,MMIX2) 00164000
+C OPZ(MOPZ1,MOPZ2,MOPZ3) 00165000
+C M(MM) 00166000
+C NT(MNT1,MNT2) 00167000
+C INDX1(MIND11,MIND12) 00168000
+C /DENS/ JMT,JAT,JTT,JLT (MX=MMX) 00169000
+C A(JX=MJX) 00170000
+C /RECS/NBT,JNT(N1X=MNX1) 00171000
+C X,Y,B (N2X=MN2X) 00172000
+C 00173000
+C 00174000
+C 00175000
+C :::::::::::::::::::::::::::::::::::::::::::::::::: 00176000
+C THIS COMMON CONTAIN THE WORKING SPACE FOR TESEO AND SLAVE300177000
+C MAXA IS THE DIMENSION OF SLAVE3 WORKING SPACE 00178000
+C 00179000
+ COMMON MAXA,ADD(1) 00180000
+C 00181000
+C ::::::::::::::::::::::::::::::::::::::::::::::::: 00182000
+C 00183000
+C COMMON DENS OF SLAVE3:JMT=IDENT,JAT=LOC INIZ,JTT=TIPO REC,JNS=PR00184000
+C VUOTO IN A,MNS=PRIMO VUOTO IN JAT,JTT ECC, MNS=DIM DI A ,MX=DIM 00185000
+C JMT ECC 00186000
+C 00187000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LV,JNS,MNS, 00188000
+ 1JX,MX 00189000
+C 00190000
+C QUESTO COMMON CONTIENE IL RECORD ENDFB LETTO DA RREC E SCRITTO 00191000
+C DA WREC ( SUBROUTINES DI SLAVE3 DI BNL ( HONEK) 00192000
+C LX,LY,LB SONO PUNTATORI NEL BLANK COMMON DEGLI SPAZI X,Y,B 00193000
+C DEL COMMON DENS DI SLAVE3 ( MODIFICHE DI PANINI PER ALLOCAZIONI 00194000
+C DINAMICHE ) 00195000
+C 00196000
+C 00197000
+C ::::::::::::::::::::::::::::::::::::::::::::::::::: 00198000
+C COMMON RESC OF SLAVE3 : MAT=MATERIALE,MF=FILE ENDFB 00199000
+C MT=REAZIONE 00200000
+C C1,C2,L1,L2,N1,N1=PARAMETRI 00201000
+C NBT=INIZIO APPLICAZ CODICE INTERPOLAZIONE 00202000
+C JNT=CODICE DI INTERPOLAZIONE 00203000
+C N1X=DIMENSIONI DI NBT,JNT 00204000
+C N2X=DIM DI X,Y,B 00205000
+C NS=NUMERO DI SEQUENZA DELLA SCHEDA 00206000
+C X,Y : COPPIE DI Y(X) TABULATE 00207000
+C B: PARAMETRI DEL RECORD LIST 00208000
+C PER PERMETTERE ALLOCAZIONI DINAMICHE NEL COMMON 00209000
+C SONO STATI MESSI LX ED LY ED LB: PUNTATORI DI 00210000
+C X,Y,B NEL BLANK COMMON 00211000
+C 00212000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 00213000
+ 1N1X,N2X,NS,LX,LY,LB 00214000
+C 00215000
+C ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; 00216000
+C INDEX OF THE FIRST INTERMEDIATE FILES OR READ INTERM. FILES 00217000
+ COMMON /INDX/INDX(40,200) 00218000
+C ::::::::::::::::::::::::::::::::::::::::::::::::::::: 00219000
+C THIS COMMON CONTAINS THE INPUT TABLE 00220000
+ COMMON /MIX/MIX(15,300) 00221003
+C 00222000
+C :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00223000
+C INDEX OF THE PRODUCED INTERMEDIATE FILES (OR SECOND INT. FILES 00224000
+ COMMON /INDX1/INDX1(40,200) 00225000
+C 00226000
+C :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00227000
+C THIS COMMON CONTAINS THE FIRST RECORD OF MCC2F1 PRODUCED FILE 00228000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 00229000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX 00230000
+C 00231000
+C ========================================================== 00232000
+C ========================================================== 00233000
+C ACCEPTED COMMANDS: 00234000
+C 00235000
+ REAL *8 COM(24) 00236000
+ DATA COM/8HSTOP ,8HFILE ,8HFILESHOW,8HTABLIN ,8HP1 00237000
+ 1,8HOPTION ,8HSKIPE ,8HP2 ,8HP3 ,8HP4 00238000
+ 2,8HLOADIND ,8HSAVIND ,8HINPUTSHO,8HMIXIND ,8HREW , 00239000
+ 3 8HFINE ,8HEND ,8HTITLE ,8HPART2 ,8HPART3 , 00240000
+ 4 8HPART4 ,8HMERGE ,8HMCC2F2 ,8HGO / 00241000
+C REMEMBER TO CHANGE MCOM IF YOU ADD COMMANDS !! 00242000
+C --------------------------------------------- 00243000
+C 00244000
+C FIX DIMENSION PARAMETERS: 00245000
+C 00246000
+ MNT1=4 00247000
+ MNT2=99 00248000
+C N1X=100 FIXED BY MAIN 00249000
+C N2X=2000 FIXED BY MAIN 00250000
+ MN1X=N1X 00251000
+ MN2X=N2X 00252000
+C JX=5000 LO FISSA IL MAIN 00253000
+C MX=100 LO FISSA IL MAIN 00254000
+ MJX=JX 00255000
+ MMX=MX 00256000
+ MMA=MA 00257000
+ MINDX1=40 00258000
+ MINDX2=200 00259000
+ MMIX1=15 00260000
+ MMIX2=300 00261003
+ MM=5 00262000
+ MIND11=40 00263000
+ MIND12=200 00264000
+ MOPZ1=4 00265000
+ MOPZ2=8 00266000
+ MOPZ3=10 00267000
+ MCOM=24 00268000
+C MCOM=NUMBER OF COMMANDS, (REALMENTE MAI USATO DAL PROGRAMMA) 00269000
+C 00270000
+C 00271000
+C SET ARRAYS EQUAL TO ZERO 00272000
+ CALL RIEMP(0,MA,A) 00273000
+ CALL RIEMP(0,MM,M) 00274000
+ CALL RIEMP(0,MINDX1*MINDX2,INDX) 00275000
+ CALL RIEMP(0,MMIX1*MMIX2,MIX) 00276000
+ CALL RIEMP(0,MIND11*MIND12,INDX1) 00277000
+C 00278000
+C INITIALIZE OPTION COMMON AND FILE SPECIFICATION COMMON 00279000
+ CALL TABNIZ(MNT1,MNT2,NT,MOPZ1,MOPZ2,MOPZ3,OPZ) 00280000
+C 00281000
+C CONTROL OF DIMENSION OF BLANK COMMON 00282000
+ IF(MA.LT.1) CALL ERR(8HGELIB ,10) 00283000
+C 00284000
+C ............................ LOOP ON COMMANDS 00285000
+ 10 CONTINUE 00286000
+C 00287000
+ K1=1 00288000
+ K2=1 00289000
+ K3=6 00290000
+ K4=4 00291000
+C 00292000
+ CALL COMMR(K1,NI,NO,NP,K2,C,K3,IC,K4,AC) 00293000
+C 00294000
+C LOOK FOR COMMAND 00295000
+ IF(C.EQ.COM(1).OR.C.EQ.COM(16).OR.C.EQ.COM(17)) STOP 00296000
+C ---------------------------------------------------- 00297000
+C ==GO == COMPLETE RUN : PART 1 + PART 2 + PART 3 00298000
+ IF(C.NE.COM(24)) GO TO 501 00299000
+ IC(1)=0 00300000
+ IC(2)=0 00301000
+ IC(3)=0 00302000
+ IC(4)=0 00303000
+ IC(5)=0 00304000
+ IC(6)=0 00305000
+ GO TO 124 00306000
+ 501 IF(C.NE.COM(2)) GO TO 502 00307000
+C 00308000
+C ==FILE = FILE DEFINITION : NT( )=IC( ) 00309000
+C ----------------------------------------------------- 00310000
+C 00311000
+ DO 20 I=1,MNT1 00312000
+ NT(I,IC(1))=IC(I+1) 00313000
+ 20 CONTINUE 00314000
+ GO TO 10 00315000
+C 00316000
+ 502 CONTINUE 00317000
+ IF(C.NE.COM(3)) GO TO 503 00318000
+C 00319000
+C ==FILESHOW== PRINT FILES : NT( ) 00320000
+C ------------------------------------------------------------ 00321000
+C 00322000
+ DO 25 I=1,MNT2 00323000
+ WRITE(NO,4000)I,(NT(J,I),J=1,MNT1) 00324000
+ 4000 FORMAT(' NUMBER:',I4,' LOGICAL NUMBER:',I4,' BEGINS AT RECORD:', 00325000
+ 1I4,' FIRST AVAILABLE RECORD:',I4,' POSITION:',I4) 00326000
+ 25 CONTINUE 00327000
+ GOTO 10 00328000
+ 503 CONTINUE 00329000
+ IF(C.NE.COM(4)) GO TO 504 00330000
+C 00331000
+C ==TABLIN = INPUT TABLE PART: IC(1) 00332000
+C ----------------------------------------------- 00333000
+ IF(IC(1).LE.0) IC(1)=1 00334000
+C 00335000
+ CALL RDMIX(IC(1)) 00336000
+ GO TO 10 00337000
+ 504 CONTINUE 00338000
+ IF(C.NE.COM(5)) GO TO 505 00339000
+C 00340000
+C ==P1 = P A R T O N E 00341000
+C ------------------------------------------------------ 00342000
+C READ AND SELECT ENDFB FILES, PRODUCES FIRST INTERMEDIATE FILES 00343000
+C 00344000
+ 124 CALL P1(MA,A) 00345000
+ IF(C.EQ.COM(24)) GO TO 224 00346000
+ GO TO 10 00347000
+ 505 CONTINUE 00348000
+ IF(C.NE.COM(6)) GO TO 506 00349000
+ OPZ(IC(1),IC(2),IC(3))=AC(1) 00350000
+C 00351000
+C ==OPTION = FIX CALCULATION OPTION 00352000
+C ----------------------------------------------------- 00353000
+C 00354000
+ WRITE(NO,4010) IC(1),IC(2),IC(3),AC(1) 00355000
+ 4010 FORMAT(' OPTION OPZ(',I4,',',I4,',',I4,') SET =',E12.5) 00356000
+ WRITE(NP,4010) IC(1),IC(2),IC(3),AC(1) 00357000
+ GO TO 10 00358000
+ 506 CONTINUE 00359000
+ IF(C.NE.COM(7)) GOTO 507 00360000
+C 00361000
+C ==SKIPE == SKIP MATERIALS OR FILES ON ENDFB TAPE 00362000
+C -------------------------------------------------------- 00363000
+C 00364000
+ IF(IC(1).LE.0.OR.IC(1).GT.99) GO TO 507 00365000
+ CALL SKIPE(NT(1,IC(1)),IC(2),IC(3),NDM) 00366000
+ NT(4,IC(1))=NT(4,IC(1))+NDM 00367000
+ WRITE(NO,4020) IC(1),IC(2),IC(3),NDM,(NT(J,IC(1)),J=1,MNT1) 00368000
+ WRITE(NP,4020) IC(1),IC(2),IC(3),NDM,(NT(J,IC(1)),J=1,MNT1) 00369000
+ 4020 FORMAT(' TAPE:',I5,' MF:',I5,' MT:',I5,' RECORDS:', 00370000
+ 1 I5,' TAPE DESC:',(1X,4I6)) 00371000
+ GO TO 10 00372000
+ 507 CONTINUE 00373000
+C 00374000
+ IF(C.NE.COM(8)) GO TO508 00375000
+C 00376000
+C ==P2 == P A R T T W O 00377000
+C COMPUTATIONS AND PRODUCTION OF SECOND INTERMEDIATE FILES 00378000
+C --------------------------------------------------------------- 00379000
+C 00380000
+C FORCES P2 TO REWIND ALL FILES 00381000
+ CALL FORCRW 00382000
+C 00383000
+ CALL P2(MA,A) 00384000
+ GO TO10 00385000
+ 508 CONTINUE 00386000
+ IF(C.NE.COM(9)) GO TO 509 00387000
+C ==P3 == P A R T T H R E E 00388000
+C WRITES MC2-2 LIBRARY FILES 00389000
+C -------------------------------------------------------- 00390000
+C 00391000
+C FORCES P3 TO REWIND ALL FILES 00392000
+ CALL FORCRW 00393000
+C 00394000
+C TO P3 AND P4 ALL THE BLANK COMMON IS MADE AVAILABLE,THEY DO 00395000
+C NOT USE /RECS/ E /DENS/ COMMONS OF SLAVE3 ROUTINES 00396000
+ MAXXA=MAXA+MA 00397000
+ CALL P3(MAXXA,ADD(1),MIND11,MIND12,INDX1) 00398000
+ GOTO 10 00399000
+ 509 CONTINUE 00400000
+ IF(C.NE.COM(10)) GOTO510 00401000
+C 00402000
+C ==P4 == P A R T F O U R 00403000
+C DISMOUNT A FILE OF THE MC2-2 LIBRARY 00404000
+C -------------------------------------------------------- 00405000
+C 00406000
+C FORCES P4 TO REWIND ALL FILES 00407000
+ CALL FORCRW 00408000
+C 00409000
+C A P3 E P4 VIENE PASSATO TUTTO IL BLANK COMMON,NON USANO 00410000
+C /RECS/ E /DENS/ DI SLAVE3 00411000
+ MAXXA=MAXA+MA 00412000
+ CALL P4(MAXXA,ADD(1) ) 00413000
+ GOTO10 00414000
+ 510 CONTINUE 00415000
+ IF(C.NE.COM(11)) GO TO511 00416000
+C 00417000
+C ==LOADIND == FILL /INDX/ OR /INDX1/ COMMON WITH INDEXOF INT.FILE 00418000
+C ------------------------------------------------------------- 00419000
+C 00420000
+C M(I) :DIMENSION OF INDEX :I=1 FOR FIRST INTERMEDIATE FILES 00421000
+C :I=4 FOR SECOND INTERMEDIATE FILES00422000
+C IC(2):UNIT TO BE READ : =2 FOR FIRST INTERMEDIATE FILES 00423000
+C : =3 FOR SECOND INTERMEDIATE FILES 00424000
+ IF(IC(1).LE.0) IC(1)=1 00425000
+ K=1 00426000
+ IF(IC(1).EQ.2) K=2 00427000
+ IF(IC(2).LE.0) IC(2)=1+K 00428000
+ IF(K.EQ.1) CALL LOADIN(M(2),IC(2),IC(3),IC(4),MINDX1,MINDX2,INDX)00429000
+ IF(K.EQ.2)CALL LOADIN(M(4),IC(2),IC(3),IC(4),MIND11,MIND12,INDX1)00430000
+ GOTO10 00431000
+ 511 CONTINUE 00432000
+ IF(C.NE.COM(12)) GOTO512 00433000
+C 00434000
+C ==SAVIND == SAVE /INDX/ OR /INDX1/ ON FILE 00435000
+C ----------------------------------------------------------- 00436000
+C 00437000
+ K=IC(1) 00438000
+ IF(K.LE.0) K=1 00439000
+ KK1=IC(2) 00440000
+ IF(IC(2).GT.0) GO TO 100 00441000
+ KK1=2 00442000
+ IF(K.EQ.2) KK1=3 00443000
+ 100 CONTINUE 00444000
+ IF(K.EQ.1) CALL SAVI(KK1,MINDX1,M(2),INDX) 00445000
+ IF(K.EQ.2) CALL SAVI(KK1,MIND11,M(4),INDX1) 00446000
+ GO TO 10 00447000
+ 512 CONTINUE 00448000
+ IF(C.NE.COM(13)) GO TO 513 00449000
+C 00450000
+C ==INPUTSHO== PRINT INPUT TABLE 00451000
+C ---------------------------------------------------- 00452000
+C 00453000
+ IF(IC(1).LE.0) IC(1)=1 00454000
+ NOOO=IC(2) 00455000
+ IF(NOOO.LT.1) NOOO=6 00456000
+ NOOO=NT(1,NOOO) 00457000
+ CALL MIXSHO(IC(1),NOOO) 00458000
+ GOTO 10 00459000
+ 513 CONTINUE 00460000
+ IF(C.NE.COM(14))GO TO 514 00461000
+C 00462000
+C ==MIXIND == EDITOR OF THE INDEX IN /INDX/ /INDX1/ OR A(.) 00463000
+C ----------------------------------------------------------------00464000
+C 00465000
+ IF(IC(1).LE.0) IC(1)=1 00466000
+ K=2 00467000
+ IF(IC(1).EQ.2) K=4 00468000
+ IF(K.EQ.2) CALL MIXIND(M(2),MINDX1,MINDX2,INDX) 00469000
+ IF(K.EQ.4)CALL MIXIND(M(4),MIND11,MIND12,INDX1) 00470000
+ MAAA=MA/MINDX1 00471000
+ IF(K.EQ.20) CALL MIXIND(M(2),MINDX1,MAAA,ADD(1)) 00472000
+ IF(K.EQ.40) CALL MIXIND(M(4),MIND11,MAAA,ADD(1)) 00473000
+ GOTO10 00474000
+ 514 CONTINUE 00475000
+ IF(C.NE.COM(15) ) GO TO 515 00476000
+C 00477000
+C ==REW == REWIND FILE 00478000
+C --------------------------------------------------- 00479000
+C 00480000
+ IF(IC(1).LE.0) GO TO 10 00481000
+ CALL REW(IC(1)) 00482000
+ GO TO 10 00483000
+ 515 CONTINUE 00484000
+ IF(C.NE.COM(18)) GO TO 516 00485000
+C 00486000
+C ==TITLE == READ AND PRINT A TITLE CARD 00487000
+C --------------------------------------------------- 00488000
+C 00489000
+ READ(NI,6000) (TITL(J),J=1,20) 00490000
+ 6000 FORMAT(20A4) 00491000
+ WRITE(NO,6000) (TITL(J),J=1,20) 00492000
+ GO TO 10 00493000
+ 516 CONTINUE 00494000
+ IF(C.NE.COM(19)) GO TO 517 00495000
+C 00496000
+C P A R T T W O (FOR A GREAT NUMBER OF MATERIALS00497000
+C ==PART2 == A STEP FOR EACH MATERIAL(REORDERING MATERIALS)00498000
+C ----------------------------------------------------------------00499000
+C 00500000
+ 224 CONTINUE 00501000
+C FORCES P2 TO REWIND ALL FILES 00502000
+ CALL FORCRW 00503000
+C 00504000
+C INPUT INDEX FILE 00505000
+ NTAP=2 00506000
+ IF(IC(2).GT.0.AND.IC(2).LE.99) NTAP=IC(2) 00507000
+C SCRATCH FILE FOR INDEX 00508000
+ NTAP0=1 00509000
+ IF(IC(1).GT.0.AND.IC(1).LE.99) NTAP0=IC(1) 00510000
+C NTP=NT(1,NTAP) 00511000
+C NTP0=NT(1,NTAP0) 00512000
+C 00513000
+ LKMA=MA/MINDX1 00514000
+ K0=0 00515000
+ K1=1 00516000
+ CALL LOADIN(MIND,NTAP,K1,K0,MINDX1,LKMA,A) 00517000
+ LIMIT=MINDX1*MIND+1 00518000
+ CALL ORDMD(35,KB,MINDX1,MIND,A,A(LIMIT)) 00519000
+C IN A(LIMIT) INDEX OF INDEX: A8:NOME,INIZIO,DIMENSIONE 00520000
+ IF(4*KB.GT.MA-LIMIT) CALL ERR(8HGELIB ,516) 00521000
+ CALL REW(NTAP0) 00522000
+C 00523000
+ DO 56 I=1,KB 00524000
+C BEGINNING OF MATERIAL 00525000
+ LNKKK=4*(I-1)+LIMIT-1 00526000
+ NK1=NAREAL(A(LNKKK+3)) 00527000
+C DIMENSION OF INDEX OF MATERIAL 00528000
+ NK2=NAREAL(A(LNKKK+4)) 00529000
+C LAST VALUE OF MATERIAL 00530000
+ NK3=NK1+NK2-1 00531000
+ CALL SAVI(NTAP0,MINDX1,NK2,A((NK1-1)*MINDX1+1)) 00532000
+ WRITE(NP,9016) NTAP0,A(LNKKK+1),A(LNKKK+2), 00533000
+ 1 NK1,NK3 00534000
+ 9016 FORMAT(' WRITTEN ON TAPE:',I5,' INDEX OF:',2A4,' FROM:',I5, 00535000
+ 1 ' TO:',I5) 00536000
+ 56 CONTINUE 00537000
+ CALL REW(NTAP0) 00538000
+ DO 57 I=1,KB 00539000
+ CALL LOADI1(M(2),NTAP0,MINDX1,MINDX2,INDX) 00540000
+ CALL P2(MA,A) 00541000
+ 57 CONTINUE 00542000
+ IF(C.EQ.COM(24)) GO TO 324 00543000
+ GO TO 10 00544000
+ 517 CONTINUE 00545000
+ IF(C.NE.COM(20)) GO TO 518 00546000
+C 00547000
+C P A R T T H R E E ( FOR A GRAT NUMBER OF MATERIALS )00548000
+C ==PART3 == INDEX STORED IN ADD(.) (BLANK COMMON) 00549000
+C ----------------------------------------------------------------00550000
+C 00551000
+ 324 CONTINUE 00552000
+C FORCES P3 TO REWIND ALL FILES 00553000
+ CALL FORCRW 00554000
+C 00555000
+ K1=3 00556000
+C TAPE 00557000
+ IF(IC(1).GT.0) K1=IC(1) 00558000
+C 00559000
+ K2=1 00560000
+C POSITION IN ADD(.) 00561000
+ IF(IC(2).GT.0) K2=IC(2) 00562000
+ K3=0 00563000
+C NUMBER OF INDEX IN FILE (IF 0 => ALL FILE LOADED) 00564000
+ IF(IC(3).GT.0) K3=IC(3) 00565000
+C 00566000
+ MIND13=(MAXA+MA)/MIND11 00567000
+ CALL LOADIN(M(4),K1,K2,K3,MIND11,MIND13,ADD(1)) 00568000
+C CARICA IN A L'INDICE 00569000
+ 200 MAXXA=MAXA+MA-M(4)*MIND11 00570000
+ IF(MAXXA.LE.0) CALL ERR(8HGELIB ,517) 00571000
+ LIMIT=M(4)*MIND11+1 00572000
+ MMM11=M(4) 00573000
+ CALL P3(MAXXA,ADD(LIMIT),MIND11,MMM11,ADD(1)) 00574000
+ GO TO 10 00575000
+ 518 CONTINUE 00576000
+ IF(C.NE.COM(21)) GO TO 519 00577000
+C 00578000
+C ==PART4 == P A R T F O U R (ALL MC2-2 FILES) 00579000
+C DISMOUNT THE WHOLE MC2-2 LIBRARY 00580000
+C -------------------------------------------------------- 00581000
+C 00582000
+C FORCES P4 TO REWIND ALL FILES 00583000
+ CALL FORCRW 00584000
+C 00585000
+ MAXXA=MAXA+MA 00586000
+ IC(1)=0 00587000
+ IC(2)=0 00588000
+ IC(3)=0 00589000
+ CALL P4(MAXXA,ADD(1)) 00590000
+ GO TO 10 00591000
+ 519 CONTINUE 00592000
+ IF(C.NE.COM(22)) GO TO 520 00593000
+C 00594000
+C ==MERGE == MERGING OF NEW AND OLD MC2-2 LIBRARY 00595000
+C --------------------------------------------------------------- 00596000
+C 00597000
+ MIND13=MAXA+MA/MIND11 00598000
+ K1=1 00599000
+ IF(AC(1).GT.0.) K1=AC(1) 00600000
+ ICTOT=0 00601000
+ K0=0 00602000
+C .... LOOP SUI POSSIBILI IC(.) 6 IC IN TOTALE IN /COMM/ 00603000
+ DO 58 I=1,6 00604000
+ IF(IC(I).LE.0) GO TO 58 00605000
+ ICTOT=ICTOT+1 00606000
+ NTPK=IC(I) 00607000
+ CALL LOADIN(M(4),NTPK,K1,K0,MIND11,MIND13,ADD(1)) 00608000
+ K1=M(4)+1 00609000
+ 58 CONTINUE 00610000
+ IF(ICTOT.GT.0) GO TO 220 00611000
+C DEFAULT : READ FROM 3 AND 4 00612000
+ NTPK=3 00613000
+ CALL LOADIN(M(4),NTPK,K1,K0,MIND11,MIND13,ADD(1)) 00614000
+ NTPK=4 00615000
+ K1=M(4)+1 00616000
+ CALL LOADIN(M(4),NTPK,K1,K0,MIND11,MIND13,ADD(1)) 00617000
+ 220 GO TO 200 00618000
+ 520 CONTINUE 00619000
+ IF(C.NE.COM(23)) GO TO 521 00620000
+C 00621000
+C ==MCC2F2 = WRITES MCC2F2 FILE CONTAINING TABULATED DATA 00622000
+C ----------------------------------------------------------------00623000
+C 00624000
+ NTPE=IC(1) 00625000
+ IF(NTPE.LE.0) NTPE=52 00626000
+C IC(1)=NTPE=OUTPUT FILE 00627000
+ CALL FTABLE(NTPE,NO,NP,MA,A) 00628000
+ GO TO 10 00629000
+ 521 CONTINUE 00630000
+C ------------------------------------- 00631000
+C 00632000
+C YOU CAN INSERT HERE NEW COMMANDS ! 00633000
+C 00634000
+C ------------------------------------- 00635000
+C 00636000
+ 500 CONTINUE 00637000
+ WRITE(NO,5000) C,IC,AC 00638000
+ 5000 FORMAT(' !!!!!!!!!!!! WARNING! COMMAND NOT RECOGNIZED. IT IS', 00639000
+ 1' IGNORED!!:'/1X,A8,6I4,4E12.5) 00640000
+ WRITE(NP,5000) C,IC,AC 00641000
+ GO TO 10 00642000
+C 00643000
+ END 00644000
+ SUBROUTINE TABNIZ(MNT1,MNT2,NT,MOPZ1,MOPZ2,MOPZ3,OPZ) 00645000
+C ****************************************************** 00646000
+C 00647000
+C INITIALIZE OPTION COMMON AND FILE DESCRIPTION 00648000
+C 00649000
+C ****************************************************** 00650000
+C 00651000
+ DIMENSION NT(MNT1,MNT2),OPZ(MOPZ1,MOPZ2,MOPZ3) 00652000
+C 00653000
+C INITIALIZE FILE DESCRIPTORS 00654000
+ DO 10 I=1,MNT2 00655000
+ NT(1,I)=I 00656000
+ NT(2,I)=1 00657000
+ NT(3,I)=1 00658000
+ NT(4,I)=1 00659000
+ 10 CONTINUE 00660000
+C 00661000
+C INITIALIZE OPTION MATRIX 00662000
+C OPTION MATRIX HAS THREE DIMENSIONS; 00663000
+C THE FIRST INDEX MEANS THE PART OF THE CODE(1=READING OF ENDFB, 00664000
+C 2=CALCULATIONS , 3= MC2-2 LIBRARY PRODUCTION, 4=MC2-2 LIBRARY 00665000
+C DISMOUNTING) 00666000
+C THE SECOND INDEX THE ENDFB FILE (FOR THE FIRST PART OF THE CODE)00667000
+C OR THE MC2-2 LIBRARY FILE (FOR PARTS 2-3-4 OF THE CODE) 00668000
+C THE THIRD INDEX IS THE OPTION NUMBER 00669000
+C 00670000
+ CALL RIEMP(0.,MOPZ1*MOPZ2*MOPZ3,OPZ) 00671000
+C 00672000
+C PRINT OPTIONS : ( ALL ARE SET = 0 ) 00673000
+C THE PRINT FLAGS OPZ(.,.,1) FIX THE AMOUNT OF PRINTED OUTPUT. 00674000
+C IF THE FLAG HAS A GRAT VALUE A LOT OF OUTPUT IS PRODUCED. 00675000
+C ALL OPTIONS OPZ(.,.,1) WITH LAST INDEX=1 ARE PRINT OPTIONS 00676000
+C 00677000
+C REQUESTED PRECISION WHEN FISSION SPECTRUM REPRESENTATION 00678000
+C FOR SECONDARY ENERGY DISTRIBUTION IS TO BE TRASFORMED 00679000
+C INTO TABULATED DATA. ( 1 % ) 00680000
+ OPZ(1,5,2)=0.01 00681000
+C REQUESTED PRECISION IN LINEARIZATION OF TABULATED CROSS 00682000
+C SECTIONS FOR THE DOPPLER BROADENING OF THE TABULATED CROSS 00683000
+C SECTIONS ( IF .LE. 0 , NO TABULATED CROSS SECTIONS DOPPLER 00684000
+C BROADENING IS PERFORMED) 00685000
+C OPZ(2,1,5)=0.0 00686000
+C PRECISION OF LINEARIZATION FOR DOPPLER BROADENING OF RESOLVED 00687000
+C RESONANCE CROSS SECTION WITH THE CULLEN'S METHOD 00688000
+C (IF .LE.0 , THIS METHOD IS NOT USED ) 00689000
+C OPZ(2,1,6)=0.0 00690000
+C PRECISION OF LINEARIZATION FOR DOPPLER BROADENING OF UNRESOLVED00691000
+C RESONANCE CROSS SECTION WITH THE CULLEN'S METHOD 00692000
+C (IF .LE.0 , THIS METHOD IS NOT USED ) 00693000
+C OPZ(2,1,7)=0.0 00694000
+C WHEIGHT FUNCTION FOR MULTIGROUP RESOLVED RESONANCE COMPUTATION 00695000
+C IF .LT.1 ,AN 1/E WEIGHT IS USED; 00696000
+C IF .GE.1 , A COSTANT WEIGHT IS USED 00697000
+ OPZ(2,1,8)=2. 00698000
+C INTERPOLATION LAW FOR MULTIGROUP RESOLVED RESONANCE CROSS 00699000
+C SECTION COMPUTATION: 00700000
+C IF .LE.2 - LINEAR INTERPOLATION 00701000
+C IF .EQ.3 - SIGMA LINEAR IN LOG(E) IS ASSUMED 00702000
+C IF .GT.3 - LOG(SIGMA) LINEAR IN LOG(E) IS ASSUMED 00703000
+ OPZ(2,1,10)=1. 00704000
+C NUMBER OF ENERGY POINT AT WHICH UNRESOLVED RESONANCE CROSS 00705000
+C SECTIONS ARE COMPUTED FOR ENERGY-ENDEPENDENT RESONANCE 00706000
+C PARAMETERS 00707000
+ OPZ(2,3,2)=15. 00708000
+C MASS OPTION FOR RESOLVED RESONANCE: 00709000
+C (IF MASS.GT.OPZ RESONANCE PARAMETER 00710000
+C ARE INCLUDED IN THE MC2-2 LIBRARY AND RESONANCE CROSS SECTIONS 00711000
+C ARE NOT INCLUDED IN MULTIGROUP CROSS SECTIONS) 00712000
+ OPZ(2,3,5)=100. 00713000
+C NUMBER OF NEIGHBOURING RESONANCE FOR WHICH OVERLAP IS CONSIDERED00714000
+C FOR UNRESOLVED RESONANCE COMPUTATION 00715000
+C OPZ(2,3,2)=0. 00716000
+C INTERPOLATION LAW FOR UNRESOLVED RESONANCE MULTIGROUP CROSS SECT00717000
+C IF .LE.2 - LINEAR INTERPOLATION 00718000
+C IF .EQ.3 - SIGMA LINEAR IN LOG(E) IS ASSUMED 00719000
+C IF .GT.3 - LOG(SIGMA) LINEAR IN LOG(E) IS ASSUMED 00720000
+ OPZ(2,3,9)=1. 00721000
+C WHEIGHT FUNCTION FOR MULTIGROUP RESOLVED RESONANCE COMPUTATION 00722000
+C IF .LT.1 ,AN 1/E WEIGHT IS USED; 00723000
+C IF .GE.1 , A COSTANT WEIGHT IS USED 00724000
+ OPZ(2,3,10)=2. 00725000
+C IF GT.0 RESOLVED RESONANCE OUT OF ENERGY RANGE ARE INCLUDED 00726000
+C IN RESONANCE PARAMETERS FILE OF MC2-2 LIBRARY 00727000
+C OPZ(2,4,2)=-3. 00728000
+C IF GT.0 GAMMA COMPETITIVE IS INCLUDED IN NEUTRON WIDTH 00729000
+C IF .GT.1 GAMMA COMPETITIVE IS INCLUDED IN TOTLA WIDTH 00730000
+C OPZ(2,4,3)=0. 00731000
+C IN THE BREIT-WIGNER INTERFERENCE TERM FOR THE R-RESONANCE 00732000
+C THE S-RESONANCE FOR WHICH: 00733000
+C (GAMM S + GAMM R).LT.(ER-ES)*THIS PARAMETER 00734000
+C ARE INCLUDED 00735000
+ OPZ(2,4,6)=100000. 00736000
+C 00737000
+C 00738000
+C DEFAULTS GROUP STRUCTURE 00739000
+C TOP ENERGY 00740000
+ OPZ(2,5,2)=1.4190675E+7 00741000
+C LETARGY WIDTH 00742000
+ OPZ(2,5,3)=1./120. 00743000
+C NUMBER OF GROUPS 00744000
+ OPZ(2,5,4)=2082. 00745000
+C MASS OPTION 00746000
+C (IF MASS.GT.OPZ RESONANCE PARAMETER 00747000
+C ARE INCLUDED IN THE MC2-2 LIBRARY AND RESONANCE CROSS SECTIONS 00748000
+C ARE NOT INCLUDED IN MULTIGROUP CROSS SECTIONS) 00749000
+ OPZ(2,5,5)=100. 00750000
+C RESOLVED RESONANCE MORE FAR THAN THIS NUMBER MULTIPLIED BY THE 00751000
+C RESONANCE WIDTH ARE NOT INCLUDED IN THE MULTIBROUP RESONANCE 00752000
+C CALCULATION FOR THE ENERGY POINT 00753000
+ OPZ(2,5,7)=10.E+6 00754000
+C 00755000
+C PRECISION USED IN THE GENERATION OF LINEAR-INTERPOLABLE 00756000
+C RESONANCE CROSS SECTIONS , IN THE CALCULATION OF RESOLVED 00757000
+C RESONANCE CROSS SECTIONS. ( 1 % IS USED ) 00758000
+ OPZ(2,5,9)=0.01 00759000
+C SECONDARY ENERGY DISTRIBUTION ARE NOT INCLUDED IN 00760000
+C MC2-2 LIBRARY FILES FOR ENERGY GROUPS IN WHICH THE ANELASTIC 00761000
+C OR N,2N IS LESS THAN THIS VALUE. 00762000
+C OPZ(2,6,3)=0. 00763000
+C IF .GT.0 THE CHI VALUE IS AVERAGED OVER ENERGY AND NO ENERGY 00764000
+C DEPENDENT CHI IS PRODUCED (THIS VALUE MUST BE .GT.0 ) 00765000
+ OPZ(2,7,2)=10. 00766000
+C LOWER AND UPPER ENERGY LIMIT (EV) OF THE ENERGY RANGE OVER WHICH 00767000
+C THE CHI VALUES ARE AVERAGED 00768000
+ OPZ(2,7,3)= 1000. 00769000
+ OPZ(2,7,4)=600000. 00770000
+C 00771000
+C NUMBER OF ENERGY GROUP FOR EACH BLOCK OF LEGENDRE COMPONENT 00772000
+C DATA IN MC2-2 LIBRARY 00773000
+ OPZ(2,8,2)=126. 00774000
+C MAXIMUM NUMBER OF LEGENDRE EXPANSION COEFFICIENTS 00775000
+C COMPUTED FROM TABULATED DATA 00776000
+ OPZ(2,8,3)=20. 00777000
+C PERCENTUAL PRECISION IN THE COMPUTATION OF LEGENDRE EXPANSION 00778000
+C COEFFICIENTS FROM TABULATED DATA 00779000
+ OPZ(2,8,4)=1. 00780000
+C IF .GT.0 NO TOTAL CROSS SECTION IS COMPUTED 00781000
+C OPZ(3,5,2)=0. 00782000
+C LOGICAL NUMBER OF THE UNIT ON WHICH MULTIGROUP DATA ARE WRITTEN 00783000
+C TO BE READ BY A GRAPHIC ROUTINE. 00784000
+C IF .LE.0. NO OUTPUT IS PRODUCED FOR PLOTTING 00785000
+C OPZ(3,5,9)=0. 00786000
+C ORDER OF LEGENDRE POLINOMIAL FOR THE COMPUTATION OF THE TLJ 00787000
+C MATRIX IN THE MC2-2 LIBRARY FILE :MCC2F8 00788000
+ OPZ(3,8,2)=9. 00789000
+C 00790000
+C 00791000
+C 00792000
+ RETURN 00793000
+ END 00794000
+ SUBROUTINE FORCRW 00795000
+C ************************************* 00796000
+C FORCES REWIND OF ALL FILES BY THE READING ROUTINES. 00797000
+C IT SAYS TO THE ROUTINES THAT THE FILE POINTER IS 00798000
+C AT THE END OF THE FILE. (NT(4,.) IS AS GREAT AS POSSIBLE) 00799000
+C 00800000
+C THIS ROUTINE IS CALLED BY GELIB AND HAS BEEN INSERTED 00801000
+C TO AVOID PROBLEMS ARISEN IS SOME VERY RARE SITUATIONS 00802000
+C ******************************************************* 00803000
+C 00804000
+ COMMON /FILES/NT(4,99) 00805000
+ DO 10 I=1,99 00806000
+ 10 NT(4,I)=2147483647 00807000
+ RETURN 00808000
+ END 00809000
+ SUBROUTINE P1(MA,NA) 00810000
+C ***************************** 00811000
+C 00812000
+C READS ENDFB OR JEF FILES AND WRITES SELECTED SECTIONS ON 00813000
+C FIRST INTERMEDIATE FILES. IT WRITES AN INDEX OF THESE FILES. 00814000
+C THE INPUT TABLE DEFINES THE SECTIONS TO BE SELECTED. 00815000
+C CALLS SUBROUTINES P1F1,P1F2,P1F3,P1F4,P1F5. DEPENDING ON 00816000
+C THE ENDFB TAPE TO BE READ. 00817000
+C 00818000
+C ****************************** 00819000
+C 00820000
+ DIMENSION NA(3,MA) 00821000
+C SPACE NA IS USED FOR INDEX OF INPUT TABLE. 00822000
+C 00823000
+ DATA T/0.0/ 00824000
+C 00825000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 00826000
+ 1N1X,N2X,NS,LX,LY,LB 00827000
+C 00828000
+ COMMON/OPZIO/ OPZ(4,8,10) 00829000
+C 00830000
+ COMMON/DIM/M(5) 00831000
+ EQUIVALENCE (M(1),MX) 00832000
+C 00833000
+ COMMON/INDX/INDX(40,200) 00834000
+C 00835000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 00836000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 00837000
+C 00838000
+ COMMON/MIX/MIX(15,300) 00839003
+C 00840000
+ COMMON/FILES/NT(4,99) 00841000
+ EQUIVALENCE(NO,NT(1,6)),(NI,NT(1,5)),(NP,NT(1,11)) 00842000
+C 00843000
+ LIMITA=3*MMIX2+1 00844000
+ LIM=MMIX2+1 00845000
+ MAA=MA-LIMITA 00846000
+ IF(LIMITA.GT.MA) CALL ERR(8HP1 ,0) 00847000
+ IF(M(2).LT.0) M(2)=0 00848000
+C M(2) IS THE DIMENSION OF THE INDEX OF THE INTERMEDIATE FILES 00849000
+C THE INDEX IS CREATED BY THIS ROUTINE 00850000
+C CONTROL ON INPUT TABLE DIMENSION (MIX) (IN M(1)=MX): 00851000
+C IF MIX MATRIX IS EMPTY USES DEFAULT INPUT TAPE: (TAPE 8 MODE 3) 00852000
+C BUT NUCLIDE NAMES CANNOT BE SUPPLIED, SO THAT PART 2 OF THE 00853000
+C CODE CAN NOT RECOGNIZE DIFFERENT MATERIALS AND PART 3 WILL NOT 00854000
+C INSERT MATERIALS IN MC2-II LIBRARIES 00855000
+ IF(MX.GT.0) GO TO 100 00856000
+C GO TO READ INPUT TAPE 00857000
+C DESCRIBES TAPE 8 TO BE READ WITH A BLANK MIX MATRIX (INPUT TABLE00858000
+ WRITE(NP,9000) 00859000
+ WRITE(NO,9000) 00860000
+ 9000 FORMAT(' WARNING! NO INPUT TABLE HAS BEEN SUPPLIED FOR PART ', 00861000
+ 1 'ONE OF THE CODE') 00862000
+ MX=1 00863000
+ DO 5 I=1,MMIX1 00864000
+ 5 MIX(I,1)=0 00865000
+ MIX(3,1)=8 00866000
+ MIX(4,1)=3 00867000
+ 100 CONTINUE 00868000
+C 00869000
+C ORDERS MIX(MMIX1,MX) PER VALORI DELLA RIGA 3 ( DD TAPES IN) 00870000
+C NA(3,KX) E L INDICE DI MIX ORDINATO PER NUMERI DI DD IN 00871000
+C NA(1)=VALORE ; NA(2)= INIZIO VALORE ; NA(3)= LUNGHEZZA VALORE 00872000
+C KX= NUMERO DI DIVERSI VALORI DELLA RIGA 4 DI MIX 00873000
+C 00874000
+ CALL ORDM(3,KX,MMIX1,MX,MIX,NA) 00875000
+C 00876000
+ CALL MIXSHO(1,NO) 00877000
+ CALL MIXSHO(1,NP) 00878000
+ IF(KX.LE.0) CALL ERR(8HP1 ,100) 00879000
+C ..................................... LOOP ON TAPES INPUT 00880000
+ DO 20 I=1,KX 00881000
+ NTEND=NA(1,I) 00882000
+ NTE=NT(1,NTEND) 00883000
+ NIN=NA(2,I) 00884000
+ NSK=NA(3,I) 00885000
+ NFI=NA(2,I)+NSK-1 00886000
+ MODE=MIX(4,NIN) 00887000
+C 00888000
+C CONTROLLO DI CONSISTENZA DEL PARAMETRO MODE 00889000
+C 00890000
+ DO 50 IJ=NIN,NFI 00891000
+C 00892000
+ IF(MODE.NE.MIX(4,IJ)) WRITE(NO,2000)MODE,(MIX(J,IJ),J=1,MMIX1) 00893000
+ IF(MODE.NE.MIX(4,IJ)) WRITE(NP,2000)MODE,(MIX(J,IJ),J=1,MMIX1) 00894000
+ 2000 FORMAT(' WARNING! ENDFB TAPE TTPE:',I5,' DESCRIBED BY WRONG 00895000
+ 1INPUT CARD:'/1X,2A4,8I5,5E12.5) 00896000
+ 50 CONTINUE 00897000
+ IF(MODE.LT.1.OR.MODE.GT.3) MODE=3 00898000
+C IL DEFAULT E PERO GIA MESSO NELLA LETTURA RDMIX 00899000
+C 00900000
+C POSIZIONA TAPE DI INPUT 00901000
+ CALL REW(NTEND) 00902000
+C 00903000
+ WRITE(NP,2501)NTEND,MODE,T 00904000
+ WRITE(NO,2500)NTEND,MODE,T 00905000
+ 2500 FORMAT(' ENDFB FILE READ : FILE NUMBER:',I4,' TYPE:',I4, 00906000
+ 1' TEMPERATURE:',E12.5) 00907000
+ 2501 FORMAT(' ENDFB FILE READ: FILE NUMBER:',I3,' TYPE:',I2, 00908000
+ 1' TEMPERATURE:',E12.5) 00909000
+C 00910000
+C LETTURA PRIMO RECORD DEL TAPE 00911000
+ CALL RECTPI(NTE,MODE,NO) 00912000
+C 00913000
+C LOOP SUI RECORDS DEL TAPE DA LEGGERE 00914000
+C READS ALL THE SPECIFIED TAPE. FOR EACH SECTION CONTROL IF 00915000
+C FLAGS :MAT,MF,MT MATCH SOME VALUE IN MIX MATRIX (INPUT TABLE) 00916000
+C 00917000
+ 60 CONTINUE 00918000
+C ..........................................LOOP ON SECTIONS 00919000
+ CALL RREC(1,NTE,MODE,T) 00920000
+C LEGGE RECORD HEAD 00921000
+ IF(.NOT.(MAT.EQ.-1 .AND.MT.EQ.0.AND.MF.EQ.0)) GO TO 610 00922000
+C PER FINE TAPE (TEND RECORD ENCOUNTERED) 00923000
+ 605 CONTINUE 00924000
+ WRITE(NO,3000) NTEND,NTE 00925000
+ WRITE(NP,3000) NTEND,NTE 00926000
+ 3000 FORMAT(' END OF ENDFB FILE',I7,' LOGICAL UNIT NUMBER:',I5) 00927000
+ GOTO 200 00928000
+C A LOOP DEI TAPES O DI MIX 00929000
+ 610 CONTINUE 00930000
+C 00931000
+C ANALISI DEL RECORDS 00932000
+C 00933000
+ IF(MF.GT.5) GOTO 700 00934000
+ IF(MT.LE.0) GO TO 60 00935000
+C SI TRATTA DI UN SEND RECORD 00936000
+ IF(MAT.LE.0) GO TO 60 00937000
+C SI TRATTA DI UN MEND RECORD 00938000
+ IF(MF.LE.0) GO TO 60 00939000
+C SI TRATTA DI UN FEND 00940000
+C 00941000
+C 00942000
+C HERE A HEAD RECORD MUST BE FOUND OR YOU CAN HAVE 00943000
+C ERRORS FOR THE WRONG FORMAT OF THE NEXT READ 00944000
+C LOOP ON INPUT TABLE OF THE TAPE TO SEE IF MAT,MT IS TO BE TAKEN 00945000
+C ................................. LOOP ON MIX OF THE TAPE 00946000
+C 00947000
+ DO 70 K=NIN,NFI 00948000
+C TEST ON MF( SE #0,#MF NON LO TRATTA) 00949000
+ IF(MIX(7,K).NE.0.AND.MIX(7,K).NE.MF) GO TO 70 00950000
+C TEST ON MAT 00951000
+ IF(MIX(6,K).NE.0.AND.MIX(6,K).NE.MAT) GO TO 70 00952000
+C IF ARRIVE HERE MAT,MT IS TO BE TAKEN 00953000
+C TEST ON MT (SECTION ) 00954000
+ IF(MIX(8,K).GT.0.AND.MIX(8,K).NE.MT)GO TO 70 00955000
+ IF(MF.GT.5) GO TO 700 00956000
+ GO TO (701,702,703,704,705),MF 00957000
+C ---------------- ONLY FILES 1-5 USED BY MC2-2 LIBRARY ------- 00958000
+ 701 CALL P1F1(MMIX1,MIX(1,K),MAA,NA(1,LIM)) 00959000
+ GO TO 60 00960000
+ 702 CALL P1F2(MMIX1,MIX(1,K),MAA,NA(1,LIM)) 00961000
+ GO TO 60 00962000
+ 703 CALL P1F3(MMIX1,MIX(1,K),MAA,NA(1,LIM)) 00963000
+ GO TO 60 00964000
+ 704 CALL P1F4(MMIX1,MIX(1,K),MAA,NA(1,LIM)) 00965000
+ GO TO 60 00966000
+ 705 CALL P1F5(MMIX1,MIX(1,K),MAA,NA(1,LIM)) 00967000
+ GOTO 60 00968000
+ 70 CONTINUE 00969000
+ 700 CONTINUE 00970000
+C 00971000
+C IF HERE MAT,MF ARE NOT TO BE TAKEN , SECTION IS SKIPPED. 00972000
+C SINGLE SECTIONS ARE SKIPPED,NOT FILE OR MATERIALS. 00973000
+C 00974000
+C 00975000
+ CALL SKIPS(MODE,NTE,1,STMP,NO) 00976000
+C 00977000
+ GO TO 60 00978000
+C GO TO READ NEXT HEAD RECORD 00979000
+ 200 CONTINUE 00980000
+C HERE WHEN THE ENDFB TAPE ENDS 00981000
+C 00982000
+ IF(M(2).LE.0) GO TO 20 00983000
+C SAVE INDX ON TAPE NT(1 ). AL PRIMO POSTO LIBERO. 00984000
+ WRITE(NP,9050) M(2) 00985000
+ 9050 FORMAT(1X,I7,' VECTORS OF INDEX MATRIX SCRATCHED ON UNIT 2 ') 00986000
+ CALL POSL(2) 00987000
+ CALL SAVI(2,MINDX1,M(2),INDX) 00988000
+ M(2)=0 00989000
+C 00990000
+C .................END OF THE LOOP ON TAPES OF INPUT TABLE. 00991000
+ 20 CONTINUE 00992000
+C 00993000
+ RETURN 00994000
+ END 00995000
+ SUBROUTINE P1F1(MMM,N,MAAA,SPAZ) 00996000
+C *************************** 00997000
+C 00998000
+C READS FILE1 ENDFB ANDE SELECT MAT SECTIONS 00999000
+C HERE MAT,MF AND THE HEAD RECORD OF MT TO READ IS IN /RECS/ 01000000
+C IN N IS THE INPUT CARD (MIX) OF THE TAPE BEING READ. 01001000
+C 01002000
+C ******************************* 01003000
+C 01004000
+ DIMENSION N(MMM) 01005000
+C 01006000
+ DIMENSION A(4) 01007000
+C A(4) ARE THE FOUR COEFFICIENT FOR NU 01008000
+C 01009000
+ COMMON/FILES/NT(4,99) 01010000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 01011000
+C 01012000
+ COMMON/OPZIO/ OPZ(4,8,10) 01013000
+C 01014000
+ COMMON /INDX/AINDX(40,200) 01015000
+C 01016000
+ COMMON/DIM/M(5) 01017000
+C 01018000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 01019000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 01020000
+C 01021000
+ COMMON MAXA,AXYB(10000) 01022000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 01023000
+ 1N1X,N2X,NS,LX,LY,LB 01024000
+C 01025000
+ DATA T/0.0/ 01026000
+ EQUIVALENCE(OPZ(1,1,1),STMP),(IND,M(2)) 01027000
+C 01028000
+ MODE=N(4) 01029000
+ NTENDF=N(3) 01030000
+ NTOUT=N(5) 01031000
+ NTE=NT(1,NTENDF) 01032000
+ NTO=NT(1,6) 01033000
+C 01034000
+C 01035000
+ IF(MT.EQ.452) GO TO 452 01036000
+ IF(MT.EQ.458) GO TO 458 01037000
+C REACTIONS MF=1 NUMBER MT=456,454,455,453,457 01038000
+C ARE NOT TREATED. 01039000
+C P1F1 SAREBBE CHIAMATO INUTILMENTE UN SACCO 01040000
+C DI VOLTE CON ARGOMENTO MT NON USATO SE NON CHIAMASSI LA 01041000
+C SUBROUTINE SEGUENTE CHE VA AVANTI NEL FILE FINO A SEND RECORD 01042000
+C INOLTRE IN P1 LA LETTURA DI RECORDS DI DIVERSO TIPO COME 01043000
+C FOSSERO RECORDS CONT DA ERRORE 01044000
+C 01045000
+C 01046000
+ CALL SKIPS(MODE,NTE,1,STMP,NTO) 01047000
+C 01048000
+ RETURN 01049000
+ 452 CONTINUE 01050000
+C SECTION MT=452=NU 01051000
+ WRITE(NP,9020) MAT,N(1),N(2) 01052000
+ 9020 FORMAT(' NU .MATERIAL:',I5,1X,2A4) 01053000
+C 01054000
+ LNU=L2 01055000
+ ZA=C1 01056000
+ AWR=C2 01057000
+C SET OUTPUT TAPE: 01058000
+C DEFAULT OUTPUT TAPE 01059000
+ IF(NTOUT.LE.0) NTOUT=21 01060000
+ NTO=NT(1,NTOUT) 01061000
+ CALL POSL(NTOUT) 01062000
+C POSIZIONA NTOUT ALL'ULTIMO RECORD LIBERO 01063000
+ CALL WREC(1,NTO,3) 01064000
+ IF(STMP.GT.25.) CALL WREC(1,NO,4) 01065000
+C LIST O TAB1 IL RECORD 2 01066000
+ CALL RREC(LNU+1,NTE,MODE,T) 01067000
+C FOR THE NU PUT IN NCOF THE NUMBER OF COEFFICIENTS 01068000
+ NCOF=0 01069000
+ IF(LNU.EQ.1) NCOF=N1 01070000
+C 01071000
+ CALL WREC(LNU+1,NTO,3) 01072000
+ IF(STMP.GT.25.) CALL WREC(LNU+1,NO,4) 01073000
+C IF MAX 4 COEFF THEY ARE PUT IN INDEX OTHERWISE ON OUTPUT TAPE01074000
+ DO 20 I=1,4 01075000
+ 20 A(I)=0. 01076000
+ IF(LNU.NE.1) GO TO 454 01077000
+ DO 30 I=1,NCOF 01078000
+ 30 A(I)=AXYB(LB-1+I) 01079000
+C METTO I CEOFF IN A PER METTERLI IN INDICE 01080000
+ ANSK=3+N1/6+NREST(N1,6) 01081000
+ 454 CONTINUE 01082000
+ IF(LNU.EQ.2)ANSK=3+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 01083000
+C IND=CURRENT POSITION OF THE INDEX BEING CREATED 01084000
+ IND=IND+1 01085000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01086000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT),ZA,01087000
+ 1AWR,0.,T,0.,0.,FLOAT(LNU),FLOAT(NCOF),A(1),A(2),A(3),A(4),0.,0.,0.01088000
+ 1,0.,FLOAT(MODE), 01089000
+ 2FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO),FLOAT(NT(4,NTOUT)01090000
+ 3),ANSK,3.,0.,0.,5.,2.,11.,0.,0.,N(1),N(2),N(11),0.,0.,0.) 01091000
+C 01092000
+C CONTROLLO DEL SEND 01093000
+ IF(NCONT(STMP,NO,NTE,MODE,MAT,MF,0).GT.0)CALLERR(8HP1F1 ,452) 01094000
+C 01095000
+C IL SEND 01096000
+C 01097000
+C METTO IL SEND SUL FILE DI OUTPUT 01098000
+ CALL WREC(1,NTO,3) 01099000
+C 01100000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 01101000
+ NT(4,NTOUT)=NT(3,NTOUT) 01102000
+ RETURN 01103000
+ 458 CONTINUE 01104000
+C SECTION MT=458:ENERGIA PER FISSIONE.RECORD SET ONLY IN INDEX 01105000
+ WRITE(NP,9010) MAT 01106000
+ 9010 FORMAT(' ENERGY PER FISSION.MATERIAL:',I5) 01107000
+C 01108000
+C THE FOLLOWING ONLY FOR ENDFB5 FILES 01109000
+C POSIZIONE IN INDICE 01110000
+ ZA=C1 01111000
+ AWR=C2 01112000
+ CALL RREC(2,NTE,MODE,T) 01113000
+ IF(STMP.GT.20.) CALL WREC(2,NO,4) 01114000
+C ET=E PER FISSIONE 01115000
+ AK17=AXYB(LB+16) 01116000
+C ER=E PER FISS ESCLUSI NEUTRINI 01117000
+ AK15=AXYB(LB+14) 01118000
+ IND=IND+1 01119000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01120000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT), 01121000
+ 1ZA,AWR,0.,T,0.,0.,0.,0.,0.,0.,AK15,AK17,0.,0.,0.,0.,FLOAT(MODE) 01122000
+ 2,FLOAT(NTENDF),FLOAT(NTE),0.,0.,0.,0.,0.,0.,0.,1.,3.,4.,0.,0. 01123000
+ 3,N(1),N(2),N(15),0.,0.,0.) 01124000
+C LEGGE IL RECORD SEND E LO CONTROLLA 01125000
+ IF(NCONT(STMP,NO,NTE,MODE,MAT,MF,0).GT.0)CALL ERR(8HP1F1 ,458) 01126000
+C 01127000
+ RETURN 01128000
+ END 01129000
+ SUBROUTINE P1F2(MMM,N,MAAA,NSPAZ) 01130000
+C ********************************* 01131000
+C READ FILE 2 ENDFB AND SELECT SECTIONS 01132000
+C RESONANCES - PART 1 01133000
+C ********************************* 01134000
+ DIMENSION N(MMM),NSPAZ(MAAA) 01135000
+ DATA T/0.0/ 01136000
+C 01137000
+ COMMON/FILES/NT(4,99) 01138000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 01139000
+C 01140000
+ COMMON/OPZIO/ OPZ(4,8,10) 01141000
+ EQUIVALENCE(OPZ(1,2,1),STMP) 01142000
+C 01143000
+C OPZ= OPZIONI( PARTE 1,2 ECC ; FILE MCC2F1,2 ECC ; OPZIONE) 01144000
+C 01145000
+C 01146000
+ COMMON/INDX/AINDX(40,200) 01147000
+C 01148000
+ COMMON/DIM/M(5) 01149000
+ EQUIVALENCE(M(2),IND) 01150000
+C 01151000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 01152000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 01153000
+C 01154000
+ COMMON MAXXA,AAA(1) 01155000
+C 01156000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 01157000
+ 1N1X,N2X,NS,LX,LY,LB 01158000
+C 01159000
+C NT(4, ) E IL RECORD CORRENTE 01160000
+C NT(3, ) E USATO PER INDX(25) PUNTATORE ALLA PRIMA SCHEDA 01161000
+C CONT DELL ISOTOPO ED E-RANGE 01162000
+ IF(MT.NE.151) CALL ERR(8HP1F2 ,151) 01163000
+C FILE 2 HAS ONLY SECTION 151 01164000
+ MODE=N(4) 01165000
+ NTENDF=N(3) 01166000
+ NTE=NT(1,NTENDF) 01167000
+ NTOUT=N(5) 01168000
+C DEFINISCE TAPE DI OUTPUT 01169000
+ IF(NTOUT.LE.0) NTOUT=22 01170000
+ NTO=NT(1,NTOUT) 01171000
+ CALL POSL(NTOUT) 01172000
+C NUMERO ISOTOPO 01173000
+ NIS=N1 01174000
+ ZA=C1 01175000
+ AWR=C2 01176000
+C RECORD HEAD 01177000
+ CALL WREC(1,NTO,3) 01178000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01179000
+ 111 CONTINUE 01180000
+C ............................... LOOP ISOTOPI DEL MAT(SU ENDFB 01181000
+ DO 10 I=1,NIS 01182000
+C IL PRIMO CONT DI OGNI ISOTOPO 01183000
+ CALL RREC(1,NTE,MODE,T) 01184000
+ ZAI=C1 01185000
+ ABN=C2 01186000
+ LFW=L2 01187000
+ NER=N1 01188000
+ CALL WREC(1,NTO,3) 01189000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01190000
+C ................................ LOOP SUI RANGES DI ENERGIA 01191000
+ DO 20 II=1,NER 01192000
+ ANEMX=0. 01193000
+ AJMX=0 01194000
+C MAX NUM OF J FOR EACH L ( PER UNRESOLVED CALCR3 DI P2MCF3) 01195000
+C MAX NUM DI E (PER UNRESOLVED CALCR3 DI P2MCF3) 01196000
+C 2 : CONT FOR EACH ENERGY RANGE 01197000
+ CALL RREC(1,NTE,MODE,T) 01198000
+ EL=C1 01199000
+ EH=C2 01200000
+ LRU=L1 01201000
+ LRF=L2 01202000
+ CALL WREC(1,NTO,3) 01203000
+C CONTATORE NUMERO RECORDS ENDFB 01204000
+ ANSKEN=0. 01205000
+ NT(3,NTOUT)=NT(4,NTOUT)+1 01206000
+C PUNTATORE DOPO IL CONT DELL'ISOTOPO ED E RANGE PER L'INDICE 01207000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01208000
+C SOLO SCATTERING RADIUS 01209000
+ IF(LRU.EQ.0) GO TO 100 01210000
+C RESOLVED 01211000
+ IF(LRU.EQ.1) GOTO 50 01212000
+C UNRESOLVED LRU=2) 01213000
+C ALL GAMMA ARE ENERGY DEPENDENT 01214000
+ IF(LRF.EQ.2) GO TO 400 01215000
+C GAMMA FISSION NOT E-DEPENDENT (UNRES) 01216000
+ IF(LFW.EQ.0) GO TO 200 01217000
+C GAMMA FISSION ENERGY DEPENDENT ( UNRES ) 01218000
+ IF(LFW.EQ.1) GO TO 300 01219000
+ CALL ERR(8HP1F2 ,49) 01220000
+ 50 CONTINUE 01221000
+C RESOLVED 01222000
+C BWSL OR BWML 01223000
+ IF(LRF.EQ.2.OR.LRF.EQ.1) GO TO 500 01224000
+C A A 01225000
+ IF(LRF.EQ.4) GO TO 600 01226000
+ IF(LRF.EQ.3) GO TO 700 01227000
+ CALL ERR(8HP1F2 ,50) 01228000
+ 100 CONTINUE 01229000
+C ONLY SCATTERING RADIUS 01230000
+ WRITE(NP,9000) MAT,N(1),N(2),I,II 01231000
+ 9000 FORMAT(' SCATTERING RADIUS. MATERIAL:',I5,1X,2A4,' ISOTOPE:', 01232000
+ 1 I3,' ENERGY RANGE:',I3) 01233000
+C 01234000
+C RECORD CONT 01235000
+ CALL RREC(1,NTE,MODE,T) 01236000
+ SPI=C1 01237000
+ AP=C2 01238000
+ NLS=N1 01239000
+ CALL WREC(1,NTO,3) 01240000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01241000
+C FILLS INDEX 01242000
+ IND=IND+1 01243000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01244000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT),ZA,01245000
+ 1AWR,FLOAT(NIS),T,ZAI,ABN,FLOAT(LFW),FLOAT(NER),FLOAT(LRU), 01246000
+ 1FLOAT(LRF),EL,EH,SPI,AP,FLOAT(NLS),0., 01247000
+ 2FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO), 01248000
+ 3FLOAT(NT(3,NTOUT)),1.,1.,FLOAT(I),FLOAT(II),1., 01249000
+ 46.,0.,0.,0.,N(1),N(2),N(15),0.,0.,AWR) 01250000
+ GO TO 20 01251000
+ 200 CONTINUE 01252000
+C U N R E S O L V E D 01253000
+C THIRD RECORD UNRESOLVED GAMMA NOT ENERGY DEPENDENT 01254000
+ WRITE(NP,9010) MAT,N(1),N(2),I,II 01255000
+ 9010 FORMAT(' UNRES COSTANT IN E.MATERIAL:',I5,1X,2A4,' ISOTOPE:', 01256000
+ 1 I3,' ENERGY RANGE:',I3) 01257000
+C 01258000
+ CALL RREC(1,NTE,MODE,T) 01259000
+ SPI=C1 01260000
+ AP=C2 01261000
+ NLS=N1 01262000
+ CALL WREC(1,NTO,3) 01263000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01264000
+ ANSKEN=ANSKEN+1 01265000
+ DO 22 III=1,NLS 01266000
+C LIST 01267000
+ CALL RREC(2,NTE,MODE,T) 01268000
+ AWRI=C1 01269000
+ NJS=N2 01270000
+ IF(AJMX.LT.NJS) AJMX=NJS 01271000
+C ANEMX RESTA ZERO 01272000
+ CALL WREC(2,NTO,3) 01273000
+ ANSKEN=ANSKEN+1 01274000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+NJS 01275000
+ 22 CONTINUE 01276000
+C INDICE 01277000
+ AKS=NJS+1+NLS 01278000
+ GOTO450 01279000
+ 300 CONTINUE 01280000
+C LIST RECORD (UNRESOLVED): GAMMA FISSION ENERGY DEPENDENT 01281000
+ WRITE(NP,9020) MAT,N(1),N(2),I,II 01282000
+ 9020 FORMAT(' UNRES GAM FISS(E) .MATERIAL:',I5,1X,2A4,' ISOTOPE:', 01283000
+ 1 I3,' ENERGY RANGE:',I3) 01284000
+C 01285000
+ CALL RREC(2,NTE,MODE,T) 01286000
+ SPI=C1 01287000
+ AP=C2 01288000
+ NLS=N2 01289000
+ NE=N1 01290000
+ ANEMX=NE 01291000
+ CALL WREC(2,NTO,3) 01292000
+ ANSKEN=ANSKEN+1 01293000
+ NT(4,NTOUT)=NT(4,NTOUT)+NE/6+1+NREST(NE,6) 01294000
+ DO 32 III=1,NLS 01295000
+C CONT DEL NLS 01296000
+ CALL RREC(1,NTE,MODE,T) 01297000
+ AWRI=C1 01298000
+ NJS=N1 01299000
+ IF(AJMX.LT.NJS) AJMX=NJS 01300000
+ CALL WREC(1,NTO,3) 01301000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01302000
+ ANSKEN=ANSKEN+1 01303000
+ DO 33 II3=1,NJS 01304000
+C LIST 01305000
+ CALL RREC(2,NTE,MODE,T) 01306000
+ CALL WREC(2,NTO,MODE) 01307000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+1+NE/6+NREST(NE,6) 01308000
+ ANSKEN=ANSKEN+1 01309000
+ 33 CONTINUE 01310000
+ 32 CONTINUE 01311000
+C INDICE 01312000
+ GO TO 450 01313000
+ 400 CONTINUE 01314000
+C ALL GAMMA E-DEPENDENT ( UNRESOLVED) BWML 01315000
+ WRITE(NP,9030) MAT,N(1),N(2),I,II 01316000
+ 9030 FORMAT(' UNRES GAM(E) .MATERIAL:',I5,1X,2A4,' ISOTOPE:', 01317000
+ 1 I3,' ENERGY RANGE:',I3) 01318000
+C 01319000
+ CALL RREC(1,NTE,MODE,T) 01320000
+ SPI=C1 01321000
+ AP=C2 01322000
+ NLS=N1 01323000
+ CALL WREC(1,NTO,3) 01324000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01325000
+ AKS=1 01326000
+ DO 42 III=1,NLS 01327000
+ CALL RREC(1,NTE,MODE,T) 01328000
+ AWRI=C1 01329000
+ CALL WREC(1,NTO,3) 01330000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01331000
+ ANSKEN=ANSKEN+1 01332000
+ NJS=N1 01333000
+ IF(AJMX.LT.NJS) AJMX=NJS 01334000
+ DO 43 I3=1,NJS 01335000
+C RECORD LIST 01336000
+ CALL RREC(2,NTE,MODE,T) 01337000
+ NE=N2 01338000
+ IF(ANEMX.LT.NE) ANEMX=NE 01339000
+ CALL WREC(2,NTO,MODE) 01340000
+ NT(4,NTOUT)=NT(4,NTOUT)+2+NE 01341000
+ ANSKEN=ANSKEN+1 01342000
+ 43 CONTINUE 01343000
+ 42 CONTINUE 01344000
+C INDICI 01345000
+ 450 CONTINUE 01346000
+C INDICE 01347000
+ IND=IND+1 01348000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01349000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT),ZA,01350000
+ 1AWR,FLOAT(NIS),T,ZAI,ABN,FLOAT(LFW),FLOAT(NER),0., 01351000
+ 1FLOAT(LRF),EL,EH,SPI,AP,FLOAT(NLS),AJMX, 01352000
+ 2FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO), 01353000
+ 3FLOAT(NT(3,NTOUT)),1.,1.,FLOAT(I),FLOAT(II),1.,6 01354000
+ 4.,0.,0.,0.,N(1),N(2),N(11),ANEMX,0.,AWRI) 01355000
+ IND=IND+1 01356000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01357000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT), 01358000
+ 1ZA,AWR,FLOAT(NIS),T,ZAI,ABN,FLOAT(LFW),FLOAT(NER),FLOAT(LRU), 01359000
+ 2FLOAT(LRF),EL,EH,SPI,AP,FLOAT(NLS),AJMX,FLOAT(MODE),FLOAT(NTENDF),01360000
+ 3FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO),FLOAT(NT(3,NTOUT)), 01361000
+ 4FLOAT(NT(4,NTOUT)-1),ANSKEN,FLOAT(I),FLOAT(II),3.,5.,0.,0., 01362000
+ 50.,N(1),N(2),N(15),ANEMX,0.,AWRI) 01363000
+ GO TO 20 01364000
+ 500 CONTINUE 01365000
+C R E S O L V E D 01366000
+C B W S L 01367000
+ WRITE(NP,9040) MAT,N(1),N(2),I,II 01368000
+ 9040 FORMAT(' RES : B. W. .MATERIAL:',I5,1X,2A4,' ISOTOPE:', 01369000
+ 1 I3,' ENERGY RANGE:',I3) 01370000
+C 01371000
+C CONT 01372000
+ CALL RREC(1,NTE,MODE,T) 01373000
+ SPI=C1 01374000
+ AP=C2 01375000
+ NLS=N1 01376000
+ CALL WREC(1,NTO,3) 01377000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01378000
+ ANSKEN=ANSKEN+1 01379000
+ NRIS=0 01380000
+ DO52 I2=1,NLS 01381000
+C LIST 01382000
+ CALL RREC(2,NTE,MODE,T) 01383000
+ NRS=N2 01384000
+ NRIS=NRIS+NRS 01385000
+ AWRI=C1 01386000
+ CALL WREC(2,NTO,3) 01387000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+NRS 01388000
+ ANSKEN=ANSKEN+1 01389000
+ 52 CONTINUE 01390000
+C INDICE 01391000
+ NX=0 01392000
+ GO TO 650 01393000
+ 600 CONTINUE 01394000
+C A A 01395000
+ CALL RREC(1,NTE,MODE,T) 01396000
+ SPI=C1 01397000
+ AP=C2 01398000
+ NLS=N1 01399000
+ ANSKEN=1 01400000
+ CALL WREC(1,NTO,3) 01401000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01402000
+C LIST DEL BACKGROUND 01403000
+ CALL RREC(2,NTO,3,T) 01404000
+ LI=L1 01405000
+ NX=N2 01406000
+ AWRI=C1 01407000
+ CALL WREC(2,NTO,MODE) 01408000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+NX 01409000
+ ANSKEN=ANSKEN+1 01410000
+ NRIS=1 01411000
+ DO 62 I2=1,NLS 01412000
+C CONT 01413000
+ CALL RREC(1,NTE,MODE,T) 01414000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01415000
+ ANSKEN=ANSKEN+1 01416000
+ DO 64 I4=1,NJS 01417000
+C LIST FINALE 01418000
+ CALL RREC(2,NTE,MODE,T) 01419000
+ NLJ=N2 01420000
+ CALL WREC(2,NTO,3) 01421000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+NLS*2 01422000
+ NRIS=NRIS+NLJ 01423000
+ 64 CONTINUE 01424000
+ 62 CONTINUE 01425000
+ GO TO 650 01426000
+ 700 CONTINUE 01427000
+C 01428000
+C REICH -MOORE CONVERSION TO ADLER-ADLER FORMAAT 01429000
+C 01430000
+ WRITE(NP,9050) MAT,I,II 01431000
+ 9050 FORMAT(' RESOLVED RESONANCE: R-M TO A-A CONVERSION: MAT:',I5, 01432000
+ 1 ' ISOTOPE:',I5,' ENERGY RANGE:',I5) 01433000
+ WRITE(NP,9051) 01434000
+ 9051 FORMAT(' WARNING !! THIS PART OF THE CODE HAS NOT BEEN TESTED!') 01435000
+ CALL RREC(1,NTE,MODE,T) 01436000
+ SPI=C1 01437000
+ AP=C2 01438000
+ NLS=N1 01439000
+ CALL WREC(1,NTO,3) 01440000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01441000
+ ANSKEN=ANSKEN+1 01442000
+ NRIS=0 01443000
+ NRISL=0 01444000
+ CALL DELETE(0) 01445000
+ DO 70 I2=1,NLS 01446000
+C LIST 01447000
+ CALL RREC(2,NTE,MODE,T) 01448000
+C NRISL=MAX NUM RISONANZE PER UN L 01449000
+ IF(NRISL.LT.N2) NRISL=N2 01450000
+ AWRI=C1 01451000
+C NEL SEGUITO CONTO I DIVERSI J PER OGNI L 01452000
+C LEGGO E METTO I RECORDS IN DENS 01453000
+ NSPAZ(I2)=0 01454000
+ AJ=500 01455000
+ DO 71 I3=1,N2 01456000
+ IF(AAA(6*(I3-1)+LB+1).EQ.AJ) GO TO 71 01457000
+ AJ=AAA(6*(I3-1)+LB+1) 01458000
+ NSPAZ(I2)=NSPAZ(I2)+1 01459000
+ 71 CONTINUE 01460000
+C METTO IL LIST IN DENS 01461000
+ CALL STORE(2,I2,LOF) 01462000
+ IF(LOF.GT.0) CALL ERR(8HP1F2 ,71) 01463000
+ 70 CONTINUE 01464000
+C FISSO GLI SPAZI PER PROGRAM POLLA 01465000
+ LNLS=1 01466000
+C NUMERO J PER OGNI L 01467000
+ LPAR=LNLS+NLS 01468000
+C PARAMETRI DI ADLER-ADLER PRODOTTI 01469000
+ LTT=LNLS+NRISL*12 01470000
+C TT PER POLLA 01471000
+ NC1=3 01472000
+ NC=2 01473000
+C NC=NUMERO CANALI=2 IN ENDFB 01474000
+ LER=NC1+LTT 01475000
+C ER: ENERGIE SPAZIO PER POLLA 01476000
+ N2C=NRISL*4 01477000
+C N2C=SPAZIO =2 COMPLEX REAL*8 PER RISONANZA 01478000
+ LEA=LER+N2C 01479000
+C EA=MI,NI DI A A PER POLLA 01480000
+ LRT=LEA+N2C 01481000
+C RT= ALFA,BETA DI A A PER POLLA 01482000
+ LRA=LRT+N2C 01483000
+C RA= SPAZIO PER POLLA 01484000
+ LRF=LRA+N2C 01485000
+C RF= GF,HF DI AA PER POLLA 01486000
+ LRC=LRF+N2C 01487000
+C RC= GC,HC DI AA PER POLLA 01488000
+ LP=LRC+NRISL*NC1*NC1*2 01489000
+C P= SPAZIO PER POLLA 01490000
+ LAP=LP+NC1*NC1*4*NRISL 01491000
+C A= SPAZIO PER POLLA 01492000
+ LAB=LAP+NC1*NC1*4 01493000
+C B= SPAZIO PER POLLA 01494000
+ LFIN=LAB+NC1*NC1*4 01495000
+ IF(LFIN.GT.MAAA) CALL ERR(8HP1F2 ,700) 01496000
+C 01497000
+C RIPRENDE I RECORD DA DENSE LI TRATTA J PER J 01498000
+C GENERANDO UN LOOP SU J CHE AA HA E REICH-MOORE NO 01499000
+C 01500000
+C 01501000
+ DUM=0. 01502000
+ NDUM=0 01503000
+C SCRIVO PRIMO LIST DI AA 01504000
+ LI=7 01505000
+ LI7=42 01506000
+ WRITE(NTO,1000) AWRI,DUM,LI,NDUM,LI7,LI,MAT,MF,MT 01507000
+ 1000 FORMAT(2E11.4,4I11,I4,I2,I3) 01508000
+ WRITE(NTO,2000) (DUM,J=1,LI7) 01509000
+ 2000 FORMAT(6E11.4) 01510000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01511000
+ ANSKEN=ANSKEN+1 01512000
+C 01513000
+C LOOP SULLE L DI REICH MOORE 01514000
+ DO 72 ILLL=1,NLS 01515000
+ CALL FETCH(ILLL,LOF) 01516000
+ IF(LOF.GT.0) CALL ERR(8HP1F2 , 70) 01517000
+ NRS=N2 01518000
+ L=L2 01519000
+C SCRIVE CONT DI AA DELL'L 01520000
+ WRITE(NTO,1000) DUM,DUM,L,NDUM,NSPAZ(ILLL),NDUM 01521000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01522000
+ ANSKEN=ANSKEN+1 01523000
+ AJ1=-500 01524000
+ NRIS1=0 01525000
+C RESET POLLA 01526000
+ CALL POLL0 01527000
+C LOOP ON RESONANCES OF L READ ( WRITTEN J BY J) 01528000
+ DO 73 IR=1,NRS 01529000
+ AJ=AAA(LB+(6*(IR-1))+1) 01530000
+ 705 IF(AJ.NE.AJ1.AND.AJ1.GT.0) GO TO 710 01531000
+ NRIS1=NRIS1+1 01532000
+C 01533000
+C DEFINES PARAMETERS FOR POLLA CODE 01534000
+C E0 01535000
+ T3=AAA(LB+(6*(IR-1))) 01536000
+C G 01537000
+ G=(2*AJ+1)/2./(2.*SPI+1.) 01538000
+C GG 01539000
+ T4=AAA(LB+(6*(IR-1))+3) 01540000
+C GN ( AD E0 MICA RIDOTTA ??????) 01541000
+ TT1=AAA(LB+6*(IR-1)+2) 01542000
+C GF1 01543000
+ NSPAZ(LTT)=NAREAL(TT1) 01544000
+ TT2=AAA(LB+(6*(IR-1))+4) 01545000
+ NSPAZ(LTT+1)=NAREAL(TT2) 01546000
+C GF2 01547000
+ TT3=AAA(LB+(6*(IR-1))+5) 01548000
+ NSPAZ(LTT+2)=NAREAL(TT3) 01549000
+C 01550000
+C CALL POLLA 01551000
+ CALL POLLA(STMP,NO,G,T3,T4,NSPAZ(LTT),NSPAZ(LER), 01552000
+ 1 NSPAZ(LEA),NSPAZ(LRT), 01553000
+ 2 NSPAZ(LRA),NSPAZ(LRF),NSPAZ(LRC),NSPAZ(LP),NSPAZ(LAP),NSPAZ(LAB))01554000
+ GO TO 73 01555000
+ 710 CONTINUE 01556000
+C QUI SE E' CAMBIATO J, ALLORA POLLA CALCOLA E SCRIVO I 01557000
+C DATI DEL J 01558000
+ CALL POLL1(STMP,NO,G,T3,T4,NSPAZ(LTT),NSPAZ(LER), 01559000
+ 1 NSPAZ(LEA),NSPAZ(LRT), 01560000
+ 2 NSPAZ(LRA),NSPAZ(LRF),NSPAZ(LRC),NSPAZ(LP),NSPAZ(LAP),NSPAZ(LAB))01561000
+C 01562000
+C MI TRASFERISCO I PARAMETRI PRODOTTI PER SCRIVERLI IN 01563000
+C OUTPUT IN MODO ACCONCIO 01564000
+ DO 75 IRR=1,NRIS1 01565000
+ MU=NSPAZ(LEA+(IRR-1)*2) 01566000
+ NU=NSPAZ(LEA+1+(IRR-1)*2) 01567000
+C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!01568000
+C TO CONTROL: POLLA MANUAL PUT IN AA FORMULAE : SQRT(E) 01569000
+C ENDFB MANUAL PUT: PI*SQRT(E)/K**2 01570000
+C WITH CON K=2.196771*AWRI/(AWRI+1)*E-3 01571000
+C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!01572000
+C PER LE NOTAZIONI E': ALFA,BETA=GT,HT DI ENDFB MANUAL 01573000
+ NGT=NSPAZ(LRT+(IRR-1)*2) 01574000
+ NHT=NSPAZ(LRT+(IRR-1)*2+1) 01575000
+ NGF=NSPAZ(LRF+(IRR-1)*2) 01576000
+ NHF=NSPAZ(LRF+(IRR-1)*2+1) 01577000
+ NGC=NSPAZ(LRC+(IRR-1)*2) 01578000
+ NHC=NSPAZ(LRC+(IRR-1)*2+1) 01579000
+C 01580000
+ NSPAZ(LPAR+(IRR-1)*12)=MU 01581000
+ NSPAZ(LPAR+(IRR-1)*12+1)=NU 01582000
+ NSPAZ(LPAR+(IRR-1)*12+2)=NGT 01583000
+ NSPAZ(LPAR+(IRR-1)*12+3)=NHT 01584000
+ NSPAZ(LPAR+(IRR-1)*12+4)=MU 01585000
+ NSPAZ(LPAR+(IRR-1)*12+5)=NU 01586000
+ NSPAZ(LPAR+(IRR-1)*12+6)=NGF 01587000
+ NSPAZ(LPAR+(IRR-1)*12+7)=NHF 01588000
+ NSPAZ(LPAR+(IRR-1)*12+8)=MU 01589000
+ NSPAZ(LPAR+(IRR-1)*12+9)=NU 01590000
+ NSPAZ(LPAR+(IRR-1)*12+10)=NGC 01591000
+ NSPAZ(LPAR+(IRR-1)*12+11)=NHC 01592000
+ 75 CONTINUE 01593000
+ N12=NRIS1*12 01594000
+ WRITE(NTO,1000) AJ,DUM,NDUM,NDUM,N12,NRIS1 01595000
+ WRITE(NTO,2000)((NSPAZ(LPAR+(J1-1)*12+J-1),J=1,12),J1=1,NRIS1) 01596000
+ NT(4,NTOUT)=NT(4,NTOUT)+1+NRIS1*2 01597000
+ ANSKEN=ANSKEN+1+NRIS1*2 01598000
+ AJ1=AJ 01599000
+ NRIS1=0 01600000
+ CALL POLL0 01601000
+ GO TO 705 01602000
+ 73 CONTINUE 01603000
+ 72 CONTINUE 01604000
+C 01605000
+C INDICE 01606000
+C 01607000
+ 650 CONTINUE 01608000
+C INDICE 01609000
+ IND=IND+1 01610000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01611000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT),ZA,01612000
+ 1AWR,FLOAT(NIS),T,ZAI,ABN,FLOAT(LFW),FLOAT(NER),0., 01613000
+ 1FLOAT(LRF),EL,EH,SPI,AP,FLOAT(NLS),0., 01614000
+ 2FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO), 01615000
+ 3FLOAT(NT(3,NTOUT)),1.,1.,FLOAT(I),FLOAT(II),1., 01616000
+ 46.,0.,0.,0.,N(1),N(2),N(15),0.,0.,AWRI) 01617000
+C INDICE 01618000
+ IND=IND+1 01619000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01620000
+ CALL EMPIN(MINDX1,AINDX(1,IND),FLOAT(MAT),FLOAT(MF),FLOAT(MT), 01621000
+ 1ZA,AWR,FLOAT(NIS),T,ZAI,ABN,FLOAT(LFW),FLOAT(NER),FLOAT(LRU), 01622000
+ 2FLOAT(LRF),EL,EH,SPI,AP,FLOAT(NLS),0.,FLOAT(MODE), 01623000
+ 3FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO),FLOAT(NT(3,NTOUT)01624000
+ 4),FLOAT(NT(4,NTOUT)-1),ANSKEN,FLOAT(I),FLOAT(II),4.,5.,0.,0.,0., 01625000
+ 5N(1),N(2),N(15),FLOAT(NRIS),FLOAT(NX),AWRI) 01626000
+ 20 CONTINUE 01627000
+C FINE LOOP SU RANGE E 01628000
+ 10 CONTINUE 01629000
+C FINE LOOP SU ISOTOPI 01630000
+C SEND RECORD 01631000
+ NTST=NCONT(STMP,NO,NTE,MODE,MAT,MF,0) 01632000
+ IF(NTST.NE.0) CALL ERR(8H P1F2 ,10) 01633000
+C IL SEND 01634000
+C 01635000
+C METTO IL SEND SUL FILE DI OUTPUT 01636000
+ CALL WREC(1,NTO,3) 01637000
+C 01638000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 01639000
+ NT(3,NTOUT)=NT(4,NTOUT) 01640000
+ RETURN 01641000
+ END 01642000
+ SUBROUTINE POLLA(STMP,NO,G,T3,T4,TT,ER,EA,RT,RA,RF,RC,P,A,B) 01643000
+C ************************************************************* 01644000
+C PROGRAM POLLA TO CONVERT REICH MOORE FORMAT TO ADLER ADLER 01645000
+C G.DE SAUSSURE AND R.B. PEREZ 01646000
+C DESCRIBED IN ORNL-TM-2599 (JUNE 1969) 01647000
+C 01648000
+C MODIFIED BY MARCELLO GALLI - APRIL 1985 01649000
+C TO BE USED AS A ROUTINE FOR TESEO CODE 01650000
+C 01651000
+C *************************************************************** 01652000
+ IMPLICIT REAL * 8 (A-H,O-Z) 01653000
+ REAL*4 STMP,T3,T4,TT(3),T 01654000
+ REAL * 8 NA(1),N0(1),LEGEND 01655000
+ COMPLEX *16 Z,ZM,ZN,Z1,Z2,Z3,Z4,ZS,ZT,A,B,ER,EA,RT,RA,RF,RC,CI,CM01656000
+ DIMENSION A(15),B(15),P(1500) 01657000
+ DIMENSION ER(100),EA(100),RT(100),RA(100),RF(100),RC(100) 01658000
+C DATA NA/5H(9A8)/, N0/8H(9A8,I8)/ 01659000
+ DATA NR/0/,K/0/ 01660000
+ DATA RM/.5D0/,CI/(0.D0,1.D0)/,CM/(0.D0,.5D0)/ 01661000
+ DATA NC/3/,T1/1.D-70/, T2/1.D-10/, RR/2608000.D0/ 01662000
+C TWO CHANNELS, NC=NUMBER OF CHANNELS+1=3 01663000
+C1 READ N0,LEGEND,I 01664000
+C PRINT NA,LEGEND 01665000
+C IF(I)1,2,3 01666000
+C2 READ 1008,G,NC,IK 01667000
+ IF(STMP.GT.10) WRITE(NO,1001) G,NC 01668000
+C NC=NC+1 01669000
+C3 K=0 01670000
+C NR=K 01671000
+ R=RR*G 01672000
+ IF(STMP.GT.11) WRITE(NO,1002) 01673000
+C4 READ 1005 ,T3,T4,(TT(I),I=1,NC) 01674000
+C IF(T4)5,8,5 01675000
+C5 PRINT 1006 ,T3,T4,(TT(I),I=1,NC) 01676000
+ IF(STMP.GT.11.) WRITE(NO,1006) T3,T4,(TT(I),I=1,3) 01677000
+ NR=NR+1 01678000
+ EA(NR)=T3-CM*T4 01679000
+ ER(NR)=EA(NR) 01680000
+ DO 6 I=1,NC 01681000
+ T=TT(I) 01682000
+ T4=ABS(T) 01683000
+ EA(NR)=EA(NR)-CM*T4 01684000
+ T3=SQRT(T4) 01685000
+ 6 TT(I)=SIGN(T3,T) 01686000
+ DO 7 I=1,NC 01687000
+ DO 7 J=I,NC 01688000
+ K=K+1 01689000
+ 7 P(K)=TT(I)*TT(J)*RM 01690000
+C GO TO 4 01691000
+ RETURN 01692000
+ ENTRY POLL1(STMP,NO,G,T3,T4,TT,ER,EA,RT,RA,RF,RC,P,A,B) 01693000
+C COMPUTE POLES 01694000
+ 8 DO 19 M=1,NR 01695000
+ ZM=EA(M) 01696000
+ Z=ZM 01697000
+ 9 LC=0 01698000
+ Z3=RM/ZM 01699000
+ ZT=Z 01700000
+ K=1 01701000
+ DO 11 I=1,NC 01702000
+ DO 11 J=I,NC 01703000
+ LC=LC+1 01704000
+ B(LC)=0. 01705000
+ A(LC)=B(LC) 01706000
+ IF(I-J)11,10,11 01707000
+ 10 A(LC)=1. 01708000
+ 11 CONTINUE 01709000
+ A(1)=1./CDSQRT(ZM) 01710000
+ B(1)=-Z3*A(1) 01711000
+ ZS=0. 01712000
+ Z4=ZS 01713000
+ DO 14 N=1,NR 01714000
+ IF(N-M)12,13,13 01715000
+ 12 ZS=ZS-1./(DCONJG(EA(N))-ZM) 01716000
+ 13 Z2=1./(ER(N)-ZM) 01717000
+ ZS=ZS+Z2 01718000
+ Z1=-CI*Z2 01719000
+ Z2=Z1*Z2 01720000
+ DO 14 L=1,LC 01721000
+ A(L)=A(L)+Z1*P(K) 01722000
+ B(L)=B(L)+Z2*P(K) 01723000
+ 14 K=K+1 01724000
+ L=0 01725000
+ Z=T1 01726000
+ CALL SR(A,NC,Z) 01727000
+ T=Z*DCONJG(Z) 01728000
+ IF(T)15,19,15 01729000
+ 15 DO 17 I=1,NC 01730000
+ DO 17 J=I,NC 01731000
+ L=L+1 01732000
+ IF(I-J)16,17,16 01733000
+ 16 Z3=Z3+A(L)*B(L) 01734000
+ 17 Z3=Z3+A(L)*B(L) 01735000
+ Z=1./(ZS-Z3) 01736000
+ ZM=ZM+Z 01737000
+ 18 Z1=(ZT-Z)/ZM 01738000
+ T=Z1*DCONJG(Z1) 01739000
+ IF(T-T2)19,9,9 01740000
+ 19 EA(M)=DCONJG(ZM) 01741000
+C PRINT 1004 01742000
+ IF(STMP.GT.11.) WRITE(NO,1004) 01743000
+C COMPUTE RESIDUES 01744000
+ 20 DO 27 M=1,NR 01745000
+ L=1 01746000
+ K=L 01747000
+ ZM=0. 01748000
+ ZS=1. 01749000
+ DO 22 I=1,NC 01750000
+ DO 22 J=I,NC 01751000
+ B(L)=ZM 01752000
+ A(L)=B(L) 01753000
+ IF(I-J)22,21,22 01754000
+ 21 B(L)=ZS 01755000
+ A(L)=B(L) 01756000
+ 22 L=L+1 01757000
+ Z4=EA(M) 01758000
+ Z3=DCONJG(Z4) 01759000
+ ZT=ZS/(Z3-Z4) 01760000
+ A(1)=A(1)+1./CDSQRT(Z3) 01761000
+ B(1)=DCONJG(A(1)) 01762000
+ DO 25 N=1,NR 01763000
+ ZN=ER(N) 01764000
+ Z=ZN-Z3 01765000
+ Z1=-CI/Z 01766000
+ ZS=ZS*Z 01767000
+ Z=ZN-Z4 01768000
+ Z2=-CI/Z 01769000
+ ZT=ZT*Z 01770000
+ DO 23 L=2,LC 01771000
+ K=K+1 01772000
+ A(L)=A(L)+Z1*P(K) 01773000
+ 23 B(L)=B(L)+Z2*P(K) 01774000
+ IF(N-M)24,25,24 01775000
+ 24 Z=DCONJG(EA(N)) 01776000
+ ZS=ZS/(Z-Z3) 01777000
+ ZT=ZT/(Z-Z4) 01778000
+ 25 K=K+1 01779000
+ Z2=0. 01780000
+ Z1=Z2 01781000
+ CALL SR(A,NC,Z1) 01782000
+ CALL SR(B,NC,Z2) 01783000
+ Z4=Z1*DCONJG(Z2) 01784000
+ Z1=Z1*A(1) 01785000
+ Z2=Z2*B(1) 01786000
+ DO 26 I=2,NC 01787000
+ 26 ZM=ZM+Z4*A(I)*DCONJG(B(I)) 01788000
+ ZT=DCONJG(ZT) 01789000
+ ZS=CI*R*ZS 01790000
+ Z3=1./CDSQRT(Z3) 01791000
+ RF(M)=(ZS+ZS)*ZT*ZM 01792000
+ RT(M)=-ZS*Z1*Z3 01793000
+ RA(M)=(RT(M)+RT(M))*(ZT*DCONJG(Z2)-RM) 01794000
+ 27 RC(M)=RA(M)-RF(M) 01795000
+ 28 IF(STMP.GT.11.)WRITE(NO,1003)(EA(M),RT(M),RF(M),RC(M),M=1,NR) 01796000
+C IF(IK)30,1,29 01797000
+C29 PUNCH 1007,(EA(M),RT(M),RF(M),RC(M),M=1,NR) 01798000
+C IK=IK-2 01799000
+C IF(IK)30,1,29 01800000
+ 1001 FORMAT(12H0SPIN FACTOR,F6.3,I6,17H FISSION CHANNELS) 01801000
+ 1002 FORMAT(29H0INPUT REICH-MOORE PARAMETERS// 01802000
+ 19X,2HE0,14X,2HGG,10X,7HGNO(MV),10X,3HGF1,11X,3HGF2, 01803000
+ 212X,3HGF3,11X,3HGF4//) 01804000
+ 1003 FORMAT(10X,2HMU,12X,2HNU,12X,5HALPHA,10X,4HBETA,8X,9HG-FISSION,7X,01805000
+ 19HH-FISSION,6X,9HG-CAPTURE,6X,9HH-CAPTURE///(4 (F15.3,F14.3))) 01806000
+ 1004 FORMAT(30H0OUTPUT ADLER-ADLER PARAMETERS//) 01807000
+C1005 FORMAT(2F10.3,3PF10.3, 4F10.3) 01808000
+ 1006 FORMAT(F15.3,F14.3,3PF15.3,2(F14.3,F15.3)) 01809000
+ 1007 FORMAT(4 (F10.3,F10.3)) 01810000
+ 1008 FORMAT(F8.3,2I8) 01811000
+C30 CALL EXIT 01812000
+ RETURN 01813000
+ ENTRY POLL0 01814000
+C RESET POLLA ROUTINE 01815000
+ NR=0 01816000
+ RETURN 01817000
+ END 01818000
+ SUBROUTINE SR(F,N,B) 01819000
+C ******************************************* 01820000
+C SUBROUTINE SR IS PART OF POLLA CODE 01821000
+C **************************************** 01822000
+ DIMENSION F(15) 01823000
+ COMPLEX *16 C0,C1,F,A,T,D,B 01824000
+ DATA C0/(0.D0,0.D0)/,C1/(1.D0,0.D0)/ 01825000
+ TS=B 01826000
+ B=1. 01827000
+ IF(N-1)1,2,3 01828000
+ 1 PRINT 99 01829000
+ 99 FORMAT (3H SP) 01830000
+ CALL ERR(8HSRPOLLA ,99) 01831000
+ 2 B=F(1) 01832000
+ F(1)=C1/B 01833000
+ RETURN 01834000
+ 3 K=1 01835000
+ DO10M=1,N 01836000
+ M1=M-1 01837000
+ DO10L=M,N 01838000
+ A=C0 01839000
+ IF(M1)6,6,4 01840000
+ 4 KL=L 01841000
+ KM=M 01842000
+ DO5LM=1,M1 01843000
+ A=A+F(KL)*F(KM) 01844000
+ J=N-LM 01845000
+ KL=KL+J 01846000
+ 5 KM=KM+J 01847000
+ 6 T=F(K)-A 01848000
+ IF(L-M)7,7,9 01849000
+ 7 D=CDSQRT(T) 01850000
+ F(K)=D 01851000
+ B=B*T 01852000
+ TT=D*DCONJG(D)-TS 01853000
+ IF(TT)8,10,10 01854000
+ 8 B=0. 01855000
+ RETURN 01856000
+ 9 F(K)=T/D 01857000
+ 10 K=K+1 01858000
+ K=1 01859000
+ F(K)=C1/F(K) 01860000
+ DO12L=2,N 01861000
+ K=K+2+N-L 01862000
+ T=C1/F(K) 01863000
+ F(K)=T 01864000
+ L1=L-1 01865000
+ KL=L 01866000
+ KM=0 01867000
+ DO12M=1,L1 01868000
+ LK=KL 01869000
+ A=C0 01870000
+ DO 11 LM=M,L1 01871000
+ II=KM+LM 01872000
+ A=A-F(KL)*F(II) 01873000
+ 11 KL=KL+N-LM 01874000
+ F(LK)=A*T 01875000
+ J=N-M 01876000
+ KL=LK+J 01877000
+ 12 KM=KM+J 01878000
+ K=1 01879000
+ DO14M=1,N 01880000
+ KL=K 01881000
+ DO14L=M,N 01882000
+ KM=K 01883000
+ A=C0 01884000
+ I1=N-L+1 01885000
+ DO13LM=1,I1 01886000
+ A=A+F(KL)*F(KM) 01887000
+ KL=KL+1 01888000
+ 13 KM=KM+1 01889000
+ F(K)=A 01890000
+ 14 K=K+1 01891000
+ RETURN 01892000
+ END 01893000
+ SUBROUTINE P1F3(MMM,N,MAAA,SPAZ) 01894000
+C *********************************** 01895000
+C 01896000
+C READS FILE 3 OF ENDFB 01897000
+C SIGMA SMOOTH - PART 1 01898000
+C 01899000
+C ********************************** 01900000
+ DIMENSION N(MMM) 01901000
+ DATA T/0.0 / 01902000
+C 01903000
+ COMMON/FILES/NT(4,99) 01904000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 01905000
+C 01906000
+ COMMON/OPZIO/ OPZ(4,8,10) 01907000
+ EQUIVALENCE(OPZ(1,3,1),STMP) 01908000
+C 01909000
+ COMMON/DIM/M(5) 01910000
+ EQUIVALENCE(M(2),IND) 01911000
+C 01912000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 01913000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 01914000
+C 01915000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 01916000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 01917000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 01918000
+C 01919000
+ COMMON /INDX/AINDX(40,200) 01920000
+C 01921000
+C 01922000
+ MODE=N(4) 01923000
+ NTENDF=N(3) 01924000
+ NTOUT=N(5) 01925000
+ NTE=NT(1,NTENDF) 01926000
+C 01927000
+C K5 E K6 INDICANO LA DESTINAZIONE DEI DATI NELLINDICE 01928000
+ K5=0 01929000
+ K6=0 01930000
+C SELEZIONA MT DI INTERESSE 01931000
+C MT=3 NON SERVE 01932000
+ IF(MT.EQ.3) GO TO 100 01933000
+ IF(MT.GE.1.AND.MT.LE.4) K5=5 01934000
+C TOT,EL,ANEL,SCATT ANEL(=SUM 51:91) 01935000
+ IF(MT.EQ.16.OR.MT.EQ.18) K5=5 01936000
+C N2N DIRETTA , FISS 01937000
+ IF(MT.GE.101.AND.MT.LE.107) K5=5 01938000
+C 101=CATT TOT=SUM OF 102:109 PLUS 111:114 01939000
+C N GAM , N P , N D , N T , N HE3, N ALFA 01940000
+ IF(MT.EQ.4.OR.MT.EQ.16) K6=6 01941000
+C ANEL , N2N 01942000
+ IF(MT.GE.51.AND.MT.LE.90) K6=6 01943000
+C ANEL DAL LIVELLO 1,2,... 40 ( O N 2N PER LR=16 MA QUESTA RAPPR. 01944000
+C CREDO NON SIA USATA) 01945000
+ IF(MT.GE.6.AND.MT.LE.9) K6=6 01946000
+ IF(MT.GE.6.AND.MT.LE.9) K5=5 01947000
+C N2N PRIMO NEUT DAI PRIMI LIVELLI 01948000
+ IF(MT.GE.46.AND.MT.LE.49) K6=6 01949000
+C N 2N SECONDO NEUT DAI PRIMI LIVELLI 01950000
+C 01951000
+C 01952000
+ IF(K5.GT.0.OR.K6.GT.0) GO TO 200 01953000
+C NON E MT DI INTERESSE SE ARRIVA QUI 01954000
+ 100 CALL SKIPS(MODE,NTE,1,STMP,NO) 01955000
+ RETURN 01956000
+ 200 CONTINUE 01957000
+C 01958000
+ WRITE(NP,9010) MAT,N(1),N(2),MT 01959000
+ 9010 FORMAT(' CROSS SECTIONS. MATERIAL:',I5,1X,2A4,' REACTION:',I5) 01960000
+C 01961000
+ IF(NTOUT.LE.0) NTOUT=23 01962000
+ CALL POSL(NTOUT) 01963000
+ NTO=NT(1,NTOUT) 01964000
+ AMAT=MAT 01965000
+ AMF=MF 01966000
+ AMT=MT 01967000
+ ZA=C1 01968000
+ AWR=C2 01969000
+ ALIS=L1 01970000
+ ALFS=L2 01971000
+C 1: HEAD 01972000
+ CALL WREC(1,NTO,3) 01973000
+C TAB1 COLLE SIGMA 01974000
+ CALL RREC(3,NTE,MODE,T) 01975000
+ S=C1 01976000
+ Q=C2 01977000
+ ALT=L1 01978000
+ ALR=L2 01979000
+ ANR=N1 01980000
+ ANPP=N2 01981000
+C CALCOLO SCHEDE SCRITTE 01982000
+ ANSK=3+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 01983000
+ CALL WREC(3,NTO,3) 01984000
+C ULTIMO SEND 01985000
+C SEND RECORD 01986000
+ NTST=NCONT(STMP,NO,NTE,MODE,MAT,MF,0) 01987000
+ IF(NTST.NE.0) CALL ERR(8H P1F3 ,222) 01988000
+C IL SEND 01989000
+C 01990000
+C METTO IL SEND SUL FILE DI OUTPUT 01991000
+ CALL WREC(1,NTO,3) 01992000
+C 01993000
+ IF(K5.NE.5) GO TO 300 01994000
+C INDICE DESTINAZIONE F5 01995000
+C REAZIONI MT=102-107,1-4,18=NGAM,NP,NT,NHE3,NALF,FISS 01996000
+C 01997000
+ IND=IND+1 01998000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 01999000
+ CALL EMPIN(MINDX1,AINDX(1,IND),AMAT,AMF,AMT,ZA,AWR, 02000000
+ 1 0.,T,Q,0.,ALIS,ALFS,ALT,ALR, 02001000
+ 2 ANR,ANPP,S,Q,0.,0., 02002000
+ 3FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO), 02003000
+ 4FLOAT(NT(3,NTOUT)),ANSK,3.,0.,0., 02004000
+ 55.,0.,0.,0.,0.,N(1),N(2),N(11),0.,0.,0.) 02005000
+ 300 IF(K6.NE.6) GO TO 400 02006000
+ ANREC=2. 02007000
+ IF(AMT.EQ.4..OR.AMT.EQ.16.) ANREC=1. 02008000
+C ANREC=2 PER DATI DI LIVELLO 02009000
+C ANREC=1 PER SIGMA 02010000
+ ANWD=2. 02011000
+ IF(AMT.EQ.4..OR.(AMT.GE.51..AND.AMT.LE.91..AND.LR.NE.16.))ANWD=1. 02012000
+C ANWD= 1 PER ELASTICA 02013000
+C = 2 PER N,2N 02014000
+C =3 PER MI 02015000
+C 02016000
+ IND=IND+1 02017000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 02018000
+ CALL EMPIN(MINDX1,AINDX(1,IND),AMAT,AMF,AMT,ZA,AWR, 02019000
+ 10.,T,Q,0.,ALIS,ALFS,ALT,ALR, 02020000
+ 2ANR,ANPP,S,Q,0.,0., 02021000
+ 3FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO), 02022000
+ 4FLOAT(NT(3,NTOUT)),ANSK,3.,0.,0., 02023000
+ 56.,ANREC,ANWD,0.,0.,N(1),N(2),N(15),0.,0.,0.) 02024000
+ 400 IF(AMT.NE.18..AND.AMT.NE.102.) GO TO 600 02025000
+C Q PER FISS E CATT 02026000
+ WD=5. 02027000
+ IF(AMT.EQ.18.) WD=10. 02028000
+ IND=IND+1 02029000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 02030000
+ CALL EMPIN(MINDX1,AINDX(1,IND),AMAT,AMF,AMT,ZA,AWR, 02031000
+ 1 0.,T,Q,0.,ALIS,ALFS,ALT,ALR, 02032000
+ 2 ANR,ANPP,S,Q,0.,0., 02033000
+ 3FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE),0.,0., 02034000
+ 4FLOAT(NT(3,NTOUT)),ANSK,3.,0.,0., 02035000
+ 51.,3.,WD,0.,0.,N(1),N(2),N(15),0.,0.,0.) 02036000
+ 600 CONTINUE 02037000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 02038000
+ NT(4,NTOUT)=NT(3,NTOUT) 02039000
+ RETURN 02040000
+ END 02041000
+ SUBROUTINE P1F4(MMM,N,MAAA,SPAZ) 02042000
+C ********************************* 02043000
+C 02044000
+C READ ENDFB FILE 4 02045000
+C ANGOLAR DISTRIBUTIONS - PARTE 1 02046000
+C 02047000
+C HEAD RECORD IS IN /RECS/ , IN N THE INPUT TABLE CARD OF THE TAPE 02048000
+C 02049000
+C ******************************** 02050000
+ DIMENSION N(MMM) 02051000
+C 02052000
+ COMMON/FILES/NT(4,99) 02053000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02054000
+C 02055000
+ COMMON/OPZIO/ OPZ(4,8,10) 02056000
+ EQUIVALENCE(OPZ(1,4,1),STMP) 02057000
+C 02058000
+ COMMON/DIM/M(5) 02059000
+ EQUIVALENCE(M(2),IND) 02060000
+C 02061000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 02062000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 02063000
+C 02064000
+ DATA T/0.0/ 02065000
+C 02066000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 02067000
+ 1N1X,N2X,NS,LX,LY,LB 02068000
+C 02069000
+ COMMON/INDX/AINDX(40,200) 02070000
+C 02071000
+C 02072000
+ MODE=N(4) 02073000
+ NTENDF=N(3) 02074000
+ NTOUT=N(5) 02075000
+ NTE=NT(1,NTENDF) 02076000
+C 02077000
+C SOLO SCATTERING ELASTICO (MT=2) E LIVELLI ANEL(MT=51:90) 02078000
+ IF(MT.GE.51.AND.MT.LE.90) GOTO110 02079000
+ IF(MT.EQ.2) GO TO 110 02080000
+ CALL SKIPS(MODE,NTE,1,STMP,NO) 02081000
+ RETURN 02082000
+ 110 CONTINUE 02083000
+C 02084000
+ WRITE(NP,9010) MAT,N(1),N(2),MT 02085000
+ 9010 FORMAT(' ANGOLAR DISTRIBUTIONS. MATERIAL:',I5, 02086000
+ 1 1X,2A4,' REACTION:',I5) 02087000
+C 02088000
+ IF(NTOUT.LE.0) NTOUT=24 02089000
+ CALL POSL(NTOUT) 02090000
+ NTO=NT(1,NTOUT) 02091000
+C RECORD 1 : HEAD (GIA' E' IN RECS ) 02092000
+ AMAT=MAT 02093000
+ AMF=MF 02094000
+ AMT=MT 02095000
+ ZA=C1 02096000
+ AWR=C2 02097000
+ LVT=L1 02098000
+ LTT=L2 02099000
+ CALL WREC(1,NTO,3) 02100000
+ ANSK=1. 02101000
+ NRE=1 02102000
+C RECORD 2: LIST PER LEGENDRE CON LVT=1,CONT PER LVT=0 02103000
+C LVT=1 : DATA MATRICE U 02104000
+C LVT=0 : NON DATRA MATRICE U 02105000
+C 02106000
+C SE E UN CONT 02107000
+ NTIP2=1 02108000
+C SE E UN LIST 02109000
+ IF(LVT.EQ.1) NTIP2=2 02110000
+ CALL RREC(NTIP2,NTE,MODE,T) 02111000
+ LI=L1 02112000
+ LCT=L2 02113000
+ NK=N1 02114000
+ NM=N2 02115000
+ CALL WREC(NTIP2,NTO,3) 02116000
+ ANSK=ANSK+1+NK/6+NREST(NK,6) 02117000
+ NRE=NRE+1 02118000
+C NK E ZERO SE E UN CONT 02119000
+ IF(LTT.EQ.0) GO TO 100 02120000
+C VA A INDICE SE E ISOTROPO 02121000
+C 02122000
+C TERZO RECORD (TAB2) 02123000
+ CALL RREC(4,NTE,MODE,T) 02124000
+ NR=N1 02125000
+ NE=N2 02126000
+ CALL WREC(4,NTO,3) 02127000
+ ANSK=ANSK+NR/3+NREST(NR,3)+1 02128000
+ NRE=NRE+1 02129000
+ NTIP2=2 02130000
+ IF(LTT.EQ.2) NTIP2=3 02131000
+ AMAXPL=0. 02132000
+ AMAXPT=0. 02133000
+ DO 10 I=1,NE 02134000
+C RECORD 5 ( TAB1 PER LTT=2, LIST PER LTT=1 ) 02135000
+ CALL RREC(NTIP2,NTE,MODE,T) 02136000
+ IF(NTIP2.EQ.2) ANSK=ANSK+1+N1/6+NREST(N1,6) 02137000
+ IF(NTIP2.EQ.3)ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02138000
+ NRE=NRE+1 02139000
+ IF(AMAXPL.LT.N1) AMAXPL=N1 02140000
+ IF(AMAXPT.LT.N2) AMAXPT=N2 02141000
+ CALL WREC(NTIP2,NTO,3) 02142000
+ 10 CONTINUE 02143000
+ 100 CONTINUE 02144000
+ IF(NCONT(STMP,NO,NTE,MODE,MAT,4,0).GT.0)CALL ERR(8HP1F4 ,100) 02145000
+C 02146000
+C METTO IL SEND SUL FILE DI OUTPUT 02147000
+ CALL WREC(1,NTO,3) 02148000
+ ANSK=ANSK+1 02149000
+ NRE=NRE+1 02150000
+C 02151000
+ DEST=8. 02152000
+ DEST1=4. 02153000
+ DEST2=0. 02154000
+ IF(AMT.EQ.2.) GO TO 200 02155000
+C SCATT LIVELLI DISCRETI MT=51:90 02156000
+ DEST=6. 02157000
+ DEST1=2. 02158000
+ DEST2=3. 02159000
+ 200 CONTINUE 02160000
+C 02161000
+C 02162000
+C INDICE 02163000
+ IND=IND+1 02164000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 02165000
+ CALL EMPIN(MINDX1,AINDX(1,IND),AMAT,AMF,AMT, 02166000
+ 1ZA,AWR,0.,T,0.,0.,FLOAT(LVT),FLOAT(LTT),FLOAT(LI),FLOAT(LCT), 02167000
+ 2FLOAT(NK),FLOAT(NM),FLOAT(NR),FLOAT(NE),AMAXPL,AMAXPT,FLOAT(MODE),02168000
+ 3FLOAT(NTENDF),FLOAT(NTE),FLOAT(NTOUT),FLOAT(NTO),FLOAT(NT(3,NTOUT)02169000
+ 4),ANSK,FLOAT(NRE),0.,0.,DEST,DEST1,DEST2,0.,0.,N(1),N(2), 02170000
+ 5N(11),0.,0.,0.) 02171000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 02172000
+ NT(4,NTOUT)=NT(3,NTOUT) 02173000
+C 02174000
+ RETURN 02175000
+ END 02176000
+ SUBROUTINE P1F5(MMM,N,MAAA,SPAZ) 02177000
+C ****************************** 02178000
+C 02179000
+C READS ENDFB FILE 5 02180000
+C SECONDARY ENERGY DISTRIBUTION: PART 1 02181000
+C 02182000
+C CONVERT FISSION SPECTRUM FOR ANEL,N2N (LF=7,MT=16,91) 02183000
+C IN TABULATED DATA ( LF=1 ) 02184000
+C 02185000
+C ******************************* 02186000
+ EXTERNAL FISS1 02187000
+ DIMENSION N(MMM),SPAZ(MAAA),TEMP(2) 02188000
+C 02189000
+ COMMON/FILES/NT(4,99) 02190000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02191000
+C 02192000
+ COMMON/OPZIO/ OPZ(4,8,10) 02193000
+ EQUIVALENCE(STMP,OPZ(1,5,1)),(EUP,OPZ(2,5,2)),(DELU,OPZ(2,5,3)) 02194000
+C 02195000
+ COMMON/DIM/M(5) 02196000
+ EQUIVALENCE(M(2),IND) 02197000
+C 02198000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 02199000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 02200000
+C 02201000
+ COMMON MAXA,AD(1) 02202000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 02203000
+ 1N1X,N2X,NS,LX,LY,LB 02204000
+C 02205000
+ COMMON /INDX/AINDX(40,200) 02206000
+C 02207000
+ DATA T/0.0/ 02208000
+C 02209000
+ IF(EUP.LE.0.) EUP=1.4190675E+7 02210000
+ IF(DELU.LE.0.) DELU=1./120. 02211000
+ NG=OPZ(2,5,4) 02212000
+ IF(NG.LE.0) NG=2083 02213000
+ EINF=EUP*EXP(-NG*DELU) 02214000
+ MODE=N(4) 02215000
+ NTENDF=N(3) 02216000
+ NTOUT=N(5) 02217000
+ NTE=NT(1,NTENDF) 02218000
+C 02219000
+C TEST SUI MT CHE AMMETTE 02220000
+ IF(MT.EQ.91.OR.MT.EQ.16.OR.MT.EQ.18) GOTO 111 02221000
+C MT=91 ANEL PER F6 ( PARTE CONTINUO SOPRA I LIVELLI) 02222000
+C MT=16 N,2N PER F6 ( N,2N DIRETTA 02223000
+C MT=18 CHI PER F7 02224000
+C 02225000
+C ALTRE SECTION NON VENGONO LETTE MA SALTATE 02226000
+ CALL SKIPS(MODE,NTE,1,STMP,NO) 02227000
+ RETURN 02228000
+ 111 CONTINUE 02229000
+C 02230000
+ WRITE(NP,9010) MAT,N(1),N(2),MT 02231000
+ 9010 FORMAT(' ENERGY DISTRIBUTIONS. MATERIAL:',I5,1X,2A4, 02232000
+ 1 ' REACTION:',I5) 02233000
+C 02234000
+C 02235000
+ IF(NTOUT.LE.0) NTOUT=25 02236000
+ CALL POSL(NTOUT) 02237000
+ NTO=NT(1,NTOUT) 02238000
+C RECORD 1 : HEAD GIA' IN /RECS/ 02239000
+ AMAT=MAT 02240000
+ AMF=MF 02241000
+ AMT=MT 02242000
+ ZA=C1 02243000
+ AWR=C2 02244000
+ NK=N1 02245000
+ CALL WREC(1,NTO,3) 02246000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 02247000
+C PUNTO AL TAB1 DOPO IL HEAD 02248000
+ ANSK=0. 02249000
+ NRE=0 02250000
+C ..................LOOP SULLE VARIE LEGGI 02251000
+ DO 10 I=1,NK 02252000
+C REC 1 : TAB1 02253000
+ CALL RREC(3,NTE,MODE,T) 02254000
+ U=C1 02255000
+ LT=L1 02256000
+ LF=L2 02257000
+ NRE=NRE+1 02258000
+ ANSK=ANSK+N1/3+NREST(N1,3)+1+N2/3+NREST(N2,3) 02259000
+C -------------- VERRA CONVERTITO LF=7 IN LF=1 PER MT=16,91 02260000
+ IF(LF.EQ.7.AND.MT.NE.18) L2=1 02261000
+C 02262000
+ CALL WREC(3,NTO,3) 02263000
+C LF PARAMETRO DI ENDFB= 1 PER TAB, 7 PER CHI, 9 PER EVAPORAT02264000
+ GO TO (100,550,550,400,550,550,200,550,200,550,400),LF 02265000
+ CALL ERR(8HP1F5 ,0) 02266000
+ CALL SKIPS(MODE,NTE,1,STMP,NO) 02267000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 02268000
+ GO TO 150 02269000
+C 02270000
+ 100 CONTINUE 02271000
+C TABULATE LF=1 02272000
+C LEGGE TAB2 02273000
+ CALL RREC(4,NTE,MODE,T) 02274000
+ ANSK=ANSK+1+N1/3+NREST(N1,3) 02275000
+ NRE=NRE+1 02276000
+ NE=N2 02277000
+ CALL WREC(4,NTO,3) 02278000
+ DO 20 II=1,NE 02279000
+ CALL RREC(3,NTE,MODE,T) 02280000
+ ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02281000
+ NRE=NRE+1 02282000
+ CALL WREC(3,NTO,3) 02283000
+ 20 CONTINUE 02284000
+ GO TO 300 02285000
+C 02286000
+ 200 CONTINUE 02287000
+C SPETTRO FISSIONE O SPETTRO EVAPORAZIONE LF=7,9 02288000
+ CALL RREC(3,NTE,MODE,T) 02289000
+ IF(LF.EQ.7.AND.MT.NE.18) GO TO 700 02290000
+ NE=N2 02291000
+ NRE=NRE+1 02292000
+ ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02293000
+ CALL WREC(3,NTO,3) 02294000
+ GO TO 300 02295000
+C 02296000
+ 700 CONTINUE 02297000
+C CONVERTE FISSION SPECTRUM IN TABULATE PER N,2N ED ANELASTICA 02298000
+C PER MT .NE. 18; LF=7 VA IN LF=1 02299000
+ WRITE(NP,9015) 02300000
+ WRITE(NO,9015) 02301000
+ 9015 FORMAT(' FISSION SPECTRUM DATA CHANGED INTO TABULATED DATA') 02302000
+C 02303000
+ NE=N2 02304000
+ NRE=NRE+1 02305000
+ ANSK=ANSK+1+N1/3+NREST(N1,3) 02306000
+C SCRIVE IL TAB2 02307000
+ CALL WREC(4,NTO,3) 02308000
+ DO 70 IE=1,NE 02309000
+C ENERGIE 02310000
+ SPAZ(IE)=AD(LX+IE-1) 02311000
+C TEMPERATURE 02312000
+ SPAZ(NE+IE)=AD(LY+IE-1) 02313000
+ 70 CONTINUE 02314000
+ DO 75 IE=1,NE 02315000
+ EI=SPAZ(IE) 02316000
+ TEMP(1)=SPAZ(NE+IE) 02317000
+C FATTORE DI NORMALIZZAZIONE (FOLLOWING ENDFB MANUAL) 02318000
+C U E' DATA SOPRA 02319000
+C NORMALIZZO COME ENDFB SULLE E FINO AD U 02320000
+ SQRTEU=SQRT((EI-U)/TEMP(1)) 02321000
+ TEMP(2)=TEMP(1)**1.5*(0.886227*ERF(SQRTEU)- 02322000
+ 1 SQRTEU*EXP(-(EI-U)/TEMP(1))) 02323000
+ EPS=OPZ(1,5,2) 02324000
+ IF(EPS.LE.0.) EPS=0.01 02325000
+ CALL GENT1(FISS1,TEMP,EINF,EI-U,EPS,LOF) 02326000
+ IF(LOF.GT.0) CALL ERR(8HP1F5 ,75) 02327000
+ ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02328000
+ NRE=NRE+1 02329000
+ CALL WREC(3,NTO,3) 02330000
+ 75 CONTINUE 02331000
+ LF=1 02332000
+ GO TO 300 02333000
+C 02334000
+C GENERAL EVAPORATION OR ENERGY DEPENDENT WATT : LF=5,11 02335000
+ 400 CALL RREC(3,NTE,MODE,T) 02336000
+ NE=N2 02337000
+ NRE=NRE+1 02338000
+ ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02339000
+ CALL WREC(3,NTO,3) 02340000
+ CALL RREC(3,NTE,MODE,T) 02341000
+ NF=N2 02342000
+ NRE=NRE+1 02343000
+ ANSK=ANSK+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 02344000
+ CALL WREC(3,NTO,3) 02345000
+C 02346000
+ 300 CONTINUE 02347000
+C INDICI ( UNO PER OGNI RANGE NK 02348000
+ ANREC=0 02349000
+ ANFM=7 02350000
+ ANWD=0 02351000
+ IF(MT.EQ.18) GO TO 390 02352000
+ ANFM=6 02353000
+C 02354000
+ IF(MT.EQ.91) ANWD=1 02355000
+ IF(MT.EQ.16) ANWD=2 02356000
+C 02357000
+ IF(LF.EQ.1) ANREC=4. 02358000
+ IF(LF.EQ.9) ANREC=3. 02359000
+ IF(ANREC.EQ.0.) CALL ERR(8HP1F5 ,300) 02360000
+ 390 CONTINUE 02361000
+C 02362000
+ IND=IND+1 02363000
+ IF(IND.GT.MINDX2) CALL SCARIN(2,MINDX1,IND,AINDX) 02364000
+ CALL EMPIN(MINDX1,AINDX(1,IND),AMAT,AMF,AMT, 02365000
+ 1ZA,AWR,0.,T,U,0.,FLOAT(NK),FLOAT(LT),FLOAT(LF),FLOAT(NE), 02366000
+ 2U,0.,0.,0.,0.,0.,FLOAT(MODE),FLOAT(NTENDF),FLOAT(NTE), 02367000
+ 3FLOAT(NTOUT),FLOAT(NTO),FLOAT(NT(3,NTOUT)),ANSK,FLOAT(NRE),0.,0., 02368000
+ 4ANFM,ANREC,ANWD,0.,0.,N(1),N(2),N(11),0.,0.,0.) 02369000
+C 02370000
+C PUNTA AL TAB1 DELLA LEGGE NK 02371000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 02372000
+ ANSK=0. 02373000
+ NRE=0 02374000
+ GO TO 560 02375000
+C 02376000
+ 550 CONTINUE 02377000
+C THIS DISTRIBUTION LAW IS NOT ACCEPTED! 02378000
+ CALL ERR(8HP1F5 ,550) 02379000
+ CALL SKIPS(MODE,NTE,1,STMP,NO) 02380000
+ NT(3,NTOUT)=NT(3,NTOUT)+ANSK 02381000
+ GO TO 150 02382000
+ 560 CONTINUE 02383000
+ 10 CONTINUE 02384000
+C 02385000
+C METTO IL SEND SUL FILE DI OUTPUT 02386000
+ 150 IF(NCONT(STMP,NO,NTE,MODE,MAT,5,0).NE.0)CALL ERR(8H P1F5 ,10) 02387000
+ CALL WREC(1,NTO,3) 02388000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 02389000
+ NT(4,NTOUT)=NT(3,NTOUT) 02390000
+ RETURN 02391000
+ END 02392000
+ FUNCTION FISS1(X,X0) 02393000
+C ******************************************** 02394000
+C FISSION SPECTRUM FOLLOWING ENDFB MANUAL 02395000
+C FISS : FISSION SPECTRUM IN SLAVE3 DIFFERS FROM THIS ROUTINE 02396000
+C IN THE NORMALIZZATION FACTOR 02397000
+C ******************************************* 02398000
+ DIMENSION X0(2) 02399000
+ IF(X0(2).LE.0.) GO TO 100 02400000
+ FISS1=SQRT(X)/X0(2)*EXP(-X/X0(1)) 02401000
+ RETURN 02402000
+ 100 FISS1=0. 02403000
+ RETURN 02404000
+ END 02405000
+ SUBROUTINE RIEMP(K,M,NN) 02406000
+C ************************** 02407000
+C FILLS NN(M) WITH K 02408000
+C ************************** 02409000
+C 02410000
+C DIMENSION NN(M) 02411000
+ DIMENSION NN(1) 02412000
+ IF(M.LE.0) RETURN 02413000
+ DO 10 I=1,M 02414000
+ 10 NN(I)=K 02415000
+ RETURN 02416000
+ END 02417000
+ SUBROUTINE BIANC(MA,A) 02418000
+C ******************************** 02419000
+C FILLS A(MA) WITH BLANKS 02420000
+C ******************************* 02421000
+C DIMENSION A(MA) 02422000
+ DIMENSION A(1) 02423000
+ IF(MA.LE.0) RETURN 02424000
+ DATA BIAN/4H / 02425000
+ DO 10 I=1,MA 02426000
+ 10 A(I)=BIAN 02427000
+ RETURN 02428000
+ END 02429000
+ FUNCTION AREAL(A) 02430000
+C ******************************** 02431000
+C EVITA LA CONVERSIONE AUTOMATICA 02432000
+C ******************************** 02433000
+ AREAL=A 02434000
+ RETURN 02435000
+ END 02436000
+ FUNCTION NAREAL(NA) 02437000
+C ***************************** 02438000
+C EVITA LA CONVERSIONE AUTOMATICA 02439000
+C **************************** 02440000
+ NAREAL=NA 02441000
+ RETURN 02442000
+ END 02443000
+ FUNCTION NREST(M,M1) 02444000
+C **************************************** 02445000
+C 0 IF M IS DIVISIBLE BY M1 , 1 OTHERWISE 02446000
+C **************************************** 02447000
+ NREST=0 02448000
+ N=M/M1 02449000
+ IF(N*M1.NE.M) NREST=1 02450000
+ RETURN 02451000
+ END 02452000
+ SUBROUTINE REW(NTT) 02453000
+C ************************************************************* 02454000
+C POSITION NTP FILE AT THE FIRST RECORD 02455000
+C AND SET THE POINTER TO THE FILE POSITION:NT(4,.) 02456000
+C MODIFIED 6-3-87 ( NT(2,.) NO MORE USED ) 02457000
+C ************************************************************* 02458000
+C 02459000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 02460000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 02461000
+C 02462000
+ COMMON/FILES/NT(4,99) 02463000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02464000
+C 02465000
+ NTP=(NT(1,NTT)) 02466000
+ IF(NTP.LE.0) GO TO 501 02467000
+ REWIND NTP 02468000
+C SET FILE POINTER 02469000
+ NT(4,NTT)=1 02470000
+C REC CORRENTE=REC INIZIO FILE 02471000
+ RETURN 02472000
+ 501 CONTINUE 02473000
+ WRITE(NP,1000)(NT(J,NTT),J=1,MNT1) 02474000
+ WRITE(NO,1000)(NT(J,NTT),J=1,MNT1) 02475000
+ 1000 FORMAT(' SUB.REW:PROBABLY ERROR IN FILE DESCRIBED BY:',10I5) 02476000
+ RETURN 02477000
+ END 02478000
+ SUBROUTINE POSL(NTP) 02479000
+C ************************************* 02480000
+C POSITION NT(1,NTP) AT THE FIRST AVAILABLE RECORD 02481000
+C NT(3,NTP) IS THE FIRST AVAILABLE RECORD ,NT(4,NT) THE CURRENT ONE 02482000
+C ******************************************* 02483000
+ COMMON /FILES/NT(4,99) 02484000
+ NP=NT(1,NTP) 02485000
+ 200 N=NT(3,NTP)-NT(4,NTP) 02486000
+ IF(N.EQ.0) RETURN 02487000
+ IF(N.GT.0) GO TO 100 02488000
+ REWIND NP 02489000
+ NT(4,NTP)=1 02490000
+ GO TO 200 02491000
+ 100 CONTINUE 02492000
+ DO 10 I=1,N 02493000
+ 10 READ(NP) 02494000
+ NT(4,NTP)=NT(3,NTP) 02495000
+ RETURN 02496000
+ END 02497000
+ SUBROUTINE SKIPE(NTP,MF,MT,N) 02498000
+C *************************************** 02499000
+C SKIPS ON NTP (TAPE ENDFB MODE 3) 02500000
+C RECORDS UNTIL IT FIND THE END OF SPECIFIED MF OR MAT 02501000
+C *************************************** 02502000
+C 02503000
+ N=0 02504000
+ 10 READ(NTP,1000) MAT1,MF1,MT1 02505000
+ N=N+1 02506000
+ 1000 FORMAT(T67,I4,I2,I3) 02507000
+ IF(MF.NE.0.AND.MF1.EQ.MF) GO TO 10 02508000
+ IF(MT.NE.0.AND.MT1.EQ.MT) GO TO 10 02509000
+ RETURN 02510000
+ END 02511000
+ SUBROUTINE SKIPS(MODE,NTP,NK,STMP,NO) 02512000
+C ******************************************************** 02513000
+C ON TAPE NT SKIPS RECORDS UNTIL IT FIND A RECORD OF TYPE: 02514000
+C SEND FOR NK=1 02515000
+C MEND FOR NK=2 02516000
+C FEND FOR NK=3 02517000
+C WRITES ON NTO FILE DEPENDING ON STMP PARAMETERS 02518000
+C ******************************************************** 02519000
+C 02520000
+ DIMENSION D(66) 02521000
+C 02522000
+ IF(MODE.LE.0.OR.MODE.GT.3) CALL ERR(8H SKIPS ,0) 02523000
+ IF(NK.GT.3.OR.NK.LE.0) CALL ERR(8H SKIPS ,1) 02524000
+ 10 CONTINUE 02525000
+ IF(MODE.NE.3)GO TO 100 02526000
+ READ(NTP,1000,END=500)(D(J),J=1,66),MAT,MF,MT,NSEQ 02527000
+ IF(STMP.GT.20) WRITE(NO,2000) (D(J),J=1,66),MAT,MF,MT,NSEQ 02528000
+ 1000 FORMAT(66A1,I4,I2,I3,I5) 02529000
+ 2000 FORMAT(' RECORD SKIPPED:',66A1,I4,I2,I3,I5) 02530000
+ 3000 FORMAT(' RECORD SKIPPED: MAT,MF,MT,C1,C2,L1,L2,N1,N2:', 02531000
+ 13I5,2E12.5,4I11) 02532000
+ GO TO 200 02533000
+ 100 CONTINUE 02534000
+ READ(NTP,END=500) MAT,MF,MT,C1,C2,L1,L2,N1,N2 02535000
+ IF(STMP.GT.20) WRITE(NO,3000) MAT,MF,MT,C1,C2,L1,L2,N1,N2 02536000
+ 200 CONTINUE 02537000
+ IF(NK.EQ.1.AND.MT.LE.0) RETURN 02538000
+ IF(NK.EQ.2.AND.MAT.LE.0) RETURN 02539000
+ IF(NK.EQ.3.AND.MF.LE.0) RETURN 02540000
+ GO TO 10 02541000
+ 500 CONTINUE 02542000
+ CALL ERR(8H SKIPS , 500) 02543000
+ CALL ERRP(5,MODE,NK,NTP,MAT,MT) 02544000
+ RETURN 02545000
+ END 02546000
+ SUBROUTINE RECTPI(NTE,MODE,NO) 02547000
+C ****************************************** 02548000
+C READS RECORD TPID ( FIRST ENDFB RECORD) 02549000
+C ****************************************** 02550000
+ DIMENSION B(20) 02551000
+ IF(MODE.NE.3) GO TO 100 02552000
+C PER BCD 02553000
+ READ(NTE,1000)B 02554000
+ 1000 FORMAT(20A4) 02555000
+ WRITE(NO,1500) B 02556000
+ 1500 FORMAT(' READ TAPE LABEL:TPID:',20A4) 02557000
+C 02558000
+ RETURN 02559000
+ 100 CONTINUE 02560000
+C PER BINARIO 02561000
+ READ(NTE) (B(J),J=1,20) 02562000
+ WRITE(NO,2000) (B(J),J=1,20) 02563000
+ 2000 FORMAT(' READ TAPE LABEL: TPID=',3I10,16A4,A2) 02564000
+ RETURN 02565000
+ END 02566000
+ FUNCTION NCONT(STMP,NO,NTP,MODE,MATT,MFF,MTT) 02567000
+C ************************************************************** 02568000
+C READ CONT RECORD; CONTROLS MAT,MF,MT = ARGUMENTS MATT,MFF,MTT 02569000
+C ************************************************************** 02570000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2 02571000
+C 02572000
+ NCONT=0 02573000
+ IF(NTP.GT.0) GO TO 50 02574000
+ WRITE(NO,1000) MODE,NTP 02575000
+ 1000 FORMAT(' WARNING! ATTEMPT TO READ A FILE NUMBER OUT OF RANGE:',2I02576000
+ 110) 02577000
+ NCONT=1000 02578000
+ RETURN 02579000
+ 50 CONTINUE 02580000
+ CALL RREC(1,NTP,MODE,T) 02581000
+ IF(STMP.GT.11) WRITE(NO,3000)MAT,MF,MT,C1,C2,L1,L2,N1,N2 02582000
+ 3000 FORMAT(' NCONT READS RECORD:',3I5,2E12.5,4I12) 02583000
+ IF(STMP.GT.11) WRITE(NO,4000) MODE,NTP,MATT,MFF,MTT,NCONT 02584000
+ 4000 FORMAT(' PARAMETERS OF NCONT:MODE,NTP,MATT,MFF,MTT,NCONT=', 02585000
+ 1 6I10) 02586000
+ IF(MF.NE.MFF) NCONT=NCONT+100 02587000
+ IF(MAT.NE.MATT) NCONT=NCONT+10 02588000
+ IF(MT.NE.MTT) NCONT=NCONT+1 02589000
+ RETURN 02590000
+ END 02591000
+ SUBROUTINE ERRORE(A,N) 02592000
+C *********************************************** 02593000
+C ERROR MESSAGE PRINTING FOR SLAVE3 ERRORS 02594000
+C *********************************************** 02595000
+C 02596000
+ REAL*8 A 02597000
+ COMMON /RECS/ MAT,MF,MT 02598000
+ COMMON /FILES/NT(4,99) 02599000
+ NO=NT(1,6) 02600000
+ NP=NT(1,11) 02601000
+ WRITE(NO,1000) A,N,MAT,MF,MT 02602000
+ WRITE(NP,1000) A,N,MAT,MF,MT 02603000
+ 1000 FORMAT(' SLAVE3 ERROR ENCOUNTERED!'/50(2H !)/ 02604000
+ 1 (' ROUTINE:',A10,' ERROR NUMBER:',I10,' ENDFB IDENTIFIERS:' 02605000
+ 2 ,'MAT,MF,MT=',3I10)) 02606000
+ RETURN 02607000
+ END 02608000
+ SUBROUTINE ERR(A,I) 02609000
+C ******************* 02610000
+C ERROR MESSAGE 02611000
+C ******************* 02612000
+C 02613000
+ COMMON/FILES/NT(4,99) 02614000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02615000
+ REAL*8 A 02616000
+ WRITE(NO,1000)A,I 02617000
+ WRITE(NP,1000)A,I 02618000
+ 1000 FORMAT(1X,10(2H*!),'ERROR IN SUB:',A10,' NEAR LABEL',I10,10(1H?) 02619000
+ 1) 02620000
+ RETURN 02621000
+ END 02622000
+ SUBROUTINE ERRP(N,A1,A2,A3,A4,A5) 02623000
+C ******************************************************* 02624000
+C PRINT ERROR PARAMETERS 02625000
+C ******************************************************* 02626000
+C 02627000
+ COMMON/FILES/NT(4,99) 02628000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02629000
+C 02630000
+ 1000 FORMAT(' ERROR IN PARAMETER:',I10,E20.10,A8) 02631000
+ WRITE(NO,1000)A1,A1,A1 02632000
+ WRITE(NP,1000)A1,A1,A1 02633000
+ IF(N.LE.1 ) RETURN 02634000
+ WRITE(NO,1000)A2,A2,A2 02635000
+ WRITE(NP,1000)A2,A2,A2 02636000
+ IF(N.LE.2 ) RETURN 02637000
+ WRITE(NO,1000)A3,A3,A3 02638000
+ WRITE(NP,1000)A3,A3,A3 02639000
+ IF(N.LE.3 ) RETURN 02640000
+ WRITE(NO,1000)A4,A4,A4 02641000
+ WRITE(NP,1000)A4,A4,A4 02642000
+ IF(N.LE.4 ) RETURN 02643000
+ WRITE(NO,1000)A5,A5,A5 02644000
+ WRITE(NP,1000)A5,A5,A5 02645000
+ RETURN 02646000
+ END 02647000
+ SUBROUTINE EMPIN(N,A,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13, 02648000
+ 1A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29, 02649000
+ 2A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40) 02650000
+C *********************************************** 02651000
+C FILL INDEX RECORD: A1,A2 ETC ARE PUT IN A(N) 02652000
+C *********************************************** 02653000
+ DIMENSION A(N) 02654000
+ COMMON/FILES/NT(4,99) 02655000
+ EQUIVALENCE(NT(1,12),NPP) 02656000
+C 02657000
+ A(1)=A1 02658000
+ A(2)=A2 02659000
+ A(3)=A3 02660000
+ A(4)=A4 02661000
+ A(5)=A5 02662000
+ A(6)=A6 02663000
+ A(7)=A7 02664000
+ A(8)=A8 02665000
+ A(9)=A9 02666000
+ A(10)=A10 02667000
+ A(11)=A11 02668000
+ A(12)=A12 02669000
+ A(13)=A13 02670000
+ A(14)=A14 02671000
+ A(15)=A15 02672000
+ A(16)=A16 02673000
+ A(17)=A17 02674000
+ A(18)=A18 02675000
+ A(19)=A19 02676000
+ A(20)=A20 02677000
+ A(21)=A21 02678000
+ A(22)=A22 02679000
+ A(23)=A23 02680000
+ A(24)=A24 02681000
+ A(25)=A25 02682000
+ A(26)=A26 02683000
+ A(27)=A27 02684000
+ A(28)=A28 02685000
+ A(29)=A29 02686000
+ A(30)=A30 02687000
+ A(31)=A31 02688000
+ A(32)=A32 02689000
+ A(33)=A33 02690000
+ A(34)=A34 02691000
+ A(35)=A35 02692000
+ A(36)=A36 02693000
+ A(37)=A37 02694000
+ A(38)=A38 02695000
+ A(39)=A39 02696000
+ A(40)=A40 02697000
+ WRITE(NPP,1234) 02698000
+ WRITE(NPP,1235)(A(J),J=1,40) 02699000
+ 1234 FORMAT(' FOLLOWING INDEX RECORD HAS BEEN CREATED:') 02700000
+ 1235 FORMAT(1X,10E12.5) 02701000
+ RETURN 02702000
+ END 02703000
+ SUBROUTINE RDMIX(NP123) 02704000
+C *********************************** 02705000
+C 02706000
+C READ INPUT TABLE OF PART 1,2, OR 3 DEPENDING ON N123=1,2,3 02707000
+C 02708000
+C SUPPRESSED DOUBLE NUCLIDE NAME IN INPUT(NON IN MIX VARIABLE) 02709000
+C 02710000
+C ********************************************* 02711000
+C 02712000
+C READS MIX : INPUT TABLE FOR PART ONE: 02713000
+C MIX(1-2,I)=IDENTIFIER OF MATERIAL FORMAT A8 02714000
+C MIX(3,I)=DD INPUT I4 02715000
+C MIX(4,I)=DD TYPE ENDFB = MODE I4 02716000
+C 5 =DD OUTPUT(LOGICAL NUMBER) I4 02717000
+C 6 = MAT REACTION I4 02718000
+C 7 = MF FILE ENDFB I4 02719000
+C 8 = MT MATERIAL ENDFB I4 02720000
+C 9 = IDENTIFIER FOR MATERIAL FORMAT I4 02721000
+C 10 = IDENTIFIER FOR MATERIAL FORMAT I4 02722000
+C 11 = IDENTIFIER FOR MATERIAL FORMAT I4 02723000
+C 12 = IDENTIFIER FOR MATERIAL FORMAT I4 02724000
+C 13-14 = IDENTIFIERS FORMAT E12.5 02725000
+C 15 = T = TEMPERATURE FORMAT E12.5 02726000
+C 02727000
+C 02728000
+C DEFAULTS : 02729000
+C MIX(3,.) OUT OF RANGE=8 ( NUM LOGOCO TAPE INPUT ENDFB)02730000
+C MIX(4,.) OUT OF RANGE=3 (ENDFB DA SCHEDE 02731000
+C MF=0=ALL MCF 02732000
+C MF <0 =ALL MCF EXCLUDED -MF 02733000
+C 02734000
+C 02735000
+C READS MIX : INPUT TABLE FOR PART 2 02736000
+C MIXING FATTA:1-2 A8 = OUPUT NAME (BLANK= NOME IN) 02737000
+C 3-4 A8 = INPUT NAME 02738000
+C 5 I4= OUTPUT TAPE 02739000
+C 6 I4 = OUTPUT MCCF(MC2-2 FILE) 02740000
+C 7 I4= OUTPUT RECORD 02741000
+C 8 I4= OUTPUT WORD 02742000
+C 9-12 = INTEGER PARAMETER I4 02743000
+C 13-15 E12.5 = REAL PARAMETERS 02744000
+C 02745000
+C DEFAULTS : NAME OUT MISSING = NOME INPUT 02746000
+C MCCF= 0 : ALL THE MCCF 02747000
+C MCCF NEGATIVO : ALL MCCF EXCEPT THIS 02748000
+C MIX(5)<0 : THE MATERIAL IS EXCLUDED 02749000
+C 02750000
+C 02751000
+C READS INPUT TABLE FOR PART 3 02752000
+C MIX CONTAINS: 02753000
+C MIX(1-2,I)=A8=NOME OUT(SUPPRESSED IN INPUT) 02754000
+C MIX(3-4,.)=A8=NOME IN 02755000
+C MIX(5, .) =I4= MCF 02756000
+C MIX(6, .)= I4= PARAMETERS OF MC2-2 RECORDS 02757000
+C MIX(13-15)=E 12.5=REAL PARAMETERS 02758000
+C 02759000
+C DEFAULTS: 02760000
+C NOME IN=BLANK=NOME OUT 02761000
+C MCF=0=ALL MCF 02762000
+C MCF <0 =ALL MCF EXCEPT THIS 02763000
+C 02764000
+C ************************************************************* 02765000
+C 02766000
+ COMMON/FILES/NT(4,99) 02767000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)),(NPP,NT(1,12))02768000
+C 02769000
+ COMMON /MIX/MIX(15,300) 02770003
+ COMMON /DIM/M(5) 02771000
+ COMMON/DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3, 02772000
+ 1MM,MNX1,MNX2,MJX,MMX,MNT1,MNT2,MIND11,MIND12 02773000
+C 02774000
+ DATA NFIN/4HFINE/ 02775000
+ DIMENSION N123(3),NM(3) 02776000
+ DATA N123/4H 1 ,4H 2 ,4H 3 / 02777000
+C POSIZIONE IN M (COMMON /DIM/ ) DELLE DIMENSIONI DELLA MIXING 02778000
+ DATA NM/1,3,5/ 02779000
+C M(1),(3),(5)=DIM EFFETTIVE DELLE MIX DELLA PARTE 1,2,3 02780000
+ DATA MM1/15/ 02781000
+C 02782000
+ I=1 02783000
+ CALL RIEMP(0,MMIX1*MMIX2,MIX) 02784000
+ IF(NP123.LE.3.AND.NP123.GT.0) GO TO 10 02785000
+ CALL ERR(8HRDMIX ,10) 02786000
+C CALL ERRP(1,NP123,DUM,DUM,DUM,DUM) 02787003
+ GO TO 500 02788000
+ 10 CONTINUE 02789000
+ WRITE(NP,1000) N123(NP123),I 02790000
+ 1000 FORMAT(' PART :',A4,'-- GIVE CARD:',I10) 02791000
+C 02792000
+ K0=1 02793000
+ K1=1 02794000
+ K2=10 02795000
+ K3=3 02796000
+ K4=1 02797000
+ I3=3 02798000
+ IF(NP123.EQ.1) GOTO 101 02799000
+C K0=2 02800000
+C K1=2 02801000
+ I3=5 02802000
+ K2=8 02803000
+ K4=3 02804000
+ 101 CONTINUE 02805000
+ CALL COMMR(K0,NI,NO,NPP,K1,MIX(K4,I),K2,MIX(I3,I),K3,MIX(13,I)) 02806000
+C 02807000
+ IF(NP123.GT.1) GO TO 230 02808000
+ 100 CONTINUE 02809000
+ 3100 FORMAT(' READ INPUT TABLE CARD NUMB:',I5,',CONTAINING:'/1X, 02810000
+ 12A4,10I5,3E12.5) 02811000
+C 02812000
+ IF(MIX(1,I).EQ.NFIN) GO TO 500 02813000
+ IF(MIX(3,I).LT.0) GO TO 500 02814000
+C DEFAULTS 02815000
+ IF(MIX(4,I).EQ.0.OR.MIX(4,I).GT.3) MIX(4,I)=3 02816000
+ IF(MIX(3,I).LE.0.OR.MIX(3,I).GT.99) MIX(3,I)=8 02817000
+C WRITE(NO,3100) I,(MIX(J,I),J=1,MM1) 02818000
+ WRITE(NPP,3100) I,(MIX(J,I),J=1,MM1) 02819000
+ IF(MIX(7,I).GT.0) GO TO 130 02820000
+C ESPANDE I MCCF E METTE DEFAULTS 02821000
+ KMF=MIX(7,I) 02822000
+ KI=I 02823000
+ I=I-1 02824000
+C 02825000
+ DO 15 K=1,5 02826000
+ IF(KMF.EQ.-K) GO TO 15 02827000
+ I=I+1 02828000
+ IF(I.GT.MMIX2) GO TO 501 02829000
+ DO 16 IK=1,MMIX1 02830000
+ 16 MIX(IK,I)=MIX(IK,KI) 02831000
+ MIX(7,I)=K 02832000
+C WRITE(NO,3100) I,(MIX(J,I),J=1,MM1) 02833000
+ WRITE(NPP,3100) I,(MIX(J,I),J=1,MM1) 02834000
+ 15 CONTINUE 02835000
+ 130 CONTINUE 02836000
+ GO TO 400 02837000
+ 3200 FORMAT(' READ INPUT TABLE CARD NUMB:',I5,' CONTAINING:'/1X, 02838000
+ 14A4,8I4,3E12.5) 02839000
+ 230 CONTINUE 02840000
+C PARTE COMUNE A MIXING 3 E 4 02841000
+C STOPS 02842000
+C NOME OUT BIANCO= NOME IN 02843000
+C IF(MIX(1,I).NE.NBIAN.OR.MIX(2,I).NE.NBIAN) GO TO 345 02844000
+ MIX(1,I)=MIX(3,I) 02845000
+ MIX(2,I)=MIX(4,I) 02846000
+ 345 IF(MIX(1,I).EQ.NFIN) GO TO 500 02847000
+ IF(NP123.NE.2) GO TO 347 02848000
+C WRITE(NO,3200) I,(MIX(J,I),J=1,MM1) 02849000
+ WRITE(NPP,3200) I,(MIX(J,I),J=1,MM1) 02850000
+ IF(NP123.NE.3) GO TO 348 02851000
+ 347 WRITE(NPP,3200) I,(MIX(J,I),J=1,MM1) 02852000
+C WRITE(NO,3200) I,(MIX(J,I),J=1,MM1) 02853000
+ 348 IF(MIX(6,I).GT.0) GO TO 400 02854000
+C ESPANDE I MCCF E METTE DEFAULTS 02855000
+ KMF=MIX(6,I) 02856000
+ KI=I 02857000
+ I=I-1 02858000
+C 02859000
+ DO 20 K=1,8 02860000
+ IF(KMF.EQ.-K) GO TO 20 02861000
+ I=I+1 02862000
+ IF(I.GT.MMIX2) GO TO 501 02863000
+ DO 30 IK=1,MMIX1 02864000
+ 30 MIX(IK,I)=MIX(IK,KI) 02865000
+ MIX(6,I)=K 02866000
+ IF(NP123.NE.2) GO TO 357 02867000
+C WRITE(NO,3200) I,(MIX(J,I),J=1,MM1) 02868000
+ WRITE(NPP,3200) I,(MIX(J,I),J=1,MM1) 02869000
+ GO TO 358 02870000
+ 357 WRITE(NPP,3200) I,(MIX(J,I),J=1,MM1) 02871000
+C WRITE(NO,3200) I,(MIX(J,I),J=1,MM1) 02872000
+ 358 CONTINUE 02873000
+ 20 CONTINUE 02874000
+C PARTE COMUNE A MIXING 1, 2 ,3 02875000
+ 400 CONTINUE 02876000
+ I=I+1 02877000
+ IF(I.LT.MMIX2) GO TO 10 02878000
+ 501 CALL ERR(8HRDMIX ,501) 02879000
+C CALL ERRP(2,I,MMIX2,0.,0.,0.) 02880003
+ I=I-1 02881000
+ GO TO 10 02882000
+C NON PRENDE PIU SCHEDE MA VA AVANTI FINO ALLA SCHEDA FINE 02883000
+ 500 CONTINUE 02884000
+ M(NM(NP123))=I-1 02885000
+ RETURN 02886000
+ END 02887000
+ SUBROUTINE MIXSHO(K,NOU) 02888000
+C ************************* 02889000
+C PRINTS INPUT TABLES 02890000
+C ******************************* 02891000
+C 02892000
+ COMMON /FILES/NT(4,99) 02893000
+ EQUIVALENCE (NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 02894000
+ COMMON /MIX/MIX(15,300) 02895003
+ COMMON /DIM/M(5) 02896000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 02897000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 02898000
+ DIMENSION FORM(20,3),FOR(20) 02899000
+ DATA FORM/4H(' C,4HARD:,4H' ,4H ,4H ,I3,4H,'=', 02900000
+ 1 4H,2A4,4H,3I3,4H,I5,,4H6I3,,4H3E12,4H.5 ),8*4H , 02901000
+ 2 4H(' C,4HARD:,4H' ,4H ,4H,I3,,4H'=',,4H4A4,,4H8I3,, 02902000
+ 3 4H3E12,4H.5) ,10*4H , 02903000
+ 4 4H(' C,4HARD:,4H' ,4H ,4H,I3,,4H'=',,4H4A4,,4H8I3,, 02904000
+ 5 4H3E12,4H.5) ,10*4H / 02905000
+C 02906000
+ MMM=M(2*K-1) 02907000
+ WRITE(NOU,1000) K 02908000
+ 1000 FORMAT(' INPUT TABLE OF PART:',I5) 02909000
+ IF(K.LE.0.OR.K.GT.3) RETURN 02910000
+ DO 5 I=1,20 02911000
+ 5 FOR(I)=FORM(I,K) 02912000
+C 02913000
+ DO 10 I=1,MMM 02914000
+ WRITE(NOU,FOR) I,(MIX(J,I),J=1,MMIX1) 02915000
+ 10 CONTINUE 02916000
+ RETURN 02917000
+ END 02918000
+ SUBROUTINE COMMR(K,NI,NO,NP,MC,C,MIC,IC,MAC,AC) 02919000
+C ************************************************* 02920000
+C READS A COMMAND IN FREE FORMAT : (A8 ... PARAMETERS) 02921000
+C LEGGE UN COMANDO DATO AL MAIN IN FORMATO LIBERO 02922000
+C NELLA SCHEDA IL COMANDO VA NELLE PRIME 8 COLONNE, 02923000
+C SEGUONO I PARAMETRI IN FORMATO LIBERO,SEPARATI DA 02924000
+C SPAZIO BIANCO. 02925000
+C L(3,.)= CIFRE COME NUMERI:PRIMA DI VIRGOLA,DOPO E DI EXP 02926000
+C NL( ) = NUMERO CIFRE PRIMA,DOPO VIRGOLA ED EXP 02927000
+C NSL( )= SEGNO PARTE INTERA,DECIMALE ED EXP 02928000
+C NIC= POSIZIONE LIBERA IN IC (PARAMETRI INTERI DEL COMANDO) 02929000
+C NAC= POSIZIONE LIBERA IN AC (PARAMETRI REALI DEL COMANDO) 02930000
+C I= NUMER O DEL CARATTERE DA INTERPRETARE 02931000
+C NUMERO CIFRE PRIMA DI VIRGOLA,NL(1) 02932000
+C NUMERO COFRE DOPO LA VIRGOLA, NL(2) 02933000
+C NUMERO CIFRE EXP , NL(3) 02934000
+C SEGNO VALORE, NSL(1) 02935000
+C SEGNO EXP , NSL(3) 02936000
+C POSIZIONE LIBERA IN IC NIC 02937000
+C POSIZIONE LIBERA IN AC NAC 02938000
+C CARATTERE DA INTERPRETARE I 02939000
+C FLAG PER REALE NFLOT=1 02940000
+C 02941000
+C NFLAG 1 : CIFRE PRIMA DI VIRGOLA 02942000
+C 2 : CIFRE DOPO LA VIRGOLA 02943000
+C 3 : CIFRE EXP 02944000
+C K= FORMATO DI LETTURA 02945000
+C K=1= A8..ETC 02946000
+C K=2= 2A8..ETC 02947000
+C K=3= ..ETC 02948000
+C *************************************************** 02949000
+ DIMENSION A(80),L(3,80),NL(3),NSL(3),ANUM(3) 02950000
+ DIMENSION C(MC),IC(MIC),AC(MAC) 02951000
+ REAL*8 C 02952000
+ EQUIVALENCE (NL(1),NL1),(NL(2),NL2),(NL(3),NL3) 02953000
+ DIMENSION CIF(9) 02954000
+ DATA BIAN/4H / 02955000
+ DATA AMENO,E,PUNTO,ZERO/4H- ,4HE ,4H. 02956000
+ 1 ,4H0 / 02957000
+ DATA CIF/4H1 ,4H2 ,4H3 ,4H4 ,4H5 ,4H6 ,4H7 , 02958000
+ 1 4H8 ,4H9 / 02959000
+ CALL RIEMP(0,MIC,IC) 02960000
+ CALL RIEMP(0.,MAC,AC) 02961000
+C 02962000
+C 02963000
+ NL(1)=0 02964000
+ NL(2)=0 02965000
+ NL(3)=0 02966000
+ NSL(1)=1 02967000
+ NSL(2)=1 02968000
+ NSL(3)=1 02969000
+ NIC=0 02970000
+ NAC=0 02971000
+ I=0 02972000
+ NFLAG=1 02973000
+ NFLOT=0 02974000
+ CALL BIANC(80,A) 02975000
+C 02976000
+ WRITE(NP,1000) 02977000
+ IF(K.LE.0.OR.K.GT.3) K=3 02978000
+ IF(K.NE.1) GO TO 2 02979000
+ ILIMT=64 02980000
+ READ(NI,2000) C(1),(A(J),J=1,72) 02981000
+ 1000 FORMAT(' ENTER COMMAND >>>') 02982000
+ 2000 FORMAT(A8,72A1) 02983000
+C WRITE(NO,3000) C(1),(A(J),J=1,72) 02984000
+ WRITE(NP,3000) C(1),(A(J),J=1,72) 02985000
+ 3000 FORMAT(' ACCEPTED COMMAND:',A8,72A1) 02986000
+ 2 CONTINUE 02987000
+ IF(K.NE.2) GOTO 3 02988000
+ ILIMT=56 02989000
+ READ(NI,2002) C(1),C(2),(A(J),J=1,64) 02990000
+ 2002 FORMAT(2A8,64A1) 02991000
+C WRITE(NO,3002) C(1),C(2),(A(J),J=1,64) 02992000
+ WRITE(NP,3002) C(1),C(2),(A(J),J=1,64) 02993000
+ 3002 FORMAT(1X,2A8,64A1) 02994000
+ 3 CONTINUE 02995000
+ IF(K.NE.3) GOTO 4 02996000
+ READ(NI,2004) (A(J),J=1,80) 02997000
+ ILIMT=72 02998000
+C WRITE(NO,3004) (A(J),J=1,80) 02999000
+ WRITE(NP,3004) (A(J),J=1,80) 03000000
+ 2004 FORMAT(80A1) 03001000
+ 3004 FORMAT(1X,80A1) 03002000
+ 4 CONTINUE 03003000
+C 03004000
+ 10 CONTINUE 03005000
+C LOOP SUI CARATTERI DA INTERPRETARE 03006000
+ I=I+1 03007000
+ IF(I.GE.ILIMT)GO TO 100 03008000
+ IF(A(I).EQ.BIAN) GO TO 150 03009000
+C VA A INTERPRETARE, UN BIANCO SEPARA I VALORI 03010000
+C GUARDA SE IL CARATTERE E LA CIFRA 1-9 OPPURE 0 03011000
+ DO 20 J=1,9 03012000
+ IF(A(I).NE.CIF(J)) GO TO 20 03013000
+ NL(NFLAG)=NL(NFLAG)+1 03014000
+ L(NFLAG,NL(NFLAG))=J 03015000
+ GO TO 10 03016000
+ 20 CONTINUE 03017000
+ IF(A(I).NE.ZERO) GO TO 200 03018000
+ NL(NFLAG)=NL(NFLAG)+1 03019000
+ L(NFLAG,NL(NFLAG))=0 03020000
+ GO TO 10 03021000
+ 200 CONTINUE 03022000
+ IF(A(I).EQ.AMENO) NSL(NFLAG)=-1 03023000
+ IF(A(I).EQ.PUNTO) NFLAG=2 03024000
+ IF(A(I).EQ.E) NFLAG=3 03025000
+ IF(A(I).EQ.PUNTO) NFLOT=1 03026000
+C CARATTERI NON CONTEMPLATI SONO IGNORATI 03027000
+ GO TO 10 03028000
+ 150 CONTINUE 03029000
+C INTERPRETAZIONE 03030000
+ IF(NL(1).LE.0.AND.NL(2).LE.0.AND.NL(3).LE.0) GO TO 10 03031000
+C LOOP SU CIFRE PRIMA DEL PUNTO,DOPO DEL PUNTO , SU EXP ******* 03032000
+ DO 30 J=1,3 03033000
+ ANUM(J)=0 03034000
+ IF(NL(J).LE.0) GO TO 300 03035000
+ N1=NL(J) 03036000
+ N2=N1 03037000
+ IF(J.EQ.2) N2=0 03038000
+ DO 40 JJ=1,N1 03039000
+ ANUM(J)=ANUM(J)+L(J,JJ)*10.**(N2-JJ) 03040000
+ 40 CONTINUE 03041000
+ 300 CONTINUE 03042000
+ 30 CONTINUE 03043000
+ NEXP=ANUM(3)*NSL(3) 03044000
+ B=(ANUM(1)+ANUM(2))*NSL(1)*NSL(2)*10.**NEXP 03045000
+C HA DEFINITO IL NUMERO ORA LO METTE NEL PARAMETRO 03046000
+ IF(NFLOT.EQ.0) GOTO 400 03047000
+C LA CIFRA DOPO LA VIRGOLA, DECIMALE 03048000
+ NAC=NAC+1 03049000
+ IF(NAC.GT.MAC) GOTO600 03050000
+ AC(NAC)=B 03051000
+ GO TO 500 03052000
+ 400 CONTINUE 03053000
+C E UN INTERO 03054000
+ NIC=NIC+1 03055000
+ IF(NIC.GT.MIC) GO TO 600 03056000
+ IC(NIC)=B 03057000
+ 500 CONTINUE 03058000
+C RESET INIZIALI 03059000
+ DO 50 J=1,3 03060000
+ NL(J)=0 03061000
+ NSL(J)=1 03062000
+ 50 CONTINUE 03063000
+ NFLAG=1 03064000
+ NFLOT=0 03065000
+ GO TO 10 03066000
+ 600 CONTINUE 03067000
+ CALL ERR(8HCOMMR ,100) 03068000
+C 03069000
+C 03070000
+ GO TO 500 03071000
+ 100 CONTINUE 03072000
+C WRITE(NO,4000) C 03073000
+ WRITE(NP,4000) C 03074000
+ 4000 FORMAT(' ACCEPTED COMMAND: ',2A8) 03075000
+C IF(NIC.GT.0) WRITE(NO,5000) (IC(J),J=1,NIC) 03076000
+ IF(NIC.GT.0) WRITE(NP,5000) (IC(J),J=1,NIC) 03077000
+C IF(NAC.GT.0) WRITE(NO,6000) (AC(J),J=1,NAC) 03078000
+ IF(NAC.GT.0) WRITE(NP,6000) (AC(J),J=1,NAC) 03079000
+ 5000 FORMAT(' INTEGER PARAMETERS:',10I10) 03080000
+ 6000 FORMAT(' REAL PARAMETERS :',5E12.5) 03081000
+ MIC=NIC 03082000
+ MAC=NAC 03083000
+ RETURN 03084000
+ END 03085000
+ SUBROUTINE MIXIND(IND,MINDX1,MINDX2,AINDX) 03086000
+C ****************************************************** 03087000
+C EDITOR OF THE INDEX OF INTERMEDIATE FILES 03088000
+C ******************************************************* 03089000
+C 03090000
+ DIMENSION AINDX(MINDX1,MINDX2) 03091000
+ COMMON /FILES/NT(4,99) 03092000
+ EQUIVALENCE (NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 03093000
+ DIMENSION C(2),IC(6),AC(4) 03094000
+C 03095000
+ 10 WRITE(NP,1000) 03096000
+ 1000 FORMAT(' INDEX EDITOR ENTERED: ACCEPTED OPTIONS:'/ 03097000
+ 1 ' 1=WRITE,2=LOAD,3=SAVE,4=DEL,5=SEL,6=CHANGE', 03098000
+ 2 ',7=DECR.ORD,8=INCR.ORD,9=NEW NAME,10=FILL,0=END') 03099000
+ N2=2 03100000
+ N6=6 03101000
+ N4=4 03102000
+C 03103000
+ CALL COMMR(3,NI,NO,NP,N2,C,N6,IC,N4,AC) 03104000
+ K=IC(1) 03105000
+ IF(K.LE.0) RETURN 03106000
+ GO TO (100,200,300,400,500,600,700,800,900,910),K 03107000
+ 100 CONTINUE 03108000
+ IF(IND.GT.0) GO TO 105 03109000
+ WRITE(NP,1500) 03110000
+ 1500 FORMAT(' NO INDEX AVAILABLE!') 03111000
+ GOTO 10 03112000
+ 105 CONTINUE 03113000
+ N1=IC(2) 03114000
+ N2=IC(3) 03115000
+ IF(N1.LE.0) N1=1 03116000
+ IF(N2.GT.MINDX1.OR.N2.LT.N1) N2=IND 03117000
+ NOOO=NO 03118000
+ IF(IC(4).GT.0.AND.IC(4).LE.99) NOOO=IC(4) 03119000
+ DO 20 I=N1,N2 03120000
+ WRITE(NOOO,2000) I,(AINDX(J,I),J=1,MINDX1) 03121000
+ 2000 FORMAT(' INDEX NUMBER:',I5/(1X,5E15.8)) 03122000
+ 20 CONTINUE 03123000
+ GO TO 10 03124000
+ 200 CONTINUE 03125000
+ CALL LOADIN(IND,IC(2),IC(3),IC(4),MINDX1,MINDX2,AINDX) 03126000
+ GO TO 10 03127000
+ 300 CONTINUE 03128000
+ CALL SAVI(IC(2),MINDX1,IND,AINDX) 03129000
+ GO TO 10 03130000
+ 400 CONTINUE 03131000
+ CALL COMPIN(IND,IC(2),IC(3),MINDX1,MINDX2,AINDX) 03132000
+ GO TO 10 03133000
+ 500 CONTINUE 03134000
+ E1=AC(1) 03135000
+ E2=AC(2) 03136000
+ K1=IC(1) 03137000
+ CALL SELR2(MINDX1,IND,AINDX,K1,E1,E2) 03138000
+ GO TO 10 03139000
+ 600 CONTINUE 03140000
+ K1=IC(1) 03141000
+ IF(K1.LE.0) RETURN 03142000
+ N1=IC(2) 03143000
+ N2=IC(3) 03144000
+ IF(N1.LE.0) N1=1 03145000
+ IF(N2.LT.N1) N2=N1 03146000
+ A1=AC(1) 03147000
+ A2=AC(2) 03148000
+ DO 30 I=N1,N2 03149000
+ IF(AINDX(K1,I).EQ.A1) AINDX(K1,I)=A2 03150000
+ 30 CONTINUE 03151000
+ GO TO 10 03152000
+ 700 CONTINUE 03153000
+ K1=IC(1) 03154000
+ CALL ORDINA(K1,MINDX1,IND,AINDX) 03155000
+ GO TO 10 03156000
+ 800 CONTINUE 03157000
+ K1=IC(1) 03158000
+ CALL ORDIN1(K1,MINDX1,IND,AINDX) 03159000
+ GO TO 10 03160000
+ 900 CONTINUE 03161000
+ K1=IC(1) 03162000
+ IF(K1.LE.0) K1=35 03163000
+ K2=K1+1 03164000
+ N1=IC(2) 03165000
+ IF(N1.LE.0) N1=1 03166000
+ N2=IC(3) 03167000
+ IF(N2.LE.0) N2=N1 03168000
+ WRITE(NP,3000) K1 03169000
+ 3000 FORMAT(' GIVE OLD AND NEW NAME (A8),IN INDEX POSITION:',I5) 03170000
+ READ(NI,4000) A1,A2,A3,A4 03171000
+ 4000 FORMAT(4A4) 03172000
+ DO 90 I=N1,N2 03173000
+ IF(AINDX(K1,I).NE.A1.OR.AINDX(K2,I).NE.A2) GO TO 90 03174000
+ AINDX(K1,I)=A3 03175000
+ AINDX(K2,I)=A4 03176000
+ 90 CONTINUE 03177000
+ GO TO 10 03178000
+ 910 CONTINUE 03179000
+ K1=IC(1) 03180000
+ IF(K1.LE.0) RETURN 03181000
+ N1=IC(2) 03182000
+ N2=IC(3) 03183000
+ IF(N1.LE.0) N1=1 03184000
+ IF(N2.LT.N1) N2=N1 03185000
+ A1=AC(1) 03186000
+ DO 91 I=N1,N2 03187000
+ AINDX(K1,I)=A1 03188000
+ 91 CONTINUE 03189000
+ GO TO 10 03190000
+ END 03191000
+ SUBROUTINE LOADIN(M,NTAP,K1,K,MINDX1,MINDX2,INDX) 03192000
+C ************************* 03193000
+C 03194000
+C LOAD IN /INDX/ THE INTERMEDIATE FILE INDEX (FOR THE FIRST GROUP) 03195000
+C OF INTERMEDIATE FILES 03196000
+C NTAP: TAPE DA CUI LEGGE 03197000
+C M : DIMENSIONI DELL INDICE LETTO 03198000
+C INDX(MINDX1,MINDX2) : INDICE LETTO 03199000
+C 03200000
+C PER K=0 LO METTE TUTTO 03201000
+C PER K=N METTE IL N CHE TROVA SU TAPE 03202000
+C K1 = POSIZIONE IN INDX CHE SI INIZIA A RIEMPIRE 03203000
+C 03204000
+C ****************************************************** 03205000
+C 03206000
+C 03207000
+ DIMENSION INDX(MINDX1,MINDX2) 03208000
+C 03209000
+C 03210000
+ COMMON/FILES/NT(4,99) 03211000
+C EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 03212000
+C 03213000
+C 03214000
+C 03215000
+C 03216000
+C 03217000
+ IF(K1.LT.1) K1=1 03218000
+ IF(NTAP.LE.0) NTAP=2 03219000
+ CALL REW(NTAP) 03220000
+ NTP=NT(1,NTAP) 03221000
+ IK=0 03222000
+C NUMERO DELL IND CHE LEGGE 03223000
+ 1 READ(NTP,END=500) IND 03224000
+ IF(IND.LE.0) GO TO 10 03225000
+ IK=IK+1 03226000
+ IF(MINDX2.LT.IND+K1-1) CALL ERR(8H LOADIN , 10) 03227000
+ DO 10 I=1,IND 03228000
+ READ(NTP,END=501) ( INDX(J,I+K1-1),J=1,MINDX1) 03229000
+ 10 CONTINUE 03230000
+ IF(K.EQ.0.OR.K.EQ.IK) K1=K1+IND 03231000
+C CONTINUA A LEGGERE ALTRI DI SEGUITO 03232000
+ IF(K.EQ.0.OR.K.NE.IK) GO TO 1 03233000
+C HA LETTO QUELLO SPECIFICO CHE DOVEVA 03234000
+ 500 M=K1-1 03235000
+C SET DIMENSIONI INDICI PRIMA SERIE 03236000
+ RETURN 03237000
+ 501 CALL ERR(8H LOADIN , 501) 03238000
+ RETURN 03239000
+ END 03240000
+ SUBROUTINE LOADI1(M,NTAP,MINDX1,MINDX2,INDX) 03241000
+C ************************************************************** 03242000
+C LOAD THE INDEX OF INTERMEDIATE FILE FROM NTAP (WITHOUT REWIND) 03243000
+C 03244000
+C M: LUNGHEZZA DELL'INDICE 03245000
+C NTAP: TAPE DA CUI LEGGERE 03246000
+C ************************************************************* 03247000
+C 03248000
+ DIMENSION INDX(MINDX1,MINDX2) 03249000
+ COMMON /FILES/NT(4,99) 03250000
+ NTP=NT(1,NTAP) 03251000
+ 1 READ(NTP,END=500) IND 03252000
+ IF(MINDX2.LT.IND) CALL ERR(8H LOADI1 ,10) 03253000
+ DO 10 I=1,IND 03254000
+ READ(NTP,END=501) (INDX(J,I),J=1,MINDX1) 03255000
+ NT(4,NTAP)=NT(4,NTAP)+1 03256000
+ 10 CONTINUE 03257000
+ M=IND 03258000
+ RETURN 03259000
+ 501 CALL ERR(8HLOADI1 ,501) 03260000
+ RETURN 03261000
+ 500 CALL ERR(8HLOADI1 ,500) 03262000
+ RETURN 03263000
+ END 03264000
+ SUBROUTINE COMPIN(IND,K1,K2,MINDX1,MINDX2,AINDX) 03265000
+C **************************************************** 03266000
+C COMPRESS MATRIX AINDX(MINDX1,MINDX2).ELIMINANDO 03267000
+C AINDX(.,K1) AD AINDX(.,K2) COMPRESE, IND E LA SECONDA 03268000
+C DIMENSIONE DI IND ( CALATA DI K2-K1+1) 03269000
+C ****************************************************** 03270000
+ DIMENSION AINDX(MINDX1,MINDX2) 03271000
+ IF(K1.GT.K2) GO TO 501 03272000
+ IF(K2.GT.MINDX2) K2=MINDX2 03273000
+ I1=K2+1 03274000
+ I2=MINDX2 03275000
+ ITOT=K2-K1+1 03276000
+ DO 10 I=I1,I2 03277000
+ IT=I-ITOT 03278000
+ DO 20 IJ=1,MINDX1 03279000
+ 20 AINDX(IJ,IT)=AINDX(IJ,I) 03280000
+ 10 CONTINUE 03281000
+ IND=IND-ITOT 03282000
+ RETURN 03283000
+ 501 CALL ERR(8H,COMPIN ,501) 03284000
+ RETURN 03285000
+ END 03286000
+ SUBROUTINE SAVI(NTT,MINDX1,IND,INDX) 03287000
+C ********************************************** 03288000
+C WRITES INDEX OF INTERMEDIATE FILES ON NTT FILE 03289000
+C ********************************************** 03290000
+C 03291000
+ DIMENSION INDX(MINDX1,IND) 03292000
+ COMMON/FILES/NT(4,99) 03293000
+C 03294000
+ NT2=NT(1,NTT) 03295000
+ WRITE(NT2) IND 03296000
+ DO 10 I=1,IND 03297000
+ WRITE(NT2) (INDX(J,I),J=1,MINDX1) 03298000
+ 10 CONTINUE 03299000
+ NT(4,2)=NT(4,2)+IND+1 03300000
+ NT(3,2)=NT(4,2) 03301000
+ RETURN 03302000
+ END 03303000
+ SUBROUTINE SCARIN(NTPI,MINDX1,MIND,INDX) 03304000
+C ***************************************** 03305000
+C WRITES INDEX ON FILE AND FREE THE INDEX MATRIX INDX 03306000
+C SCARICA SU NT(1,NTPI) L'INDICE FINO A MIND-1 03307000
+C ASSEGNA A MIND VALORE 1 03308000
+C ********************************************* 03309000
+ DIMENSION INDX(MINDX1,MIND) 03310000
+ COMMON /FILES/ NT(4,99) 03311000
+ EQUIVALENCE (NT(1,11),NP) 03312000
+ MIND=MIND-1 03313000
+ CALL POSL(NTPI) 03314000
+ CALL SAVI(NTPI,MINDX1,MIND,INDX) 03315000
+ WRITE(NP,9000) MIND,NTPI 03316000
+ 9000 FORMAT(2X,I5,' VECTORS OF INDEX MATRIX SCRATCHED ON UNIT',I5) 03317000
+ MIND=1 03318000
+ RETURN 03319000
+ END 03320000
+ SUBROUTINE ORDINA(K,N1,NP,A) 03321000
+C ************************************** 03322000
+C ORDERING ROUTINE 03323000
+C ORDINA A(N1,NP) PER VALORI DECRESCENTI DI A(K,.) 03324000
+C ************************************** 03325000
+ DIMENSION A(N1,NP) 03326000
+ NP1=NP-1 03327000
+ IF(NP1.LT.1) RETURN 03328000
+ DO 10 I=1,NP1 03329000
+ I1=I+1 03330000
+C CERCA IL MAX SUI SUCCESSIVI 03331000
+ KK=I 03332000
+ DO 20 J=I1,NP 03333000
+ IF(A(K,KK).GT.A(K,J)) GO TO 20 03334000
+ KK=J 03335000
+ 20 CONTINUE 03336000
+C SCAMBIO I E KK 03337000
+ DO 30 JJ=1,N1 03338000
+ D=A(JJ,KK) 03339000
+ A(JJ,KK)=A(JJ,I) 03340000
+ 30 A(JJ,I)=D 03341000
+ 10 CONTINUE 03342000
+ RETURN 03343000
+ END 03344000
+ SUBROUTINE ORDIN1(K,N1,NP,A) 03345000
+C ************************************** 03346000
+C ORDERING ROUTINE 03347000
+C ORDINA A(N1,NP) PER VALORI CRESCENTI DI A(K,.) 03348000
+C ************************************** 03349000
+ DIMENSION A(N1,NP) 03350000
+ NP1=NP-1 03351000
+ IF(NP1.LT.1) RETURN 03352000
+ DO 10 I=1,NP1 03353000
+ I1=I+1 03354000
+C CERCA IL MIN SUI SUCCESSIVI 03355000
+ KK=I 03356000
+ DO 20 J=I1,NP 03357000
+ IF(A(K,KK).LT.A(K,J)) GO TO 20 03358000
+ KK=J 03359000
+ 20 CONTINUE 03360000
+C SCAMBIO I E KK 03361000
+ DO 30 JJ=1,N1 03362000
+ D=A(JJ,KK) 03363000
+ A(JJ,KK)=A(JJ,I) 03364000
+ 30 A(JJ,I)=D 03365000
+ 10 CONTINUE 03366000
+ RETURN 03367000
+ END 03368000
+ SUBROUTINE ORDM(M,K,N1,N2,A,B) 03369000
+C *********************************** 03370000
+C ORDERING ROUTINE 03371000
+C 03372000
+C METTE IN A(N1,N2) VICINI QUELLI CON = GRANDEZZA NELLA 03373000
+C RIGA M 03374000
+C K+DIMENSIONI DI B 03375000
+C B(1, ) = VALORE 03376000
+C B(2, ) = INIZIO VALORE 03377000
+C B(3, ) DIMENSIONI VALORI DELLA RIGA M 03378000
+C 03379000
+C **************************************** 03380000
+ DIMENSION A(N1,N2) ,B(3,N2) 03381000
+ INTEGER A,B,C 03382000
+C INTERI PER METTERCI INTERI SENZA CONVERSIONI 03383000
+C I = INDICE SUI A ( E IL NUMERO DA ANALIZZARE ) 03384000
+ I=1 03385000
+C K= INDICE DEI VALORI DIVERSI DELLA RIGA M 03386000
+ K=0 03387000
+C ....................... LOOP SUI DIVERSI VALORI DELLA RIGA M 03388000
+ 10 CONTINUE 03389000
+C SI ASSEGNA UN VALORE DI A(M DI CUI TROVARE UGUALI 03390000
+ K=K+1 03391000
+ B(1,K)=A(M,I) 03392000
+ B(2,K)=I 03393000
+ B(3,K)=0 03394000
+ 200 CONTINUE 03395000
+C INCREMENTA I CONTATORI DEI VARI VALORI IN QUESTIONE (NE HA TROVAT03396000
+ B(3,K)=B(3,K)+1 03397000
+C ESAMINO IL SUCCESSIVO I+1 03398000
+ I=I+1 03399000
+ IF(I.GT.N2) RETURN 03400000
+C NEL CASO CHE STIA ANALIZZANDO L ULTIMO 03401000
+C GUARDA SE IL NUOVO NUMERO E = 03402000
+ IF(A(M,I).EQ.B(1,K)) GO TO 200 03403000
+ 100 CONTINUE 03404000
+C QUI SE E DIVERSO IL SUCCESSIVO E VA SCAMBIATO CON UNO = DA CERCAR03405000
+C FRA QUELLI DODO 03406000
+C I2= INDICE DI QUELLI DOPO 03407000
+ I2=I+1 03408000
+C SE STO ESAMINANDO L ULTIMO ( ED E DIVERSO LO ASSEGNO COME UN DIVER03409000
+ IF(I2.GT.N2) GO TO 10 03410000
+C CERCA SUI SUCCESSIVI ALL'I ESIMO UNO = A QUELLO IN QUESTIONE 03411000
+ DO 30 JJ=I2,N2 03412000
+ IF(A(M,JJ).NE.B(1,K)) GO TO 30 03413000
+C SE SONO = SCAMBIO IL JJ CON L I 03414000
+ DO 40 J1=1,N1 03415000
+ C=A(J1,JJ) 03416000
+ A(J1,JJ)=A(J1,I) 03417000
+ A(J1,I)=C 03418000
+ 40 CONTINUE 03419000
+C QUI ORA I ED I+1 SONO = 03420000
+ GO TO 200 03421000
+ 30 CONTINUE 03422000
+ GOTO 10 03423000
+C NON CE NE SONO DI UGUALI 03424000
+C ALLORA IL SUCCESSIVO I NON LO SCAMBIO CON NESSUNO MA LO 03425000
+C ASSEGNO COME NUOVO VALORE DI CUI CERCARE UGUALI 03426000
+ END 03427000
+ SUBROUTINE ORDMD(M,K,N1,N2,A,B) 03428000
+C *********************************** 03429000
+C ORDERING ROUTINE 03430000
+C 03431000
+C METTE IN A(N1,N2) VICINI QUELLI CON = GRANDEZZA NELLA 03432000
+C RIGA M 03433000
+C K=DIMENSIONI DI B 03434000
+C B(1-2, )= VALORE ( A8 ) 03435000
+C B(3, ) = INIZIO VALORE 03436000
+C B(4, ) DIMENSIONI VALORI DELLA RIGA M 03437000
+C 03438000
+C **************************************** 03439000
+ DIMENSION A(N1,N2) ,B(4,N2) 03440000
+ INTEGER A,B,C 03441000
+C INTERI PER METTERCI INTERI SENZA CONVERSIONI 03442000
+C I = INDICE SUI A ( E IL NUMERO DA ANALIZZARE ) 03443000
+ I=1 03444000
+C K= INDICE DEI VALORI DIVERSI DELLA RIGA M 03445000
+ K=0 03446000
+C ....................... LOOP SUI DIVERSI VALORI DELLA RIGA M 03447000
+ 10 CONTINUE 03448000
+C SI ASSEGNA UN VALORE DI A(M DI CUI TROVARE UGUALI 03449000
+ K=K+1 03450000
+ B(1,K)=A(M,I) 03451000
+ B(2,K)=A(M+1,I) 03452000
+ B(3,K)=I 03453000
+ B(4,K)=0 03454000
+ 20 CONTINUE 03455000
+C INCREMENTA I CONTATORI DEI VARI VALORI IN QUESTIONE (NE HA TROVAT03456000
+ B(4,K)=B(4,K)+1 03457000
+C ESAMINO IL SUCCESSIVO I+1 03458000
+ I=I+1 03459000
+ IF(I.GT.N2) RETURN 03460000
+C NEL CASO CHE STIA ANALIZZANDO L ULTIMO 03461000
+C GUARDA SE IL NUOVO NUMERO E = 03462000
+ IF(A(M,I).EQ.B(1,K).AND.A(M+1,I).EQ.B(2,K)) GO TO 20 03463000
+ 100 CONTINUE 03464000
+C QUI SE E DIVERSO IL SUCCESSIVO E VA SCAMBIATO CON UNO = DA CERCAR03465000
+C FRA QUELLI DODO 03466000
+C I2= INDICE DI QUELLI DOPO 03467000
+ I2=I+1 03468000
+C SE STO ESAMINANDO L ULTIMO ( ED E DIVERSO LO ASSEGNO COME UN DIVER03469000
+ IF(I2.GT.N2) GO TO 10 03470000
+C CERCA SUI SUCCESSIVI ALL'I ESIMO UNO = A QUELLO IN QUESTIONE 03471000
+ DO 30 JJ=I2,N2 03472000
+ IF(A(M,JJ).NE.B(1,K).OR.A(M+1,JJ).NE.B(2,K)) GO TO 30 03473000
+C SE SONO = SCAMBIO IL JJ CON L I 03474000
+ DO 40 J1=1,N1 03475000
+ C=A(J1,JJ) 03476000
+ A(J1,JJ)=A(J1,I) 03477000
+ A(J1,I)=C 03478000
+ 40 CONTINUE 03479000
+C QUI ORA I ED I+1 SONO = 03480000
+ GO TO 20 03481000
+ 30 CONTINUE 03482000
+ GOTO 10 03483000
+C NON CE NE SONO DI UGUALI 03484000
+C ALLORA IL SUCCESSIVO I NON LO SCAMBIO CON NESSUNO MA LO 03485000
+C ASSEGNO COME NUOVO VALORE DI CUI CERCARE UGUALI 03486000
+ END 03487000
+ SUBROUTINE SELR2(NPK,NRS,PK,KE,EINF,ESUP) 03488000
+C ***************************************************** 03489000
+C COMPRESS PK KILLING VALUES IN A SPECIFIED RANGE 03490000
+C ELIMINA IN PK(NPK,NRS) I VALORI CON PK(KE,.) ENTRO EINF-ESUP 03491000
+C **************************************************************** 03492000
+ DIMENSION PK(NPK,NRS) 03493000
+ NP=NRS 03494000
+ I=0 03495000
+ 10 I=I+1 03496000
+ 20 IF(I.GT.NP) GO TO 500 03497000
+ IF(PK(KE,I).GT.EINF.AND.PK(KE,I).LE.ESUP) GO TO 100 03498000
+ GO TO 10 03499000
+C ELIMINA UN ELEMENTO METTENDO L'ULTIMO AL SUO POSTO 03500000
+ 100 DO 30 J=1,NPK 03501000
+ 30 PK(J,I)=PK(J,NP) 03502000
+ NP=NP-1 03503000
+ GO TO 20 03504000
+ 500 NRS=I-1 03505000
+ IF(NRS.LE.0) CALL ERR(8HSELR2WAR ,500) 03506000
+ RETURN 03507000
+ END 03508000
+ SUBROUTINE P2(MA,N) 03509000
+C ***************************************************************** 03510000
+C 03511000
+C MAIN ROUTINE FOR THE PART 2 OF THE CODE. 03512000
+C READS FROM FIRST GROUP OF INTERMEDIATE FILES THE PARTS OF 03513000
+C ENDFB SELECTED BY THE PART ONE. 03514000
+C PERFORMS ALMOST ALL THE CALCULATION TO BE DONE 03515000
+C WRITES THE SECOND GROUP OF INTERMEDIATE FILES, CONTAINING 03516000
+C DATA IN THE FORMAT OF THE MCC2 INPUT LIBRARIES MCC2F1-3-4-5-6-7-803517000
+C 03518000
+C ***************************************************************** 03519000
+C 03520000
+ DIMENSION N(MA) 03521000
+ REAL*8C 03522000
+ COMMON /COMM/C,IC(6),AC(4) 03523000
+ COMMON/FILES/NT(4,99) 03524000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)),(NP12,NT(1,12))03525000
+C 03526000
+ COMMON/OPZIO/ OPZ(4,8,10) 03527000
+ EQUIVALENCE (OPZ(2,1,1),STMP) 03528000
+ EQUIVALENCE (EUP,OPZ(2,5,2)),(DELU,OPZ(2,5,3)) 03529000
+C 03530000
+C 03531000
+ COMMON/DIM/INDDUM,IND1,INMIX,IND2 03532000
+C 03533000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 03534000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 03535000
+C 03536000
+C 03537000
+ COMMON /INDX/INDX(40,200) 03538000
+ COMMON /MIX/MIX(15,300) 03539003
+C 03540000
+ COMMON /INDX1/INDX1(40,200) 03541000
+ DATA NBIAN/4H / 03542000
+C 03543000
+ IF(IND1.GT.0) GO TO 111 03544000
+ WRITE(NO,8000) 03545000
+ WRITE(NP,8000) 03546000
+ 8000 FORMAT(' WARNING! NO INDEX OF INPUT FILES FOUND IN PART 2!', 03547000
+ 1 ' ROUTINE P2 IS NON EXECUTED!') 03548000
+ RETURN 03549000
+C 03550000
+ 111 DO 3 J1=1,4 03551000
+ WRITE(NP12,9000) J1 03552000
+ 3 WRITE(NP12,9001)((OPZ(J1,J2,J3),J3=1,10),J2=1,8) 03553000
+ 9000 FORMAT(' PART 2 EXECUTING . OPTION TABLE OF PART:',I4) 03554000
+ 9001 FORMAT(1X,10E12.5) 03555000
+C 03556000
+C MIXING FITTIZIA UNA SCHEDA PER OGNI MCCF (ESCLUSO IL 2 ) 03557000
+ IF(INMIX.GT.0) GOTO 71 03558000
+ CALL RIEMP(0,MMIX1*MMIX2,MIX) 03559000
+ MIX(1,1)=NBIAN 03560000
+ MIX(2,1)=NBIAN 03561000
+ MIX(3,1)=NBIAN 03562000
+ MIX(4,1)=NBIAN 03563000
+ MIX(5,1)=0 03564000
+ MIX(6,1)=1 03565000
+ DO 5 I=2,7 03566000
+ MIX(1,I)=NBIAN 03567000
+ MIX(2,I)=NBIAN 03568000
+ MIX(3,I)=NBIAN 03569000
+ MIX(4,I)=NBIAN 03570000
+ MIX(5,I)=31+I 03571000
+ MIX(6,I)=1+I 03572000
+ 5 CONTINUE 03573000
+ INMIX=7 03574000
+ 71 CONTINUE 03575000
+C CALL MIXSHO(2,NO) 03576000
+ CALL MIXSHO(2,NP) 03577006
+C 03578000
+C SET ZERO INDICE DI OUTPUT 03579000
+ CALL RIEMP(0,MIND11*MIND12,INDX1) 03580000
+ IND2=0 03581000
+C 03582000
+C ORDINA INDICE PER MATERIALE 03583000
+C NELLE ROUTINES MCC2F1-3-4-5-6-7-8 QUESTO ORDINAMENTO E' 03584000
+C USATO PER ABBREVIARE I CONTI IN CASO DI NUCLIDI CON 03585000
+C RECORD DI INDICE MA NON RICHIESTI NELLA MIX. 03586000
+C I LOOP NON VENGONO FATTI SULL'INDICE DIRETTAMENTE, MA 03587000
+C SUI NUCLIDI, CIOE' SULL'INDICE DELL'INDICE. COSI SCARTARE 03588000
+C UN NUCLIDE E' SALTARE IN UNA SOLA VOLTA TUTTO IL SUI INDICE, 03589000
+C SENZA GUARDARNE I RECORDS UNO PER UNO. 03590000
+C 03591000
+C I NUCLIDI VENGONO ORDINATI PER MASSE DECRESCENTI, IN MODO 03592000
+C DA ESSERE SCRITTI NEI FILES SECONDA SERIE PER MASSE DECRESCENTI03593000
+C IN CONFORMITA' A COME P3 LI CERCA. QUESTO RIDUE IL TEMPO NECESS03594000
+C A P3 CHE LI TROVA GIA IN IFLA SENZA DOVER ANDARE SU E GIU PER I03595000
+C 03596000
+C MCC2F6 ORDINA I RECORD DI INDICE DI UN SINGOLO MATERIALE 03597000
+C PER VALORI CRESCENTI DI AINDX(25,.) = POSIZIONE OCCUPATA 03598000
+C NEL FILE DI INPUT ONDE RIDURRE TEMPO DI LETTURA 03599000
+C 03600000
+C 03601000
+ CALL ORDINA(5,MINDX1,IND1,INDX) 03602000
+C 03603000
+C 03604000
+ CALL ORDMD(35,KB,MINDX1,IND1,INDX,N) 03605000
+C KB E LA DIMENSIONE DI N (4,KB) CON SPECIFICHE DI COME E IL INDX 03606000
+ IF(KB*4.GT.MA) CALL ERR(8H P2 ,0) 03607000
+C ORDINA MIX PER MCCF 03608000
+C PASSA TUTTO UN MCCF DELLA MIX ALLE SUB DI CONTO CHE 03609000
+C CERCANO OGNI INDX NELLE MIX DEL MCCF 03610000
+C KU= POSIZIONE DELL INDICE DI MCCF 03611000
+ KU=6 03612000
+ CALL ORDMIC(KU,MMIX1,INMIX,MIX) 03613000
+ CALL EXAM(KU,KB1,MMIX1,INMIX,MIX,N(KB*4+1)) 03614000
+C ORA A CONTIENE : N(4,KB) , N(3,KB1) CON INFORMAZIONI SULLA 03615000
+C STRUTTURA DI INDX E DI MIX 03616000
+C PER INDX : 03617000
+C N(1,2 , .)= VALORE (REAL*8 03618000
+C N(3 ,.) = INIZIO 03619000
+C N(4,.) = DIMENSIONE 03620000
+C 03621000
+C PER MIX : 03622000
+C N(1, ) = VALORE 03623000
+C N(2, ) = INIZIO VALORE 03624000
+C N(3, ) DIMENSIONE VALORE 03625000
+C 03626000
+ WRITE(NP12,9010) ((N(J+(JJ-1)*4),J=1,4),JJ=1,KB) 03627000
+ 9010 FORMAT(' P2: INDEX OF THE INDEX:',2A4,' FIRST CARD:',I5, 03628000
+ 1 ' CARDS:',I5) 03629000
+ WRITE(NP12,9020) ((N(KB*4+J+(JJ-1)*3),J=1,3),JJ=1,KB1) 03630000
+ 9020 FORMAT(' P2: INDEX OF THE INPUT TABLE. MCC2 FILE:',I4, 03631000
+ 1 ' FIRST CARD:',I4,' CARDS:',I4) 03632000
+C 03633000
+C MONTA WTABLE: TAVOLE DI VALORI DI FUNZIONE W PER CALCOLO DELLE 03634000
+C FUNZIONI DOPLLER. SERVE A SUBROUTINE P2MCF5 PER IL CALCOLO DEGLI03635000
+C INTEGRALI DI RISONANZA CON EFFETTO DOPPLER 03636000
+C 03637000
+ N27=27 03638000
+ N41=41 03639000
+ N4127=N41*N27 03640000
+C 03641000
+ L1=KB*4+3*KB1+1 03642000
+C TR 03643000
+ L2=L1+N4127 03644000
+C TI 03645000
+ L3=L2+N4127 03646000
+C TRS 03647000
+ L4=L3+N4127 03648000
+C TIS 03649000
+ L5=L4+N4127 03650000
+C AX (REAL *8) 03651000
+ L6=L5+N41*2 03652000
+C AY (REAL *8) 03653000
+ LFIN=L6+N27*2 03654000
+C 03655000
+ IF(LFIN.GT.MA) CALL ERR(8H P2 ,1) 03656000
+C 03657000
+ CALL WTABL(N41,N27,N(L5),N(L6),N(L1),N(L2),N(L3),N(L4)) 03658000
+C 03659000
+C STAMPA DELLE TABULAZIONI DELLA FUNZIONE W 03660000
+ IF(STMP.LT.1000.) GO TO1 03661000
+ N272=N27*2 03662000
+ N412=N41*2 03663000
+ WRITE(NO,1000) (N(L5+J-1),J=1,N412,2) 03664000
+ 1000 FORMAT(' W TABLE- X INTERVAL'/(1X,10E12.5)) 03665000
+ WRITE(NO,1000) (N(L6+J-1),J=1,N272,2) 03666000
+ 2000 FORMAT(' W TABLE- Y INTERVAL'/(1X,10E12.5)) 03667000
+ WRITE(NO,3000) (N(L1+J-1),J=1,N4127) 03668000
+ 3000 FORMAT(' REAL W TABULATION ,D=0.1,-0.1.LE.X.LE.3.9,', 03669000
+ 1 '0.4.LE.Y.LE.3.0'/(1X,10E12.5)) 03670000
+ WRITE(NO,4000) (N(L2+J-1),J=1,N4127) 03671000
+ 4000 FORMAT(' IMM W TABULATION ,D=0.1,-0.1.LE.X.LE.3.9,', 03672000
+ 1 '0.4.LE.Y.LE.3.0'/(1X,10E12.5)) 03673000
+ WRITE(NO,5000) (N(L3+J-1),J=1,N4127) 03674000
+ 5000 FORMAT(' REAL W TABULATION ,DX=0.1:-0.1.LE.X.LE.3.9,', 03675000
+ 1 'DY=0.02:0.4.LE.Y.LE.3.0'/(1X,10E12.5)) 03676000
+ WRITE(NO,6000) (N(L4+J-1),J=1,N4127) 03677000
+ 6000 FORMAT(' IMM W TABULATION ,DX=0.1:-0.1.LE.X.LE.3.9,', 03678000
+ 1 'DY=0.02:0.4.LE.Y.LE.3.0'/(1X,10E12.5)) 03679000
+ 1 CONTINUE 03680000
+C 03681000
+C RILASCIO LO SPAZIO USATO DA AX ED AY 03682000
+C LFIN=L5 03683000
+C FIX GROUP UPPER ENERGY LIMITS (NG+1 VALUES FOR USE IN SOTTOSTANTI03684000
+C ROUTINES ) 03685000
+ LNG=L5 03686000
+ NG=OPZ(2,5,4) 03687000
+ IF(NG.LE.0) NG=2082 03688000
+ LFIN=LNG+NG+2 03689000
+ IF(LFIN.GT.MA) CALL ERR(8HP2 ,2) 03690000
+ NG11N=NG+1 03690107
+ CALL ENERG(NG11N,DELU,EUP,N(LNG)) 03691007
+C 03693000
+C 03694000
+C CERCA IL FN SUPPONENDO CHE CI SIANO INTERI IN N 03695000
+C .............. SPAZIO RIMASTO IN MA (MADIM) 03696000
+C ............ IL PRIMO POSTO LIBERO IN N (ALTROVE DELLO A)=LFIN+1 03697000
+ MAPOS=LFIN+1 03698000
+ MADIM=MA-MAPOS 03699000
+ MPKB1=4*KB+1 03700000
+C POSIZIONE DI INDICE MIX (MPKB1) 03701000
+C 03702000
+C ******************* LOOP SUI MCCF DELLA MIXING 03703000
+C KFPOS= NUM MCCF IN MIX 03704000
+C KFIN = INIZIO IN MIX 03705000
+C KFDIM=LUNGHEZZA IN MIX 03706000
+C 03707000
+ KIX=1 03708000
+ 10 KFPOS=N(3*(KIX-1)+1+KB*4) 03709000
+ KFIN=N(3*(KIX-1)+1+KB*4+1) 03710000
+ KFDIM=N(3*(KIX-1)+1+KB*4+2) 03711000
+C 03712000
+ GO TO (100,200,300,400,500,600,700,800),KFPOS 03713000
+ CALL ERR(8H P2 ,200) 03714000
+ 200 CONTINUE 03715000
+C LA PARTE CHE GENERA IL FILE 2 NON ESISTE 03716000
+ GO TO 110 03717000
+C ARGOMENTO 1 : SPAZIO RIMASTO 03718000
+C 2 : MATRICE DI SCRATCH 03719000
+C 3 : DIMENSIONI MATRICE MIX 03720000
+C 4 : DIMENSIONI MATRICE MIX DELL FN IN QUESTINE 03721000
+C 5 : MATRICE MIX DELL FN IN QUESTIONE 03722000
+C 6: DIM DI INDICE DI INDX 03723000
+C 7: INDICI DI INDX 03724000
+C 8: DIM INDICI DI MIX 03725000
+C 9: INDICI DI MIX 03726000
+C 03727000
+C 03728000
+ 100 CALL P2MCF1(MADIM,N(MAPOS),MMIX1,KFDIM, 03729000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1)) 03730000
+ GO TO 110 03731000
+C 03732000
+ 300 CALL P2MCF3(MADIM,N(MAPOS),MMIX1,KFDIM, 03733000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1)) 03734000
+ GO TO 110 03735000
+C 03736000
+ 400 CALL P2MCF4(MADIM,N(MAPOS),MMIX1,KFDIM, 03737000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1)) 03738000
+ GO TO 110 03739000
+ 500 CALL P2MCF5(MADIM,N(MAPOS),MMIX1,KFDIM, 03740000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1), 03741000
+ 2N41,N27,N(L1),N(L2),N(L3),N(L4),NG,N(L5) ) 03742000
+ GO TO 110 03743000
+C 03744000
+ 600 CALL P2MCF6(MADIM,N(MAPOS),MMIX1,KFDIM, 03745000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1),NG,N(L5) ) 03746000
+ GO TO 110 03747000
+ 700 CALL P2MCF7(MADIM,N(MAPOS),MMIX1,KFDIM, 03748000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1),NG,N(L5) ) 03749000
+ GO TO 110 03750000
+C 03751000
+ 800 CALL P2MCF8(MADIM,N(MAPOS),MMIX1,KFDIM, 03752000
+ 1MIX(1,KFIN),KB,N(1),KB1,N(MPKB1),NG,N(L5) ) 03753000
+ 110 KIX=KIX+1 03754000
+C GUARDA IL VALORE SUCCESSIVO DI MCF IN MIX 03755000
+ IF(KIX.LE.KB1) GOTO10 03756000
+ WRITE(NP,9050) IND2 03757000
+ 9050 FORMAT(' PART 2 TERMINATED. ', 03758000
+ 1 I5,' VECTORS OF INDEX MATRIX WRITTEN ON UNIT 3') 03759000
+ CALL POSL(3) 03760000
+ CALL SAVI(3,MIND11,IND2,INDX1) 03761000
+ IND2=0 03762000
+ RETURN 03763000
+ END 03764000
+ SUBROUTINE P2MCF1(MA,A,M1,M2,MIX,MKB1,INDIND,MKB,INDMIX) 03765000
+C *********************************************************** 03766000
+C 03767000
+C COMPUTES SCATTERING RADIUS,ENERGY PER CAPTURE AND ENERGY PER 03768000
+C FISSION . THESE DATA ARE INCLUDED IN THE FILE MCC2F1 BY PART 3 03769000
+C 03770000
+C A(MA)=WORKING SPACE 03771000
+C MIX(M1,M2)=INPUT TABLE FOR MCC2F1 DATA 03772000
+C INDIND(3,MKB1)=INDEX OF AINDEX:1-2,3,4=VALUE(REAL*8),FIRS VALUE, 03773000
+C THE INDEX AINDX IS ORDERED BY MATERIAL(LENGTH. 03774000
+C INDMIX(3,MKB)= INDEX OF MIX : 1,2,3= VALUE,FIRST VALUE,LENGTH. 03775000
+C MIX IS ORDERED BY MCC2F LIBRARY FILE 03776000
+C 03777000
+C ******************************************************************03778000
+C 03779000
+ DIMENSION A(MA),MIX(M1,M2),INDIND(4,MKB1),INDMIX(3,MKB) 03780000
+C ==== N100=MAX NUMBER OF ISOTOPES ==== 03781000
+ DATA N100/100/ 03782000
+C 03783000
+ COMMON /INDX/AINDX(40,200) 03784000
+ COMMON /INDX1/AINDX1(40,200) 03785000
+ COMMON /FILES/ NT(4,99) 03786000
+ COMMON /DIM/ MMIX,MIND,MNX2,IND2 03787000
+ EQUIVALENCE(NO,NT(1,6)),(NP,NT(1,11)),(NP12,NT(1,12)) 03788000
+ COMMON/OPZIO/ OPZ(4,8,10) 03789000
+ EQUIVALENCE (OPZ(2,7,1),STMP) 03790000
+C 03791000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 03792000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 03793000
+C 03794000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 03795000
+ 7000 FORMAT(' P2MCF1 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 03796000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 03797000
+C 03798000
+C 03799000
+C ........................LOOP SULL INDICE DELL'INDICE(ISOTOPI) 03800000
+C RICERCA SE GLI ELEMENTI DI IND SONO IN MIX ( DA TRATTARE) 03801000
+ DO 10 IS=1,MKB1 03802000
+ N1=INDIND(3,IS) 03803000
+ N2=INDIND(4,IS) 03804000
+ N3=N1+N2-1 03805000
+C 03806000
+C CERCA L ISOTOPO DELLA MIX 03807000
+ NMT=NCERC1(MINDX1,MIND,AINDX,M1,M2,MIX,N1,35,3,1) 03808000
+C NON HA TROVATO MATERIALE NELLA MIX 03809000
+ IF(NMT.LE.0.) GO TO 100 03810000
+C 03811000
+ CALL RIEMP(0.0,N100*2,A) 03812000
+ NIS=0 03813000
+ SIGP=0. 03814000
+ EFIS18=0. 03815000
+ EFI428=0. 03816000
+ EFISN=0. 03817000
+ ECATT=0. 03818000
+ ENECC=0. 03819000
+C ...................LOOP SU INDICE DEL MATERIALE 03820000
+ DO 15 IR=N1,N3 03821000
+C 03822000
+C MEV/ASSORBIMENTO PER ALTRE REAZIONI 03823000
+ IF(AINDX(2,IR).NE.3.) GO TO 101 03824000
+C INSERISCO LE SOLE REAZIONI ESOTERMICHE 03825000
+ IF(AINDX(8,IR).LE.0.) GO TO 101 03826000
+C N,P 03827000
+C IF(AINDX(3,IR).EQ.103.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03828000
+C N,D 03829000
+C IF(AINDX(3,IR).EQ.104.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03830000
+C N,T 03831000
+C IF(AINDX(3,IR).EQ.105.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03832000
+C N,HE3 03833000
+C IF(AINDX(3,IR).EQ.106.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03834000
+C N,ALFA 03835000
+ IF(AINDX(3,IR).EQ.107.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03836000
+C N,2ALFA 03837000
+C IF(AINDX(3,IR).EQ.108.) ENECC=ENECC+AINDX(8,IR)/1.E+6+ENECC 03838000
+C 03839000
+ 101 IF(AINDX(30,IR).NE.1.) GOTO150 03840000
+ IF(AINDX(31,IR).NE.6.) GO TO 200 03841000
+C SCATTERING RADIUS 03842000
+ ANOME1=AINDX(35,IR) 03843000
+ ANOME2=AINDX(36,IR) 03844000
+ T=AINDX(37,IR) 03845000
+ AMAT=AINDX(1,IR) 03846000
+ AMF=AINDX(2,IR) 03847000
+ AMT=AINDX(3,IR) 03848000
+ ZA=AINDX(4,IR) 03849000
+ Z=AINT(ZA/1000.) 03850000
+ AA=ZA-Z*1000. 03851000
+ AWR=AINDX(5,IR) 03852000
+C GUARDA I DIVERSI ISOTOPI 03853000
+ IF(NIS.GT.N100) CALL ERR(8HP2MCF1 ,1) 03854000
+ IF(NIS.LE.0) NIS=AINDX(6,IR) 03855000
+ IF(NIS+100.GT.MA)CALL ERR(8HP2MCF1 ,2) 03856000
+ IF(AINDX(6,IR).NE.NIS) CALL ERR(8HP2MCF1 ,3) 03857000
+ ISO=AINDX(28,IR) 03858000
+ IF(A(ISO).GT.0.) GO TO 150 03859000
+C METTE I DATI DEGLI ISOTOPI NON GIA' MONTATI. 03860000
+C OGNI ISOTOPO PUO APPARIRE DUE VOLTE, UNA PER LE 03861000
+C RESOLVED EDUNA PER LE UNRESOLVED 03862000
+C 03863000
+ ABUN=AINDX(9,IR) 03864000
+ IF(NIS.LE.1) ABUN=1. 03865000
+ AP=AINDX(17,IR) 03866000
+ A(ISO)=12.5663706*AP*AP 03867000
+ SIGP=SIGP+A(ISO)*ABUN 03868000
+ A(100+ISO)=ABUN 03869000
+C 03870000
+ WRITE(NP,9010) AINDX(35,IR),AINDX(36,IR),SIGP 03871000
+ 9010 FORMAT(1X,2A4,' SCATTERING RADIUS:',E12.5) 03872000
+C 03873000
+ GO TO 150 03874000
+ 200 IF(AINDX(31,IR).NE.3) GO TO 150 03875000
+C E FISS ED E CATT DALLE SMOOTH O DA MT=428 DI F1 ENDFB 03876000
+C IN ENDFB QUESTI DATI SONO IN EV , IN MCC2F1 IN MEV 03877000
+ IF(AINDX(32,IR).EQ.5) ECATT=AINDX(8,IR)/1.E+6 03878000
+ IF(AINDX(32,IR).EQ.10)EFIS18=AINDX(8,IR)/1.E+6 03879000
+ IF(AINDX(32,IR).EQ.4)EFI428=AINDX(14,IR)/1.E+6 03880000
+ IF(AINDX(32,IR).EQ.4)EFISN=AINDX(15,IR)/1.E+6 03881000
+C 03882000
+ 300 CONTINUE 03883000
+ 150 CONTINUE 03884000
+ 15 CONTINUE 03885000
+C 03886000
+C ------------------------------SCRIVE 03887000
+C 03888000
+ WRITE(NP,9020) AINDX(35,N1),AINDX(36,N1),ECATT,EFIS18,EFI428, 03889000
+ 1 EFISN 03890000
+ 9020 FORMAT(1X,2A4,' E CATT,EFIS FROM FILE 3:',2E12.5/ 03891000
+ 1 ' EFIS ED EFIS WITH NEUTRINOS (MT=428, F1):',2E12.5) 03892000
+C 03893000
+ IF(NMT.LE.M2) GO TO 410 03894000
+ NOM=NAREAL(ANOME1) 03895000
+ NOM1=NAREAL(ANOME2) 03896000
+ NOM2=NAREAL(ANOME1) 03897000
+ NOM3=NAREAL(ANOME2) 03898000
+ GO TO 420 03899000
+ 410 NOM=MIX(3,NMT) 03900000
+ NOM1=MIX(4,NMT) 03901000
+ NOM2=MIX(1,NMT) 03902000
+ NOM3=MIX(2,NMT) 03903000
+ AR1=AREAL(MIX(13,NMT)) 03904000
+ AR2=AREAL(MIX(14,NMT)) 03905000
+ AR3=AREAL(MIX(15,NMT)) 03906000
+ IF(AR1.NE.0.) SIGP=AR1 03907000
+ IF(AR2.NE.0.) ECATT=AR2 03908000
+ IF(AR3.NE.0.) EFIS18=AR3 03909000
+C 03910000
+ 420 IND2=IND2+1 03911000
+ IF(IND2.GT.MIND12) CALL ERR(8HP2MCF1 ,410) 03912000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AMAT,AMF,AMT,ZA,AWR, 03913000
+ 1NOM,NOM1,NOM2,NOM3,0., 03914000
+ 21.,0.,0.,0.,0.,0.,0.,0.,0., 03915000
+ 3FLOAT(NIS),Z,AA,SIGP,EFIS18,ECATT,EFI428,EFISN,ENECC,0., 03916000
+ 4A(1),A(101),A(2),A(102),A(3),A(103),A(4),A(104),A(5),A(105),T) 03917000
+C 03918000
+ 100 CONTINUE 03919000
+ 10 CONTINUE 03920000
+ RETURN 03921000
+ END 03922000
+ SUBROUTINE P2MCF3(MA,A,M1,M2,MIX,MKB1,INDIND,MKB,INDMIX) 03923000
+C ********************************* 03924000
+C 03925000
+C UNRESOLVED RESONANCE PARAMETERS CALCULATION FOR MCC2F3 FILE 03926000
+C 03927000
+C IN A SPAZIO SCRATCH 03928000
+C PER INDIND: 03929000
+C (1,2 = VALORE ( REAL*8) 03930000
+C (3 = INIZIO 03931000
+C (4 = DIMENSIONI 03932000
+C 03933000
+C IN MIX LA MIXING DELL F3 03934000
+C IN INDMIX INDICE DI MIX 03935000
+C (1 ) = VALORE 03936000
+C (2 ) = INIZIO VALORE 03937000
+C (3 ) = DIMENSIONI VALORE 03938000
+C 03939000
+C 03940000
+C ********************************************** 03941000
+C 03942000
+ DIMENSION A(MA),MIX(M1,M2) 03943000
+ DIMENSION INDMIX(3,MKB),INDIND(4,MKB1) 03944000
+ COMMON /INDX1/AINDX1(40,200) 03945000
+ COMMON /INDX/AINDX(40,200) 03946000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 03947000
+ 1N1X,N2X,NS,LX,LY,LB 03948000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LV,JNS,MNS, 03949000
+ 1JX,MX 03950000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 03951000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 03952000
+ COMMON/DIM/M(5) 03953000
+ COMMON/OPZIO/ OPZ(4,8,10) 03954000
+ COMMON/FILES/NT(4,99) 03955000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 03956000
+ EQUIVALENCE (OPZ(2,5,5),OPM),(OPZ(2,3,1),STMP) 03957000
+ EQUIVALENCE (IND,M(2)),(IND2,M(4)),(NP12,NT(1,12)) 03958000
+C INDICE PRIMA SERIE = M(2) 03959000
+C INDICE SECONDA SERIE = M(4) 03960000
+C LA ISTRUZIONE IND2=0 STA IN SUB P2 03961000
+C 03962000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 03963000
+ 7000 FORMAT(' P2MCF3 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 03964000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 03965000
+C 03966000
+C 03967000
+C ............ LOOP SU INDICE DELL' INDICE (SUI NUCLIDI DELL'INDICE03968000
+ DO 5 IS=1,MKB1 03969000
+ N1S=INDIND(3,IS) 03970000
+ N2S=INDIND(4,IS) 03971000
+ N3S=N1S+N2S-1 03972000
+C 03973000
+C NCERC1 CERCA NELLA MIX L'ISOTOPO DELL'INDICE 03974000
+C 03975000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1S,35,3,1) 03976000
+C UNA SCHEDA MIX PREDOMINA SULL'OPZIONE DI MASSA (CHE PONE NMT=M2+2 03977000
+ IF(AINDX(5,N1S).GE.OPM.AND.OPM.GT.0.AND.NMT.GT.M2) NMT=M2+2 03978000
+C L'OPZIONE DI MASSA PREDOMINA SU SCHEDA MIX BIANCA 03979000
+ IF(AINDX(5,N1S).LT.OPM.AND.NMT.EQ.M2+1.AND.OPM.GT.0.) GO TO 5 03980000
+ IF(NMT.LE.0) GO TO 5 03981000
+C ESCLUSIONE ESPLICITA 03982001
+ IF(NMT.LE.M2.AND.MIX(7,NMT).LE.-5) GO TO 5 03983002
+C 03984000
+C ..................... LOOP SU INDICE PRIMA SERIE 03985000
+ DO 10 I=N1S,N3S 03986000
+ IF(AINDX(30,I).NE.3) GO TO 100 03987000
+C NON E UNA RISONANZA UNRES DA TRATTARE QUI 03988000
+C 03989000
+C 03990000
+C QUI HA ACCETTATO IL MATERIALE 03991000
+C 03992000
+ WRITE(NP12,7010) AINDX(35,I),AINDX(36,I) 03993000
+ 7010 FORMAT(1X,2A4) 03994000
+C 03995000
+C 03996000
+C LAVORA SULL INDICE E LETTA UNA SCHEDA DI INDICE ( DI UN ISOTOPO ED03997000
+C ENERGY RANGE) VA A TRATTARLA SENZA PREOCCUPARSI DI QUANTI ISOTOPI 03998000
+C E RANGE VENGANO TRATTATI 03999000
+C 04000000
+ NLS=AINDX(18,I) 04001000
+ JMX=AINDX(19,I) 04002000
+ NE=AINDX(38,I) 04003000
+ IF(NE.LE.0) NE=OPZ(2,3,2) 04004000
+ IF(NE.LE.0) NE=15 04005000
+C SISTEMA LE MATRICI PER LA SUBROUTINE CALCR3 DI CALCOLO 04006000
+C MATRICI PER DATI DI MCCF3 04007000
+ K1=1 04008000
+C JST(NLS) 04009000
+ K2=K1+NLS 04010000
+C E 04011000
+ K3=K2+NE 04012000
+C DELTA 04013000
+ K4=K3+NE 04014000
+C GAMMA 04015000
+ K5=K4+NE*JMX*NLS 04016000
+C D 04017000
+ K6=K5+NE*JMX*NLS 04018000
+C GF 04019000
+ K7=K6+NE*JMX*NLS 04020000
+C GNO 04021000
+ K8=K7+NE*JMX*NLS 04022000
+C G 04023000
+ K9=K8+JMX*NLS 04024000
+C NDFF 04025000
+ K10=K9+JMX*NLS 04026000
+C NDFN 04027000
+ K11=K10+JMX*NLS 04028000
+C AJ 04029000
+ K12=K11+JMX*NLS 04030000
+C AMUX 04031000
+ K13=K12+JMX*NLS 04032000
+C AMUN 04033000
+ K14=K13+JMX*NLS 04034000
+C AMUG 04035000
+ K15=K14+JMX*NLS 04036000
+C AMUF 04037000
+ K16=K15+JMX*NLS 04038000
+C D 04039000
+ K17=K16+JMX*NLS*NE 04040000
+C GX 04041000
+ K18=K17+JMX*NLS*NE 04042000
+C GNO 04043000
+ K19=K18+JMX*NLS*NE 04044000
+C GG 04045000
+ K20=K19+JMX*NLS*NE 04046000
+C GF 04047000
+ KFIN=K20+JMX*NLS*NE 04048000
+ IF(KFIN.GT.MA) CALL ERR(8H P2MCF3 , 100) 04049000
+ CALL RIEMP(0.0,KFIN,A) 04050000
+C 04051000
+ CALL CALCR3(I,NMT,M1,M2,MIX,NE,JMX,NLS, 04052000
+ 1A(K1),A(K2),A(K3),A(K4),A(K5),A(K6),A(K7),A(K8),A(K9),A(K10), 04053000
+ 2A(K11),A(K12),A(K13),A(K14),A(K15),A(K16),A(K17),A(K18), 04054000
+ 3A(K19),A(K20)) 04055000
+C 04056000
+C 04057000
+ 100 CONTINUE 04058000
+ 10 CONTINUE 04059000
+ 5 CONTINUE 04060000
+ RETURN 04061000
+ END 04062000
+ SUBROUTINE CALCR3(I,NMT,M1,M2,MIX,NE,JMX,NLS, 04063000
+ 1JST,E,DEL, 04064000
+ 2GA,D,GF,GNO,G,NDFF,NDFN, 04065000
+ 3AJ,AMUX,AMUN,AMUG,AMUF,D1,GX,GNO1,GG,GF1) 04066000
+C ******************************************************************04067000
+C 04068000
+C CALCOLATIONS FOR UNRESOLVED RESONANCE PARAMETERS (CONTINUATION OF04069000
+C I= INDICE P2MCF3 ROUTINE)04070000
+C NMT = NUMERO DELLA MIX 04071000
+C M1,M2= DIMENSIONI DELLA MIX(DI MCCF3) 04072000
+C 04073000
+C ******************************************************************04074000
+C 04075000
+ DIMENSION MIX(M1,M2) 04076000
+ COMMON /DIM/M(5) 04077000
+ COMMON /FILES/NT(4,99) 04078000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 04079000
+ 1 ,(NP12,NT(1,12)) 04080000
+ COMMON /INDX/AINDX(40,200) 04081000
+ COMMON /INDX1/AINDX1(40,200) 04082000
+ COMMON/OPZIO/ OPZ(4,8,10) 04083000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 04084000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 04085000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 04086000
+ 1N1X,N2X,NS,LX,LY,LB 04087000
+ DIMENSION JST(NLS),E(NE),DEL(NE),GA(NE,JMX,NLS),D(NE,JMX,NLS) 04088000
+ DIMENSION GF(NE,JMX,NLS),GNO(NE,JMX,NLS),G(JMX,NLS) 04089000
+ DIMENSION NDFF(JMX,NLS),NDFN(JMX,NLS),AMUG(JMX,NLS) 04090000
+ DIMENSION AJ(JMX,NLS),AMUX(JMX,NLS),AMUN(JMX,NLS),AMUF(JMX,NLS) 04091000
+ DIMENSIOND1(NE,JMX,NLS),GX(NE,JMX,NLS),GNO1(NE,JMX,NLS) 04092000
+ DIMENSION GG(NE,JMX,NLS),GF1(NE,JMX,NLS) 04093000
+C 04094000
+C 04095000
+ EQUIVALENCE(IND,M(2)),(IND2,M(4)) 04096000
+C TEST SU E RANGE 04097000
+ IF(AINDX(11,I).GT.2) CALL ERR(8H CALCR3 , 0) 04098000
+C POSIZIONA TAPE DI INPUT E LO DEFINISCE 04099000
+ NPOST=AINDX(25,I) 04100000
+ NTIN=AINDX(23,I) 04101000
+ NTI=NT(1,NTIN) 04102000
+ CALL POST(NTIN,NPOST) 04103000
+C POSIZIONATO AD INIZIO E RANGE E ISOTOPO DELLA SCHEDA INDICE 04104000
+C A SECONDA DEL TIPO DI RAPPRESENTAZIONE TRATTA IN MODO DIVERSO 04105000
+C DEFINISCE TAPES DI OUTPUT 04106000
+ NTOUT=33 04107000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT=MIX(5,NMT) 04108000
+ IF(NTOUT.LE.0) NTOUT=33 04109000
+ NTO=NT(1,NTOUT) 04110000
+ SPI=AINDX(16,I) 04111000
+ AP=AINDX(17,I) 04112000
+ LFW=AINDX(10,I) 04113000
+ LRF=AINDX(13,I) 04114000
+ T=AINDX(7,I) 04115000
+ AWR=AINDX(5,I) 04116000
+ AWRI=AINDX(40,I) 04117000
+ IF(AINDX(12,I).NE.2) CALL ERR(8H CALC3 ,1) 04118000
+C 04119000
+ WRITE(NP12,7001) NTO 04120000
+ 7001 FORMAT(' CALCR3 ENTERED:UNRESOLVED PARAMETERS ON FILE:',I5) 04121000
+C 04122000
+ IF(LRF.NE.2) GO TO 200 04123000
+C M L B W 04124000
+C TUTTE LE GAMMA FUNZIONE DI E 04125000
+ WRITE(NP,9001) AINDX(35,I),AINDX(36,I) 04126000
+ 9001 FORMAT(1X,2A4,' UNRES PARAMETERS.:ALL WIDTHS ENERGY DEPENDENT') 04127000
+C LEGGE IL CONT (CHE E GIA IN AINDX) 04128000
+ CALL RREC(1,NTI,3,T) 04129000
+ NLS=N1 04130000
+ NT(4,NTIN)=NT(4,NTIN)+1 04131000
+C CONTROLLO MAT,MF,MT DEL RECORD LETTO 04132000
+ CALL CONTR1(I,8HCALC3 ,2 ,MINDX1,MINDX2,AINDX) 04133000
+ DO 10 IL=1,NLS 04134000
+ READ(NTI,1000) AWRI1,DUM,L,NDUM,NJS,NDUM 04135000
+ IF(L+1.NE.IL)CALLERR(8HCALCR3 ,10) 04136000
+C IF(AWRI.NE.AWRI1) CALL ERR(8HCALCR3 ,11) 04137000
+ NT(4,NTIN)=NT(4,NTIN)+1 04138000
+ JST(IL)=NJS 04139000
+ DO 20 IJ=1,NJS 04140000
+ READ(NTI,1000) AJ(IJ,IL),DUM,INT,NDUM,NKE,NE1 04141000
+ READ(NTI,2000) DUM,DUM,AMUX(IJ,IL),AMUN(IJ,IL),AMUG(IJ,IL), 04142000
+ 1 AMUF(IJ,IL),(E(IE),D1(IE,IJ,IL),GX(IE,IJ,IL), 04143000
+ 2 GNO1(IE,IJ,IL),GG(IE,IJ,IL),GF1(IE,IJ,IL),IE=1,NE1) 04144000
+ NT(4,NTIN)=NT(4,NTIN)+NE1+2 04145000
+ 20 CONTINUE 04146000
+ 10 CONTINUE 04147000
+ GOTO 500 04148000
+ 200 CONTINUE 04149000
+C S L B W 04150000
+ IF(LFW.NE.1) GO TO 300 04151000
+ WRITE(NP,9002) AINDX(35,I),AINDX(36,I) 04152000
+ 9002 FORMAT(1X,2A4,' UNRES PARAMETERS.:FISSION WIDTH ENERGY DEPENDENT')04153000
+C SOLO GAMMA FISSION FUNZIONE DI E 04154000
+C PER LFW=1 LEGGE IL LIST COLLE E LO METTE IN A 04155000
+ READ(NTI,1000) SPI,AP,NDUM,NDUM,NE1,NLS1 04156000
+ 1000 FORMAT(2E11.4,4I11,I4,I2,I3) 04157000
+ 2000 FORMAT(6E11.4) 04158000
+ IF(NE1.NE.NE) CALL ERR(8HCALCR3 ,200) 04159000
+ IF(NLS1.NE.NLS) CALL ERR(8HCALCR3 ,201) 04160000
+ READ(NTI,2000) (E(IE),IE=1,NE1) 04161000
+ NT(4,NTIN)=NT(4,NTIN)+NE1/6+NREST(NE1,6)+1 04162000
+ DO 30 IL=1,NLS 04163000
+ READ(NTI,1000) AWRI1,DUM,L,NDUM,NJS,NDUM 04164000
+ IF(L+1.NE.IL)CALLERR(8HCALCR3 ,10) 04165000
+ IF(AWRI.NE.AWRI1) CALL ERR(8HCALCR3 ,11) 04166000
+ NT(4,NTIN)=NT(4,NTIN)+1 04167000
+ JST(IL)=NJS 04168000
+ DO 40 IJ=1,NJS 04169000
+ READ(NTI,1000) DUM,DUM,L,MUF,NKE,NDUM 04170000
+ AMUF(IJ,IL)=MUF 04171000
+ READ(NTI,2000) D9,AJ(IJ,IL),AMUN(IJ,IL),GNO9,GG9,DUM, 04172000
+ 1 (GF1(IE,IJ,IL),IE=1,NE1) 04173000
+ NT(4,NTIN)=NT(4,NTIN)+NE1/6+NREST(NE1,6)+2 04174000
+C SIMULA LA DIPENDFNZA ENERGETICA (PIATTA) PER CHI NON LA HA 04175000
+ DO 50 IE=1,NE1 04176000
+ D1(IE,IJ,IL)=D9 04177000
+ GNO1(IE,IJ,IL)=GNO9 04178000
+ GG(IE,IJ,IL)=GG9 04179000
+ 50 CONTINUE 04180000
+ 40 CONTINUE 04181000
+ 30 CONTINUE 04182000
+ GO TO 500 04183000
+C 04184000
+ 300 CONTINUE 04185000
+C GAMMA NON DIPENDFNTI DA E (NESSUNA DELLE GAMMA) 04186000
+C 04187000
+ WRITE(NP,9003) AINDX(35,I),AINDX(36,I) 04188000
+ 9003 FORMAT(1X,2A4,' UNRES PARAMETERS.:WIDTHS COSTANT IN ENERGY') 04189000
+C COME ETOE-II SIMULA E DIP CON 15 PUNTI A LETARGIA COSTANTE 04190000
+ DELTAU=ALOG(AINDX(15,I)/AINDX(14,I))/(NE-1) 04191000
+ E(1)=AINDX(14,I) 04192000
+ DO 55 IE=2,NE 04193000
+ 55 E(IE)=E(IE-1)*EXP(DELTAU) 04194000
+C LE ENERGIE SONO CRESCENTI QUI COME ENDFB NON DECRESCENTI 04195000
+C COME MCC2F3 ED MC2-II 04196000
+C 04197000
+ READ(NTI,1000) SPI,AP,DUM,DUM,NLS1 04198000
+ NT(4,NTIN)=NT(4,NTIN)+1 04199000
+ IF(NLS1.NE.NLS) CALL ERR(8HCALCR3 ,60) 04200000
+ DO 60 IL=1,NLS1 04201000
+ READ(NTI,1000)AWRI1,DUM,L,NDUM,NKE,NJS 04202000
+ IF(AWRI.NE.AWRI1) CALL ERR(8HCALCR3 ,61) 04203000
+ JST(IL)=NJS 04204000
+ READ(NTI,2000) (D1(1,IJ,IL),AJ(IJ,IL),AMUN(IJ,IL), 04205000
+ 1 GNO1(1,IJ,IL),GG(1,IJ,IL),DUM,IJ=1,NJS) 04206000
+ NT(4,NTIN)=NT(4,NTIN)+1+NJS 04207000
+C SIMULA E DIP PER CHI NON LA HA 04208000
+ DO 70 IJ=1,NJS 04209000
+ AMUF(IJ,IL)=1. 04210000
+ DO 75 IE=2,NE 04211000
+ GNO1(IE,IJ,IL)=GNO1(1,IJ,IL) 04212000
+ GG(IE,IJ,IL)=GG(1,IJ,IL) 04213000
+ D1(IE,IJ,IL)=D1(1,IJ,IL) 04214000
+ 75 CONTINUE 04215000
+ 70 CONTINUE 04216000
+ 60 CONTINUE 04217000
+ 500 CONTINUE 04218000
+C 04219000
+C CALCOLO DEI PARAMETRI COME LI VUOLE MCC2F3 DA ENDFB 04220000
+C 04221000
+ DO 15 IL=1,NLS 04222000
+ DO 25 IJ=1,NJS 04223000
+ G(IJ,IL)=(2*AJ(IJ,IL)+1)/(2*(2*SPI+1)) 04224000
+ NDFF(IJ,IL)=AMUF(IJ,IL) 04225000
+ NDFN(IJ,IL)=AMUN(IJ,IL) 04226000
+C SE SONO GLI STESSI NON E NECESSARIO TRASFERIRLI , MA LO FACCIO 04227000
+C PER AVERE LE FORMULE SOTTOMANO 04228000
+ DO 35 IE=1,NE 04229000
+ GA(IE,IJ,IL)=GG(IE,IJ,IL) 04230000
+ GF(IE,IJ,IL)=GF1(IE,IJ,IL) 04231000
+ D(IE,IJ,IL)=D1(IE,IJ,IL) 04232000
+ GNO(IE,IJ,IL)=GNO1(IE,IJ,IL) 04233000
+C CONTROLLARE CHE GA=GC E NON GA=GC+GF 04234000
+C E'CONTROLLATO E' COSI' 04235000
+ 35 CONTINUE 04236000
+ 25 CONTINUE 04237000
+ 15 CONTINUE 04238000
+ DO 45 IE=1,NE 04239000
+ 45 DEL(IE)=SQRT(4*8.6167E-5*E(IE)/AWRI) 04240000
+ CR=2.196771*AWRI/(AWRI+1)*(0.123*AWRI**(1./3.)+0.08)*1.E-3 04241000
+ SR=2.196771*AWRI/(AWRI+1)*AP*1.E-3 04242000
+C FISSO I NOMI DELLE REGISTRAZIONI ( ESISTE UN DEFAULT IN CUI 04243000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF04244000
+ IF(NMT.GT.M2) GO TO 600 04245000
+ NOM=MIX(3,NMT) 04246000
+ NOM1=MIX(4,NMT) 04247000
+ NOM2=MIX(1,NMT) 04248000
+ NOM3=MIX(2,NMT) 04249000
+ GO TO 610 04250000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT04251000
+ 600 NOM=NAREAL(AINDX(35,I)) 04252000
+ NOM1=NAREAL(AINDX(36,I)) 04253000
+ NOM2=NAREAL(AINDX(35,I)) 04254000
+ NOM3=NAREAL(AINDX(36,I)) 04255000
+ 610 CONTINUE 04256000
+ IF(OPZ(2,3,1).LT.10) GO TO 700 04257000
+ WRITE(NO,3001) NOM,NOM1 04258000
+ 3001 FORMAT(//10X,2A4/) 04259000
+ WRITE(NO,3000) 04260000
+ 3000 FORMAT(' PRODUCED UNRESOLVED RESONANCE PARAMETERS') 04261000
+ WRITE(NO,4000) (JST(J),J=1,NLS) 04262000
+ 4000 FORMAT(' JST=NUMBER OF J-RESONANCE',10I5) 04263000
+ WRITE(NO,5000) (E(J),DEL(J),J=1,NE) 04264000
+ 5000 FORMAT(3(' E=',E12.5,' DEL=',E12.5)) 04265000
+ WRITE(NO,6000)(((JE,JJ,JL,GA(JE,JJ,JL),D(JE,JJ,JL), 04266000
+ 1 GF(JE,JJ,JL),GNO(JE,JJ,JL),JE=1,NE),JJ=1,NJS),JL=1,NLS) 04267000
+ 6000 FORMAT(' JE=',I4,' JJ=',I4,' JL=',I4,' GA=',E12.5,' D=', 04268000
+ 1 E12.5,' GF=',E12.5,' GNO=',E12.5) 04269000
+ WRITE(NO,7000)((J,JL,G(J,JL),NDFF(J,JL),NDFN(J,JL),J=1,JMX), 04270000
+ 1 JL=1,NLS) 04271000
+ 7000 FORMAT(' J=',I4,' JL=',I4,' G=',E12.5,' NDFF=', 04272000
+ 1 I5,' NDFN=',I5) 04273000
+ 700 CONTINUE 04274000
+ IF(OPZ(2,3,1).LT.20) GO TO 800 04275000
+ WRITE(NO,8000) ((J,L,AJ(J,L),AMUX(J,L),AMUN(J,L),AMUG(J,L), 04276000
+ 1 AMUF(J,L),J=1,JMX),L=1,NLS) 04277000
+ 8000 FORMAT(' ENDFB INPUT PARAMETERS:'/( 04278000
+ 1' J=',I4,' L=',I4,' AJ=',E12.5,' AMUX=',E12.5, 04279000
+ 2 ' AMUN=',E12.5,' AMUG=',E12.5,' AMUF=',E12.5)) 04280000
+ WRITE(NO,9000) (((J,L,IE,GX(IE,J,L),GNO1(IE,J,L),GG(IE,J,L), 04281000
+ 1 D1(IE,J,L),GF1(IE,J,L),J=1,JMX),L=1,NLS),IE=1,NE) 04282000
+ 9000 FORMAT(' J=',I4,' L=',I4,' IE=',I4,' GX=',E12.5,' GNO1=',E12.5, 04283000
+ 1 ' GG=',E12.5,' D1=',E12.5,' GF1=',E12.5) 04284000
+ 800 CONTINUE 04285000
+C 04286000
+C 04287000
+C 04288000
+ CALL POSL(NTOUT) 04289000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 04290000
+C SCRITTO IN ORDINE INVERSO A QUELLO DI INPUT (E CALANTI) 04291000
+ WRITE(NTO) (E(NE-J+1),J=1,NE),(DEL(NE-J+1),J=1,NE), 04292000
+ 1 (JST(J),J=1,NLS) 04293000
+C PER NON AVERE LIMITI DI DO DIMENSINATI DEVO FARE QUESTO MARCHINGEG04294000
+C POSSIBILE PER COME SONO IN FILA I GAMMA IN A 04295000
+C COMPRIMI GLI SPAZI VUOTI E STAMPO LA MATRICE COME UN TUTTO UNO 04296000
+C PRESS METTE IN ORDINE DI ENERGIE DECRESCENTE 04297000
+C COME MCC2F, MENTRE ENDFB E IL CONTRARIO (ORD E CRESCENTE) 04298000
+C 04299000
+ CALL PRESS(NE,JMX,NLS,JST,NFIN,GA,GA) 04300000
+ NFIN=NFIN+1 04301000
+ CALL PRESS(NE,JMX,NLS,JST,KB,D,GA(NFIN,1,1)) 04302000
+ NFIN=NFIN+KB 04303000
+ CALL PRESS(NE,JMX,NLS,JST,KB,GF,GA(NFIN,1,1)) 04304000
+ NFIN=NFIN+KB 04305000
+ CALL PRESS(NE,JMX,NLS,JST,KB,GNO,GA(NFIN,1,1)) 04306000
+ NFIN=NFIN+KB 04307000
+ CALL PRESS(1,JMX,NLS,JST,KB,G,GA(NFIN,1,1)) 04308000
+ NFIN=NFIN+KB 04309000
+ CALL PRESS(1,JMX,NLS,JST,KB,NDFF,GA(NFIN,1,1)) 04310000
+ NFIN=NFIN+KB 04311000
+ CALL PRESS(1,JMX,NLS,JST,KB,NDFN,GA(NFIN,1,1)) 04312000
+ NFIN=NFIN+KB-1 04313000
+ WRITE(NTO) (GA(J,1,1),J=1,NFIN) 04314000
+ IND2=IND2+1 04315000
+ IF(IND2.GT.MIND12) CALL ERR(8H CALCR3 ,40) 04316000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1,I),AINDX(2,I),AINDX(3,I),04317000
+ 1AINDX(4,I),AINDX(5,I),NOM,NOM1,NOM2,NOM3, 04318000
+ 20.,3.,0.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)), 04319000
+ 32.,FLOAT(2*NE+NLS),FLOAT(NFIN),AINDX(6,I),AINDX(10,I),2., 04320000
+ 1AINDX(18,I), 04321000
+ 4FLOAT(JMX),FLOAT(NE),AINDX(9,I),AWRI,SR,CR,0.,0., 04322000
+ 5AINDX(14,I),AINDX(15,I),AINDX(28,I),AINDX(29,I),0.,0.,0.,0.,0.) 04323000
+C 04324000
+ NT(4,NTO)=NT(4,NTO)+2 04325000
+ NT(3,NTO)=NT(4,NTO) 04326000
+ RETURN 04327000
+ END 04328000
+ SUBROUTINE PRESS(NE,JMX,NLS,JST,KB,A,B) 04329000
+C *************************************** 04330000
+C COMPRESS A MATRIX 04331000
+C COMPRIME MATRICE PER SCRITTURE FILES MCCF 04332000
+C LA MATRICE A E MESSA IN B , A HA 3 INDICI 04333000
+C IL SECONDO INDICE E FUNZIONE DEL PRIMO ED 04334000
+C E SPECIFICATO IN JST 04335000
+C 04336000
+C PRESS RIBALTA L'ORDINE DELLE ENERGIE, CRESCENTI 04337000
+C IN INPUT (ENDFB) DESCRESCENTI IN OUTPUT(MCC2F3) 04338000
+C 04339000
+C ********************************************* 04340000
+C 04341000
+ DIMENSION JST(NLS),A(NE,JMX,NLS),B(1) 04342000
+ KB=0 04343000
+ DO 10 IL=1,NLS 04344000
+ NJ=JST(IL) 04345000
+ DO 20 IJ=1,NJ 04346000
+ DO 30 IE=1,NE 04347000
+ IE1=NE-IE+1 04348000
+ KB=KB+1 04349000
+ B(KB)=A(IE1,IJ,IL) 04350000
+ 30 CONTINUE 04351000
+ 20 CONTINUE 04352000
+ 10 CONTINUE 04353000
+ RETURN 04354000
+ END 04355000
+ SUBROUTINE P2MCF4(MA,A,M1,M2,MIX,MKB1,INDIND,MKB,INDMIX) 04356000
+C ********************************* 04357000
+C 04358000
+C RESOLVED RESONANCE PARAMETERS CALCULATION FOR MCC2F4 FILE 04359000
+C 04360000
+C IN A SPAZIO SCRATCH 04361000
+C IN MIX LA MIXING DELL F3 04362000
+C IN INDMIX INDICE DI MIX 04363000
+C IN INDIND INDICE DI IND 04364000
+C PER MIX: 04365000
+C (1 ) = VALORE 04366000
+C (2 ) = INIZIO VALORE 04367000
+C (3 ) = DIMENSIONI VALORE 04368000
+C PER INDIND: 04369000
+C (1,2 = VALORE(REAL*8) 04370000
+C (3 = INIZIO 04371000
+C (4 = DIMENSIONI 04372000
+C 04373000
+C 04374000
+C 04375000
+C ********************************************** 04376000
+C 04377000
+ DIMENSION A(MA),MIX(M1,M2) 04378000
+ DIMENSION INDMIX(3,MKB),INDIND(4,MKB1) 04379000
+ COMMON /INDX1/AINDX1(40,200) 04380000
+ COMMON /INDX/AINDX(40,200) 04381000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 04382000
+ 1N1X,N2X,NS,LX,LY,LB 04383000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LV,JNS,MNS, 04384000
+ 1JX,MX 04385000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 04386000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 04387000
+ COMMON/DIM/M(5) 04388000
+ COMMON/OPZIO/ OPZ(4,8,10) 04389000
+ COMMON/FILES/NT(4,99) 04390000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 04391000
+ EQUIVALENCE (NP12,NT(1,12)) 04392000
+ EQUIVALENCE (OPZ(2,5,5),OPM),(OPZ(2,4,1),STMP) 04393000
+ EQUIVALENCE (IND,M(2)),(IND2,M(4)) 04394000
+C INDICE PRIMA SERIE = M(2) 04395000
+C INDICE SECONDA SERIE = M(4) 04396000
+C AZZERA INDICE SERIE 2 ( CHE CREA) 04397000
+C LA ISTRUZIONE IND2=0 STA IN SUB P2 04398000
+C 04399000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 04400000
+ 7000 FORMAT(' P2MCF4 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 04401000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 04402000
+C 04403000
+C ............ LOOP SU INDICE DELL' INDICE (SUI NUCLIDI DELL'INDICE04404000
+ DO 5 IS=1,MKB1 04405000
+ N1S=INDIND(3,IS) 04406000
+ N2S=INDIND(4,IS) 04407000
+ N3S=N1S+N2S-1 04408000
+C 04409000
+C NCERC1 CERCA NELLA MIX L'ISOTOPO DELL'INDICE 04410000
+C 04411000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1S,35,3,1) 04412000
+C OPZIONE DI MASSA CHE PONE NMT=M2+2 (SU CUI PREDOMINA SCHEDA MIX)04413000
+ IF(AINDX(5,N1S).GE.OPM.AND.OPM.GT.0..AND.NMT.GT.M2) NMT=M2+2 04414000
+C L'OPZIONE DI MASSA PREDOMINA SU SCHEDA MIX BIANCA 04415000
+ IF(AINDX(5,N1S).LT.OPM.AND.NMT.EQ.M2+1.AND.OPM.GT.0.) GO TO 5 04416000
+ IF(NMT.LE.0) GO TO 5 04417000
+C ESCLUSIONE ESPLICITA 04418001
+ IF(NMT.LE.M2.AND.MIX(7,NMT).LE.-5) GO TO 5 04419001
+C 04420000
+C ..................... LOOP SU INDICE PRIMA SERIE 04421000
+ DO 10 I=N1S,N3S 04422000
+ IF(AINDX(30,I).NE.4) GO TO 100 04423000
+C NON E UNA RISONANZA RESOLVED DA TRATTARE QUI 04424000
+C 04425000
+C QUI HA ACCETTATO IL MATERIALE 04426000
+C 04427000
+ WRITE(NP12,7010) AINDX(35,I),AINDX(36,I) 04428000
+ 7010 FORMAT(1X,2A4) 04429000
+C 04430000
+C DEFINISCE TAPES DI INPUT ED OUTPUT 04431000
+ NTOUT=34 04432000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT=MIX(5,NMT) 04433000
+ IF(NTOUT.LE.0) NTOUT=34 04434000
+ NTO=NT(1,NTOUT) 04435000
+C 04436000
+C LAVORA SULL INDICE E LETTA UNA SCHEDA DI INDICE ( DI UN ISOTOPO ED04437000
+C ENERGY RANGE) VA A TRATTARLA SENZA PREOCCUPARSI DI QUANTI ISOTOPI 04438000
+C E RANGE VENGANO TRATTATI 04439000
+C 04440000
+C TEST SU E RANGE 04441000
+ IF(AINDX(11,I).GT.2) CALL ERR(8H P2MCF4 , 0) 04442000
+C POSIZIONA TAPE DI INPUT E LO DEFINISCE 04443000
+ NPOST=AINDX(25,I) 04444000
+ NTIN=AINDX(23,I) 04445000
+ NTI=NT(1,NTIN) 04446000
+ CALL POST(NTIN,NPOST) 04447000
+C POSIZIONATO AD INIZIO E RANGE E ISOTOPO DELLA SCHEDA INDICE 04448000
+ LRF=AINDX(13,I) 04449000
+C LRF=1,2,4=BWSL,BWML,AA 04450000
+ NLS=AINDX(18,I) 04451000
+ IF(LRF.EQ.1.OR.LRF.EQ.2) GO TO200 04452000
+ IF(LRF.EQ.4) GO TO 400 04453000
+ CALL ERR(8H P2MCF4 ,200) 04454000
+ 200 CONTINUE 04455000
+C .......................... B W LETTURA PARAMETRI 04456000
+ READ(NTI,1000)SPI,AP,DUM,DUM,NLS1,DUM 04457000
+ NT(4,NTIN)=NT(4,NTIN)+1 04458000
+C LEGE IL CONT (GIA IN INDICE ) 04459000
+ 1000 FORMAT(2E11.4,4I11,I4,I2,I3) 04460000
+ IF(NLS1.NE.NLS) CALL ERR(8H P2MCF4 ,30) 04461000
+C LEGGE I PARAMETRI 04462000
+ NK=0 04463000
+ DO 20 IL=1,NLS 04464000
+ READ(NTI,1000)AWRI,QX,L,LRX,NRS6,NRS 04465000
+ READ(NTI,2000)((A(NK+7*(J-1)+JJ),JJ=2,7),J=1,NRS) 04466000
+ 2000 FORMAT(6E11.4) 04467000
+C COSI PERCHE LE RISONANZE DIPENDONO DA IL 04468000
+ NT(4,NTIN)=NT(4,NTIN)+1+NRS 04469000
+C METTO L IN MATRICE INSIEME AI PARAMETRI 04470000
+ DO 30 ILG=1,NRS 04471000
+ A(NK+7*(ILG-1)+1)= L 04472000
+ 30 CONTINUE 04473000
+ NK=NK+7*NRS 04474000
+ 20 CONTINUE 04475000
+ NRS=NK/7 04476000
+C .............. DIMENSIONI PARAMETRI DA PASSARE A SUB. BW 04477000
+ K1=1 04478000
+C PARTE DI PK LETTI DA ENDFB 04479000
+ K2=K1+NRS*7 04480000
+C PARAMETRI DA CREARE PER MCCF 04481000
+ NPK=8 04482000
+ IF(LRF.EQ.2)NPK=16 04483000
+ K3=K2+NRS*NPK 04484000
+C BWSL SONO 8 PARAMETRI 04485000
+C BWML SONO 16 PARAMETRI 04486000
+ IF(K3.GT.MA) CALL ERR(8H P2MCF4 ,20) 04487000
+ CALL BW(NRS,7,NPK,A(K1),A(K2),LRF,SPI,AWRI,AP,NTOUT,NTO, 04488000
+ 1MINDX1,AINDX(1,I),M1,M2,MIX,NMT,NLS) 04489000
+C SPI E LETTO DAENDFB 04490000
+C LRF DA INDICE 04491000
+C AWRI DA ENDFB 04492000
+C AP DA ENDFB 04493000
+ GO TO 100 04494000
+ 400 CONTINUE 04495000
+C ................................. LETTURA A A 04496000
+ READ(NTI,1000) SPI,AP,DUM,DUM,NLS1,DUM 04497000
+ IF(NLS.NE.NLS1) CALL ERR(8H P2MCF4 ,400) 04498000
+ READ(NTI,1000) AWRI,DUM,LI,DUM,NX6,NX 04499000
+ DO 3 J=1,18 04500000
+ 3 A(J)=0. 04501000
+C PER AVERE BIANCHI OVE NON LEGGE ( SERVE COSI AD SUB. AA CHE METTE 04502000
+C INDICE IL BACKGROUND 04503000
+ READ(NTI,2000) (A(J),J=1,NX6) 04504000
+ NT(4,NTIN)=NT(4,NTIN)+2+NX 04505000
+ NLA=18 04506000
+C POSIZIONI OCCUPATE IN A ( SPAZIO PER BACKGROUND POSSIBILI (MAX NX04507000
+ NRS=0 04508000
+ NMA1=16 04509000
+ DO 40 IL=1,NLS 04510000
+ READ(NTI,1000) DUM,DUM,L,DUM,NJS,DUM 04511000
+ DO 50 IJ=1,NJS 04512000
+ READ(NTI,1000) AJ,DUM,DUM,DUM,NLJ12,NLJ 04513000
+ READ(NTI,2000) ((A(NLA+J+(JJ-1)*NMA1),J=5,NMA1),JJ=1,NLJ) 04514000
+ DO 60 IJK=1,NLJ 04515000
+ A(NLA+(IJK-1)*NMA1+1)=IL 04516000
+ A(NLA+(IJK-1)*NMA1+2)=IJ 04517000
+ A(NLA+(IJK-1)*NMA1+3)=AJ 04518000
+ A(NLA+(IJK-1)*NMA1+4)=IJK 04519000
+ NLA=NLA+NMA1*NLJ 04520000
+ NRS=NRS+NLS 04521000
+ 60 CONTINUE 04522000
+ 50 CONTINUE 04523000
+ 40 CONTINUE 04524000
+C DIMENSIONI MATRICI DA PASSARE A SUB. AA 04525000
+ K1=1 04526000
+C BACKGROUND 04527000
+ K2=K1+18 04528000
+C RISONANZE LETTE 04529000
+ K3=K2+NMA1*NRS 04530000
+C RISONANZE DA CREARE 04531000
+ K4=K3+10*NRS 04532000
+ NFIN=K4-1 04533000
+ IF(KFIN.GT.MA) CALL ERR(8H P3MCF3 ,40) 04534000
+C PARAMETRI RISONANZE DI OUTPUT 04535000
+ NPKO=10 04536000
+ CALL AA(NX,A(K1),NMA1,NRS,A(K2),NPKO,NRS,A(K3),NTOUT,NTO, 04537000
+ 1AP,AWRI,SPI,MINDX1,AINDX(1,I),M1,M2,MIX,NMT,NLS) 04538000
+ 100 CONTINUE 04539000
+ 10 CONTINUE 04540000
+ 5 CONTINUE 04541000
+ RETURN 04542000
+ END 04543000
+ SUBROUTINE BW(NRS,M7,NPK,PKIN,PKOU,LRF,SPI,AWRI,AP,NTOUT,NTO, 04544000
+ 1MINDX1,AINDX,M1,M2,MIX,NMT,NLS) 04545000
+C *********************************************************** 04546000
+C 04547000
+C BWSL AND BWML RESONANCE PARAMETER 04548000
+C 04549000
+C *************************************************************** 04550000
+C 04551000
+ COMMON /OPZIO/OPZ(4,8,10) 04552000
+ EQUIVALENCE(OPZ(2,4,3),GAX),(OPZ(2,4,1),STMP) 04553000
+ DIMENSION PKIN(M7,NRS),PKOU(NPK,NRS),AINDX(MINDX1),MIX(M1,M2) 04554000
+ COMMON /FILES/NT(4,99) 04555000
+ EQUIVALENCE(NO,NT(1,6)),(NP,NT(1,11)) 04556000
+ COMMON /INDX1/AINDX1(40,200) 04557000
+ COMMON /DIM/M(5) 04558000
+ COMMON /DIMC/MMA,MINDD1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 04559000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 04560000
+C PKIN (1 =L (L=0 PER ONDA S ) 04561000
+C PKIN (2 =ER 04562000
+C 3 =AJ 04563000
+C 4 =GT 04564000
+C 5 =GN 04565000
+C 6 =GG 04566000
+C 7 =GF 04567000
+ EQUIVALENCE (IND2,M(4)) 04568000
+C 04569000
+ WRITE(NP,9000) AINDX(35),AINDX(36),NRS,AINDX(14),AINDX(15) 04570000
+ 9000 FORMAT(1X,2A4,' BREIT-WIGNER RES. RESONANCES:',I5, 04571000
+ 1 ' RANGE:',2E12.5) 04572000
+C 04573000
+ EUP=OPZ(2,5,2) 04574000
+ DELU=OPZ(2,5,3) 04575000
+ NG=OPZ(2,5,4) 04576000
+ IF(DELU.LE.0.) DELU=1./120. 04577000
+ IF(NG.LE.0) NG=2082 04578000
+ IF(EUP.LE.0.) EUP=1.4190675E+7 04579000
+ EDOWN=EUP*EXP(-NG*DELU) 04580000
+C 04581000
+C 04582000
+C ........................... LOOP SU RISONANZE 04583000
+ DO 10 IR=1,NRS 04584000
+C GI 04585000
+ G=(2*PKIN(3,IR)+1)/(2*(2*SPI+1)) 04586000
+C 04587000
+ GT=PKIN(5,IR)+PKIN(6,IR)+PKIN(7,IR) 04588000
+ IF(GAX.GT.1) GT=PKIN(4,IR) 04589000
+C INSERISCE GX (COMPETITIVE) NEL TOTALE PER GAX>1 04590000
+C E 04591000
+ PKOU(1,IR)=PKIN(2,IR) 04592000
+C SIG0 04593000
+ GN=PKIN(5,IR) 04594000
+ IF(GAX.GT.0) GN=PKIN(4,IR)-PKIN(6,IR)-PKIN(7,IR) 04595000
+C INSERISCE GX NELLA GN ( COME MANUALE MC2 ( DESC MCCF)) 04596000
+ PKOU(2,IR)=2.6039953E+6/PKIN(2,IR)*G*((AWRI+1)/AWRI)**2*GN/GT 04597000
+C A PARTE QUELLO CHE E NEL MANUALE DI MC22 IO NON METTEREI GX NELLA04598000
+C GN VISTO CHE E GIA NELLE SMOOTHS 04599000
+C THETA 04600000
+ PKOU(3,IR)=GT/SQRT(34.4668E-5*ABS(PKIN(2,IR))/AWRI) 04601000
+C AFAC 04602000
+ PKOU(4,IR)=SQRT(ABS(G*PKIN(5,IR)*AP**2/GT/PKOU(2,IR)*12.56637062))04603000
+C AFAC SET ZERO FOR D AND P RESONANCES 04604000
+ IF(PKIN(1,IR).GE.1) PKOU(4,IR)=0. 04605000
+C GT 04606000
+ PKOU(5,IR)=GT 04607000
+C GN 04608000
+ PKOU(6,IR)=PKIN(5,IR) 04609000
+C GG 04610000
+ PKOU(7,IR)=PKIN(6,IR) 04611000
+C GF 04612000
+ PKOU(8,IR)=PKIN(7,IR) 04613000
+ IF(LRF.EQ.1) GO TO 100 04614000
+C .................................. MULTI LEVEL 04615000
+C CS=GT 04616000
+ PKOU(9,IR)=PKIN(4,IR) 04617000
+C GC/GS 04618000
+ PKOU(10,IR)=PKIN(6,IR)/PKOU(9,IR) 04619000
+C GF/GS 04620000
+ PKOU(11,IR)=PKIN(7,IR)/PKOU(9,IR) 04621000
+C TERMINE CORRETTIVO GT+GCOR 04622000
+ PKOU(12,IR)=1 04623000
+C BC=0 04624000
+ PKOU(13,IR)=0 04625000
+ BF=0 04626000
+ PKOU(14,IR)=0 04627000
+C TERMINI DI INTERFERENZA NELLA FORMA ADLER-GAUSS 04628000
+ PKOU(15,IR)=0. 04629000
+ PKOU(16,IR)=0. 04630000
+ 100 CONTINUE 04631000
+ 10 CONTINUE 04632000
+ IF(LRF.EQ.1) GO TO 200 04633000
+C CALCOLO TERMINI SIMMETRICO ED ANTISIMMETRICO DELLE FORMULE DI AD04634000
+C VENGONO MESSI IN PKOU(15,.) E PKOU(16,.) 04635000
+C 04636000
+ DO 20 IRJ=1,NRS 04637000
+ DO 17 IRK=1,NRS 04638000
+ IF(IRJ.EQ.IRK) GOTO 17 04639000
+ IF(PKIN(1,IRK).NE.PKIN(1,IRJ) ) GO TO 17 04640000
+ IF(PKIN(2,IRK).EQ.PKIN(2,IRJ) ) GO TO 17 04641000
+ IF(PKIN(3,IRK).NE.PKIN(3,IRJ) ) GO TO 17 04642000
+C 04643000
+C ESCLUDE DALLA SOMMATORIA I CASI : 04644000
+C AUTOINTERFERENZA ( IRK=IRJ) 04645000
+C DIVERSO L ( PKIN(1 04646000
+C DIVERSO J ( PKIN(3 04647000
+C 04648000
+C CALCOLO GAMMA TOTAL COME FUNZIONE DI E PER RISONANZA K 04649000
+ IF(PKIN(1,IRK).LE.0) ESP=0.5 04650000
+ IF(PKIN(1,IRK).EQ.1) ESP=1.5 04651000
+ IF(PKIN(1,IRK).GE.2) ESP=2.5 04652000
+ GTK=PKIN(6,IRK)+PKIN(7,IRK)+PKIN(5,IRK)* 04653000
+ 1 ABS(PKIN(2,IRJ)/PKIN(2,IRK))**ESP 04654000
+C 04655000
+C CALCOLO FATTORE DI DIPENDENZA ENERGETICA 04656000
+ IF(PKIN(1,IRK).LE.0) EFAC=PKIN(5,IRK)*0.5* 04657000
+ 1 SQRT(ABS(PKIN(2,IRJ)/PKIN(2,IRK))) 04658000
+ IF(PKIN(1,IRK).EQ.1) EFAC=0.5*PKIN(5,IRK)* 04659000
+ 1 ABS(PKIN(2,IRJ))**(-0.5)*ABS(PKIN(2,IRK))**(-1.5) 04660000
+ IF(PKIN(1,IRK).GE.2) EFAC=PKIN(5,IRK)*0.5* 04661000
+ 1 ABS(PKIN(2,IRJ))**(-0.5)*ABS(PKIN(2,IRK))**(-3.5) 04662000
+C 04663000
+ TEMP=(PKIN(2,IRJ)-PKIN(2,IRK))**2+0.25*(PKIN(4,IRJ)+GTK)**2 04664000
+C 04665000
+ PKOU(15,IRJ)=PKOU(15,IRJ)+EFAC*(PKIN(4,IRJ)+GTK)/TEMP 04666000
+ PKOU(16,IRJ)=PKOU(16,IRJ)+EFAC*(PKIN(2,IRJ)-PKIN(2,IRK))/TEMP 04667000
+C 04668000
+ 17 CONTINUE 04669000
+C 04670000
+C SIG0=SIG0+(1+SIMM) 04671000
+ PKOU(2,IRJ)=PKOU(2,IRJ)*(1+PKOU(15,IRJ)) 04672000
+C AFAC=(AFAC+ASIMM)/(1+SIMM) 04673000
+C AFAC JUST SET ZERO FOR P AND D RESONANCES 04674000
+ IF(PKIN(1,IRJ).GE.1.) GO TO 201 04675000
+ PKOU(4,IRJ)=(PKOU(4,IRJ)+PKOU(16,IRJ))/(1+PKOU(15,IRJ)) 04676000
+C GTA=1+SIMM 04677000
+ 201 PKOU(12,IRJ)=1+PKOU(15,IRJ) 04678000
+C 04679000
+ 20 CONTINUE 04680000
+ 200 CONTINUE 04681000
+C 04682000
+C TOGLIE LE RISONANZE FUORI DELL'ENERGY RANGE E LE ORDINA 04683000
+C QUI SI DEVE RIORDINARE ,I PK INPUT SOPRA PERCHE AD ADLER GAUSS 04684000
+C SERVONO TUTTE LE RISONANZE PRATICAMENTE,ANCHE QUELLE FUORI RANGE04685000
+C 04686000
+C SE EINF ED EUP SONO OLTRE I LIMITI DELLA STRUTTURA GRUPPALE 04687000
+C SI RIFERISCE ALLA STRUTTURA GRUPPALE 04688000
+ EEINFF=AINDX(14) 04689000
+ EEUPP=AINDX(15) 04690000
+ IF(EEINFF.LT.EDOWN) EEINFF=EDOWN 04691000
+ IF(EEUPP.GT.EUP) EEUPP =EUP 04692000
+ IF(OPZ(2,4,2).LE.0.)CALL SELR1(NPK,NRS,PKOU,1,EEINFF,EEUPP) 04693000
+ CALL ORDINA(1,NPK,NRS,PKOU) 04694000
+C 04695000
+C NUMERO PARAMETRI DI OUTPUT 04696000
+ NPKOU=NPK 04697000
+C TROVO E MAX RISONANZE 04698000
+ EMX=FNDMX(1,NPK,NRS,PKOU) 04699000
+C CALCOLO NUMERO RECORDS ( DI MCCF, NON DELLA SECONDA SERIE ) PER F04700000
+C SCRIVO 04701000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF04702000
+ IF(NMT.GT.M2) GO TO 600 04703000
+ NOM=MIX(3,NMT) 04704000
+ NOM1=MIX(4,NMT) 04705000
+ NOM2=MIX(1,NMT) 04706000
+ NOM3=MIX(2,NMT) 04707000
+ GO TO 610 04708000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT04709000
+ 600 NOM=NAREAL(AINDX(35)) 04710000
+ NOM1=NAREAL(AINDX(36)) 04711000
+ NOM2=NAREAL(AINDX(35)) 04712000
+ NOM3=NAREAL(AINDX(36)) 04713000
+ 610 CONTINUE 04714000
+ CALL POSL(NTOUT) 04715000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 04716000
+C WRITE(NTO) NRS,NREC,EMX 04717000
+C WRITE(NTO) NOM2,NOM3,AINDX(28) 04718000
+ IWR=1 04719000
+ IF(LRF.NE.1) IWR=3 04720000
+C NOME,ISOTOPO ( NON VA IN TAPES MCCF ) 04721000
+C WRITE(NTO) AINDX(6),IWR,AINDX(14),AINDX(15) 04722000
+C NUM ISOTOPO, RAPPR 1,3=BWSL,BWML,E INF, E UPP ( DA E RANGE NON DA04723000
+C RISONANZE 04724000
+C WRITE(NTO) AINDX(9),NRS 04725000
+C ABBONDANZA ISOTOPO, NUM RISONANZE 04726000
+C VA ALL INDIETRO IN MCCF, IN AVANTI IN ENERGIE IN ENDFB 04727000
+C 04728000
+ DO 31 I=1,4 04729000
+ 31 WRITE(NTO) (PKOU(I,J),J=1,NRS) 04730000
+ WRITE(NTO) ((PKOU(I,J),J=1,NRS),I=5,6) 04731000
+C 04732000
+C I PARAMETRI 5 E 6 SONO NELLO STESSO RECORD IN MCC2F4 04733000
+C 04734000
+ DO 30 I=7,NPKOU 04735000
+ WRITE(NTO) (PKOU(I,J),J=1,NRS) 04736000
+ 30 CONTINUE 04737000
+ IF(STMP.LT.10) GO TO 700 04738000
+ WRITE(NO,901) NOM,NOM1 04739000
+ 901 FORMAT(//20X,2A4/) 04740000
+ WRITE(NO,900) 04741000
+ 900 FORMAT(' OUTPUT RESONANCE PARAMETERS' ) 04742000
+C 04743000
+ WRITE(NO,1000) NRS,NPKOU,EMX 04744000
+ 1000 FORMAT(' RESONANCES:',I10,' RECORDS:',I10,' E MAX:',E12.5) 04745000
+ WRITE(NO,2000) NOM2,NOM3,AINDX(28) 04746000
+ 2000 FORMAT(1X,2A4,' ISOTOPE:',F10.0) 04747000
+ WRITE(NO,3000) AINDX(6),IWR,AINDX(14),AINDX(15) 04748000
+ 3000 FORMAT(' ISOTOPE:',F10.0,' RAPPR:',I5,' ENERGY LIMITS:',2E12.5) 04749000
+ WRITE(NO,4000) AINDX(9),NRS 04750000
+ 4000 FORMAT(' ABUNDANCE:',E12.5,' NUMBER OF RESONANCES:',I10/ 04751000
+ 1 ' E SIGMA0 THETA AFAC GT', 04752000
+ 2 ' GN GC GF GAMS GCC '/ 04753000
+ 3 ' GFF GTT BC BF G H') 04754000
+ DO 70 I=1,NRS 04755000
+ WRITE(NO,5000) (PKOU(J,I),J=1,NPKOU) 04756000
+ 5000 FORMAT(1X,10E12.5) 04757000
+ 70 CONTINUE 04758000
+ WRITE(NO,6000) 04759000
+ 6000 FORMAT(//' INPUT RESONANCE PARAMETERS') 04760000
+ DO 75 I=1,NRS 04761000
+ 75 WRITE(NO,5000) (PKIN(J,I),J=1,M7) 04762000
+ 700 CONTINUE 04763000
+C 04764000
+ ANREC=NPKOU-1 04765000
+ IND2=IND2+1 04766000
+ IF(IND2.GT.MIND12) CALL ERR(8H BW , 30) 04767000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 04768000
+ 1 AINDX(4), 04769000
+ 1AINDX(5),NOM,NOM1,NOM2,NOM3,0.,4.,0.,0.,FLOAT(NTO),FLOAT(NTOUT), 04770000
+ 2FLOAT(NT(4,NTOUT)),ANREC,FLOAT(NRS),FLOAT(NPKOU),AINDX(6), 04771000
+ 3FLOAT(LRF),EMX,FLOAT(IWR),SPI,AP,AINDX(9),FLOAT(NLS),0.,0.,0.,0., 04772000
+ 4AINDX(14),AINDX(15),AINDX(28),AINDX(29),0.,0.,0.,0.,0.) 04773000
+C 04774000
+ NT(4,NTOUT)=NT(4,NTOUT)+ANREC 04775000
+ NT(3,NTOUT)=NT(4,NTOUT) 04776000
+ RETURN 04777000
+ END 04778000
+ SUBROUTINE AA(NX,X,NI1,NI2,PKIN,NO1,NO2,PKOU,NTOUT,NTO,AP, 04779000
+ 1AWRI,SPI,MINDX1,AINDX,M1,M2,MIX,NMT,NLS) 04780000
+C *************************************************************** 04781000
+C 04782000
+C ADLER-ADLER RESONANCE PARAMETERS 04783000
+C !!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 04784000
+C THIS ROUTINE HAS NOT BEEN COMPLETELY TESTED !!!!!!!!!!!!!!!! 04785000
+C 04786000
+C *************************************************************** 04787000
+C 04788000
+ DIMENSION X(NX),PKIN(NI1,NI2),PKOU(NO1,NO2),AINDX(MINDX1) 04789000
+C X E IL BACKGROUND 04790000
+ DIMENSION MIX(M1,M2) 04791000
+ COMMON /FILES/NT(4,99) 04792000
+ EQUIVALENCE (NP,NT(1,11)),(NO,NT(1,6)) 04793000
+ COMMON /INDX1/AINDX1(40,200) 04794000
+ COMMON /OPZIO/OPZ(4,8,10) 04795000
+ COMMON /DIM/M(5) 04796000
+ COMMON /DIMC/MMA,MINDD1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 04797000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 04798000
+C 04799000
+ NRES=NI2 04800000
+ NPKIN=NI1 04801000
+ NPKOU=NO1 04802000
+C PKIN : L,J,AJ,LJ,DET,DWT,GRT,GIT,DEF,DWT,GRF,GIF,DEC,DWC,GRC,GIC 04803000
+C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 04804000
+C MI NI SIM ASIM MI NI SIM ASIM MI NI SIM ASIM 04805000
+C E G /2 G(T)H(T) G(F) H(F) G(C) H(C) 04806000
+C 04807000
+ WRITE(NP,9000) AINDX(35),AINDX(36),NRES,AINDX(15),AINDX(15) 04808000
+ 9000 FORMAT(1X,2A4,' ADLER-ADLER RESONANCES:',I5,' RANGE:',2E12.5) 04809000
+C 04810000
+C NUMERO DONDA DEL NEUTRONE /SQRT(E) 04811000
+ AK=2.196771*AWRI/(AWRI+1)/1000. 04812000
+ DO 10 I=1,NRES 04813000
+ SE=SQRT(PKIN(5,I)) 04814000
+ FI=AK*AP*SE 04815000
+ COSF=COS(2*FI) 04816000
+ SINF=SIN(2*FI) 04817000
+C IPOTESI L=0 ( PHASE SHIFT PER L=0) 04818000
+C GITI ( NORMALIZZA AFAC 04819000
+ GITI=SE*(PKIN(7,I)*COSF+PKIN(8,I)*SINF) 04820000
+C E 04821000
+ PKOU(1,I)=PKIN(5,I) 04822000
+C SIG0 04823000
+ PKOU(2,I)=2.6039953E+6/PKOU(1,I)*((AWRI+1)/AWRI)**2*PKIN(7,I)/4* 04824000
+ 1PKIN(6,I) 04825000
+C D=DELTA = SQRT(T) * THETA 04826000
+ PKOU(3,I)=2.*PKIN(6,I)/SQRT(34.464E-5*ABS(PKOU(1,I))/AWRI) 04827000
+C AFAC 04828000
+ PKOU(4,I)=-0.5*SE*(PKIN(8,I)*COSF-PKIN(7,I)*SINF)/ABS(GITI) 04829000
+C GAMS 04830000
+ PKOU(5,I)=PKIN(6,I)*2 04831000
+C GC 04832000
+ PKOU(6,I)=SE*(PKIN(15,I)*COSF+PKIN(16,I)*SINF) 04833000
+C GF 04834000
+ PKOU(7,I)=SE*(PKIN(11,I)*COSF+PKIN(12,I)*SINF) 04835000
+C GT 04836000
+ PKOU(8,I)=SE*(PKIN(7,I)*COSF+PKIN(8,I)*SINF) 04837000
+C BC 04838000
+ PKOU(9,I)=-0.5*SE*(PKIN(16,I)*COSF-PKIN(15,I)*SINF)/PKOU(6,I) 04839000
+C BF 04840000
+ PKOU(10,I)=-0.5*SE*(PKIN(12,I)*COSF-PKIN(11,I)*SINF)/PKOU(7,I) 04841000
+ 10 CONTINUE 04842000
+C 04843000
+C SCARTA LE RISONANZE FUORI ENERGY RANGE E LE ORDINA IN E DECRESCE04844000
+ IF(OPZ(2,4,2).LE.0)CALLSELR1(NO1,NRES,PKOU,1,AINDX(14),AINDX(15))04845000
+ CALL ORDINA(1,NO1,NRES,PKOU) 04846000
+C 04847000
+C SPERIAMO DI AVERCI PRESO CON QUESTI MISCUGLI ALGEBRICI !!! ? 04848000
+C NUMERO PARAMETRI DI OUTPUT 04849000
+C TROVO E MAX 04850000
+ EMX=FNDMX(1,NPKOU,NRS,PKOU) 04851000
+C CALCOLO NUMERO RECORDS ( DI MCCF2 NON DI TAPES SERIE 2 ) PER MCCF104852000
+ NREC=1+NPKOU 04853000
+C SCRIVO 04854000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF04855000
+ IF(NMT.GT.M2) GO TO 600 04856000
+ NOM=MIX(3,NMT) 04857000
+ NOM1=MIX(4,NMT) 04858000
+ NOM2=MIX(1,NMT) 04859000
+ NOM3=MIX(2,NMT) 04860000
+ GO TO 610 04861000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT04862000
+ 600 NOM=NAREAL(AINDX(35)) 04863000
+ NOM1=NAREAL(AINDX(36)) 04864000
+ NOM2=NAREAL(AINDX(35)) 04865000
+ NOM3=NAREAL(AINDX(36)) 04866000
+ 610 CONTINUE 04867000
+ CALL POSL(NTOUT) 04868000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 04869000
+C WRITE(NTO) NRES,NREC,EMX 04870000
+C WRITE(NTO) MIX(3,1),MIX(4,1),AINDX(28) 04871000
+ IWR=1 04872000
+ IF(LRF.NE.1) IWR=3 04873000
+C NOME,ISOTOPO ( NON VA IN TAPES MCCF ) 04874000
+C WRITE(NTO) AINDX(6),IWR,AINDX(15),AINDX(16) 04875000
+C NUM ISOTOPO, RAPPR 1,3=BWSL,BWML,E INF, E UPP ( DA E RANGE NON DA04876000
+C RISONANZE 04877000
+C WRITE(NTO) AINDX(9),NRES 04878000
+C ABBONDANZA ISOTOPO, NUM RISONANZE 04879000
+ DO 30 I=1,NPKOU 04880000
+ WRITE(NTO) (PKOU(I,J),J=1,NRES) 04881000
+ 30 CONTINUE 04882000
+ ANREC=NPKOU 04883000
+ IND2=IND2+1 04884000
+ IF(IND2.GT.MIND12) CALL ERR(8H AA , 30) 04885000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 04886000
+ 1AINDX(4),AINDX(5),NOM,NOM1,NOM2,NOM3,0.,4.,0.,0.,FLOAT(NTO),FLOAT(04887000
+ 2NTOUT),FLOAT(NT(4,NTOUT)),ANREC,FLOAT(NRES),FLOAT(NPKOU),AINDX(6),04888000
+ 3FLOAT(LRF),EMX,FLOAT(IWR),SPI,AP,AINDX(9),NLS,0.,0.,0.,0., 04889000
+ 4AINDX(15),AINDX(16),AINDX(28),AINDX(29),0.,0.,0.,0.,0.) 04890000
+C 04891000
+ NT(4,NTOUT)=NT(4,NTOUT)+ANREC 04892000
+ NT(3,NTOUT)=NT(4,NTOUT) 04893000
+C INDICE OVE METTE LE BACKGROUND ............................. 04894000
+ IND2=IND2+1 04895000
+ IF(IND2.GT.MIND12)CALL ERR(8H A A , 30 ) 04896000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 04897000
+ 1AINDX(4),AINDX(5),NOM,NOM1,NOM2,NOM3,0., 04898000
+ 15.,0.,2.,0.,0., 04899000
+ 2X(1),X(2),X(3),X(4),X(5),X(6),X(7),X(8),X(9),X(10),X(11),X(12), 04900000
+ 3X(13),X(14),X(15), 04901000
+ 4X(16),X(17),X(18),AINDX(9) ) 04902000
+ RETURN 04903000
+ END 04904000
+ SUBROUTINE P2MCF5(MA,A,M1,M2,MIX,MKB1,INDIND,MKB,INDMIX, 04905000
+ 1 N41,N27,TR,TI,TRS,TIS,NG,E) 04906000
+C ************************************************************** 04907000
+C 04908000
+C ULTRAFINE GROUP CROSS SECTION ARE PRODUCED BY THIS ROUTINE 04909000
+C FOR MCC2F5 FILE OF MC2-2 04910000
+C 04911000
+C PRODUCE REAZIONI MT=NREAC STACCATE ( UNA REGISTRRAZIONE PER REAZ) 04912000
+C PERCHE ENDFB HA UN ASCRITTURA PER OGNI MT 04913000
+C PRODUCE RISONANZE E PARTI DI TOTALE DA SOMMARE NELLA PARTE 3 04914000
+C 04915000
+C E(NG)=LIMITI ENERGETICI SUPERIORI DEI GRUPPI (NG+1 VALORI) 04916000
+C A(MA)=SCR 04917000
+C MIX(M1,M2)=MIX DELL F5 04918000
+C INDMIX(3,KB)= INDICE DI MIX 1,2,3=VALORE,INIZIO DIMENSIONI 04919000
+C ORDINATE PER FN) 04920000
+C INDIND(4,KB1)= INDICE DI IND ( ORDINATO PER MAT) 04921000
+C TR,TI,TRS,TIS SONO SPAZI PER LA TABULAZIONE 04922000
+C DELLA FUNZIONE W UTILE PER IL CALCOLO DELLE FUNZIONI DOPPLER 04923000
+C QUESTI SPAZI SONO RIEMPITI DA WTABL CHIAMATA DA P2 04924000
+C 04925000
+C FA LOOP SU INDICE, GUARDA SE L ELEMENTO E IN MIX DI F5 04926000
+C ******************************************************************04927000
+C 04928000
+C 04929000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 04930000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 04931000
+C 04932000
+C 04933000
+ DIMENSION A(MA),MIX(M1,M2),INDMIX(3,MKB),INDIND(4,MKB1),E(NG) 04934000
+ DIMENSION TR(N41,N27),TI(N41,N27) 04935000
+ DIMENSION TRS(N41,N27),TIS(N41,N27) 04936000
+ COMMON /INDX/AINDX(40,200) 04937000
+ COMMON /INDX1/AINDX1(40,200) 04938000
+ COMMON /DIM/ MX1,IND,MX2,IND1 04939000
+ COMMON /OPZIO/OPZ(4,8,10) 04940000
+ EQUIVALENCE (STMP,OPZ(2,5,1)) 04941000
+ COMMON /FILES/NT(4,99) 04942000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 04943000
+ 1 ,(NP12,NT(1,12)) 04944000
+ EQUIVALENCE (OPM,OPZ(2,5,5)),(EUP,OPZ(2,5,2)),(DELU,OPZ(2,5,3)) 04945000
+C 04946000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 04947000
+ 7000 FORMAT(' P2MCF5 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 04948000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 04949000
+C 04950000
+ NG1=NG+1 04951000
+C 04952000
+C ............... LOOP SU INDICE DELL'INDICE 04953000
+ DO 5 IS=1,MKB1 04954000
+ N1S=INDIND(3,IS) 04955000
+ N2S=INDIND(4,IS) 04956000
+ N3S=N1S+N2S-1 04957000
+C 04958000
+C CERCO L ISOTOPO NELLA MIX E GUARDA I SEGUENTI CASI : 04959000
+C 1) SE LO TROVA 04960000
+C 2) SE TROVA UN NOME BIANCO IN MIX (=TUTTI I MATERIALI) NMT=M2+1 04961000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1S,35,3,1) 04962000
+ IF(NMT.LE.0) GO TO 5 04963000
+C 04964000
+C ...............LOOP SU INDICE DEL MATERIALE 04965000
+ DO 10 I=N1S,N3S 04966000
+C CONTROLLO SE E DESTINATO AD F5 04967000
+ IF(AINDX(30,I).NE.5.AND.AINDX(30,I).NE.4.AND.AINDX(30,I).NE.3) 04968000
+ 1 GOTO 100 04969000
+C 04970000
+C WRITE(NP,9010) AINDX(35,I),AINDX(36,I) 04971000
+C9010 FORMAT(1X,2A4) 04972000
+C 04973000
+C DEFINIZIONE DEL TAPE DI OUTPUT 04974000
+ NTOUT=35 04975000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT=MIX(5,NMT) 04976000
+ IF(NTOUT.LE.0) NTOUT=35 04977000
+ NTO=NT(1,NTOUT) 04978000
+C POSIZIONE TAPE DI INPUT ( INIZIO ISOTOPO ED E- RANGE) 04979000
+ NTIN=AINDX(23,I) 04980000
+ NTI=NT(1,NTIN) 04981000
+ NPOST=AINDX(25,I) 04982000
+ CALL POST(NTIN,NPOST) 04983000
+C 04984000
+C GUARDA NELL'INDICE SE SONO RISOLTE,UNRES,SMOOTH O NI 04985000
+C 04986000
+ IF(AINDX(30,I).EQ.3) GO TO 250 04987000
+ IF(AINDX(30,I).EQ.4) GO TO 200 04988000
+C RISONANZE ( DA SOMMARE A SMMOOTHS NELLA PARTE 3 ) 04989000
+ IF(AINDX(31,I).EQ.2) GO TO 300 04990000
+C NI DA METTERE IN RECORD 2 DI F5 04991000
+C 04992000
+C SMOOTHS ( TRATTA UNA REAZIONE PER VOLTA E FA UNA SCRITTTURA PER O04993000
+C REAZIONE. GLI MT SONO QUINDI STACCATI DA MONTARE NELLA PARTE 3 E04994000
+C TOTALE VA FATTA SOMMANDO NELLA PARTE 3. QUESTO E FATTO COSI PER C04995000
+C ENDFB CONTIENE I DIVERSI MT ( REAZIONI ) ) 04996000
+C 04997000
+ IF(NMT.GT.0.AND.NMT.LE.M2.AND.MIX(9,NMT).LT.0) GO TO 100 04998000
+C 04999000
+C TEMPERATURA 05000000
+ TEMPER=0. 05001000
+ IF(NMT.LE.M2) TEMPER=AREAL(MIX(15,NMT)) 05002000
+ TEMP=OPZ(2,5,8) 05003000
+ IF(TEMPER.GT.0.) TEMP=TEMPER 05004000
+ IF(TEMP.LE.0.) TEMP=300. 05005000
+C 05006000
+ CALL SMOOT(NTI,NTIN,NTO,NTOUT,NMT,M2,EUP,DELU,TEMP,NG,NG1,E,A, 05007000
+ 1MA-NG-2,A(NG+2),MINDX1,AINDX(1,I),M1,MIX) 05008000
+ GO TO 100 05009000
+ 300 CONTINUE 05010000
+C 05011000
+C NI DA METTERE IN RECORD 2 DI F2 05012000
+C 05013000
+ IF(NMT.GT.0.AND.NMT.LE.M2.AND.MIX(10,NMT).LT.0) GO TO 100 05014000
+C 05015000
+C RIDEFINIZIONE TAPE DI OUTPUT. NII SCRIVE SU 37 DI DEFAULT NON 3505016000
+C 05017000
+ NTOUT1=37 05018000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT1=MIX(10,NMT) 05019000
+ IF(NTOUT1.LE.0) NTOUT1=37 05020000
+ NTO1=NT(1,NTOUT1) 05021000
+C 05022000
+ CALL NII(NTI,NTIN,NTO1,NTOUT1,NMT,M2,MINDX1,AINDX(1,I),M1,MIX,MA, 05023000
+ 1A,EUP,DELU,NG) 05024000
+ GO TO 100 05025000
+ 250 CONTINUE 05026000
+C 05027000
+C RISONANZE UNRESOLVED DA SOMMARE ALLE SMOOTHS 05028000
+C 05029000
+ IF(NMT.GT.0.AND.NMT.LE.M2.AND.MIX(7,NMT).LE.-5) GO TO 100 05030000
+ TEMP=OPZ(2,5,8) 05031000
+ NFLRIS=0 05032000
+ IF(NMT.GT.M2) GO TO 255 05033000
+C SCHEDA MIX NON ESISTE ALLORA VALE IL DEFAULT 05034000
+C 05035000
+ TEMPER=AREAL(MIX(15,NMT)) 05036000
+ IF(TEMPER.GT.0.) TEMP=TEMPER 05037000
+ SIGBK=AREAL(MIX(14,NMT)) 05038000
+C IL FLAG NLRIS E' >0 OPPURE <0 SE OCCORRE SOLO SCATT DI RIS 05039000
+ NFLRIS=MIX(7,NMT) 05040000
+C MIX(7,.) < 0 SEGNALA NO RISONANZE 05041000
+C VEDERE BENE LO SCATTERING DI RISONANZA CHE DEVE CALCOLARE SEMPRE 05042000
+ IF(NFLRIS.NE.0) GO TO 260 05043000
+C QUESTO SEGNALA RISONANZE DA TRATTARE 05044000
+C QUI MIX(7,.)=0 05045000
+C OPZIONE DI MASSA 05046000
+ 255 IF(AINDX(5,I).LT.OPZ(2,5,5)) NFLRIS=10 05047000
+ 260 CONTINUE 05048000
+ IF(TEMP.LE.0.) TEMP=300. 05049000
+C FISSA ARGOMENTI PER UNRES 05050000
+ NOVRLP=OPZ(2,3,8) 05051000
+C DEFAULT PER SIGMA POTENZIALE E' LA DILUIZIONE INFINITA(COME ETOE) 05052000
+ IF(SIGBK.LE.0) SIGBK=1.E+5 05053000
+C 05054000
+ INTERP=OPZ(2,3,9) 05055000
+ IF(INTERP.LE.0) INTERP=2 05056000
+C INPUT(CALLED BY UNRES) SET INTERP=1 (COSTANT) 05057000
+ ZA=AINDX(4,I) 05058000
+ AM=AINDX(5,I) 05059000
+ NIS=AINDX(6,I) 05060000
+ MAT=AINDX(1,I) 05061000
+ MF=AINDX(2,I) 05062000
+ MT=AINDX(3,I) 05063000
+ ZAI=AINDX(8,I) 05064000
+C ABUNDANCE IS ACCOUNTED IN PART 3, HERE EACH ISOTOPE 05065000
+C IS COMPUTED PER CONTO SUO . 05066000
+ ABUNDI=1. 05067000
+C ABUNDI=AINDX(9,I) 05068000
+ L1=0 05069000
+ IFIS=AINDX(10,I) 05070000
+C IFIS=LFW DI ENDFB 05071000
+ EL=AINDX(14,I) 05072000
+ EH=AINDX(15,I) 05073000
+ LRU=AINDX(12,I) 05074000
+ LRF=AINDX(13,I) 05075000
+ IF(LRF.GT.1) IFIS=1 05076000
+C 05077000
+C PUNTATORI PER UNRES ARRAYS: 05078000
+ N150=AINDX(38,I) 05079000
+ IF(N150.LE.1) N150=OPZ(2,3,2) 05080000
+ IF(N150.LE.0) N150=50 05081000
+C 50 E' IL NUMERO DI PUNTI E CON CUI VENGONO RAPPRESENTATE LE GAMM05082000
+C IN UNRES QUANDO NON C'E' DIPENDENZA DA E IN ENDFB 05083000
+C NELLA CATENA ORIGINARIA SI USAVANO SOLO 15 PUNTI 05084000
+C 05085000
+ N15012=N150*12 05086000
+C QUI IN : 05087000
+C A(1): SEZIONI D'URTO A GRUPPI 05088000
+C INIZIO SPAZIO VUOTO IN A: 05089000
+ NL1=NG+3 05090000
+C SIGCAP 05091000
+ NL2=NL1+N150 05092000
+C SIGFIS 05093000
+ NL3=NL2+N150 05094000
+C SIGTOT 05095000
+ NL4=NL3+N150 05096000
+C SIGSCA 05097000
+ NL5=NL4+N150 05098000
+C SIGPOT 05099000
+ NL6=NL5+N150 05100000
+C SIGCMP 05101000
+ NL7=NL6+N150 05102000
+C ES 05103000
+ NL8=NL7+N150 05104000
+C DELTA 05105000
+ NL9=NL8+N150 05106000
+C PSHFTO 05107000
+ NL10=NL9+N150 05108000
+C PSHFT1 05109000
+ NL11=NL10+N150 05110000
+C PSHFT2 05111000
+ NL12=NL11+N150 05112000
+C V1 05113000
+ NL13=NL12+N150 05114000
+C V2 05115000
+ NL14=NL13+N150 05116000
+C GF 05117000
+ NL15=NL14+N15012 05118000
+C D 05119000
+ NL16=NL15+N15012 05120000
+C GG 05121000
+ NL17=NL16+N15012 05122000
+C GNO 05123000
+ NL18=NL17+N15012 05124000
+C GX 05125000
+ NL19=NL18+N15012 05126000
+C GAMTOT 05127000
+ NL20=NL19+2000 05128000
+C GAMFIS 05129000
+ NL21=NL20+2000 05130000
+C GAMCMP 05131000
+ NL22=NL21+2000 05132000
+C ZETA 05133000
+ NL23=NL22+1000 05134000
+C PSIZRO 05135000
+ NL24=NL23+1000 05136000
+C BETPSI 05137000
+ NL25=NL24+1000 05138000
+C BBETA 05139000
+ NL26=NL25+4000 05140000
+C BVCTR 05141000
+ NL27=NL26+5000 05142000
+C PVCTR 05143000
+ NL28=NL27+5000 05144000
+C RVCTR 05145000
+ NFIN=NL28+5000 05146000
+C 05147000
+ IF(NFIN.GT.MA) CALL ERR(8HP2MCF5 ,200) 05148000
+ CALL RIEMP(0.0,NFIN,A) 05149000
+C 05150000
+ WRITE(NP,9050)AINDX(35,I),AINDX(36,I) 05151000
+ 9050 FORMAT(1X,2A4, 05152000
+ 1 ' UNRESOLVED MULTI-GROUP CROSS SECTIONS GENERATED') 05153000
+ IF(NFLRIS.LE.0) WRITE(NP,9060) 05154000
+ 9060 FORMAT(10X,' ONLY POT. SCATT CROSS SECTION GENERATED') 05155000
+C 05156000
+ CALL UNRES(NTIN,INTERP,NTI,NO,NFLRIS,STMP,NOVRLP,TEMP,SIGBK, 05157000
+ 1ZA,AM,MAT,MF,MT,ZAI,ABUNDI,L1,IFIS,EL,EH,LRU,LRF,NIS, 05158000
+ 2N41,N27,TR,TI,TRS,TIS, 05159000
+ 3N150,A(NL1),A(NL2),A(NL3), 05160000
+ 4 A(NL22),A(NL23),A(NL24),A(NL25),A(NL26),A(NL27),A(NL28), 05161000
+ 5 A(NL19),A(NL20),A(NL9),A(NL10),A(NL11),A(NL12),A(NL13), 05162000
+ 6 A(NL7),A(NL14),A(NL15),A(NL16),A(NL17),A(NL8),A(NL21), 05163000
+ 7 A(NL6),A(NL18),A(NL5) ) 05164000
+ IF(NFLRIS.LE.0) GO TO 265 05165000
+C 05166000
+C CREO LO SCATTERING DI RISONANZA PER DIFFERENZA 05167000
+C TOTAL-CATT-FISS-COMPETITIVE 05168000
+ DO 20 J=1,N150 05169000
+ A(NL4+J-1)=A(NL3+J-1)-A(NL1+J-1)-A(NL2+J-1)-A(NL6+J-1) 05170000
+C 1 +A(NL5+J-1) 05171000
+C NON CI VA. LO SCATT POT (NON E' NELLA TOTAL) LO SOMMA P3. 05172000
+ 20 CONTINUE 05173000
+C 05174000
+C CALCOLO SIGMA ( INTEGRANDO) E SCRITTURA SUL FILE DI OUTPUT (SERIE 05175000
+C 05176000
+ 265 CALL INTUN(NFLRIS,INTERP,NTI,NTO,NTOUT,NMT,M2,NG,EUP,DELU,E, 05177000
+ 1NG1,A,MINDX1,AINDX(1,I),M1,MIX, 05178000
+ 2N150,A(NL7),A(NL1),TEMP ,MA-NL8,A(NL8)) 05179000
+C 05180000
+ GOTO100 05181000
+ 200 CONTINUE 05182000
+C 05183000
+C RESOLVED DA SOMMARE ALLE SMOOT NELLA PARTE 3 05184000
+C 05185000
+ IF(NMT.GT.0.AND.NMT.LE.M2.AND.MIX(8,NMT).LE.-5) GOTO100 05186000
+ NFLRIS=0 05187000
+ TEMP=OPZ(2,5,8) 05188000
+ IF(NMT.GT.M2) GO TO 455 05189000
+C SE LA SCHEDA MIX DEL MATERIALE NON ESISTE : 05190000
+ TEMPER=AREAL(MIX(15,NMT)) 05191000
+ IF(TEMPER.GT.0.) TEMP=TEMPER 05192000
+ NFLRIS=MIX(8,NMT) 05193000
+ IF(NFLRIS.NE.0) GO TO 456 05194000
+C 05195000
+C OPZIONE DI NON METTERE RISONANZE 05196000
+C OPZIONE DI MASSA 05197000
+ 455 IF(AINDX(5,I).LT.OPZ(2,5,5)) NFLRIS=10 05198000
+ 456 CONTINUE 05199000
+C DEFAULT TEMPERATURA=300. K 05200000
+ IF(TEMP.LE.0.) TEMP=300. 05201000
+C 05202000
+C FISSA ARGOMENTI PER SUBROUTINE RES (RESOLVED RESONANCES) 05203000
+C 05204000
+ NDOP=MIX(11,NMT) 05205000
+ EL=AINDX(14,I) 05206000
+ EH=AINDX(15,I) 05207000
+ LRF=AINDX(13,I) 05208000
+ NRIS=AINDX(38,I) 05209000
+C 05210000
+C DIMENSIONAMENTI (IT SHOULD BE NBACK=0, BUT VS FORTRAN DOESN'T 05211000
+C LIKE NEGETIVE DIMENSION IN DUMMY ARGUMENTS) 05212000
+ NBACK=1 05213000
+ NPK=7 + 6 05214000
+C +6 E' PER A.G. E PK PER ACCELERARE RES 05215000
+ IF(LRF.EQ.4) NPK=14 05216000
+ IF(LRF.EQ.4) NBACK=3 05217000
+C 05218000
+C 05219000
+C AVANTI STANNO ENERGIE : E 05220000
+C SIGMA UFG: SIG(NG+1) IN A(1) 05221000
+ NL1=NG+3 05222000
+C PARAMETRI RISONANZA PK(NPK,NRIS) 05223000
+ NL2=NL1+NRIS*NPK 05224000
+C BACKGROUND DI ADLER ADLER BACK(6,NBACK) 05225000
+ NL3=NL2+6*NBACK 05226000
+C SPAZIO AUSILIARIO PER E RISONANZA 05227000
+ NL4=NL3+NRIS+1 05228000
+C SPAZIO AUSILIARIO PER GAMMA RISONANZE 05229000
+ NL5=NL4+NRIS+1 05230000
+C 05231000
+C SPAZIO RIMASTO UTILIZZABILE PER PUNTI 05232000
+C DI INTERPOLAZIONE PUNTO(NPMX,3),PUNTO1(NPMX,2) 05233000
+ NPMX=(MA-NL5)/9 05234000
+C PUNTO(NPMX,5) 05235000
+ NL6=NL5+NPMX*5 05236000
+C PUNTO(NPMX,4) 05237000
+C 05238000
+ IF(NPMX.LE.0) CALL ERR(8HP2MCF5 ,100) 05239000
+C 05240000
+C 05241000
+ CALL RES(NTI,NTIN,NTO,NTOUT,NMT,NFLRIS,NDOP,TEMP, 05242000
+ 1 N41,N27,TR,TI,TRS,TIS, 05243000
+ 2 LRF,EH,EL,NG,E,A,NPK,NRIS,A(NL1), 05244000
+ 3 NBACK,A(NL2),NPMX,A(NL3),A(NL4),A(NL5),A(NL6), 05245000
+ 4 MINDX1,AINDX(1,I),M1,M2,MIX,MAT,MF,MT,EUP,DELU) 05246000
+C 05247000
+C 05248000
+ 100 CONTINUE 05249000
+ 10 CONTINUE 05250000
+ 5 CONTINUE 05251000
+ RETURN 05252000
+ END 05253000
+ SUBROUTINE SMOOT(NTI,NTIN,NTO,NTOUT,NMT,M2,EUP,DELU,TEMP, 05254000
+ 1NG,NG1,E,SIG,MA,N,MINDX1,AINDX,M1,MIX) 05255000
+C ******************************************************************05256000
+C 05257000
+C ULTRAFINE GROUP SMOOTH CROSS SECTIONS 05258000
+C FOR EACH MT A RECORD IS PRODUCED 05259000
+C 05260000
+C ******************************************************************05261000
+C 05262000
+ DIMENSION E(NG1) 05263000
+ DIMENSION SIG(NG),N(MA),AINDX(MINDX1),MIX(M1,M2) 05264000
+ COMMON /OPZIO/OPZ(4,8,10) 05265000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 05266000
+ 1 ,(NP12,NT(1,12)) 05267000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 05268000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 05269000
+ COMMON MAXA,AD( 1) 05270000
+ COMMON /DIMC/MMA,MIND1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 05271000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 05272000
+ COMMON /FILES/ NT(4,99) 05273000
+ COMMON /INDX1/AINDX1(40,200) 05274000
+ COMMON /DIM/ NMX,MIND,NMX2,IND2 05275000
+C 05276000
+ REAL*8 NOME(11) 05277000
+ DATA NOME/8HELASTIC ,8H FISSION ,8HCAPTURE ,8H N,P , 05278000
+ 1 8H N,D ,8H N,H3 ,8H N,HE3 ,8H N,ALFA , 05279000
+ 2 8H TOTAL ,8H N,2N ,8HANELAST / 05280000
+C 05281000
+C ESCLUDE L'ANELASTICA MT=3 05282000
+ IF(AINDX(3).EQ.3.) RETURN 05283000
+C 05284000
+ WRITE(NP12,7000) 05285000
+ 1 AINDX(35),AINDX(36),AINDX(1),AINDX(2),AINDX(3),TEMP 05286000
+ 7000 FORMAT(1X,2A4,' SMOOTHS: MAT:',F5.0,' MF:',F3.0,' MT:',F5.0, 05287000
+ 1 ' T=',E12.5) 05288000
+C 05289000
+C LETTURA DELL HEAD DEL MAT,MT 05290000
+ CALL RREC(1,NTI,3,TEMP) 05291000
+C CONTROLLO MAT,MF,MT 05292000
+ IF(MAT.NE.AINDX(1).OR.MF.NE.AINDX(2).OR.MT.NE.AINDX(3)) 05293000
+ 1 CALL ERR(8H SMOOT ,0) 05294000
+C LETTURA TAB1 05295000
+ CALL RREC(3,NTI,3,TEMP) 05296000
+ NT(4,NTIN)=NT(4,NTIN)+3+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 05297000
+C 05298000
+C 05299000
+C ====== CULLEN METHOD FOR DOPPLER BROADENEING OF TABULATED SIGMA05300000
+C 05301000
+C PER USARE IL METODO DI ALLARGAMENTO DOPLER DI CULLEN SI FA: 05302000
+C 1) USANDO N(MA) COME SPAZIO DI LAVORO SI CREA COPPIE E-SIGMA 05303000
+C CON LEGGE LINEARE - USANDO METODO TIPO RES CHE E'VELOCE NON 05304000
+C RIORDINANDO. 05305000
+C 2) SI CHIAMA IL PROGRAMMA DI CULLEN CHE ALLARGA DOPPLER LE E-SI05306000
+C 3) SI INTEGRA CON ROUTINE INTS1 05307000
+C 4) SI VA ALLA 200 (SCRITTURA) 05308000
+C 05309000
+ IF(OPZ(2,1,5).LE.0.) GO TO 150 05310000
+ PRECIS=OPZ(2,1,5) 05311000
+C SPAZI PER BROAD ROUTINE ETC 05312000
+ LKT=1 05313000
+C KT : TABULAZIONE TAB1 ESPANSA 05314000
+ LSS1=N2+LKT 05315000
+C NUM MAX PUNTI PER LINEARIZZAZIONE 05316000
+ LTNP=(MA-LSS1)/6 05317000
+C SPAZI 05318000
+ LEP=LSS1 05319000
+C EP - A 05320000
+ LSP=LEP+LTNP 05321000
+C SP - C 05322000
+ LEF=LSP+LTNP 05323000
+C EF 05324000
+ LSF=LEF+LTNP 05325000
+C SF 05326000
+ LKP=LSF+LTNP 05327000
+C KP - EA 05328000
+ LSA=LKP+LTNP 05329000
+C SA 05330000
+ LFIN=LSA+LTNP 05331000
+C 05332000
+ IF(LFIN.GT.MA) CALL ERR(8HSMOOTH ,150) 05333000
+C 05334000
+C ESPANDE TABULAZIONE DEL TAB1 05335000
+ CALL FILTB2(N1,N2,N(LKT),NBT,JNT) 05336000
+C LINEARIZZA 05337000
+ EDOWN=EUP*EXP(-NG*DELU) 05338000
+ NF=LTNP 05339000
+ CALL LINSI1(N2,AD(LX),AD(LY),N(LKT),NF,N(LEF),N(LSF), 05340000
+ 1 N(LEP),N(LSP),N(LKP),PRECIS,EUP,EDOWN) 05341000
+ WRITE(NP,1001) AINDX(35),AINDX(36),NF,TEMP 05342000
+ IF(STMP.LE.500) GO TO 148 05343000
+ WRITE(NO,1001) AINDX(35),AINDX(36),NF,TEMP 05344000
+ 1001 FORMAT(1X,2A4,' LINEAR INTERPOLATED CROSS SECTIONS. POINTS:', 05345000
+ 1 I7,' TEMPERATURE:',1PE11.2) 05346000
+ WRITE(NO,1002) (N(LEF-1+J),N(LSF-1+J),J=1,NF) 05347000
+ 1002 FORMAT(' ENERGY - SIGMA '/(1X,10E12.5)) 05348000
+ 148 CONTINUE 05349000
+C LINEAR DOPPLER BROADENING 05350000
+ AWR=AINDX(5) 05351000
+ DO 5 I=1,NF 05352000
+ 5 N(LKP+I-1)=N(LEF+I-1) 05353000
+C IN LEF LE ENERGIE ED ANCHE IN LKP=LEA 05354000
+C A BROAD VANNO PASSATE E CRESCENTI DOPO RIBALTO 05355000
+ CALL BROAD(NF,TEMP,AWR,N(LEF),N(LSF),N(LKP),N(LSA),N(LEP),N(LSP)) 05356000
+C INTEGRATES AT UFG ( INTERP LIN, PESO 1/E) 05357000
+C 05358000
+ CALL RIBA(NF,N(LSA)) 05359000
+ CALL RIBA(NF,N(LEF)) 05360000
+C 05361000
+ CALL RIEMP(0.0,NG,SIG) 05362000
+ NDUMMM=1 05363000
+ ANDUMM=1. 05364000
+ CALL INTS1(ANDUMM,NDUMMM,NG,E,SIG,NF,N(LEF),N(LSA)) 05365000
+ WRITE(NP,9010) AINDX(35),AINDX(36),TEMP,NF 05366000
+ 9010 FORMAT(' DOPPLER BRADENED TABULATED CROSS-SECTION, T=',1PE11.2, 05367000
+ 1 ' POINTS:',I10) 05368000
+ GO TO 200 05369000
+C 05370000
+C INTEGRAZIONE 05371000
+ 150 DO 10 I=1,NG 05372000
+ E2=E(I+1) 05373000
+ E1=E(I) 05374000
+C GRATE= SUBROUTINE INTEGRANTE ( IN RECS) DI SLAVE3 05375000
+ CALL GRATE(E2,E1,SIG(I)) 05376000
+ SIG(I)=SIG(I)/(E1-E2) 05377000
+ 10 CONTINUE 05378000
+C SCRITTURA 05379000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF05380000
+ 200 IF(NMT.GT.M2) GO TO 600 05381000
+ NOM=MIX(3,NMT) 05382000
+ NOM1=MIX(4,NMT) 05383000
+ NOM2=MIX(1,NMT) 05384000
+ NOM3=MIX(2,NMT) 05385000
+ GO TO 610 05386000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT05387000
+ 600 NOM=NAREAL(AINDX(35)) 05388000
+ NOM1=NAREAL(AINDX(36)) 05389000
+ NOM2=NAREAL(AINDX(35)) 05390000
+ NOM3=NAREAL(AINDX(36)) 05391000
+ 610 CONTINUE 05392000
+ CALL POSL(NTOUT) 05393000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 05394000
+C WRITE(NTO)NOM2,NOM3,MAT,MF,MT 05395000
+C PRIMO RECORD NOME( MAT,MF,MT NON SERVONO AD F5) 05396000
+ IF(OPZ(2,5,1).GT.100.) WRITE(NO,1000)NOM2,NOM3,MAT,MF,MT 05397000
+ 1000 FORMAT(' PART 2: MULTI GROUP CROSS SECTION PRODUCED:'/ 05398000
+ 1 1X,2A4,3I10) 05399000
+C CALCOLO FLAGS DI SPECIFICA REAZIONI PER L'INDICE E LA PARTE 3 05400000
+C 05401000
+ CALL SOGLM(0.0,NLAST,NG,SIG) 05402000
+ CALL SOGLM1(0.0,NFIRST,NG,SIG) 05403000
+ IF(NFIRST.GT.NLAST) CALL ERR(8HSMOOTH ,610) 05404000
+ IF(NLAST.LE.0) GO TO 500 05405000
+ REAZ=0. 05406000
+ REAZ1=1. 05407000
+ REAZ2=0. 05408000
+C ELASTICA 05409000
+ IF(MT.EQ.2) REAZ=1. 05410000
+C FISSION 05411000
+ IF(MT.EQ.18) REAZ=2. 05412000
+C N,GAMM-N,P-N,H3-N,HE3-N,ALFA 05413000
+ IF(MT.GE.102.AND.MT.LE.107) REAZ=MT-99 05414000
+C TOTAL 05415000
+ IF(MT.EQ.1) REAZ=9. 05416000
+C N,2N 05417000
+ IF(MT.EQ.16) REAZ=10. 05418000
+C ANEL 05419000
+ IF(MT.EQ.4) REAZ=11. 05420000
+C 05421000
+ NREAZ=REAZ 05422000
+C 05423000
+C WRITE(NTO)(N(J),J=1,14) 05424000
+ WRITE(NTO) (SIG(J),J=NFIRST,NLAST) 05425000
+ WRITE(NP,2001) NOM2,NOM3,MT,NOME(NREAZ),NFIRST,NLAST 05426000
+ 2001 FORMAT(1X,2A4,' REACTION :',I5,1X,A8,1X,' FIRST GROUP:',I5, 05427000
+ 1 ' LAST GROUP:', I5) 05428000
+C IN F5 E PREVISTO CHE I VALORI SIANO PRESENTI ANDANDO ALLE BASSE E05429000
+ IF(OPZ(2,5,1).LE.101) GO TO 100 05430000
+ WRITE(NO,2000)NOM2,NOM3, MT,NOME(NREAZ),NFIRST,NLAST 05431000
+ IF(OPZ(2,5,1).LE.105) GO TO 100 05432000
+ WRITE(NO,3000) (SIG(J),J=NFIRST,NLAST) 05433000
+ 2000 FORMAT(1X,2A4,' REACTION :',I5,2X,A8,20X,' FIRST GROUP:',I5, 05434000
+ 1 ' LAST GROUP:', I5) 05435000
+ 3000 FORMAT(1X,10E12.5) 05436000
+ 100 CONTINUE 05437000
+ IND2=IND2+1 05438000
+ IF(IND2.GT.MIND12)CALL ERR(8H SMOOT ,20) 05439000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 05440000
+ 1AINDX(4),AINDX(5),NOM,NOM1,NOM2,NOM3,0. 05441000
+ 2,5.,3.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(3,NTOUT)),1.,0.,0., 05442000
+ 3 FLOAT(NG),EUP,DELU, 05443000
+ 2 REAZ,FLOAT(NLAST),REAZ1,REAZ2, 0.,FLOAT(NFIRST),0.,AINDX(8),0., 05444000
+ 5 0.,0.,0.,0.,0.,0.,0.,0.,TEMP) 05445000
+C 05446000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 05447000
+ NT(3,NTOUT)=NT(4,NTOUT) 05448000
+C IL SEND RECORD(GIA CONTATO PRIMA PER NT(4,NTIN) ) 05449000
+ 500 CALL RREC(1,NTI,3,TEMP) 05450000
+C 05451000
+ RETURN 05452000
+ END 05453000
+ SUBROUTINE UNRES(NTIN,INTERP,INPP,NOUTT,NFLRIS,STMP,NOVRPP,TEMP, 05454000
+ 1SIGBK,ZA,AMMM,MATT,MF,MT,ZAI,ABUNDD,L1,IFISS,EL,EH,LRU,LRF,NIS, 05455000
+ 2N41,N27,TR,TI,TRS,TIS, 05456000
+ 3N150,SIGCAP,SIGFIS,SIGTOT,ZETA,PSIZRO,BETPSI,BBETA, 05457000
+ 4BVCTR,PVCTR,RVCTR,GAMTOT,GAMFIS,PSHFT0,PSHFT1,PSHFT2,V1,V2, 05458000
+ 5ES,GF,D,GG,GNO,DELTA,GAMCMP,SIGCMP,GX,SIGPOT ) 05459000
+C ************************************************************** 05460000
+C 05461000
+C MAIN ROUTINE OF THE UNRES PROGRAM BY TOPPEL.MODIFIED FOR TESEO. 05462000
+C THIS PROGRAM COMPUTES UNRESOLVED RESONANCE CROSS SECTIONS 05463000
+C BY MC2-2 ALGORITHMS 05464000
+C 05465000
+C *********************************************************** 05466000
+C 05467000
+C PROGRAM TO CALCULATE UNRESOLVED RESONANCE CROSS SECTIONS FROM 05468000
+C ENDF/B DATA. THIS PROGRAM IS BASED UPON THE UNRESOLVED RESONANCE 05469000
+C CALCULATION OF THE MCC-2 CODE AS PROGRAMMED BY B.J.TOPPEL. 05470000
+C THE PRESENT CODE PROVIDES A STANDALONE CAPABILITY WHICH READS 05471000
+C ENDF/B BCD CARD INPUT DIRECTLY. IT IS PROGRAMMED IN SUCH A WAY 05472000
+C THAT IT MAY BE EASILY INCORPORATED INTO LARGER PROGRAMS SUCH AS 05473000
+C THE SELF-SHIELDING FACTOR PROGRAMS ETOX OR MINX. IT SHOULD 05474000
+C ALSO PROVIDE ENDF/B DATA EVALUATORS WITH A BETTER TOOL THAN THE 05475000
+C CURRENT UR CODE OR MENDEL-BEER METHODS WHICH ARE RESTRICTED 05476000
+C TO INFINITE DILUTE CALCULATIONS. 05477000
+C 05478000
+C 05479000
+CIBM 05480000
+ DOUBLE PRECISION CAPTUR,FISION,TOTAL,COMPET,SCAPOT 05481000
+CIBM 05482000
+ COMMON /OUTPUT/ NOUT,INP 05483000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 05484000
+C COMMON/RATION/ ARG,PSIEZ 05485000
+ COMMON/INTEGL/ BETA,THETA,A,FJ,RHO,HH,TEST1,FJN,FJ2N,TERM2,FJT 05486000
+C COMMON/REAIMW/AX,WHY,REW,AIMW 05487000
+ COMMON /DRCUNR/ TEMPM,ABUNDI,AM,CMCOR,LSTI,JSTI,IFIS, 05488000
+ 1 NPORTR,NHERM,NHERM2,NOVRLP,MAT,NPT1,RPENTR, 05489000
+ 2 RPSHFT,NGUS13,NGUS9,WATE13,WATE9,SIGP 05490000
+ COMMON /UNRDAT/ ETA(5), 05491000
+ 1 AVGGM(5),AVGGM2(5),AVGTO(5),AVGTO2(5),AVGR2(5), 05492000
+ 2 VECTOR(5),AVGFS(5),AVGFS2(5),E1(10),E2(10), 05493000
+ 3 ANORM(10),A11(25),A12(25),D11(25),D12(25), 05494000
+ 4 AMATRX(25), 05495000
+ 8 JST(3),G(12),NDFN(12),NDFF(12), 05496000
+ A AVGCS(5),AVGCS2(5), 05497000
+ B NDFX(12) 05498000
+ DIMENSION SIGCAP(N150),SIGFIS(N150),SIGTOT(N150),ZETA(1000), 05499000
+ 1 PSIZRO(1000),BETPSI(1000),BBETA(4000),BVCTR(5000), 05500000
+ 2 PVCTR(5000),RVCTR(5000),GAMTOT(2000),GAMFIS(2000), 05501000
+ 3 PSHFT0(N150),PSHFT1(N150),PSHFT2(N150),V1(N150), 05502000
+ 4 V2(N150),ES(N150),GF(N150,12),D(N150,12),GG(N150,12), 05503000
+ 5 GNO(N150,12),DELTA(N150),GAMCMP(2000),SIGCMP(N150), 05504000
+ 6 GX(N150,12) 05505000
+ DIMENSION SIGPOT(N150) 05506000
+C 05507000
+ DATA CAPTUR/7HCAPTURE/,FISION/7HFISSION/, 05508000
+ 1 TOTAL/7H TOTAL /,COMPET/8HCOMPET. /,SCAPOT/8HPOT.SCAT/ 05509000
+C 05510000
+C 05511000
+ INP=INPP 05512000
+ NOUT=NOUTT 05513000
+ MAT=MATT 05514000
+ ABUNDI=ABUNDD 05515000
+ NOVRLP=NOVRPP 05516000
+ AM=AMMM 05517000
+ IFIS=IFISS 05518000
+C 05519000
+C SIMULAZIONE DEL LOOP SU ISOTOPI CHE QUI E STATO SOPPRESSO 05520000
+C VENGONO FISSATE LE VARIABILI CHE IL LOOP DEFINIVA 05521000
+ TEMPM=TEMP 05522000
+C IT=1 05523000
+C ISIG=1 05524000
+ SIGP=SIGBK 05525000
+C IS=1 05526000
+C 05527000
+C 05528000
+C IL RECORD HEAD INIZIALE STA IN ARGOMENTO 05529000
+ IF(NFLRIS.LE.0) GO TO 100 05530000
+C 05531000
+C SET CONSTANTS 05532000
+C 05533000
+C 10 POINT PORTER-THOMAS INTEGRATION. THE CHOICE OF 10 DETERMINES 05534000
+C THE DIMENSION OF X AND THE INITIALIZATION OF X IN SUBROUTINE 05535000
+C UNRINT 05536000
+C 05537000
+C 05538000
+C************************ 05539000
+ NPORTR=10 05540000
+C************************ 05541000
+C 05542000
+C 05543000
+C 10 POINT GAUSS-HERMITE INTEGRATION. THE CHOICE OF 10 DETERMINES 05544000
+C THE DIMENSIONS OF XGH, WGH, AND E3 AND THE INITIALIZATION OF XGH, 05545000
+C WGH, AND 53 IN SUBROUTINE UNRINT. NHERM2=NHERM/2 05546000
+C 05547000
+C 05548000
+C************************ 05549000
+ NHERM=10 05550000
+ NHERM2=5 05551000
+C************************ 05552000
+C 05553000
+C 05554000
+C 13 POINT GAUSS-JACOBI INTEGRATION. THE CHOICE OF 13 DETERMINES 05555000
+C THE DIMENSION OF ZLP AND THE INITIALIZATION OF ZLP IN SUBROUTINE 05556000
+C QUICKJ 05557000
+C 05558000
+C 05559000
+C************************ 05560000
+ NGUS13=13 05561000
+C************************ 05562000
+C 05563000
+C 05564000
+C WATE13=PI/13 05565000
+C 05566000
+C************************ 05567000
+ WATE13=0.2416609734 05568000
+C************************ 05569000
+C 05570000
+C 9 POINT GAUSS-JACOBI INTEGRATION. THE CHOICE OF 9 DETERMINES 05571000
+C THE DIMENSION OF ALP AND THE INITIALIZATION OF ALP IN SUBROUTINE 05572000
+C QUICKJ 05573000
+C 05574000
+C************************ 05575000
+ NGUS9=9 05576000
+C************************ 05577000
+C 05578000
+C WATE9=PI/9 05579000
+C 05580000
+C************************ 05581000
+ WATE9=0.349065850504 05582000
+C************************ 05583000
+C 05584000
+C 05585000
+C READS MATERIAL AND COMPUTES SIGPOT=POTENTIAL SCATTERING 05586000
+C USING ENDFB FORMULAE 05587000
+ 100 CALL INPUT(NTIN,INTERP,ZAI,L1,IFIS,EL,EH,LRU,LRF, 05588000
+ 3N150,SIGCAP,SIGFIS,SIGTOT,ZETA,PSIZRO,BETPSI,BBETA, 05589000
+ 4BVCTR,PVCTR,RVCTR,GAMTOT,GAMFIS,PSHFT0,PSHFT1,PSHFT2,V1,V2, 05590000
+ 5ES,GF,D,GG,GNO,DELTA,GAMCMP,SIGCMP,GX,SIGPOT ) 05591000
+C 05592000
+ IF(NFLRIS.LE.0) GO TO 200 05593000
+C 05594000
+C 05595000
+ CALL UNRINT(N41,N27,TR,TI,TRS,TIS, 05596000
+ 3N150,SIGCAP,SIGFIS,SIGTOT,ZETA,PSIZRO,BETPSI,BBETA, 05597000
+ 4BVCTR,PVCTR,RVCTR,GAMTOT,GAMFIS,PSHFT0,PSHFT1,PSHFT2,V1,V2, 05598000
+ 5ES,GF,D,GG,GNO,DELTA,GAMCMP,SIGCMP,GX,SIGPOT ) 05599000
+C 05600000
+C RIBALTA TUTTE LE UNRES PER AVERLE PER E DECRESCENTI 05601000
+ CALL RIBA(NPT1,SIGCAP) 05602000
+ CALL RIBA(NPT1,SIGFIS) 05603000
+ CALL RIBA(NPT1,SIGCMP) 05604000
+ CALL RIBA(NPT1,SIGTOT) 05605000
+ 200 CALL RIBA(NPT1,SIGPOT) 05606000
+ CALL RIBA(NPT1,ES) 05607000
+C 05608000
+C VENGONO CALCOLATE (EX /UNRDAT/) : SIGCAP(NPT1),SIGFIS(NPT1), 05609000
+C SIGTOT(NPT1) , SIGCMP(NPT1) 05610000
+ IF(STMP.LT.10) GO TO 400 05611000
+ WRITE (NOUT,1040) SIGP,TEMPM 05612000
+ WRITE (NOUT,1025) (I,ES(I),I=1,NPT1) 05613000
+ WRITE (NOUT,1050) SCAPOT,(I,SIGPOT(I),I=1,NPT1) 05614000
+ IF(NFLRIS.LE.0) GO TO 400 05615000
+ WRITE (NOUT,1050) CAPTUR,(I,SIGCAP(I),I=1,NPT1) 05616000
+ IF (IFIS.NE.0) WRITE (NOUT,1050) FISION,(I,SIGFIS(I),I=1,NPT1) 05617000
+ WRITE (NOUT,1050) TOTAL,(I,SIGTOT(I),I=1,NPT1) 05618000
+ WRITE (NOUT,1050) COMPET,(I,SIGCMP(I),I=1,NPT1) 05619000
+ 1000 FORMAT(12I6) 05620000
+ 1010 FORMAT(6E12.5) 05621000
+ 1020 FORMAT(A3) 05622000
+ 1025 FORMAT(' ENERGY POINTS :'/7(1H ,2X,I3,1P1E12.4)) 05623000
+ 1030 FORMAT(1H1,36X,14HISOTOPE NUMBER,I2,33H OF UNRESOLVED RESONANCE MA05624000
+ 1TERIAL,I6/1H ,36X,57H=============================================05625000
+ 2============/1H0,48X,34HUNRESOLVED RESONANCE ENERGY POINTS// 05626000
+ 37(1H ,2X,I3,1P1E12.4)) 05627000
+ 1040 FORMAT(1H0,43X,6HSIGP =,1P1E12.4,14H TEMPERATURE =,1P1E12.4/ 05628000
+ 11H ,43X,44(1H=)) 05629000
+ 1050 FORMAT(1H0,42X,21HUNRESOLVED RESONANCE ,A7,15H CROSS SECTIONS// 05630000
+ 17(1H ,2X,I3,1P1E12.4)) 05631000
+ 3000 FORMAT(2E11.4,4I11,I4,I2,I3) 05632000
+C 05633000
+ 400 RETURN 05634000
+ END 05635000
+ SUBROUTINE INPUT(NTIN,INTERP,ZAI,L1,IFISS,EL,EH,LRU,LRF, 05636000
+ 3N150,SIGCAP,SIGFIS,SIGTOT,ZETA,PSIZRO,BETPSI,DMM, 05637000
+ 4BVCTR,PVCTR,RVCTR,GAMTOT,GAMFIS,PSHFT0,PSHFT1,PSHFT2,V1,V2, 05638000
+ 5ES,GF,D,GG,GN0,DEL,GAMCMP,SIGCMP,GX,SIGPOT ) 05639000
+C ********************************************* 05640000
+C I DATI IN ARGOMENTO SONO I PRIMI 2 RECORDS CONT DI ENDFB CHE 05641000
+C NON VENGONO PIU LETTI IN QUESTA SUBROUTINE, MA IN QUELLA CHE 05642000
+C LA CHIAMA . CI SONO POI THE ARRAYS OF COMMON /UNRDAT/ NOW 05643000
+C PLACED IN ARGOMENTO ALLE SUBROUTINES 05644000
+C 05645000
+C HO INTRODOTTO IL CALCOLO DI SIGMA SCATTERING POTENZIALE CHE POI 05646000
+C IN UNRINT METTO IN SIGP. 05647000
+C QUI VIENE CALCOLATA UNA SIGP1: SEZIONE D'URTO GEOMETRICA= 05648000
+C 4 * PIGREC *(AP)**2 CHE POI NON VIENE USATA DA NESSUNA 05649000
+C PARTE POICHE IN /DRCUNR/ MANCA L'ULTIMO NOME SIGP 05650000
+C ( 8 - 85 - GALLI) 05651000
+C 05652000
+C 05653000
+C SUBROUTINE INPUT READS THE BCD INPUT DATA DESCRIBING THE 05654000
+C UNRESOLVED RESONANCE PARAMETERS. THE INPUT FORMAT IS CONSISTENT 05655000
+C WITH ENDF/B SPECIFICATIONS. THIS SUBROUTINE IS BASED UPON CODE 05656000
+C WRITTEN BY C.G. STENBERG FOR THE PROGRAM ETOE-2. 05657000
+C 05658000
+C 05659000
+C SUBPROGRAMS CALLED BY SUBROUTINE INPUT 05660000
+C 05661000
+C ALOG FORTRAN LOGARITHMIC FUNCTION 05662000
+C ATAN FORTRAN ARC TANGENT FUNCTION (SINGLE PRECISION) 05663000
+C SQRT FORTRAN SQUARE ROOT FUNCTION (SINGLE PRECISION) 05664000
+C 05665000
+C COMMON BLOCK IS DIMENSIONED FOR 150 ENERGY POINTS, 05666000
+C 3 L STATES, 12 SEQUENCES (SUM OVER J FOR ALL L STATES) 05667000
+C 05668000
+C COMMON /UNRDAT/ SIGCAP(150),SIGFIS(150),SIGTOT(150),ETA(5), 05669000
+C 1 AVGGM(5),AVGGM2(5),AVGTO(5),AVGTO2(5),AVGR2(5), 05670000
+C 2 VECTOR(5),AVGFS(5),AVGFS2(5),E1(10),E2(10), 05671000
+C 3 ANORM(10),A11(25),A12(25),D11(25),D12(25), 05672000
+C 4 AMATRX(25),ZETA(1000),PSIZRO(1000),BETPSI(1000), 05673000
+C 5 DMM(4000),BVCTR(5000),PVCTR(5000),RVCTR(5000), 05674000
+C 6 GAMTOT(2000),GAMFIS(2000),PSHFT0(150),PSHFT1(150),05675000
+C 7 PSHFT2(150),V1(150),V2(150),ES(150), 05676000
+C 8 JST(3),G(12),NDFN(12),NDFF(12),GF(150,12), 05677000
+C 9 D(150,12),GG(150,12),GN0(150,12),DEL(150), 05678000
+C A GAMCMP(2000),SIGCMP(150),AVGCS(5),AVGCS2(5), 05679000
+C B NDFX(12),GX(150,12) 05680000
+ COMMON /UNRDAT/ ETA(5), 05681000
+ 1 AVGGM(5),AVGGM2(5),AVGTO(5),AVGTO2(5),AVGR2(5), 05682000
+ 2 VECTOR(5),AVGFS(5),AVGFS2(5),E1(10),E2(10), 05683000
+ 3 ANORM(10),A11(25),A12(25),D11(25),D12(25), 05684000
+ 4 AMATRX(25), 05685000
+ 8 JST(3),G(12),NDFN(12),NDFF(12), 05686000
+ A AVGCS(5),AVGCS2(5), 05687000
+ B NDFX(12) 05688000
+ DIMENSION SIGCAP(N150),SIGFIS(N150),SIGTOT(N150),ZETA(1000), 05689000
+ 1 PSIZRO(1000),BETPSI(1000),DMM(4000),BVCTR(5000), 05690000
+ 2 PVCTR(5000),RVCTR(5000),GAMTOT(2000),GAMFIS(2000), 05691000
+ 3 PSHFT0(N150),PSHFT1(N150),PSHFT2(N150),V1(N150), 05692000
+ 4 V2(N150),ES(N150),GF(N150,12),D(N150,12),GG(N150,12), 05693000
+ 5 GN0(N150,12),DEL(N150),GAMCMP(2000),SIGCMP(N150), 05694000
+ 6 GX(N150,12) 05695000
+ DIMENSION SIGPOT(N150) 05696000
+C 05697000
+ COMMON /DRCUNR/ TEMPM,ABUNDI,AM,CMCOR,LSTI,JSTI,IFIS, 05698000
+ 1 NPORTR,NHERM,NHERM2,NOVRLP,MAT,NPT1,RPENTR, 05699000
+ 2 RPSHFT,NGUS13,NGUS9,WATE13,WATE9 05700000
+ COMMON /OUTPUT/ NOUT,INP 05701000
+C 05702000
+ COMMON/FILES/NT(4,99) 05703000
+ COMMON/OPZIO/OPZ(4,8,10) 05704000
+C 05705000
+C INTERPOLATION PARAMETER OF ENDFB ( DEFAULT IS LINEAR=2) 05706000
+C INTERP=2=OPZ(2,3,9) FISSATO IN P2MCF5 05707000
+C THIS PARAMETER IS NOT READ IN THIS ROUTINE 05708000
+C 05709000
+C NUMBER OF UNRESOLVED ENERGY POINTS WHEN ALL ENERGY INDEPENDENT 05710000
+C PARAMETERS ARE GIVEN 05711000
+C 05712000
+ LNEUU=OPZ(2,3,2) 05713000
+ IF(LNEUU.LE.0) LNEUU=15 05714000
+C ETOE-II ED UNRES USANO SOLO 15 PUNTI 05715000
+C 05716000
+C ISOTOPE CONTROL RECORD 05717000
+C 05718000
+C NON VENGONO LETTI PIU QUESTI, MA SONO DATI IN ARGOMENTO 05719000
+C READ (INP,3000) ZAI,ABUNDI,L1,IFIS 05720000
+C READ (INP,3000) EL,EH,LRU,LRF 05721000
+C 05722000
+C THE L-STATES AND J-STATES ARE COMBINED INTO SEQUENCES-ISQ 05723000
+C 05724000
+ ISQ=0 05725000
+ IF (LRF.EQ.2) GO TO 255 05726000
+ IF (IFIS.NE.0) GO TO 250 05727000
+C 05728000
+C ISOTOPE IS NON-FISSIONABLE. ALL ENERGY INDEPENDENT PARAMETERS. 05729000
+C LRU=2,LRF=1,AND LFW=0 05730000
+C 05731000
+ READ(INP,3000)SPI,A,LIS,L2,N1 05732000
+ NT(4,NTIN)=NT(4,NTIN)+1 05733000
+ LSTI=N1 05734000
+C SIGP1=12.56637062*A*A*ABUNDI 05735000
+ IF(N1.LE.0)GOTO245 05736000
+ DO 345 IL=1,N1 05737000
+ READ (INP,3000) AWRI,DUM2,L,L2,N2,JST(IL),MAT,MF,MT, 05738000
+ 1 (DMM(I),I=1,N2) 05739000
+ NT(4,NTIN)=NT(4,NTIN)+1+JST(IL) 05740000
+ INTERP=1 05741000
+ IF(N2.LE.0)GOTO245 05742000
+ DO 344 I=1,N2,6 05743000
+ ISQ=ISQ+1 05744000
+ G(ISQ)=(DMM(I+1)+.5)/(2.*SPI+1.) 05745000
+ NDFN(ISQ)=DMM(I+2) 05746000
+ NDFF(ISQ)=1 05747000
+ NDFX(ISQ)=0 05748000
+ DO 244 IX=1,LNEUU 05749000
+ GF(IX,ISQ)=0. 05750000
+ GX(IX,ISQ)=0. 05751000
+ D(IX,ISQ)=DMM(I) 05752000
+ GG(IX,ISQ)=DMM(I+4) 05753000
+ GN0(IX,ISQ)=DMM(I+3) 05754000
+ 244 CONTINUE 05755000
+ 344 CONTINUE 05756000
+ 345 CONTINUE 05757000
+ 245 CONTINUE 05758000
+ RPENTR=2.196771E-4*AWRI/(AWRI+1.)*(1.23*(AWRI)**(1./3.)+0.8) 05759000
+ RPSHFT=2.196771E-3*AWRI/(AWRI+1.)*A 05760000
+ NPT1=LNEUU 05761000
+ IF (NPT1.EQ.0) NPT1=15 05762000
+C 05763000
+C CALCULATE ENERGIES USING EQUAL LETHARGYS. 05764000
+C 05765000
+ DE=LNEUU-1 05766000
+ DE=ALOG(EH/EL)/DE 05767000
+ DE=EXP(DE) 05768000
+ ES(1)=EL 05769000
+ LNEU1=LNEUU-1 05770000
+ DO 248 I=2,LNEU1 05771000
+ ES(I)=ES(I-1)*DE 05772000
+ 248 CONTINUE 05773000
+ ES(LNEUU)=EH 05774000
+ DO 249 IX=1,LNEUU 05775000
+ DEL(IX)=SQRT(ES(IX)*3.44672E-4/AWRI) 05776000
+ 249 CONTINUE 05777000
+ GO TO 260 05778000
+C 05779000
+C UNRESOLVED DATA IN FISSIONABLE FORM. FISSION WIDTHS GIVEN. 05780000
+C LRU=2,LRF=1,AND LFW=1 05781000
+C 05782000
+ 250 CONTINUE 05783000
+ READ(INP,3000)SPI,A,LIS,L2,N1,N2,MAT,MF,MT,(DMM(I),I=1,N1) 05784000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/6+NREST(N1,6) 05785000
+ INTERP=1 05786000
+ DO 251 I=1,N1 05787000
+ ES(I)=DMM(I) 05788000
+ 251 CONTINUE 05789000
+ NPT1=N1 05790000
+ LSTI=N2 05791000
+C SIGP1=12.56637062*A*A*ABUNDI 05792000
+ IF(N2.LE.0)GO TO 254 05793000
+ DO 253 IL=1,N2 05794000
+ READ(INP,3000)AWRI,DUM2,L,L2,N3 05795000
+ NT(4,NTIN)=NT(4,NTIN)+1 05796000
+ JST(IL)=N3 05797000
+ DO 352 IJ=1,N3 05798000
+ ISQ=ISQ+1 05799000
+ READ(INP,3000)DUM1,DUM2,L1,NDFF(ISQ),NDUM,NDUM,MAT,MF,MT, 05800000
+ 1DUM3,AJ,DUM5,DUM6,DUM7,DUM8,(DMM(I),I=1,N1) 05801000
+ NT(4,NTIN)=NT(4,NTIN)+2+N1/6+NREST(N1,6) 05802000
+ NDFN(ISQ)=DUM5 05803000
+ NDFX(ISQ)=0 05804000
+ G(ISQ)=(AJ+.5)/(2.*SPI+1.) 05805000
+ DO 252 I=1,N1 05806000
+ GF(I,ISQ)=DMM(I) 05807000
+ GX(I,ISQ)=0. 05808000
+ D(I,ISQ)=DUM3 05809000
+ GG(I,ISQ)=DUM7 05810000
+ GN0(I,ISQ)=DUM6 05811000
+ DEL(I)=SQRT(ES(I)*3.44672E-4/AWRI) 05812000
+ 252 CONTINUE 05813000
+ 352 CONTINUE 05814000
+ 253 CONTINUE 05815000
+ 254 CONTINUE 05816000
+ RPENTR=2.196771E-4*AWRI/(AWRI+1.)*(1.23*(AWRI)**(1./3.)+0.8) 05817000
+ RPSHFT=2.196771E-3*AWRI/(AWRI+1.)*A 05818000
+ GO TO 260 05819000
+C 05820000
+C UNRESOLVED DATA WITH ALL ENERGY-DEPENDENT PARAMETERS 05821000
+C LRU=2,LRF=2,LFW=0 OR 1 05822000
+C 05823000
+ 255 CONTINUE 05824000
+ READ(INP,3000)SPI,A,LIS,L2,N1,N2 05825000
+ NT(4,NTIN)=NT(4,NTIN)+1 05826000
+ LSTI=N1 05827000
+C SIGP1=12.56637062*A*A*ABUNDI 05828000
+ DO 259 IL=1,N1 05829000
+ READ(INP,3000)AWRI,DUM2,L,L2,N3,N4 05830000
+ NT(4,NTIN)=NT(4,NTIN)+1 05831000
+ JST(IL)=N3 05832000
+ DO 258 IJ=1,N3 05833000
+ ISQ=ISQ+1 05834000
+ READ(INP,3000)AJ,DUM2,L1,L2,N5,NPT1,MAT,MF,MT,(DMM(I),I=1,N5) 05835000
+ NT(4,NTIN)=NT(4,NTIN)+1+N5/6+NREST(N5,6) 05836000
+C 05837000
+C SET INTEPOLATION PARAMETER FOR INTS ROUTINE ( SI PRENDE LA LEGGE 05838000
+C PIU COMPLICATA) 05839000
+ IF(L1.GT.INTERP) INTERP=L1 05840000
+C 05841000
+ NDFX(ISQ)=DMM(3) 05842000
+ NDFN(ISQ)=DMM(4) 05843000
+ NDFF(ISQ)=DMM(6) 05844000
+ G(ISQ)=(AJ+.5)/(2.*SPI+1.) 05845000
+ IE=1 05846000
+ DO 256 I=7,N5,6 05847000
+C 05848000
+C IT IS ASSUMED THAT THE SAME ENERGIES ARE USED FOR ALL SEQUENCES 05849000
+C 05850000
+ ES(IE)=DMM(I) 05851000
+ DEL(IE)=SQRT(ES(IE)*3.44672E-4/AWRI) 05852000
+ D(IE,ISQ)=DMM(I+1) 05853000
+ GX(IE,ISQ)=DMM(I+2) 05854000
+ GN0(IE,ISQ)=DMM(I+3) 05855000
+ GG(IE,ISQ)=DMM(I+4) 05856000
+ GF(IE,ISQ)=DMM(I+5) 05857000
+ IE=IE+1 05858000
+ 256 CONTINUE 05859000
+ 258 CONTINUE 05860000
+ 259 CONTINUE 05861000
+ RPENTR=2.196771E-4*AWRI/(AWRI+1.)*(1.23*(AWRI)**(1./3.)+0.8) 05862000
+ RPSHFT=2.196771E-3*AWRI/(AWRI+1.)*A 05863000
+ 260 CONTINUE 05864000
+C 05865000
+C CALCULATE THE CENTER OF MASS CORRECTION FACTOR FOR USE IN 05866000
+C SIGMA 0 05867000
+C 05868000
+ CMCOR=(AM+1.0)*(AM+1.0)/(AM*AM) 05869000
+C ?????????? NON DOVREBBE ESSERE AWRI INVECE DI AM ????? 05870000
+C AD OGNI MODO LA DIFFERENZA E' PICCOLA 05871000
+C 05872000
+C 05873000
+C CALCULATE DELTA SUB 0, DELTA SUB 1, AND DELTA SUB 2, THE 05874000
+C L=0,1, AND 2 PHASE SHIFTS 05875000
+C 05876000
+C CALCOLO DI K (NUMERO D'ONDA) 05877000
+ CAPPA2=(2.196771E-3*AWRI/(AWRI+1))**2 05878000
+C 05879000
+ DO 300 N=1,NPT1 05880000
+C RPENTR E' IL RHO NELLE NOTAZIONI DEL MANUALE DI ENDFB 05881000
+C RPSHFT IL RHO SOPRASSEGNATO 05882000
+C PSHFT0-1-2 IL FHI 05883000
+C V1-2 I V (PAGINA D.19 DEL MANUALE DI ENDFB-V) 05884000
+ RPENT1=RPENTR*SQRT(ES(N)) 05885000
+ RPSHF1=RPSHFT*SQRT(ES(N)) 05886000
+ PSHFT0(N)=RPSHF1 05887000
+ X=RPSHF1 05888000
+ PSHFT1(N)=X-ATAN(X) 05889000
+ X2=3.0*X/(3.0-X*X) 05890000
+ PSHFT2(N)=X-ATAN(X2) 05891000
+C 05892000
+C CALCULATE THE L=1 AND L=2 PENETRATION FACTORS 05893000
+C 05894000
+ X=RPENT1*RPENT1 05895000
+ V1(N)=X/(1.0+X) 05896000
+ V2(N)=X*X/(9.0+X*(3.0+X)) 05897000
+C CALCOLO DELLA SEZIONE D'URTO POTENZIALE DI SCATTERING 05898000
+C LE FORMULE SONO QUELLE DEL MANUALE DI ENDFB-V 05899000
+ SIGPOT(N)=12.5663706/CAPPA2/ES(N)* 05900000
+ 1 (SIN(PSHFT0(N))**2 + 05901000
+ 2 3*SIN(PSHFT1(N))**2 + 5*SIN(PSHFT2(N))**2 ) 05902000
+ 300 CONTINUE 05903000
+C 05904000
+C DETERMINE SUM OVER ALL L OF JST(L) 05905000
+C 05906000
+ JSTI=0 05907000
+ DO 310 L=1,LSTI 05908000
+ JSTI=JSTI+JST(L) 05909000
+ 310 CONTINUE 05910000
+ 3000 FORMAT(2E11.4,4I11,I4,I2,I3/(6E11.4)) 05911000
+ RETURN 05912000
+ END 05913000
+ SUBROUTINE INTUN(NFLRIS,INTERP,NTI,NTO,NTOUT,NMT,M2,NG,EUP,DELU,E,05914000
+ 1MA,SIG,MINDX1,AINDX,M1,MIX,N150,ES,SIGU,T ,MAA,A) 05915000
+C ******************************************************************05916000
+C 05917000
+C ULTRAFINE GROUP RESONANCE CROSS SECTIONS COMPUTED FROM CROSS 05918000
+C SECTIONS COMPUTED AT E* POINTS BY UNRES IN COMMON /UNRDAT/ 05919000
+C 05920000
+C ******************************************************************05921000
+C 05922000
+C LE SIGU CONTENGONO : CATTURA,FISSIONE,TOTAL,SCATTERING 05923000
+C (OTTENUTO DA TOTAL-FISSIONE-CATTURA), LO SCATTERING POTENZIALE 05924000
+C 05925000
+ DIMENSION E(NG),SIG(MA),AINDX(MINDX1),MIX(M1,M2),A(MAA) 05926000
+ DIMENSION ES(N150),SIGU(N150,5) 05927000
+ DIMENSION N(14) 05928000
+C 05929000
+ REAL*8 NOME(5) 05930000
+ DATA NOME/8HCAPTURE ,8HFISSION ,8HTOTAL ,8HSCATTER ,8HPOT.SCAT/05931000
+C 05932000
+ COMMON/FILES/NT(4,99) 05933000
+ EQUIVALENCE(NO,NT(1,6)),(PESO,OPZ(2,3,10)),(NP,NT(1,11)) 05934000
+ COMMON /OPZIO/OPZ(4,8,10) 05935000
+ EQUIVALENCE (OPZ(2,5,1),STMP) 05936000
+ COMMON /DIM/NMX,MIND,MNX2,IND2 05937000
+ COMMON /DIMC/MDUMD(15),MIND11,MIND12 05938000
+ COMMON/INDX1/AINDX1(40,200) 05939000
+ IF(NG.GT.MA) CALL ERR(8H INTUN , 0) 05940000
+C 05941000
+ N1=1 05942000
+ IF(NFLRIS.LE.0) N1=5 05943000
+ N2=5 05944000
+C 05945000
+C LOOP SU CATT,FISS,TOT,SCATT,SCATT POT 05946000
+ DO 10 I=N1,N2 05947000
+C 05948000
+C INTEGRAZIONE SIGMA UNRES DA ES A GRUPPI ULTRAFINI 05949000
+C LEGGE DI INTERPOLAZIONE : LIN,S-LOG E, LOG-LOG DEFINED BY INTERP 05950000
+C OPZIONE DI ANDAMENTO FLUSSO : 1/E 05951000
+C 05952000
+C 05953000
+C NOTE ON CULLEN METHOD INSERTION 05954000
+C PER INSERIRE QUI LE METODOLOGIE DI CULLEN SI FA: 05955000
+C 1) SI LINEARIZZA LA TABULAZIONE E-SIGMA 05956000
+C 2) SI ALLARGA DOPPLER CON IL PROGRAMMA DI GABRIELE 05957000
+C 3) SI VA AVANTI CHE SOTTO INTS1 INTEGRA ( A 100 ) 05958000
+C 4) SI FA CORRERE UNRES SENZA ALLARGARE (T=0) 05959000
+C 05960000
+ IF(OPZ(2,1,6).LE.0) GO TO 150 05961000
+ PRECIS=OPZ(2,1,6) 05962000
+C SPAZI 05963000
+ LKT=1 05964000
+C KT ESPANSO 05965000
+ LSS1=LKT+N150 05966000
+ LTNP=(MAA-LSS1)/6 05967000
+ LEP=LSS1 05968000
+C EP - A 05969000
+ LSP=LEP+LTNP 05970000
+C SP - C 05971000
+ LEF=LSP+LNTP 05972000
+C EF 05973000
+ LSF=LSP+LNTP 05974000
+C SF 05975000
+ LKP=LSF+LNTP 05976000
+C KP - EA 05977000
+ LSA=LKP+LNTP 05978000
+C SA 05979000
+ LFIN=LSA+LNTP 05980000
+C 05981000
+ IF(LFIN.GT.MAA) CALL ERR(8HINTUN ,150) 05982000
+ DO 20 IJ=1,N150 05983000
+ A(IJ)=AREAL(INTERP) 05984000
+ 20 CONTINUE 05985000
+ EINFER=EUP*EXP(-(NG+1)*DELU) 05986000
+ CALL LINSI1(N150,ES,SIGU(1,I),A(LKT),LNTP,A(LEF),A(LSF),A(LEP), 05987000
+ 1 A(LSP),A(LKP),PRECIS,EINFER,EUP+100.) 05988000
+ AWR=AINDX(5) 05989000
+ NF=LNTP 05990000
+ CALL BROAD(NF,TEMP,AWR,A(LEF),A(LSF),A(LKP), 05991000
+ 1 A(LSA),A(LEP),A(LSP) ) 05992000
+C INTEGRA A 2000 PUNTI 05993000
+ CALL RIEMP(0.0,NG,SIG) 05994000
+ CALL INTS1(PESO,INTERP,NG,E,SIG,NF,A(LEF),A(LSA)) 05995000
+ GO TO 200 05996000
+C 05997000
+ 150 CALL RIEMP(0.0,NG,SIG) 05998000
+C 05999000
+ CALL INTS1(PESO,INTERP,NG,E,SIG,N150,ES,SIGU(1,I)) 06000000
+C 06001000
+C SCRITTURA SU TAPES 06002000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF06003000
+ 200 IF(NMT.GT.M2) GO TO 600 06004000
+ NOM=MIX(3,NMT) 06005000
+ NOM1=MIX(4,NMT) 06006000
+ NOM2=MIX(1,NMT) 06007000
+ NOM3=MIX(2,NMT) 06008000
+ GO TO 610 06009000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT06010000
+ 600 NOM=NAREAL(AINDX(35)) 06011000
+ NOM1=NAREAL(AINDX(36)) 06012000
+ NOM2=NAREAL(AINDX(35)) 06013000
+ NOM3=NAREAL(AINDX(36)) 06014000
+ 610 CONTINUE 06015000
+ CALL POSL(NTOUT) 06016000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 06017000
+C LE RISONANZE HANNO SOLO MT=151 06018000
+C WRITE(NTO) NOM2,NOM3,MAT,MF,MT 06019000
+C FLAGS DEL TIPO DI REAZIONE : 06020000
+ REAZ=0. 06021000
+ IF(I.EQ.1) REAZ=3. 06022000
+ IF(I.EQ.2) REAZ=2. 06023000
+ IF(I.EQ.3) REAZ=5. 06024000
+ IF(I.EQ.4) REAZ=1. 06025000
+ IF(I.EQ.5) REAZ=4. 06026000
+ CALL SOGLM(0.0,NLAST,NG,SIG) 06027000
+ CALL SOGLM1(0.0,NFIRST,NG,SIG) 06028000
+ IF(NLAST.LT.NFIRST) CALL ERR(8HINTUN ,610) 06029000
+ IF(NLAST.LE.0) GO TO 10 06030000
+C 06031000
+C WRITE(NTO)(N(J),J=1,14) 06032000
+ WRITE(NTO)(SIG (J),J=NFIRST,NLAST) 06033000
+C 06034000
+ IF(STMP.GT.100.)WRITE(NO,1000) NOM2,NOM3 06035000
+ 1000 FORMAT(' PART 2: UNRESOLVED RESONANCE MULTIGROUP ', 06036000
+ 1'CROSS SECTION PRODUCED:'/ 06037000
+ 2 1X,2A4,3I10) 06038000
+ IF(STMP.GT.100.) 06039000
+ 1 WRITE(NO,2000) NOM2,NOM3,NOME(I),NFIRST,NLAST,T 06040000
+ WRITE(NP,2001) NOM2,NOM3,NOME(I),NFIRST,NLAST,T 06041000
+ 2000 FORMAT(1X,2A4,' REACTION: ',A8,5X, 06042000
+ 1 'FIRST GROUP:',I5,' LAST GROUP:',I5,' TEMPERATURE:',E12.5)06043000
+ 2001 FORMAT(1X,2A4,' REACTION:',A8,5X, 06044000
+ 1 'FIRST GROUP:',I4,' LAST GROUP:',I4,' TEMPER:',F5.0) 06045000
+ IF(STMP.GT.100) WRITE(NO,3000) (SIG(J),J=NFIRST,NLAST) 06046000
+ 3000 FORMAT(1X,10E12.5) 06047000
+C 06048000
+ IND2=IND2+1 06049000
+ IF(IND2.GT.MIND12) CALL ERR(8H INTUN ,10) 06050000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 06051000
+ 1AINDX(4),AINDX(5),NOM,NOM1,NOM2,NOM3,AINDX(6), 06052000
+ 25.,3.,1.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(3,NTOUT)),1.,0.,0., 06053000
+ 3FLOAT(NG),EUP,DELU,0.,FLOAT(NLAST),2.,REAZ,0.,FLOAT(NFIRST),0., 06054000
+ 60.,AINDX(14),AINDX(15),0.,0.,AINDX(28),AINDX(9),AINDX(5),0.,0.,T) 06055000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 06056000
+ NT(3,NTOUT)=NT(4,NTOUT) 06057000
+ 10 CONTINUE 06058000
+ RETURN 06059000
+ END 06060000
+ SUBROUTINE RES(NTI,NTIN,NTO,NTOUT,NMT,NFLRIS,NDOP,TEMP, 06061000
+ 1 N41,N27,TR,TI,TRS,TIS, 06062000
+ 2 LRF,EH,EL,NG,E,SIG, 06063000
+ 3 NPK,NRIS,PK,NBACK,BACK,NPMX,ERIS,GAM,PUNTO,PUNTO1, 06064000
+ 4 MINDX1,AINDX,M1,M2,MIX,MAT,MF,MT,EUP,DELU) 06065000
+C *****************************************************************06066000
+C RESOLVED RESONANCE CROSS SECTION COMPUTED FROM RESONANCE PARAMETER06067000
+C 06068000
+C == ALLO SCATTERING SI DEVE SOMMARE LO SCATTERING POTENZIALE.. 06069000
+C NON VIENE GENERATA UNA TOTAL . SE LA GENERARE POI LA 06070000
+C PARTE TERZA SOMMANDO I CONTRIBUTI==== 06071000
+C 06072000
+C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! AA NOT JET IMPLEMENTED !!!! 06073000
+C USA PER LE RISONANZE LE FORMULE DEL MANUALE DI ENDFB 06074000
+C INTERPOLA LE SEZIONI D'URTO FINO A POTERLE RAPPRESENTARE 06075000
+C CON APPROSSIMAZIONE LINEARE . POI INTEGRA LA FUNZIONE LINEARE 06076000
+C CON PESO (FLUSSO) 1/E . 06077000
+C 06078000
+C DI QUESTO GRUPPO DI ROUTINES FANNO PARTE: 06079000
+C SUBROUTINE ORDED : PER ORDINARE LE RISONANZE PER ENERGIA 06080000
+C SUBROUTINE INTS1 : INTEGRAZIONE A GRUPPI DI UNA TABULAZIONE 06081000
+C SUBROUTINE SIGR : FORMULE DELLE SEZIONI D'URTO ALLARGATE DOPLE06082000
+C FUNCTION FIL : CALCOLO ANGOLO DI FASE DI FORMULE DELLE SIGM06083000
+C SUBROUTINE GEDEP : CALCOLO GN ED ER DIP DA E IN FORM. DELLE SIG06084000
+C SUBROUTINE QUICKW: PARTE REALE ED IMM DI FUNZ W PER FUNZ DOPPLE06085000
+C 06086000
+C LE VARIABILI DI QUESTA ROUTINE SONO: 06087000
+C PK(NPK,NRIS)=PAR DI RIS: PER BW: L,ER,AJ,GT,GN,GG,GF 06088000
+C IN PIU PK A.G. PER BWML (OPPURE VUOTI): +G,H 06089000
+C IN PIU PER ACCELERARE PK CALCOLATI IN RES: 06090000
+C ROE*SQRT(ER) , ZETA=GT/DELTR , DELTR 06091000
+C PUNTO(NPMX,5)=PUNTO INTERPOLATO: E ,PUNTO PREC A DX, 06092000
+C SIGMA CATT,FISS,SCATT ) 06093000
+C PUNTO1(NPMX,4)= PUNTI ORDINATI : ENERGIA, SIGMA CATT,FISS 06094000
+C SCATT ) 06095000
+C (LO SCATTERING POTENZIALE VA SOVRAPPOSTO 06096000
+C ALLO SCATTERING DI RISONANZA ) 06097000
+C 06098000
+C BACK(6,NBACK) = BACKGROUND DI ADLER-ADLER 06099000
+C E(NG) = ENERGIE ESTREMO SUPERIORE GRUPPI ULTRAFINI 06100000
+C SIG(NG)= SIGMA CALCOLATE A GRUPPI ULTRAFINI 06101000
+C ERIS(NRIS),GAM(NRIS)=ERIS E GAM PER ROUTINE LINSIG 06102000
+C *****************************************************************06103000
+C 06104000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 06105000
+ DIMENSION E(NG),SIG(NG),PK(NPK,NRIS),BACK(6,NBACK),PUNTO(NPMX,5) 06106000
+ DIMENSION AINDX(MINDX1),MIX(M1,M2), PUNTO1(NPMX,4) 06107000
+ DIMENSION ERIS(NRIS),GAM(NRIS) 06108000
+ COMMON/DIM/NMX,MIND,MNX2,IND2 06109000
+ COMMON/DIMC/MDIMD(15),MIND11,MIND12 06110000
+ COMMON/INDX1/AINDX1(40,200) 06111000
+ COMMON /OPZIO/OPZ(4,8,10) 06112000
+ COMMON/FILES/NT(4,99) 06113000
+ EQUIVALENCE(OPZ(2,5,9),PRECIS),(OPZ(2,5,1),STMP) 06114000
+ EQUIVALENCE(OPZ(2,4,6),ADLRGS) 06115000
+ EQUIVALENCE (NO,NT(1,6)),(NPP,NT(1,11)) 06116000
+C 06117000
+ REAL*8 NOME(4) 06118000
+ DATA NOME/8HCAPTURE ,8HFISSION ,8HSCATTER ,8HPOT.SCAT / 06119000
+C 06120000
+ NFLGOU=0 06121000
+C NFLGOU FLAGS NO RESONANCES IN ENERGY RANGE 06122000
+C INTERP=OPZ(2,1,10) 06123000
+C IF(INTERP.LE.0) INTERP=1 06124000
+ INTERP=1 06125000
+C LINEAR INTERPOLATION IS FORCED BEING LINEAR INTERPOLABLE THE 06126000
+C COMPUTED CROSS SECTIONS 06127000
+ PESO=OPZ(2,1,8) 06128000
+ IF(PESO.LE.0.) PESO=2. 06129000
+C 06130000
+C 06131000
+ AWRI=AINDX(5) 06132000
+ AP=AINDX(17) 06133000
+C INIZIALIZZAZAIONI PER PARAMETRI DA USARE IN RES 06134000
+ CAPPAE=2.196771E-3*AWRI/(AWRI+1) 06135000
+C K/SQRT(E)=NUMERO D'ONDA NEUTRONE 06136000
+ CAPPE2=12.56637/CAPPAE**2 06137000
+ ACR=.123*AWRI**(1./3.)+.08 06138000
+C ACR = CHANNEL RADIUS 06139000
+ ROE=ACR*CAPPAE 06140000
+C RHO FOR SCHIFT FACTORS COMPUTATION 06141000
+C 06142000
+C FLAGS SEGNALANTI SE SONO STATI FATTI I PEZZI: 06143000
+C RISONANZA 1 - ESUP 06144000
+C ESUP - EINF 06145000
+C EINF - LAST RESONANCE OPPURE ULTIMO GRUPPO 06146000
+C 06147000
+ NFLAG1=0 06148000
+ NFLAG2=0 06149000
+ NFLAG3=0 06150000
+C 06151000
+C LETTURA RISONANZE ( TAPE POSIZIONATO DA SUB. P2MCF5) 06152000
+C 06153000
+ N1=0 06154000
+ WRITE(NPP,9050) 06155000
+ 9050 FORMAT(10X,' RES. RESOLVED MULTI-GROUP CROSS SECTIONS ') 06156000
+ IF(NDOP.GE.0) WRITE(NPP,9055) TEMP 06157000
+ 9055 FORMAT(8X,' DOPPLER BROADENED TO TEMPERATURE:',E12.5) 06158000
+ IF(NFLRIS.LE.0) WRITE(NPP,9060) 06159000
+ IF(NFLRIS.LE.0.AND.OPZ(2,4,2).LT.-3.) GO TO 490 06160000
+ 9060 FORMAT(8X,' ONLY POT. SCATT CROSS SECTION GENERATED') 06161000
+C .............................. B W 06162000
+ IF(LRF.GT.2) GO TO 200 06163000
+ READ(NTI,1000) SPI,AP,DUM,DUM,NLS 06164000
+ NT(4,NTIN)=NT(4,NTIN)+1 06165000
+ 1000 FORMAT(2E11.4,4I11,I4,I2,I3/(6E11.4)) 06166000
+ DO 10 IL=1,NLS 06167000
+ READ(NTI,1000) AWRI,QX,LL,LRX,NRS6,NRS,MAT,MF,MT, 06168000
+ 1 ((PK(J,JJ+N1),J=2,7),JJ=1,NRS) 06169000
+ NT(4,NTIN)=NT(4,NTIN)+1+NRS 06170000
+ DO 15 IKL=1,NRS 06171000
+ PK(10,IKL+N1)=ROE*SQRT(ABS(PK(2,IKL+N1))) 06172000
+ PK(12,IKL+N1)=(2.*PK(3,IKL+N1)+1.)/(4.*SPI+2.) 06173000
+ PK(13,IKL+N1)=SQRT(34.4668E-5*ABS(PK(2,IKL+N1))/AWRI*TEMP) 06174000
+ PK(11,IKL+N1)=PK(4,IKL+N1)/PK(13,IKL+N1) 06175000
+ 15 PK(1,IKL+N1)=IL 06176000
+ N1=N1+NRS 06177000
+ 10 CONTINUE 06178000
+C 06179000
+ GO TO 300 06180000
+C 06181000
+C .............................. A A 06182000
+ 200 CONTINUE 06183000
+ READ(NTI,1000) SPI,AP,DUM,DUM,NLS 06184000
+ READ(NTI,1000)AWRI,DUM,LI,DUM,NX6,NX,MAT,MF,MT, 06185000
+ 1 ((BACK(J,JJ),J=1,6),JJ=1,NX) 06186000
+ NT(4,NTIN)=NT(4,NTIN)+2+NX 06187000
+ DO 20 IL=1,NLS 06188000
+ READ(NTI,1000) DUM,DUM,DUM,DUM,NJS 06189000
+ NT(4,NTIN)=NT(4,NTIN)+1 06190000
+ DO 25 IJ=1,NJS 06191000
+ READ(NTI,1000) AJ,DUM,DUM,DUM,NLJ12,NLJ,MAT,MF,MT, 06192000
+ 1 ((PK(J,JJ+N1),J=3,14),JJ=1,NLJ) 06193000
+ NT(4,NTIN)=NT(4,NTIN)+2*NLJ+1 06194000
+ DO 27 IKL=1,NLJ 06195000
+ PK(2,IKL+N1)=AJ 06196000
+ 27 PK(1,IKL+N1)=IL 06197000
+ 25 N1=N1+NLJ 06198000
+ 20 CONTINUE 06199000
+C 06200000
+ 300 CONTINUE 06201000
+ IF(N1.NE.NRIS) CALL ERR(8HRES ,300) 06202000
+C 06203000
+C FINE LETTURA PARAMETRI ,. NEI PK CI SONO I PARAMETRI CHE ORA 06204000
+C VENGONO ORDINATI PER ENERGIE DECRESCENTI 06205000
+ NKE=2 06206000
+ IF(LRF.EQ.4)NKE=3 06207000
+C PER A A LA ENERGIA E' IN POSIZIONE 3, PER B W IN POS 1 06208000
+C 06209000
+ CALL ORDINA(NKE,NPK,NRIS,PK) 06210000
+C 06211000
+ IF(LRF.NE.2.OR.ADLRGS.LE.0.) GO TO 301 06212000
+C GENERATION OF ADLER GAUSS PARAMETERS FOR BWML 06213000
+ DO 16 IR=1,NRIS 06214000
+ PK(8,IR)=0. 06215000
+ PK(9,IR)=0. 06216000
+ GR=PK(4,IR) 06217000
+ GNR=PK(5,IR) 06218000
+ DO 17 IS=1,NRIS 06219000
+ IF(IS.EQ.IR) GO TO 17 06220000
+C INTERFERENZA SOLO FRA RISONANZA STESSO L,J 06221000
+ IF(PK(1,IS).NE.PK(1,IR).OR.PK(3,IS).NE.PK(3,IR)) GO TO 17 06222000
+ DE=ABS(PK(2,IR)-PK(2,IS)) 06223000
+C SI E' VISTO CHE SI DEVONO TENERE PRATICAMENTE TUTTE, ANCHE QUELL06224000
+C FUORI E RANGE 06225000
+ IF(DE.GT.(GR+PK(4,IS))*ADLRGS) GO TO 17 06226000
+ GS=PK(4,IS) 06227000
+ GNS=PK(5,IS) 06228000
+ L=PK(1,IS) 06229000
+ ES=PK(2,IS) 06230000
+ ER=PK(2,IR) 06231000
+C LA RISONANZA S VA CONTATA ALL'ENERGIA DELLA RISONANZA R 06232000
+C SI TRATTA DI DIFFERENZE PICCOLE:NON CONTANO TANTO IN ESL, 06233000
+C CHE ENTRA IN SOMMA, O GS , MA CONTA IN GGRS OVE GNS E' FATTORE 06234000
+ CALL GEDEP(L,ER,ES,GNS,ROE,ESL,GNSL) 06235000
+ DE=ER-ESL 06236000
+ GAMPIU=GR+GS-GNS+GNSL 06237000
+ GGRS=GNR*GNSL 06238000
+ DENOMI=1./(DE*DE+GAMPIU*GAMPIU*0.25) 06239000
+ PK(8,IR)=PK(8,IR)+GGRS*GAMPIU*DENOMI 06240000
+ PK(9,IR)=PK(9,IR)+GGRS*DE*DENOMI 06241000
+ 17 CONTINUE 06242000
+ IF(PK(8,IR).NE.0.) PK(8,IR)=PK(8,IR)*0.5 06243000
+ 16 CONTINUE 06244000
+C 06245000
+C 06246000
+ 301 CONTINUE 06247000
+C 06248000
+C STAMPE DEI PARAMETRI (SOLO PER BWML E BWSL ) 06249000
+ IF(STMP.LT.150.) GO TO 302 06250000
+ IF(LRF.GT.2) GO TO 302 06251000
+ WRITE(NO,1005) AINDX(35),AINDX(36) 06252000
+ 1005 FORMAT(//20X,2A4/) 06253000
+ WRITE(NO,1010) 06254000
+ 1010 FORMAT(' BREIT WIGNER RESONANCE PARAMETERS:'/ 06255000
+ 1 ' RIS = L , E , J , GT , GN , GG , GF ' 06256000
+ 2 ,'(FOR BWML: G , H ) , RHO SQRT(E),GAM/DELT=ZETA, G ,DELTR') 06257000
+ ZERO=0.0 06258004
+ DO 30 I=1,NRIS 06259000
+ IF(ADLRGS.GT.0.) WRITE(NO,1020) I,(PK(J,I),J=1,NPK) 06260004
+ IF(ADLRGS.LE.0.) WRITE(NO,1020) I,(PK(J,I),J=1,7),ZERO,ZERO, 06261004
+ 1 (PK(J,I),J=10,NPK) 06262004
+ 1020 FORMAT(1X,I4,'=',F4.1,E10.3,1X,F4.1,10E10.3) 06263000
+ 30 CONTINUE 06264000
+ 302 CONTINUE 06265000
+C 06266000
+C IL LOWER LIMIT OF THE MC2-2 LIBRARY IS E(NG). IF E(NG)>EL 06267000
+C E(NG) IS USED INSTEAD OF EL (E' INUTILE CALCOLARE ROBA 06268000
+C SOTTO ENERGIA DELLA LIBRERIA) (USO NG+1 PER EVITARE GUAI 06269007
+C IN INTS1) 06270007
+ ELGR=EUP*EXP(-DELU*(NG+1)) 06271007
+ ELL=AMAX1(ELGR,EL) 06272000
+C 06273000
+C LOOK FOR THE FIRST RESONANCE IN THE RANGE 06274000
+C 06275000
+ NRISF=1 06276000
+ DO 70 I=1,NRIS 06277000
+ IF(EH.LT.PK(NKE,I)) GO TO 70 06278000
+ NRISF=I 06279000
+ GO TO 700 06280000
+ 70 CONTINUE 06281000
+ CALL ERR(8HRES WR ,70) 06282000
+ NFLGOU=NRIS 06283000
+C ALL RESONANCES ABOVE THE ENERGY RANGE 06284000
+C 06285000
+C LOOKS FOR THE LAST RESONANCE IN THE RANGE 06286000
+C 06287000
+ 700 NRISL=NRIS 06288000
+ DO 75 I=1,NRIS 06289000
+ I1=NRIS-I+1 06290000
+ IF(ELL.GT.PK(NKE,I1)) GO TO 75 06291000
+ NRISL=I1 06292000
+ GO TO 750 06293000
+ 75 CONTINUE 06294000
+ CALL ERR(8HRES WR ,75) 06295000
+ NFLGOU=1 06296000
+C ALL RESONANCES BELOW THE ENERGY RANGE 06297000
+ 750 CONTINUE 06298000
+ NRISL1=NRISL+1 06299000
+ IF(NRISL1-NRISF.LE.0) CALL ERR(8H RES ,750) 06300000
+ WRITE(NPP,9070) EH,EL,NRISF,NRISL,NRIS 06301000
+ 9070 FORMAT(' UPPER E:',E9.4,' INF E:',E9.4,' FIRST RES:', 06302000
+ 1 I5,' LAST RES:',I5,' TOT RES:',I5) 06303000
+C 06304000
+C LE RIS SONO QUI ORDINATE DECRESCENTI IN ENERGIA 06305000
+C NP= CONTATORE PUNTI INSERITI 06306000
+ NP=0 06307000
+C 06308000
+ IF(NFLRIS.LE.0) WRITE(NPP,9080) 06309000
+ 9080 FORMAT(10X,' RESONANCES OUT OF ENERGY RANGE HAVE BEEN ADDED') 06310000
+C 06311000
+C NFLRIS SEGNALA DI NON INSERIRE RISONANZE. IN QUESTO CASO 06312000
+C VENGONO INSERITI I SOLI CONTRIBUTI DALLE RISONANZE FITTIZIE 06313000
+C FUORI DELL'ENERGY RANGE. QUESTI SERVONO IN GENERE A FAR TORNAR06314000
+C UNA SEZIONE D'URTO TIPO 1/V ALLE BASSE ENERGIE (ENTRO IL 06315000
+C RANGE ENERGETICO DELLE RISONANZE). 06316000
+C QUESTI CONTRIBUTI VANNO AGGIUNTI QUI PERCHE MC2-2 POI 06317000
+C TRATTERA' SOLO LE RISONANZE ENTRO IL RANGE ENERGETICO. 06318000
+C 06319000
+ NSCART=0 06320000
+ IF(NFLRIS.LE.0) NSCART=1 06321000
+ NE=0 06322000
+C 06323000
+ IF(NFLGOU.LE.0) GO TO 455 06324000
+C NO RESONANCES IN THE RANGE ( ONLY EH AND ELL POINTS ARE INSERTED) 06325000
+ NE=NE+1 06326000
+ ERIS(NE)=EH 06327000
+ GAM(NE)=PK(4,NFLGOU) 06328000
+ NE=NE+1 06329000
+ ERIS(NE)=ELL 06330000
+ GAM(NE)=PK(4,NFLGOU) 06331000
+ GO TO 463 06332000
+C 06333000
+C VEDE SE IN EH E' UNA RISONANZA 06334000
+ 455 IF(PK(NKE,NRISF).EQ.EH) GO TO 460 06335000
+C SE IL PRIMO PUNTO NON COINCIDE CON EH METTE EH FRA I PUNTI 06336000
+ ERIS(1)=EH 06337000
+ GAM(1)=PK(4,NRISF) 06338000
+ NE=1 06339000
+ 460 CONTINUE 06340000
+C METTO NEI PUNTI DELIMITANTI GLI INTERVALLI LE 06341000
+C RISONANZE DA NRISF SAD NRISL 06342000
+ DO 81 I=NRISF,NRISL 06343000
+ NE=NE+1 06344000
+ ERIS(NE)=PK(NKE,I) 06345000
+ 81 GAM(NE)=PK(4,I) 06346000
+C VEDE SE DEVE INSERIRE EL COME ULTIMO PUNTO O SE IN EL STA UNA RIS06347000
+ IF(PK(NKE,NRISL).EQ.ELL) GO TO 462 06348000
+ NE=NE+1 06349000
+ ERIS(NE)=ELL 06350000
+ GAM(NE)=PK(4,NRISL) 06351000
+C 06352000
+ 462 CONTINUE 06353000
+C L'ULTIMO PUNTO ERA GIA' INSERITO COME ULTIMO NELL'INTERV06354000
+C PRIMA RIS- EH SE L'INTERVALLO ESISTE. 06355000
+C SE IL PUNTO E' GIA' INSERITO LO TOLGO, CHE ALTRIMENTI VI06356000
+C CONTATO DOPPIO. 06357000
+ IF(NFLAG1.GT.0) NP=NP-1 06358000
+ 463 NP1=NP+1 06359000
+ NPPP=1 06360000
+ CALL LINSIG(NPK,NRIS,PK,NE,ERIS,GAM,NPPP,NPMX, 06361000
+ 1 PUNTO(NP1,1),PUNTO(NP1,2),PUNTO(NP1,3),PUNTO(NP1,4),PUNTO(NP1,5),06362000
+ 2 PUNTO1(NP1,1),PUNTO1(NP1,2),PUNTO1(NP1,3),PUNTO1(NP1,4), 06363000
+ 3 NDOP,TEMP,LRF,AWRI,SPI,AP,CAPPAE,CAPPE2,ROE, 06364000
+ 4 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,ELL,EH) 06365000
+ NFLAG2=NPPP 06366000
+ NP=NP+NPPP 06367000
+ 480 CONTINUE 06368000
+ 490 CONTINUE 06369000
+C 06370000
+ N111=1 06371000
+C ONLY POTENTIAL SCATTERING 06372000
+ IF(NFLAG1.LE.0.AND.NFLAG2.LE.0.AND.NFLAG3.LE.0) N111=4 06373000
+C 06374000
+C .......... LOOP SU CATTURA,FISSIONE,SCATT(SENZA POT),SCAT POT 06375000
+ DO 29 IC1=N111,4 06376000
+ IC=IC1+1 06377000
+ IF(IC1.NE.4) GO TO 500 06378000
+C POTENTIAL SCATTERING 06379000
+C IS COMPUTED AT ULTRA FINE GROUPS BOUNDARIES 06380000
+C AND IS SUPPOSED ABBASTANZA FLAT TO BE CONSIDERED LINEAR 06381000
+C INTERPOLABLE IN AN ULTRAFINE GROUP 06382000
+C 06383000
+C SIGMA POTENTIAL IS STORED IN PUNTO1(.,4) WHERE SIGMA SCATTERING 06384000
+C HAD BEEN BEFORE 06385000
+C 06386000
+ IC=4 06387000
+C 06388000
+C N1=1 06389000
+ DO 95 I=1,NG 06390000
+ IF(E(I).LT.EH) GO TO 950 06391000
+ 95 CONTINUE 06392000
+ 950 N1=I 06393000
+ DO 96 I=1,NG 06394000
+ I1=NG-I+1 06395000
+ IF(E(I1).GT.ELL) GO TO 960 06396000
+ 96 CONTINUE 06397000
+ 960 N2=I1 06398000
+ IF(N2.LT.0.OR.N2.LE.N1)CALL ERR(8H RES ,960) 06399000
+ NP=N2-N1+1+2 06400000
+ PUNTO1(1,1)=EH 06401000
+ I3=1 06402000
+ DO 97 I=N1,N2 06403000
+ I3=I3+1 06404000
+ 97 PUNTO1(I3,1)=E(I) 06405000
+ PUNTO1(NP,1)=ELL 06406000
+C 06407000
+ CALL SCATP(NP,PUNTO1(1,1),PUNTO1(1,IC),CAPPAE,AP,CAPPE2) 06408000
+ IF(NPMX.LT.NP) CALL ERR(8HRES ,500) 06409000
+ 500 CONTINUE 06410000
+C 06411000
+ IF(NP.GT.NPMX) CALL ERR(8H RES ,510) 06412000
+C =============== OUTPUT FOR PLOTTER =============== 06413000
+C IF(OPZ(2,2,2).LE.0.) GO TO 510 06414000
+C NUMER0=0 06415000
+C NOO=OPZ(2,2,2) 06416000
+C NOO=NT(1,NOO) 06417000
+C NWDS=2*NP+10 06418000
+C WRITE(NOO) NWDS,AINDX(35),AINDX(36),NOME(IC1),IC1,MAT, 06419000
+C 1 OPZ(2,5,7),PRECIS,NUMER0,NP,(PUNTO1(J,1),PUNTO1(J,IC),J=1,NP) 06420000
+C510 CONTINUE 06421000
+C 06422000
+C NOTE ON INSERTION OF CULLEN METHOD 06423000
+C PER INSERIRE IL METODO DI CULLEN SI PROCEDE COSI: 06424000
+C 0) SI FA CORRERE RES SENZA DOPPLER BROADENING 06425000
+C 1) SI ALLARGA LA TABULAZIONE CON CULLEN QUI (E' GIA' LINEARE) 06426000
+C 2) SI PROCEDE COME SOTTO 06427000
+C 06428000
+ IF(OPZ(2,1,7).LE.0.) GO TO 555 06429000
+C POT SCATT IS NOT DOPPLER BROADENED 06430000
+ IF(IC1.EQ.4) GO TO 555 06431000
+ IF(TEMP.LE.0.) GO TO 555 06432000
+C 06433000
+ AWR=AINDX(5) 06434000
+C A BROAD VANNO PASSATI SIGMA E ENERGIE CRESCENTI 06435000
+C INDI VANNO RIBALTATE PRIMA E DOPO 06436000
+ DO 99 I=1,NP 06437000
+ PUNTO(I,3)=PUNTO1(NP-I+1,1) 06438000
+ 99 CONTINUE 06439000
+ CALL RIBA(NP,PUNTO1(1,IC)) 06440000
+C 06441000
+ IF(NP+100.GT.NPMX) CALL ERR(8HRES ,99) 06442000
+C 06443000
+ CALL BROAD(NP,TEMP,AWR,PUNTO(1,3), 06444000
+ 1 PUNTO1(1,IC),PUNTO(1,2),PUNTO(1,1),PUNTO(1,4), 06445000
+ 2 PUNTO(1,5) ) 06446000
+C 06447000
+ CALL RIBA(NP,PUNTO(1,1)) 06448000
+C 06449000
+ CALL RIEMP( 0.0,NG,SIG) 06450000
+ CALL INTS1(PESO,INTERP,NG,E,SIG,NP,PUNTO1(1,1),PUNTO(1,1)) 06451000
+ GO TO 560 06452000
+C 06453000
+C INTEGRA A GRUPPI ULTRAFINI ( STESSA ROUTINE DELLE UNRESOLVED, 06454000
+C PESO 1/E ) 06455000
+ 555 CALL RIEMP(0.0,NG,SIG) 06456000
+ CALL INTS1(PESO,INTERP,NG,E,SIG,NP,PUNTO1(1,1),PUNTO1(1,IC)) 06457000
+C 06458000
+C SCRITTURA SU TAPES ( COME UNRES) 06459000
+C 06460000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF06461000
+ 560 IF(NMT.GT.M2) GO TO 600 06462000
+ NOM=MIX(3,NMT) 06463000
+ NOM1=MIX(4,NMT) 06464000
+ NOM2=MIX(1,NMT) 06465000
+ NOM3=MIX(2,NMT) 06466000
+ GO TO 610 06467000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT06468000
+ 600 NOM=NAREAL(AINDX(35)) 06469000
+ NOM1=NAREAL(AINDX(36)) 06470000
+ NOM2=NAREAL(AINDX(35)) 06471000
+ NOM3=NAREAL(AINDX(36)) 06472000
+ 610 CONTINUE 06473000
+ CALL POSL(NTOUT) 06474000
+C POSIZIONA TAPE OUT AL PRIMO RECORD LIBERO 06475000
+C LE RISONANZE HANNO SOLO MT=151 06476000
+C WRITE(NTO) NOM2,NOM3,MAT,MF,MT 06477000
+C INDICI PER IL RECORD 2 06478000
+ REAZ=0. 06479000
+ IF(IC1.EQ.1) REAZ=3. 06480000
+ IF(IC1.EQ.2) REAZ=2. 06481000
+ IF(IC1.EQ.3) REAZ=1. 06482000
+ IF(IC1.EQ.4) REAZ=4. 06483000
+C NLAST= GRUPPO SOTTO CUI LA SIGMA E' NULLA 06484000
+ CALL SOGLM(0.0,NLAST,NG,SIG) 06485000
+ CALL SOGLM1(0.0,NFIRST,NG,SIG) 06486000
+ IF(NFIRST.GT.NLAST) CALL ERR(8H,RES , 50) 06487000
+ WRITE(NPP,1100) NOM2,NOM3,NOME(IC1),NP,EH,ELL,NFIRST,NLAST 06488000
+ IF(NLAST.LE.0) GO TO 29 06489000
+C 06490000
+C WRITE(NTO)(N(J),J=1,14) 06491000
+ WRITE(NTO)(SIG (J),J=NFIRST,NLAST) 06492000
+C 06493000
+ 1100 FORMAT(1X,2A4,1X,A8, 06494000
+ 1 ' POINTS:',I9,' E LIM.:',E9.4,E9.4,' GROUPS:',2I5) 06495000
+ IF(STMP.LT.1000.) GO TO 650 06496000
+ WRITE(NO,1100) NOM2,NOM3,NOME(IC1),NP,EH,ELL,NFIRST,NLAST 06497000
+ WRITE(NO,1201) 06498000
+ 1201 FORMAT(5(1X,' ENERGY , SIGMA ')) 06499000
+ WRITE(NO,1300)(PUNTO1(J,1),PUNTO1(J,IC),J=1,NP) 06500000
+ 1300 FORMAT(1X,10E12.5) 06501000
+ 650 CONTINUE 06502000
+ IF(STMP.GT.100.)WRITE(NO,1500) NOM2,NOM3,MAT,MF,MT 06503000
+ 1500 FORMAT(' PART 2: RESOLVED RESONANCE ', 06504000
+ 1 'MULTI GROUP CROSS SECTION PRODUCED:'/ 06505000
+ 2 1X,2A4,3I10) 06506000
+ IF(NDOP.GE.0.AND.STMP.GT.100.) WRITE(NPP,9055) TEMP 06507000
+ IF(STMP.GT.101) WRITE(NO,2000) NOME(IC1),NFIRST,NLAST 06508000
+ 2000 FORMAT(' REACTION: ',A8,20X,'FIRST GROUP:',I5,' LAST GROUP:',I5) 06509000
+ IF(STMP.GT.105) WRITE(NO,3000) (SIG(J),J=NFIRST,NLAST) 06510000
+ 3000 FORMAT(1X,10E12.5) 06511000
+C 06512000
+ IND2=IND2+1 06513000
+ IF(IND2.GT.MIND12) CALL ERR(8H RES ,25) 06514000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1),AINDX(2),AINDX(3), 06515000
+ 1AINDX(4),AINDX(5),NOM,NOM1,NOM2,NOM3,AINDX(6), 06516000
+ 25.,3.,2.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(3,NTOUT)),1.,0.,0., 06517000
+ 3FLOAT(NG),EUP,DELU,0.,FLOAT(NLAST),3.,REAZ,FLOAT(LRF), 06518000
+ 4 FLOAT(NFIRST),0.,0.,EH,ELL,0.,0.,AINDX(28),AINDX(9),AINDX(5), 06519000
+ 60.,FLOAT(NDOP),TEMP) 06520000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 06521000
+ NT(3,NTOUT)=NT(4,NTOUT) 06522000
+C 06523000
+ 29 CONTINUE 06524000
+C ............. FINE LOOP SU REAZIONI:CATT,FISS,SCATT,SCATT POT 06525000
+ RETURN 06526000
+ END 06527000
+ SUBROUTINE SIGRR(SC,SF,SS,E,NDOP,TEMP, 06528000
+ 1 LRF,AWRI,SPI,AP,CAPPAE,CAPPE2,ROE, 06529000
+ 2 NPK,NRIS,PK,N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06530000
+C ********************************************************* 06531000
+C 06532000
+C DOPPLER BROADENED RESONANCE CROSS SECTION AT ENERGY E 06533000
+C ONLY BREIT WIGNER SINGLE OR MULTI LEVEL IS USED !!!!!!!!! 06534000
+C 06535000
+C NSCART PARAMETER SCARTA RISONANZE ENTRO EINF,ESUP 06536000
+C NDOP .LT. 0 - NO DOPPLER 06537000
+C LRF=1,2,4 = BWSL, BWML, A A 06538000
+C E = ENERGIA 06539000
+C TEMP= TEMPERATURARISONA 06540000
+C PK= PER BW = L,ER, AJ,GT,GN,GC,GF 06541000
+C +G,H DI ADLER GAUSS PER BWML (POS 8,9 ) 06542000
+C + ROE*SQRT(ER) ,ZETA=GT/DELTR (POS 10,11) 06543000
+C + G,DELTR (POSIZ 12, 13 ) 06544000
+C BACK(6,NBACK)= BACKGROUND DI ADLER ADLER 06545000
+C CAPPE2=4*PIGREC/KAPPA**2 ( SENZA L'E) 06546000
+C CAPPAE=KAPPA/SQRT(E) (SENZA L'E) 06547000
+C ************************************************************ 06548000
+C 06549000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 06550000
+ DIMENSION PK(NPK,NRIS),BACK(6,NBACK) 06551000
+ COMMON/OPZIO/OPZ(4,8,10) 06552000
+ EQUIVALENCE(OPZ(2,5,7),DELNUM),(OPZ(2,4,6),ADLRGS) 06553000
+ DATA SQRPI/1.772453851/ 06554000
+ DIMENSION FI(3),COSF2(3),SINF2(3),SIN2F(3) 06555000
+C 06556000
+ ABSE=ABS(E) 06557000
+ PICA24=CAPPE2/ABSE 06558000
+ SQRTE=SQRT(ABSE) 06559000
+ RHOE=ROE*SQRTE 06560000
+ RO=CAPPAE*SQRTE*AP 06561000
+C 06562000
+ FI(1)=RO 06563000
+ FI(2)=RO-ATAN(RO) 06564000
+ FI(3)=RO-ATAN(3.*RO/(3.-RO*RO)) 06565000
+ DO 5 I=1,3 06566000
+ FI2=FI(I)*2 06567000
+ SINF2(I)=SIN(FI2) 06568000
+ COSF2(I)=COS(FI2) 06569000
+ SIN2F(I)=SIN(FI(I))**2 06570000
+ 5 CONTINUE 06571000
+C 06572000
+C 06573000
+ SC=0. 06574000
+ SF=0. 06575000
+ SS=0. 06576000
+C 06577000
+ DO 10 IR=1,NRIS 06578000
+ ER=PK(2,IR) 06579000
+ IF(NSCART.GT.0.AND.ER.GE.EINF.AND.ER.LE.ESUP) GO TO 10 06580000
+ GT=PK(4,IR) 06581000
+C DELTR=SQRT(34.4668E-5*ABS(ER)/AWRI*TEMP) 06582000
+ DELTR=PK(13,IR) 06583000
+ ALARG=DELTR 06584000
+ IF(GT.GT.ALARG)ALARG=GT 06585000
+ IF(ABS(E-ER).GT.ALARG*DELNUM) GO TO 10 06586000
+C 06587000
+C RHOER=RO*SQRT(ER) 06588000
+ RHOER=PK(10,IR) 06589000
+C 06590000
+C G=(2*PK(3,IR)+1)/(4*SPI+2) 06591000
+ G=PK(12,IR) 06592000
+ GRC=PK(6,IR) 06593000
+ GRF=PK(7,IR) 06594000
+C CATTURA E FISSIONE 06595000
+ L=PK(1,IR) 06596000
+ GN=PK(5,IR) 06597000
+C CALCOLO DIPENDENZA DA E DI ER E DI GN 06598000
+C ROUTINE NOT USED TO FASTEN:CALL GEDEP(L,E,ER,GN,ROE,ERL,GNL) 06599000
+ IF(L.GT.1) GO TO 102 06600000
+ ERL=ER 06601000
+ GNL=GN*RHOE/RHOER 06602000
+ GO TO 401 06603000
+ 102 IF(L.GT.2) GO TO 103 06604000
+ DENE=1.+RHOE*RHOE 06605000
+ DENER=1.+RHOER*RHOER 06606000
+ PFE=RHOE**3/DENE 06607000
+C DOPPLER BROADENING DO NOT USES E DEPENDENCE IN ER 06608000
+ IF(NDOP.LT.0) ERL=ER+(1./DENE-1./DENER)/2./PFE*GN 06609000
+ GNL=GN*PFE/(RHOER**3)*DENER 06610000
+ GO TO 401 06611000
+ 103 CONTINUE 06612000
+ DENE=9.+3.*RHOE*RHOE+RHOE**4 06613000
+ DENER=9.+3.*RHOER**2+RHOER**4 06614000
+ PFE=RHOE**5/DENE 06615000
+C DOPPLER BROADENING DO NOT USES E DEPENDENCE IN ER 06616000
+ IF(NDOP.LT.0) ERL=ER+((18.+3.*RHOER**3)/DENER- 06617000
+ 1 (18.+3.*RHOE **3)/DENE )/2./PFE*GN 06618000
+ GNL=GN*PFE/(RHOER**5)*DENER 06619000
+ 401 CONTINUE 06620000
+C 06621000
+C 06622000
+C ERL=ER 06623000
+ GTL=GT-GN+GNL 06624000
+C GTL=GT 06625000
+C 06626000
+ IF(NDOP.LT.0.OR.GT.EQ.0) GO TO 260 06627000
+C 06628000
+C DOPPLER BROADENING 06629000
+C 06630000
+C DOPPLER FORMALISM DOES NOT USE ENERGY DEPENDECE FOR ER AND GT 06631000
+C 06632000
+C DELTA IS DELTA AT RESONANCE IN DOPPLER BROADENING APPROXIMAT06633000
+C 06634000
+C DELT=SQRT(34.4668E-5*ABS(E)/AWRI*TEMP) 06635000
+C ZETA=GT/DELTR 06636000
+ ZETA=PK(11,IR) 06637000
+C 06638000
+ IF(E.NE.ER) GO TO 200 06639000
+ AY=ZETA*0.5 06640000
+ AIMW=0. 06641000
+ CALL WZERO(AY,REAW) 06642000
+ GO TO 210 06643000
+ 200 CONTINUE 06644000
+C 06645000
+ Y=2./GT*(E-ER) 06646000
+C 06647000
+C PSI(ZETA,Y)=ZETA*SQRT(PI)/2*REAL PART OF W(ZETA*Y/2,ZETA/2) 06648000
+C CHI(ZETA,Y)=ZETA*SQRT(PI)*IMM PART OF W(ZETA*Y/2,ZETA/2) 06649000
+C LA PARTE REALE ED IMMAGINARIA DELLA FUNZIONE W 06650000
+C LA CALCOLA QUICKW(N41,N27,TR,TI,TRS,TIS,AX,AY,REW,AIMW) 06651000
+C CHE USA TABULAZIONI DI W PRODOTTE DALLA WTABL 06652000
+C (CHE A SUA VOLTA USA LA ROUTINE W) 06653000
+C NEL PICCO DELLLA RISONANZA (PER X=0 , SI PUO USARE WZERO(Y,REW) 06654000
+C CHE FORNISCE VELOCEMENTE LA PARTE REALE DI W. 06655000
+C PER ALTRI DETTAGLI VEDI IL MANUALE DI MC2-2 06656000
+C 06657000
+ AY=ZETA*0.5 06658000
+ AX=AY*Y 06659000
+ CALL QUICKW(N41,N27,TR,TI,TRS,TIS,AX,AY,REAW,AIMW) 06660000
+C 06661000
+ 210 PSI=ZETA*SQRPI*REAW*0.5 06662000
+ PIFAC=PICA24*G/(GT*GT) 06663000
+ SIGR=PIFAC*GNL*PSI 06664000
+ SC=SIGR*GRC+SC 06665000
+ SF=SIGR*GRF+SF 06666000
+C RESONANCE SCATTERING 06667000
+ CHI=ZETA*SQRPI/2.*AIMW 06668000
+ T1= GNL*COSF2(L)*PSI 06669000
+ T2= GT*SINF2(L)*CHI 06670000
+ T3=-2. *(GT-GN)*PSI*SIN2F(L) 06671000
+ IF(ADLRGS.LE.0..OR.LRF.NE.2) GO TO 211 06672000
+C 06673000
+C ================ NON SOLO LA DIPENDENZA ENERGETICA DEI TERMINI 06674000
+C DI INTERFERENZA E' APPROSSIMATA, MA IL FATTO CHE SI POSSA ESTRAR06675000
+C DALL'INTEGRALE DOPPLER LA E E' DUBBIO =========================06676000
+ EFACTR=E/ABS(ER) 06677000
+ IF(L.GT.1) EFACTR=(E/ABS(ER))**(2*L-1) 06678000
+ T1=T1+(PSI*PK(8,IR) + CHI*PK(9,IR))*GT/GNL *EFACTR 06679000
+ 211 SS=SS+PIFAC*(T1+T2+T3)*GNL 06680000
+ GO TO 10 06681000
+ 260 CONTINUE 06682000
+C 06683000
+C NO DOPPLER BROADENING : ACCOUNTED FOR GTL AND ERL E DEPENDENCE 06684000
+C 06685000
+ PIFAC=PICA24*G/(4.*(E-ERL)**2+(GTL*GTL)) 06686000
+ SIGR=PIFAC*GNL 06687000
+ SC=SIGR*GRC+SC 06688000
+ SF=SIGR*GRF+SF 06689000
+ 300 CONTINUE 06690000
+C SCATTERING DI RISONANZA 06691000
+ T1= GNL*COSF2(L) 06692000
+ T2=2.*(E-ERL) *SINF2(L) 06693000
+ T3=-2.* (GTL-GNL)*SIN2F(L) 06694000
+C 06695000
+ IF(ADLRGS.LE.0..OR.LRF.NE.2) GO TO 301 06696000
+ EFACTR=E/ABS(ER) 06697000
+ IF(L.GT.1) EFACTR=(E/ABS(ER))**(2*L-1) 06698000
+ T1=T1+(PK(8,IR)*GTL+2.*(E-ERL)*PK(9,IR))*EFACTR/GNL 06699000
+C 06700000
+C ========= LA DIPENDENZA ENERGETICA DEL TERMINE DI 06701000
+C INTERFERENZA E' APPROSSIMATA, IN QUANTO SI DOVREBBERO 06702000
+C RICALCOLARE PK(8-9,.) AD OGNI E ===================== 06703000
+C ============ IN QUESTO MODO SI SUPPONE CHE IL DENOM DEL 06704000
+C TERMINE DI INTERFERENZA IN PK(8-9,.) NON DIP DA E ====== 06705000
+C PK(8-9,.) SONO CALCOLATE AD ER, SOLO IL FATTORE GNR*GNS 06706000
+C A NUMERATORE E' RIPORTATO DA ER AD E TRAMITE EFACTR ==== 06707000
+C ======================================================== 06708000
+ 301 SS=SS+PIFAC*(T1+T2+T3)*GNL 06709000
+ 10 CONTINUE 06710000
+C ............... END OF LOOP ON RESONANCES 06711000
+ RETURN 06712000
+ END 06713000
+ SUBROUTINE GEDEP(L,E,ER,GN,ROE,ERL,GNL) 06714000
+C ********************************************** 06715000
+C CALCOLO DIPENDENZA DALL'ENERGIA DI ER E GN 06716000
+C SECONDO LE FORMULE DI ENDFB 06717000
+C L=1 SAREBBE LA P0 (L=0) 06718000
+C ********************************************* 06719000
+C 06720000
+ RHOE=ROE*SQRT(ABS(E)) 06721000
+ RHOER=ROE*SQRT(ABS(ER)) 06722000
+ GO TO (100,200,300),L 06723000
+ 100 CONTINUE 06724000
+C SHIFT FACTOR FOR ENERGY E AND ER ( L=0) 06725000
+ SFE=0. 06726000
+ SFER=0. 06727000
+C PENETRATION FACTOR FOR ENERGY E AND ER (L=0) 06728000
+ PFE=RHOE 06729000
+ PFER=RHOER 06730000
+ GO TO 400 06731000
+ 200 CONTINUE 06732000
+C SAME FOR L=1 06733000
+ DENE=1.+RHOE**2 06734000
+ DENER=1.+RHOER**2 06735000
+ SFE=1./DENE 06736000
+ SFER=1./DENER 06737000
+ PFE=(RHOE**3)/DENE 06738000
+ PFER=(RHOER**3)/DENER 06739000
+ GO TO 400 06740000
+ 300 CONTINUE 06741000
+C SAME FOR L=2 06742000
+ DENE =9.+3.*RHOE**2+RHOE**4 06743000
+ DENER=9.+3.*RHOER**2+RHOER**4 06744000
+ SFE=(18.+3.*RHOE**3)/DENE 06745000
+ SFER=(18.+3.*RHOER**3)/DENER 06746000
+ PFE=RHOE**5/DENE 06747000
+ PFER=RHOER**5/DENER 06748000
+ 400 CONTINUE 06749000
+ ERL=ER+(SFER-SFE)/2./PFE*GN 06750000
+ GNL=PFE*GN/PFER 06751000
+ RETURN 06752000
+ END 06753000
+ FUNCTION FIL(E,L,CAPPAE,AP) 06754000
+C *********************************** 06755000
+C PHASE ANGLE FOR RESOLVED RESONANCE COMPUTATION 06756000
+C **************************************** 06757000
+C 06758000
+ RO=CAPPAE*SQRT(ABS(E))*AP 06759000
+ GO TO(100,200,300),L 06760000
+ 100 FIL=RO 06761000
+ RETURN 06762000
+ 200 FIL=RO-ATAN(RO) 06763000
+ RETURN 06764000
+ 300 FIL=RO-ATAN(3.*RO/(3.-RO**2)) 06765000
+ RETURN 06766000
+ END 06767000
+ SUBROUTINE SCATP(NE,E,SIG,CAPPAE,AP,CAPPE2) 06768000
+C ******************************************** 06769000
+C COMPUTES POTENTIAL SCATTERING CROSS SECTION 06770000
+C ******************************************* 06771000
+ DIMENSION E(NE),SIG(NE) 06772000
+C 06773000
+C ENERGY IS SUPPOSED TO BE ALWAYS GT THAN ZERO 06774000
+C 06775000
+ DO 10 IE=1,NE 06776000
+ PICA24=CAPPE2/E(IE) 06777000
+ RO=CAPPAE*SQRT(E(IE))*AP 06778000
+ FI1=RO 06779000
+ FI2=RO-ATAN(RO) 06780000
+ FI3=RO-ATAN(3.*RO/(3.-RO**2)) 06781000
+ SIG(IE)=PICA24*(SIN(FI1)**2+3.*SIN(FI2)**2+5*SIN(FI3)**2) 06782000
+ 10 CONTINUE 06783000
+ RETURN 06784000
+ END 06785000
+ SUBROUTINE LINSIG(NPK,NRIS,PK,NE,E,GM,NP,MAXNP, 06786000
+ 1 EP,SC,SF,SS,KP,EPFIN,SCFIN,SFFIN,SSFIN,NDOP,TEMP,LRF, 06787000
+ 2 AWRI,SPI,AP,CAPPAE,CAPPE2,ROE, 06788000
+ 3 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06789000
+C ************************************************************* 06790000
+C PRODUCES LINEAR INTERPOLABLE TABULATION OF CROSS SECTION 06791000
+C FROM RESONANCE PARAMETERS 06792000
+C ************************************************************* 06793000
+C 06794000
+ DIMENSION PK(NPK,NRIS),E(NE),GM(NE) 06795000
+ DIMENSION SC(MAXNP),SF(MAXNP),SS(MAXNP),EP(MAXNP),KP(MAXNP), 06796000
+ 1 EPFIN(MAXNP),SCFIN(MAXNP),SFFIN(MAXNP),SSFIN(MAXNP), 06797000
+ 2 TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27),BACK(6,NBACK) 06798000
+C 06799000
+ COMMON /OPZIO/OPZ(4,8,10) 06800000
+ EQUIVALENCE(PRECIS,OPZ(2,5,9)) 06801000
+C 06802000
+C 06803000
+ DIMENSION ANUMG(9) 06804000
+ DATA NUMG/9/,ANUMG/1.,2.,4.,6.,10.,20.,40.,60.,100./ 06805000
+C 06806000
+C FIX FIRST POINT OF FIRST INTERVAL 06807000
+C 06808000
+ EP(NP)=E(1) 06809000
+ KP(NP)=0 06810000
+ CALL SIGRR(SC(NP),SF(NP),SS(NP),EP(NP),NDOP,TEMP,LRF,AWRI, 06811000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06812000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06813000
+ NPREC=NP 06814000
+ NP=NP+1 06815000
+C 06816000
+C .......... LOOP ON ENERGY INTERVALS (DEFINED BY RESONANCE PEACKS06817000
+ DO 10 IE=2,NE 06818000
+C FIX FIRST POINT OF INTERVAL ( A POINT ) 06819000
+ NPA=NPREC 06820000
+ EA=EP(NPA) 06821000
+ SIGCA=SC(NPA) 06822000
+ SIGFA=SF(NPA) 06823000
+ SIGSA=SS(NPA) 06824000
+C FIX SECOND POINT OF INTERVAL ( B POINT) 06825000
+ EP(NP)=E(IE) 06826000
+C KP IS (FOR EACH POINT) THE NUMBER OF THE NEXT PO06827000
+C KP=0 MEANS THAT THE INTERVAL IS FINISHED 06828000
+ KP(NP)=0 06829000
+ CALL SIGRR(SC(NP),SF(NP),SS(NP),EP(NP),NDOP,TEMP,LRF,AWRI, 06830000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06831000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06832000
+C 06833000
+ NPB=NP 06834000
+ NP=NP+1 06835000
+ IF(NP.GT.MAXNP) CALL ERR(8HLINSIG ,0) 06836000
+ EB=EP(NPB) 06837000
+C FOLLOWING DATA ARE REDEFINED AFTER (AFTER CONVERGENCE IMPROVEMENT06838000
+C SIGCB=SC(NPB) 06839000
+C SIGFB=SF(NPB) 06840000
+C SIGSB=SS(NPB) 06841000
+C NPREC REMEMBER B POINT WHICH WILL BE USED AS AN A POINT IN 06842000
+C NEXT SUBINTERVAL 06843000
+ NPREC=NPB 06844000
+C THE NUMBER OF THE POINT FOLLOWING A IS STORED IN KP(A) FOR 06845000
+C REORDERING ROUTINE 06846000
+C 06847000
+C 06848000
+ NPREC1=NPB 06849000
+ IF(OPZ(2,4,5).LT.0.)GO TO 300 06850000
+C 06851000
+C 06852000
+C CONVERGENCE IMPROVEMENT: INSERT POINTS BETWEEN THE TWO 06853000
+C RESONANCE PEACKS FOR A BEST FITTING 06854000
+C OF THE RESONANCE SHAPE (THIS METHOD 06855000
+C HAS BEEN USED BY CULLEN IN RECENT CODE06856000
+C REMEMBER THAT INTERVALS AND RESONANCES ARE IN DECREASING ENERGY 06857000
+C ORDER 06858000
+ EALF=EA-(EA-EB)/2. 06859000
+C 06860000
+C NPREC1 CONTAINS THE B POINT OF THE FIRST SUBINTERVAL 06861000
+C TO BE SUBDIVIDED (OTHERWISE LOST AFTER CONVERGENCE IMPROVEMENT 06862000
+C (IT IS THE FIRST POINT ADDED IN CONVERGENCE IMPROVEMENT LOOPS) 06863000
+ NPREC1=0 06864000
+C 06865000
+C ........... LOOP TO INSERT POINTS AT MULTIPLE OF RESONANCE WHIDT 06866000
+ DO 20 IG=1,NUMG 06867000
+ E1=EA-GM(IE-1)*ANUMG(IG) 06868000
+ IF(E1.LT.EALF) GO TO 200 06869000
+C HALF POINT HAS BEEN REACHED, OTHERWISE INSERT E1 POINT 06870000
+ EP(NP)=E1 06871000
+ KP(NP)=NP+1 06872000
+ IF(NPREC1.LE.0) NPREC1=NP 06873000
+ CALL SIGRR(SC(NP),SF(NP),SS(NP),EP(NP),NDOP,TEMP,LRF,AWRI, 06874000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06875000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06876000
+ NP=NP+1 06877000
+ 20 CONTINUE 06878000
+ 200 CONTINUE 06879000
+C INSERT EALF POINT 06880000
+ EP(NP)=EALF 06881000
+ KP(NP)=NP+1 06882000
+ IF(NPREC1.LE.0) NPREC1=NP 06883000
+ CALL SIGRR(SC(NP),SF(NP),SS(NP),EP(NP),NDOP,TEMP,LRF,AWRI, 06884000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06885000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06886000
+ NP=NP+1 06887000
+C INSERT POINTS BETWEEN HALF POINT AND THE PEAK OF SECOND RESONANCE 06888000
+ DO 30 IG=1,NUMG 06889000
+ IG1=NUMG-IG+1 06890000
+ E1=EB+GM(IE)*ANUMG(IG1) 06891000
+ IF (E1.GT.EALF) GO TO 30 06892000
+C ADDING IS FINISCHED OR ADD E1 POINT 06893000
+ EP(NP)=E1 06894000
+ KP(NP)=NP+1 06895000
+ CALL SIGRR(SC(NP),SF(NP),SS(NP),EP(NP),NDOP,TEMP,LRF,AWRI, 06896000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06897000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06898000
+ NP=NP+1 06899000
+ 30 CONTINUE 06900000
+C LAST POINT OF INTERVAL IS POINT B 06901000
+ KP(NP-1)=NPB 06902000
+ 300 CONTINUE 06903000
+C 06904000
+C 06905000
+C ................... LOOP IN WHICH POINTS ARE ADDED TO SUBDIVIDE 06906000
+C THE INTERVAL IN LINEAR INTERPOLABLE 06907000
+C SUBINTERVALS. THIS LOOP BEGIN WITH THE 06908000
+C LEFTMOST SUBINTERVAL DEFINED BY END 06909000
+C POINTS(NPA:NPREC1) 06910000
+ NPB=NPREC1 06911000
+ EB=EP(NPB) 06912000
+ SIGCB=SC(NPB) 06913000
+ SIGFB=SF(NPB) 06914000
+ SIGSB=SS(NPB) 06915000
+C 06916000
+ 40 CONTINUE 06917000
+C IF(EA-EB) EXCEEDES COMPUTER PRECISION STOP SUBDIV06918000
+ IF(ABS((EA-EB)/EA).LT.0.0001) GO TO 400 06919000
+ EC=(EA-EB)/2.+EB 06920000
+C EC.GT.0 IS ASSUMED 06921000
+C IF(ABS(EC.LT.1.E-2)EC=1.E-2 06922006
+ SIGLIC=(SIGCB-SIGCA)/(EB-EA)*(EC-EA)+SIGCA 06923000
+ SIGLIF=(SIGFB-SIGFA)/(EB-EA)*(EC-EA)+SIGFA 06924000
+ SIGLIS=(SIGSB-SIGSA)/(EB-EA)*(EC-EA)+SIGSA 06925000
+ CALL SIGRR(SC1,SF1,SS1,EC,NDOP,TEMP,LRF,AWRI, 06926000
+ 1 SPI,AP,CAPPAE,CAPPE2,ROE,NPK,NRIS,PK, 06927000
+ 2 N41,N27,TR,TI,TRS,TIS,NBACK,BACK,NSCART,EINF,ESUP) 06928000
+C CONVERGENCE TEST(SEE IF LINEAR INTERPOLABLE) 06929000
+ IF(ABS(SIGLIC).LT.1.E-5) GO TO 420 06930000
+ IF(ABS((SIGLIC-SC1)/SIGLIC).GT.PRECIS) GO TO 450 06931000
+ 420 IF(ABS(SIGLIF).LT.1.E-5) GO TO 422 06932000
+ IF(ABS((SIGLIF-SF1)/SIGLIF).GT.PRECIS) GO TO 450 06933000
+ 422 IF(ABS(SIGLIS).LT.1.E-5) GO TO 400 06934000
+ IF(ABS((SIGLIS-SS1)/SIGLIS).GT.PRECIS) GO TO 450 06935000
+C CONVERGENCE HAS BEEN REACHED 06936000
+ 400 CONTINUE 06937000
+C NEXT SUBINTERVAL IS TO BE SUBDIVIDED 06938000
+C NEW A POINT IS OLD B ( PUT B IN A) 06939000
+C KP(A) IS DEFINED AS THE POINT AFTER A FOR REORDERING ROUTINE 06940000
+ KP(NPA)=NPB 06941000
+C DEFINE NEW A POINT 06942000
+ NPA=NPB 06943000
+ EA=EB 06944000
+ SIGCA=SIGCB 06945000
+ SIGFA=SIGFB 06946000
+ SIGSA=SIGSB 06947000
+C NEW B POINT IS THE ONE FOLLOWING NEW A POINT 06948000
+ NPB=KP(NPA) 06949000
+ IF(NPB.LE.0) GO TO 10 06950000
+C SUBINTERVALS ARE FINISHED.KP(NPB) WILL BE DEFINED AT 06951000
+C AT NEXT TURN IN LOOP 10 OR 40 06952000
+ EB=EP(NPB) 06953000
+ SIGCB=SC(NPB) 06954000
+ SIGFB=SF(NPB) 06955000
+ SIGSB=SS(NPB) 06956000
+ GO TO 40 06957000
+ 450 CONTINUE 06958000
+C CONVERGENCE HAS NOT BEEN REACHED. ADD C POINT 06959000
+ EP(NP)=EC 06960000
+ SC(NP)=SC1 06961000
+ SF(NP)=SF1 06962000
+ SS(NP)=SS1 06963000
+ KP(NP)=NPB 06964000
+ NP=NP+1 06965000
+C NP MUST ALWAYS LESS THAN NPMAX. TO FASTEN THE INNER LOOP 06966000
+C THIS CONDITION IS CHECKED ONLY IN LOOP 10 06967000
+C IF(NP.GT.MAXNP) CALL ERR(8HLINSIG ,450) 06968000
+C NEW POINT B IS POINT C JUST ADDED 06969000
+ NPB=NP-1 06970000
+ EB=EP(NPB) 06971000
+ SIGCB=SC(NPB) 06972000
+ SIGFB=SF(NPB) 06973000
+ SIGSB=SS(NPB) 06974000
+ GO TO 40 06975000
+C END OF LOOP ON SUBINTERVAL SUBDIVISION 06976000
+ 10 CONTINUE 06977000
+ NP=NP-1 06978000
+C 06979000
+C ORDERING ROUTINE 06980000
+ CALL ORDPU1(NP,EP,SC,SF,SS,KP,EPFIN,SCFIN,SFFIN,SSFIN) 06981000
+ RETURN 06982000
+ END 06983000
+ SUBROUTINE LINSI1(NE,E,S,KT,NF,EF,SF,EP,SP,KP,PRECIS,E1,E2) 06984000
+C *************************************************** 06985000
+C LINEARIZE TABULATED ENDFB DATA 06986000
+C BETWEEN E1,E2 ENERGY LIMITS 06987000
+C -- ENERGY IN INCREASING ORDER -- 06988000
+C KT E S (N) INPUT 06989000
+C ES SF (NF) OUTPUT (ORDERED POINTS) 06990000
+C EP SP KP SCRATCH SPACE FOR INSERTED POINTS 06991000
+C PRECIS REQUIRED PRECISION 06992000
+C 06993000
+C *************************************************** 06994000
+C 06995000
+ DIMENSION E(NE),S(NE),KT(NE),EF(NF),SF(NF) 06996000
+ DIMENSION EP(NF),SP(NF),KP(NF) 06997000
+C 06998000
+C FIND FIRST E -POINT 06999000
+ N1=1 07000000
+ DO 5 I=1,NE 07001000
+ IF(E(I).LT.E2) GO TO 5 07002000
+ N1=I-1 07003000
+ GOTO 100 07004000
+ 5 CONTINUE 07005000
+C 07006000
+C FIND LAST E POINT 07007000
+ 100 N2=NE 07008000
+ DO 6 I=1,NE 07009000
+ I1=NE-I+1 07010000
+ IF(E(I1).GT.E1) GO TO 6 07011000
+ N2=I1+1 07012000
+ GO TO 101 07013000
+ 6 CONTINUE 07014000
+ 101 CONTINUE 07015000
+C 07016000
+C NP= COUNTERS FOR INSERTED POINTS 07017000
+ NP=1 07018000
+C FIRST POINT 07019000
+ EP(1)=E(N1) 07020000
+ SP(1)=S(N1) 07021000
+ KP(1)=0 07022000
+C KP WILL BE REDEFINED AFTER 07023000
+ NPREC=1 07024000
+ NP=NP +1 07025000
+ N11=N1+1 07026000
+ DO 10 IE=N11,N2 07027000
+C FIX FIRST POINT OF INTERVAL 07028000
+ NPA=NPREC 07029000
+ EA=EP(NPA) 07030000
+ SIGA=SP(NPA) 07031000
+ KTIE=KT(IE) 07032000
+C FIX SECOND POINT OF INTERVAL 07033000
+ EP(NP)=E(IE) 07034000
+ KP(NP)=0 07035000
+ SP(NP)=S(IE) 07036000
+C 07037000
+ NPB=NP 07038000
+ NP=NP+1 07039000
+ IF(NP.GT.NF) CALL ERR(8HLINSI1 ,0) 07040000
+ EB=EP(NPB) 07041000
+ SIGB=SP(NPB) 07042000
+ NPREC=NPB 07043000
+ KP(NPA)=NPB 07044000
+C ................. LOOP TO SUBDIVIDE INTERVALS 07045000
+ 40 CONTINUE 07046000
+ IF(EA.LT.1.E-10) GO TO 102 07047000
+ IF(ABS((EA-EB)/EA).LT.0.0001) GO TO 400 07048000
+ 102 CONTINUE 07049000
+ EC=(EB-EA)/2.+EA 07050000
+ IF(ABS(EC).LT.1.E-2) EC=1.E-4 07051000
+ CALL TERP1(EA,SIGA,EB,SIGB,EC,SIGC,KTIE) 07052000
+ 105 SIGLIN=(SIGB-SIGA)/(EB-EA)*(EC-EA)+SIGA 07053000
+ IF(ABS(SIGLIN).LT.1.E-5) GO TO 400 07054000
+ IF(ABS((SIGLIN-SIGC)/SIGLIN).GT.PRECIS) GO TO 450 07055000
+ 400 CONTINUE 07056000
+C NEXT SUBINTERVAL MUST BE SUBDIVIDED 07057000
+C CONVERGENCE HAS BEEN REACHED 07058000
+C NEW POINT A IS OLD POINT B ( PUT B IN A) 07059000
+ KP(NPA)=NPB 07060000
+C NEW A POINT 07061000
+ NPA=NPB 07062000
+ EA=EB 07063000
+ SIGA=SIGB 07064000
+C NEW B POINT 07065000
+ NPB=KP(NPA) 07066000
+ IF(NPB.LE.0) GO TO 10 07067000
+C INTERVAL IS EXAUSTED 07068000
+ EB=EP(NPB) 07069000
+ SIGB=SP(NPB) 07070000
+ GO TO 40 07071000
+ 450 CONTINUE 07072000
+C CONVERGENCE HAS NOT BEEN REACHED 07073000
+C ADD POINT C 07074000
+ EP(NP)=EC 07075000
+ SP(NP)=SIGC 07076000
+ KP(NP)=NPB 07077000
+ NP=NP+1 07078000
+ IF(NP.GT.NF) CALL ERR(8HLINSI1 , 450) 07079000
+C NEW POINT B IS POINT C JUST ADDED 07080000
+ NPB=NP-1 07081000
+ EB=EP(NPB) 07082000
+ SIGB=SP(NPB) 07083000
+ GO TO 40 07084000
+C END OF LOOP ON SUBINTERVAL DIVISION 07085000
+ 10 CONTINUE 07086000
+ NP=NP-1 07087000
+ NF=NP 07088000
+ CALL ORDPU3(NP,EP,SP,KP,NF,EF,SF) 07089000
+C NF=NUMBER OF FINAL POINTS :RETURNED FROM ORDPU2 07090000
+ RETURN 07091000
+ END 07092000
+ SUBROUTINE BROAD(N,T,AWR,E,S,EA,SA,C,A) 07093000
+C ****************************************** 07094000
+C 07095000
+C DOPPLER BROADENING OF LINEAR TABULATED CROSS SECTIONS 07096000
+C FOLLOWING THE METHOD IN : CULLEN WEISBIN 07097000
+C NUCL SCI ENG 60,199 (1976) 07098000
+C 07099000
+C THIS ROUTINE HAS BEEN WRITTEN BY GABRIELE FIONI 07100000
+C 07101000
+C 07102000
+C WARNING! : THIS ROUTINE IS NOT SUITED FOR VERY LOW ENERGY 07103000
+C 07104000
+C SUBROUTINE PER ALLARGARE DOPPLER SEZIONI D'URTO 07105000
+C 07106000
+C ARGOMENTI: N NUMERO DI PUNTI DA ALLARGARE 07107000
+C T TEMPERATURA A CUI SI VUOLE ALLARGARE 07108000
+C AWR NUMERO DI MASSA DEL NUCLIDE CONSIDERATO 07109000
+C E ARRAY CONTENENTE ENERGIA DEI PT 07110000
+C S VALORI SEZIONI D'URTO RELATIVE AD E 07111000
+C SA ARRAY SEZIONI ALLARGATE 07112000
+C EA ENERGIE DELLE MEDESIME 07113000
+C C , A :WORK ARRAYS 07114000
+C 07115000
+C ENERGIE E SIGMA INPUT ED OUTPUT SONO IN ORDINE DI ENERG CRESCENTE 07116000
+C 07117000
+C ************************************************************** 07118000
+C 07119000
+C 07120000
+ COMMON /FILES/NT(4,99) 07121000
+ DIMENSION A(N),C(N),E(N),S(N),EA(N),SA(N),IDISC(30) 07122000
+ DOUBLE PRECISION SUP,SINF,PI,RAIPI,DER,DEX,F1ORA,F1PRE,F2ORA,F2PRE07123000
+ C,SINT1,SINT2 07124000
+ DATA PI/3.14159265358979/ 07125000
+ ALFA=11605.3*AWR/T 07126000
+ RAIPI=1.0/DSQRT(PI) 07127000
+ NO=NT(1,6) 07128000
+ NP=NT(1,11) 07129000
+C WRITE(NP,9000) T 07130000
+C WRITE(NO,9000) T 07131000
+C9000 FORMAT(' DOPPLER BROADENING OF THE TABULATED CROSS SECTION', 07132000
+C 1 ' TEMPERATURE:',E12.5) 07133000
+C 07134000
+C CONVERSIONE DA ENERGIA A VELOCITA'(Y**2=ALFA*EA) 07135000
+C 07136000
+ DO 10 L=1,N 07137000
+ IF(E(L).LT.1.0E-12) E(L)=1.0E-12 07138000
+ 10 EA(L)=SQRT(ALFA*E(L)) 07139000
+C CREAZIONE TABELLA DI DISCONTINUITA' 07140000
+ NM1=N-1 07141000
+ K=0 07142000
+ DO 11 I=1,NM1 07143000
+ IF(EA(I).NE.EA(I+1)) GOTO 11 07144000
+ K=K+1 07145000
+ IDISC(K)=I 07146000
+ 11 CONTINUE 07147000
+ KDISC=K+1 07148000
+ IDISC(KDISC)=N 07149000
+C 07150000
+C CALCOLO COSTANTI AK & CK 07151000
+C 07152000
+ DO 15 K=1,N 07153000
+ EK1=EA(K+1)**2 07154000
+ EK=EA(K)**2 07155000
+ EDIF=EK1-EK 07156000
+ IF(EDIF.EQ.0.) GOTO 13 07157000
+ A(K)=(EK1*S(K)-EK*S(K+1))/EDIF 07158000
+ C(K)=(S(K+1)-S(K))/EDIF 07159000
+ GOTO 15 07160000
+ 13 IF(K.EQ.1) GOTO 15 07161000
+ A(K)=A(K-1) 07162000
+ C(K)=C(K-1) 07163000
+ 15 CONTINUE 07164000
+C 07165000
+C *************** CALCOLO INTEGRALE SIGMA* (Y,T) ***************** 07166000
+C 07167000
+C LOOP SU TUTTI I VALORI PER ALLARGARLI 07168000
+C 07169000
+ NCW=0 07170000
+ NLL=1 07171000
+ DO 500 LP=1,KDISC 07172000
+ NHH=IDISC(LP) 07173000
+ DO 100 I=NLL,NHH 07174000
+ Y=EA(I) 07175000
+ IF(Y.GT.4.) GOTO 20 07176000
+C 07177000
+C SCRITTA DI WARNING CAUSATA DAL NON VERIFICARSI DELLA CONDIZIONE 07178000
+C AE/KT > 16. IN QUESTO CASO BISOGNEREBBE CALCOLARE ANCHE L'ALTRO 07179000
+C PEZZO DELL'INTEGRALE. NEI CALCOLI A CUI E' DESTINATE LA CATENA 07180000
+C C2RV, DETTO CALCOLO E' TRASCURABILE: INFLUENZA SOLO GRUPPI ALTI 07181000
+C NCW=NCW+1 07182000
+C IF(NCW.GT.1) GOTO 18 07183000
+C WRITE(NO,1000) E(I) 07184000
+ WRITE(NP,1000) E(I) 07185000
+ 1000 FORMAT(' WARNING!! APPROXIMATED DOPPLER BROADENING ! ENERGY:', 07186000
+ 1 E12.5) 07187000
+ 18 SA(I)=S(I) 07188000
+ GOTO 100 07189000
+ 20 YY=Y*Y 07190000
+ Y3=YY*Y*4 07191000
+ Y4=YY*YY 07192000
+ DERF1C=0.5+YY 07193000
+ DERF2C=0.75+3*YY+Y4 07194000
+ DEXF2C=1.5+6*YY 07195000
+ YC=4*Y 07196000
+ KINF=I+1 07197000
+ SINT1=0. 07198000
+ SINT2=0. 07199000
+C 07200000
+C INTEGRALE SOPRA IL PUNTO Y 07201000
+C 07202000
+C SONO ALL'ESTREMO DESTRO DELL'INTERVALLO? (SI=CONTINUARE COME 1/V) 07203000
+C DISCONTINUITA' A DESTRA? 07204000
+ IF(I.EQ.NHH) GOTO 33 07205000
+C SONO NEL RANGE DI DISCONTINUITA' ? 07206000
+ IF((Y+4).GT.EA(NHH)) GOTO 33 07207000
+ F1ORA=-2*RAIPI*Y 07208000
+ F2ORA=-RAIPI*(YC+Y3) 07209000
+ DO 30 J=KINF,N 07210000
+C VALORI INTEGRALI PRECEDENTE INTERVALLO 07211000
+ F1PRE=F1ORA 07212000
+ F2PRE=F2ORA 07213000
+C LIMITI INTERVALLO 07214000
+ SUP=EA(J)-Y 07215000
+ IF(SUP.LT.4.) GOTO 25 07216000
+ SUP=4. 07217000
+C CALCOLO VALORI DUE INTEGRALI 07218000
+ 25 DER=DERF(SUP) 07219000
+ DEX=DEXP(-SUP*SUP) 07220000
+ F1ORA=DERF1C*DER-RAIPI*(SUP+2*Y)*DEX 07221000
+ F2ORA=DERF2C*DER-RAIPI*(SUP*(DEXF2C+SUP*(YC+SUP))+Y3+YC)*DEX 07222000
+ SINT1=A(J-1)*(F1ORA-F1PRE)+SINT1 07223000
+ SINT2=C(J-1)*(F2ORA-F2PRE)+SINT2 07224000
+ IF(SUP.GE.4.) GOTO 35 07225000
+ 30 CONTINUE 07226000
+C CONTINUAZIONE NELLA DISCONTINUITA' 07227000
+ 33 SINT1=SINT1+S(I)*EA(I)*(Y+RAIPI) 07228000
+C 07229000
+C INTEGRALE SOTTO Y 07230000
+C 07231000
+C NON CI SONO PUNTI A SINISTRA? 07232000
+ 35 KORA=0 07233000
+C DISCONTINUITA' A SINISTRA ? 07234000
+ IF(I.EQ.NLL) GOTO 53 07235000
+C RANGE DI DISCONTINUITA' A SINISTRA? 07236000
+ IF((Y-4).LT.EA(NLL)) GOTO 53 07237000
+ NM1=I-1 07238000
+ KORA=I 07239000
+ F1ORA=-2*RAIPI*Y 07240000
+ F2ORA=-RAIPI*(YC+Y3) 07241000
+ DO 50 J=1,NM1 07242000
+ KORA=KORA-1 07243000
+ IF(KORA.LE.0) GOTO 60 07244000
+ SINF=EA(KORA)-Y 07245000
+ IF(SINF.GT.-4.) GOTO 40 07246000
+ SINF=-4. 07247000
+ 40 F1PRE=F1ORA 07248000
+ F2PRE=F2ORA 07249000
+ DER=DERF(SINF) 07250000
+ DEX=DEXP(-SINF*SINF) 07251000
+ F1ORA=DERF1C*DER-RAIPI*(SINF+2*Y)*DEX 07252000
+ F2ORA=DERF2C*DER-RAIPI*(SINF*(DEXF2C+SINF*(YC+SINF))+Y3+YC)*DEX 07253000
+ SINT1=A(KORA)*(F1PRE-F1ORA)+SINT1 07254000
+ SINT2=C(KORA)*(F2PRE-F2ORA)+SINT2 07255000
+ IF(SINF.LE.-4.) GOTO 60 07256000
+ 50 CONTINUE 07257000
+C CONTINUAZIONE PER DISCONTINUITA' SINISTRA 07258000
+ 53 SINT1=SINT1+S(I)*EA(I)*(Y-RAIPI) 07259000
+ 60 SA(I)=1/(2*YY)*(SINT1+SINT2) 07260000
+ 100 CONTINUE 07261000
+ NLL=NHH+1 07262000
+ 500 CONTINUE 07263000
+ RETURN 07264000
+ END 07265000
+ SUBROUTINE NII(NTI,NTIN,NTO,NTOUT,NMT,M2,MINDX1,AINDX,M1,MIX,MA,A,07266000
+ 1EUP,DELU,NG) 07267000
+C ******************************************************************07268000
+C NI COEFFICIENTS COMPUTATION FOR MCC2F5 FILE, RECORD 2 07269000
+C NI=A0+A1E+A2E**2+A3 E**3 07270000
+C ******************************************************************07271000
+C 07272000
+C PUNTI AGGIUNTI PER L'ENERGIA 07273000
+ DIMENSION EADD(19),IT(6) 07274000
+ DATA EADD/.1E6,.25E6,.5E6,.75E6,1.E6,1.25E6,1.5E6,1.75E6,2.E6, 07275000
+ A2.5E6,3.E6,3.5E6,4.E6,5.E6,6.5E6,9.E6,10.E6,12.E6,15.E6/ 07276000
+C 07277000
+C 07278000
+ COMMON /INDX1/INDX1(40,200) 07279000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 07280000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 07281000
+C 07282000
+ COMMON MAXA,AD(10000) 07283000
+C 07284000
+ COMMON/FILES/NT(4,99) 07285000
+ EQUIVALENCE(NP,NT(1,11)),(NO,NT(1,6)) 07286000
+ COMMON/OPZIO/ OPZ(4,8,10) 07287000
+C 07288000
+ COMMON /DIMC/MMA,MIND1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 07289000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 07290000
+C 07291000
+ DIMENSION AINDX(MINDX1),A(MA),MIX(M1,M2) 07292000
+ COMMON /DIM/M(3),IND2 07293000
+C 07294000
+ WRITE(NP,9000) AINDX(35),AINDX(36) 07295000
+ 9000 FORMAT(1X,2A4,' NU CALCULATED') 07296000
+C 07297000
+C PER I 4 COEFF CHE DESCRIVONO NI 07298000
+ DO 10 I=1,4 07299000
+ 10 A(I)=0. 07300000
+ IF(AINDX(10).EQ.2) GO TO 100 07301000
+ IF(AINDX(10).NE.1) CALL ERR(8H NI ,0 ) 07302000
+C NON IN UN LIST COME ESPRESSIONE POLINIMIALE, MA 4 COEFF MAX(COME 07303000
+C F5 ) NELL INDICE 07304000
+C SCRITTURA (SOLO DELL INDICE) PER 4 COEFF 07305000
+ IF(AINDX(11).LE.0) CALL ERR(8H NI ,1) 07306000
+ NC=AINDX(11) 07307000
+ DO 20 I=1,NC 07308000
+ 20 A(I)=AINDX(11+I) 07309000
+ ANTO=0. 07310000
+ ANTOUT=0. 07311000
+ AREC1=0. 07312000
+ ARECN=0. 07313000
+ ANWDS=0. 07314000
+ NUME=0. 07315000
+ AKT=0. 07316000
+C VA A SCRIVERE NELL INDICE 07317000
+ GO TO 200 07318000
+ 100 CONTINUE 07319000
+C TABULATO IN UN TAB1 07320000
+ NTIN=AINDX(23) 07321000
+ NTI=NT(1,NTIN) 07322000
+C HEAD RECORD IS NOT READ. NPOST INCREASED BY 1 07323000
+ NPOST=AINDX(25) +1 07324000
+ CALL POST(NTIN,NPOST) 07325000
+ T=AINDX(7) 07326000
+C LETTURA RECORDS IN RECS 07327000
+C LETTURA HEAD NON EFFETTUATA ANCHE SE SI PUNTA LI' 07328000
+C CALL RREC(1,NTI,3,T) 07329000
+C LETTURA TAB1 07330000
+ CALL RREC(3,NTI,3,T) 07331000
+ NT(4,NTIN)=NT(4,NTIN)+1+N2/3+NREST(N2,3)+N1/3+NREST(N1,3) 07332000
+C 07333000
+C SET ENERGY POINTS 07334000
+ DO 30 I=1,N2 07335000
+ 30 A(4+I)=AD(LX+I-1) 07336000
+ DO 40 I=1,19 07337000
+ 40 A(N2+4+I)=EADD(I) 07338000
+ NUME=N2+19 07339000
+ LLA=4+NUME+1 07340000
+C A(1) : A(4) = NU COEFFICIENTS 07341000
+C A(5) : A(5+N2+19) = TAB1 ENERGIES + ADDED ENERGY 07342000
+C ( N2+19 =NUME) POINTS 07343000
+C A(LLA):A(LLA+NUME)= Y(X) OBTAINED BY INTERPOLATION 07344000
+C A(LLKT):A(LLKT+NUME)= INTERPOLATION CODES 07345000
+C 07346000
+ LLKT=LLA+NUME+1 07347000
+ CALL TERP1T(N1,N2,NBT,JNT,A(LLKT)) 07348000
+ IF(LLKT+NUME.GT.MA) CALL ERR(8H NII ,40) 07349000
+ CALL ORD(NUME,A(5)) 07350000
+ DO 50 I=1,NUME 07351000
+ CALL TERPET(AD(LX),AD(LY),A(LLKT),N2,A(4+I),A(LLA+I-1), 07352000
+ 1 LFLAG,LFLAG1) 07353000
+ 50 CONTINUE 07354000
+ CALL GNUFT(A(5),A(LLA),NUME,A) 07355000
+C 07356000
+C SCRIVE SU FILE NTO LA TABULAZIONE DEL NU DELLA PARTE 2 DI MCC2F707357000
+ CALL POSL(NTOUT) 07358000
+ ANTO=NTO 07359000
+ ANTOUT=NTOUT 07360000
+ AREC1=NT(3,NTOUT) 07361000
+ ARECN=1. 07362000
+ NUME=N2 07363000
+ ANWDS=NUME*2 07364000
+ AKT=3. 07365000
+ IF(N1.GT.1) GO TO 110 07366000
+ KT=JNT(1) 07367000
+C MUTA LA TABULAZ DI ENDFB IN QUELLA DI MC2-2 07368000
+ IF(KT.EQ.1) AKT=0. 07369000
+ IF(KT.EQ.2) AKT=3. 07370000
+ IF(KT.EQ.3) AKT=2. 07371000
+ IF(KT.EQ.4) AKT=4. 07372000
+ IF(KT.EQ.5) AKT=1. 07373000
+ GO TO 120 07374000
+ 110 CALL ERR(8HNII ,110) 07375000
+C LINEAR INTERPOLATION IS ASSUMED 07376000
+ 120 CONTINUE 07377000
+ WRITE(NTO) (AD(NUME-J+LX),J=1,NUME),(AD(NUME-J+LY),J=1,NUME) 07378000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 07379000
+ NT(3,NTOUT)=NT(4,NTOUT) 07380000
+C 07381000
+ 200 CONTINUE 07382000
+C ARRIVA QUI SENZA IDENTIFICATORI IL NUCLIDE E QUI NON METTO IDENTIF07383000
+ IF(NMT.GT.M2) GO TO 600 07384000
+ NOM=MIX(3,NMT) 07385000
+ NOM1=MIX(4,NMT) 07386000
+ NOM2=MIX(1,NMT) 07387000
+ NOM3=MIX(2,NMT) 07388000
+ GO TO 610 07389000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT07390000
+ 600 NOM=NAREAL(AINDX(35)) 07391000
+ NOM1=NAREAL(AINDX(36)) 07392000
+ NOM2=NAREAL(AINDX(35)) 07393000
+ NOM3=NAREAL(AINDX(36)) 07394000
+ 610 CONTINUE 07395000
+C METTE SOLO IN INDICE NON IN FILE SECONDA SERIE 07396000
+ IND2=IND2+1 07397000
+ IF(IND2.GT.MIND12) CALL ERR(8H NII ,610) 07398000
+ CALL EMPIN (MIND11,INDX1(1,IND2), 07399000
+ 1AINDX(1),AINDX(2),AINDX(3),AINDX(4),AINDX(5), 07400000
+ 2NOM,NOM1,NOM2,NOM3,0.,5.,2.,11.,ANTO,ANTOUT,AREC1,ARECN,ANWDS, 07401000
+ 3 FLOAT(NUME),FLOAT(NG),EUP,DELU,0.,0.,5.,0., 07402000
+ 4AINDX(10),AINDX(11),AKT, 07403000
+ 50.,0.,0.,0.,A(1),A(2),A(3),A(4), 07404000
+ 60.,0.,0.) 07405000
+ RETURN 07406000
+ END 07407000
+ SUBROUTINE TERPET(X,Y,IT,NX,Z,A,M,L) 07408000
+C ************************************************************ 07409000
+C THIS ROUTINE HAS BEEN TAKEN FROM ETOE CODE 07410000
+C ******************************************************** 07411000
+C 07412000
+C SUBROUTINE TERP INTERPOLATES BETWEEN VALUES OF Y. 07413000
+C MODIFIED BY D.M. GREEN 10/3/66 TO EXTRAPOLATE 07414000
+C 07415000
+C X,Y COORDINATE PAIRS SUPPLIED TO SUBROUTINE TERP. 07416000
+C IT INTERPOLATION SCHEME. GIVEN FOR EACH X,Y PAIR. 07417000
+C NX NUMBER OF X,Y PAIRS GIVEN. 07418000
+C Z GIVEN VALUE OF X. 07419000
+C A INTERPOLATED VALUE OF Y(Z). 07420000
+C M VALUE OF Z LIES BETWEEN X(M) AND X(M+1) OR =X(M)07421000
+C L =0 NORMAL RETURN. 07422000
+C =1 Z LESS THAN X(1). 07423000
+C =2 Z GREATER THAN X(NX). 07424000
+C 07425000
+C SUBROUTINES CALLED BY SUBROUTINE TERP. 07426000
+C 07427000
+C DLOG FORTRAN NATURAL LOGRITHM (DOUBLE PRECISION). 07428000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION).07429000
+C ERROR PRINTS AND CONTROLS ERROR MESSAGES 07430000
+C 07431000
+C 07432000
+C DECLARE LITERIAL CONSTANTS AS DOUBLE PRECISION 07433000
+C 07434000
+ DOUBLE PRECISION SUBNAM 07435000
+ DIMENSION X(1),Y(1),IT(1) 07436000
+ DATA SUBNAM/6HTERPET/ 07437000
+C 07438000
+C***********************************************************************07439000
+C 07440000
+C CHANGE DOUBLE PRECISION SYSTEM FUNCTION TO SINGLE PRECISION. 07441000
+C 07442000
+C DLOG(X)=ALOG(X) 07443000
+C DEXP(X)=EXP(X) 07444000
+C 07445000
+C***********************************************************************07446000
+C 07447000
+ L=0 07448000
+ IF(Z-X(1))20,30,30 07449000
+ 20 CONTINUE 07450000
+ L=1 07451000
+ M=1 07452000
+ GO TO 60 07453000
+ 30 CONTINUE 07454000
+ IF(NX.LE.0) GO TO 41 07455000
+ DO 40 N=1,NX 07456000
+ M=N-1 07457000
+ IF(X(N)-Z) 40,50,60 07458000
+ 40 CONTINUE 07459000
+ 41 CONTINUE 07460000
+ L=2 07461000
+ M=NX-1 07462000
+ GO TO 60 07463000
+ 50 CONTINUE 07464000
+ M=N 07465000
+ A=Y(N) 07466000
+ GO TO 160 07467000
+ 60 CONTINUE 07468000
+ INT=IT(M+1) 07469000
+ IF(INT) 70,70,80 07470000
+ 70 CONTINUE 07471000
+C 07472000
+C ******************************************************************07473000
+C 07474000
+C ERROR=10000 07475000
+C INTERPOLATION CODE FOR M+1 POINT IS NOT A POSITIVE NUMBER. 07476000
+C SET EQUAL TO 2. 07477000
+C 07478000
+C ******************************************************************07479000
+C 07480000
+ NERR=10000 07481000
+ CALL ERRORE(SUBNAM,NERR) 07482000
+ INT=2 07483000
+ GO TO 100 07484000
+ 80 CONTINUE 07485000
+ IF(INT-5) 100,100,90 07486000
+ 90 CONTINUE 07487000
+C 07488000
+C ******************************************************************07489000
+C 07490000
+C ERROR=20000 07491000
+C INTERPOLATION CODE IS GREATER THAN 5. SET EQUAL TO 2. 07492000
+C 07493000
+C ******************************************************************07494000
+C 07495000
+ NERR=20000 07496000
+ CALL ERRORE(SUBNAM,NERR) 07497000
+ INT=2 07498000
+ 100 CONTINUE 07499000
+ X1=X(M) 07500000
+ X2=X(M+1) 07501000
+ Y1=Y(M) 07502000
+ Y2=Y(M+1) 07503000
+ GO TO (110,120,130,140,150),INT 07504000
+ 110 CONTINUE 07505000
+ A=Y1 07506000
+ GO TO 160 07507000
+ 120 CONTINUE 07508000
+ IF(X2.EQ.X1) GO TO 110 07509000
+ A=Y1+(Z-X1)*(Y2-Y1)/(X2-X1) 07510000
+ GO TO 160 07511000
+ 130 CONTINUE 07512000
+ T1=Z/X1 07513000
+ T2=X2/X1 07514000
+ IF(T1.LE.0.) GO TO 120 07515000
+ IF(T2.LE.0.) GO TO 120 07516000
+ IF(T2.EQ.1.) GO TO 110 07517000
+ A=Y1+ALOG(T1)*(Y2-Y1)/ALOG(T2) 07518000
+ GO TO 160 07519000
+ 140 CONTINUE 07520000
+ T3=Y2/Y1 07521000
+ IF(T3.LE.0.) GO TO 120 07522000
+ A=Y1*T3**((Z-X1)/(X2-X1)) 07523000
+ GO TO 160 07524000
+ 150 CONTINUE 07525000
+ T1=Z/X1 07526000
+ T2=X2/X1 07527000
+ T3=Y2/Y1 07528000
+ IF(T1.LE.0.) GO TO 140 07529000
+ IF(T2.LE.0.) GO TO 140 07530000
+ IF(T2.EQ.1.) GO TO 110 07531000
+ IF(T3.LE.0.) GO TO 130 07532000
+ A=Y1*T3**(ALOG(T1)/ALOG(T2)) 07533000
+ 160 RETURN 07534000
+ END 07535000
+ SUBROUTINE TERP1T(NR,NP,NBT,INT,IT) 07536000
+C *************************************************** 07537000
+C THIS ROUTINE HAS BEEN TAKEN FROM ETOE PROGRAM 07538000
+C *************************************************** 07539000
+C 07540000
+C SUBROUTINE TERP1 SETS UP THE IT ARRAY NEEDED FOR SUBROUTINE 07541000
+C TERP. 07542000
+C 07543000
+C NR NUMBER OF INTERPOLATION REGIONS PROVIDED BY 07544000
+C ENDF/B. 07545000
+C NP NUMBER OF X,Y PAIRS GIVEN. 07546000
+C NBT NBT(M) IS THE VALUE OF THE TABULATED PAIRS 07547000
+C SEPARATING THE M AND M+1 INTERPOLATION REGIONS. 07548000
+C SUPPLIED BY DAMMET. 07549000
+C INT INT(M) IS THE INTERPOLATION SCHEME 07550000
+C IDENTIFICATION NUMBER USED IN THE M TH REGION. 07551000
+C SUPPLIED BY DAMMET. 07552000
+C IT INTERPOLATION SCHEME. GIVEN FOR EACH X,Y PAIR. 07553000
+C 07554000
+ DIMENSION NBT(NR),INT(NR),IT(NP) 07555000
+ IF(NR.LE.0) RETURN 07556000
+ N2=0 07557000
+ DO 10 IR=1,NR 07558000
+ N1=N2+1 07559000
+ N2=NBT(IR) 07560000
+ IF(N2.LT.N1)GO TO 10 07561000
+ DO 9 I=N1,N2 07562000
+ IT(I)=INT(IR) 07563000
+ 9 CONTINUE 07564000
+ 10 CONTINUE 07565000
+ 11 RETURN 07566000
+ END 07567000
+ SUBROUTINE GNUFT(X,Y,N,AA) 07568000
+C ***************************************************** 07569000
+C 07570000
+C ROUTINE TAKEN FROM ETOE CODE 07571000
+C QUESTA SUBROUTINE E' STATA PRESA DA ETOE-II. MEDIANTE IL 07572000
+C METODO DEI MINIMI QUADRATI RESTITUISCE I COEFFICIENTI DEL 07573000
+C POLINOMIO DEL TERZO ORDINE CHE FITTA IL NU 07574000
+C 07575000
+C X,Y COORDINATE PUNTI DA FITTARE 07576000
+C N NUMERO DI COPPIE 07577000
+C K ORDINE DEL POLINOMIO (PER NOI SOLO K=3) 07578000
+C AA COEFFICIENTI DEL POLINOMIO 07579000
+C 07580000
+C SUBROUTINES CHIAMATE 07581000
+C SMEQ CALCOLA I COEFFICIENTI DEL SISTEMA DEI MINIMI 07582000
+C 07583000
+C 07584000
+ DIMENSION X(N),Y(N),A(4,5),AA(4) 07585000
+ M2=2 07586000
+ M4=4 07587000
+ M5=5 07588000
+C SBIANCA ARRAY A(I,J) 07589000
+ DO 10 J=1,5 07590000
+ DO 10 I=1,4 07591000
+ A(I,J)=0. 07592000
+ 10 CONTINUE 07593000
+C 07594000
+C FORMA MATRICE A(I,J)-VEDI TEORIA MINIMI QUADRATI 07595000
+C HILDEBRAND-"INTRODUCTION TO NUMERICAL ANALYSIS" 07596000
+C 07597000
+ IF (N.LE.0) GOTO25 07598000
+ DO 20 I=1,N 07599000
+ X2=X(I)**2 07600000
+ X4=X2**2 07601000
+ A(1,2)=A(1,2)+X(I) 07602000
+ A(1,3)=A(1,3)+X2 07603000
+ A(1,4)=A(1,4)+X2*X(I) 07604000
+ A(2,4)=A(2,4)+X4 07605000
+ A(3,4)=A(3,4)+X4*X(I) 07606000
+ A(4,4)=A(4,4)+X4*X2 07607000
+ A(1,5)=A(1,5)+Y(I) 07608000
+ A(2,5)=A(2,5)+Y(I)*X(I) 07609000
+ A(3,5)=A(3,5)+Y(I)*X2 07610000
+ A(4,5)=A(4,5)+Y(I)*X2*X(I) 07611000
+ 20 CONTINUE 07612000
+ 25 CONTINUE 07613000
+ A(1,1)=N 07614000
+ A(2,1)=A(1,2) 07615000
+ A(2,2)=A(1,3) 07616000
+ A(2,3)=A(1,4) 07617000
+ A(3,1)=A(1,3) 07618000
+ A(3,2)=A(2,3) 07619000
+ A(3,3)=A(2,4) 07620000
+ A(4,1)=A(1,4) 07621000
+ A(4,2)=A(2,4) 07622000
+ A(4,3)=A(3,4) 07623000
+ CALL SMEQ(M4,M4,M5,A) 07624000
+C CALCOLO E STAMPA ERRORE 07625000
+C WRITE (85,1600) 07626000
+C DO 29 I=1,N 07627000
+C X2=((A(4,5)*X(I)+A(3,5))*X(I)+A(2,5))*X(I)+A(1,5) 07628000
+C X4=0. 07629000
+C IF(Y(I).NE.0.) X4=100.*(X2-Y(I))/Y(I) 07630000
+C WRITE (85,1601) X(I),Y(I),X2,X4 07631000
+C 29 CONTINUE 07632000
+C 07633000
+C CARICAMENTO COEFFICIENTI IN AA (SI TROVANO NEL TERMINE NOTO) 07634000
+C 07635000
+ DO 30 I=1,4 07636000
+ AA(I)=A(I,5) 07637000
+ 30 CONTINUE 07638000
+C1600 FORMAT(45H0 ENERGY GNU IN GNU FIT ERROR ) 07639000
+C1601 FORMAT(1X,1P4E11.3) 07640000
+ RETURN 07641000
+ END 07642000
+ SUBROUTINE SMEQ(N,NX1,NX2,A) 07643000
+C ******************************************** 07644000
+C 07645000
+C SUBROUTINE PRESA INTEGRALMENTE DA ETOE-II 07646000
+C EFFETTUA IL CALCOLO PER OTTENERE I COEFFICIENTI DI UN 07647000
+C SISTEMA DI N EQUAZIONI. 07648000
+C 07649000
+C N NUMERO DELLE EQUAZIONI 07650000
+C NX1,NX2 DIMENSIONI DI A 07651000
+C A MATRICE DATA 07652000
+C 07653000
+C 07654000
+ DIMENSION A(NX1,NX2) 07655000
+ N1=N-1 07656000
+ IF(N1.LE.0)GOTO 11 07657000
+ DO 10 I=1,N1 07658000
+ I2=I+1 07659000
+ DO 10 J=I,N 07660000
+ A(I,J+1)=A(I,J+1)/A(I,I) 07661000
+ DO 10 I1=I2,N 07662000
+ A(I1,J+1)=A(I1,J+1)-A(I1,I)*A(I,J+1) 07663000
+ 10 CONTINUE 07664000
+ 11 CONTINUE 07665000
+ A(N,N+1)=A(N,N+1)/A(N,N) 07666000
+ IF(N1.LE.0) GOTO 21 07667000
+ DO 20 I=1,N1 07668000
+ I1=N-I 07669000
+ DO 20 J=1,I 07670000
+ J1=N-J+1 07671000
+ A(I1,N+1)=A(I1,N+1)-A(I1,J1)*A(J1,N+1) 07672000
+ 20 CONTINUE 07673000
+ 21 RETURN 07674000
+ END 07675000
+ SUBROUTINE P2MCF6(MA,A,M1,M2,MIX,KB1,INDIND,KB,INDMIX,NG,E) 07676000
+C *******************************************************8 07677000
+C 07678000
+C SECONDARY ENERGY DISTRIBUTION FOR FILE MCC2F6 07679000
+C 07680000
+C *********************************************************** 07681000
+C 07682000
+C 07683000
+C IN A SPAZIO SCRATCH , IN E LE ENERGIE DEI GRUPPI(NG+1 VALORI) 07684000
+C IN MIX LA MIXING DELL F3 07685000
+C IN INDMIX INDICE DI MIX 07686000
+C (1 ) = VALORE 07687000
+C (2 ) = INIZIO VALORE 07688000
+C (3 ) = DIMENSIONI VALORE 07689000
+C PER INDIND: 07690000
+C (1,2 = VALORE ( REAL*8) 07691000
+C (3 = INIZIO 07692000
+C (4 = DIMENSIONI 07693000
+C 07694000
+C 07695000
+C 07696000
+C ********************************************** 07697000
+C 07698000
+ DIMENSION A(MA),MIX(M1,M2),E(NG) 07699000
+ DIMENSION INDMIX(3,KB),INDIND(4,KB1) 07700000
+ COMMON /INDX1/AINDX1(40,200) 07701000
+ COMMON /INDX/AINDX(40,200) 07702000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 07703000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 07704000
+ COMMON/DIM/M(5) 07705000
+ EQUIVALENCE (M(2),IND) 07706000
+ COMMON/OPZIO/ OPZ(4,8,10) 07707000
+ COMMON/FILES/NT(4,99) 07708000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 07709000
+ EQUIVALENCE (OPZ(2,6,1),STMP),(NP12,NT(1,12)) 07710000
+C NUMERO SOTTO CUI SIGMA SONO CONSIDERATE NULLE 07711000
+ EQUIVALENCE(OPZ(2,6,3),EPS) 07712000
+C DEFINIZIONE STRUTTURA ENERGETICA 07713000
+ EQUIVALENCE(EUP,OPZ(2,5,2)),(DELU,OPZ(2,5,3)) 07714000
+C 07715000
+C GLI IR SONO I NUMERI DEI RECORD DI INDICE CONTENENTE IL DAT07716000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 07717000
+ 7000 FORMAT(' P2MCF6 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 07718000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 07719000
+C 07720000
+ IRANEL=0 07721000
+ IRN2N=0 07722000
+C 07723000
+C 07724000
+C LOOP SUI MATERIALI DELL INDICE .......................... 07725000
+C L INDICE E ORDINATO PER MATERIALI, IL LOOP E SULL INDICE DI 07726000
+C IND(NOMI MATERIALI) 07727000
+C 07728000
+C 07729000
+ DO 10 IS=1,KB1 07730000
+C N1,N2,N3 = LIMITI DI ENTRO CUI E' IL MATERIALE IN IND07731000
+ N1S=INDIND(3,IS) 07732000
+ N2S=INDIND(4,IS) 07733000
+ N3S=N1S+N2S-1 07734000
+C NCERC E LA POSIZIONE DELL ISOTOPO IN MIX 07735000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1S,35,3,1) 07736000
+C 07737000
+ IF(NMT.LE.0) GO TO 10 07738000
+C SE IL MATERIALE NON E' IN MIX VIENE SALTATO 07739000
+C 07740000
+ WRITE(NP,9010) AINDX(35,N1S),AINDX(36,N1S) 07741000
+ 9010 FORMAT(1X,2A4) 07742000
+C 07743000
+C IN A(1) 07744000
+C NG*4 VALORI 07745000
+C MATRICE DI INDICI VARI E SIGMA PER IL MATERIALE 07746000
+ LMA=NG*4+1 07747000
+ N4=4 07748000
+C 07749000
+C LMA= LIMITE DI RIEMPIMENTO IN A 07750000
+C 07751000
+ IF(LMA.GT.MA) CALL ERR(8HP2MCF6 ,0) 07752000
+ CALL RIEMP(0.0,LMA,A) 07753000
+C 07754000
+C REWINDS TAPES DI SCR( LE SUBROUTINES CHE CI SCRIVONO SCRIVONO IN 07755000
+C SEQUENZA E NON REWINDANO) 07756000
+ DO 5 I=1,9 07757000
+ CALL REW(89+I) 07758000
+ 5 CONTINUE 07759000
+C 07760000
+C AZZERA SOGLIE N,2, ED ANELASTICHE ; NUMERO LIVELLI E NUMERO 07761000
+C SPETTRI 07762000
+ NINEL=0 07763000
+ N2NTH=0 07764000
+ NLVN2N=0 07765000
+ NLVAN=0 07766000
+ NEVAN=0 07767000
+ NEVN2N=0 07768000
+ NLVANM=0 07769000
+ NEINTN=0 07770000
+ NEINTL=0 07771000
+ LN=LMA 07772000
+ LL=LMA 07773000
+C 07774000
+C ............. LOOP SULLE LE REGISTRAZIONI DEL MATERIALE IN INDICE 07775000
+C ORDINA L'INDICE DEL MATERIALE PER VALORI CRESCENTI DELLA 07776000
+C POSIZIONE NEL FILE DI INPUT ONDE SIA PIU PROBABILE DI TROVARLI 07777000
+C IN FILA E RIDURRE IL TEMPO DI LETTURA 07778000
+ N1SN3S=N3S-N1S+1 07779000
+ CALL ORDIN1(25,MINDX1,N1SN3S,AINDX(1,N1S)) 07780000
+C 07781000
+ DO 20 IR=N1S,N3S 07782000
+C SCARTA DATI NON DESTINATI AD MFF2F6 07783000
+C CERCA CHE TIPO DI DATO E 07784000
+C VENGONO TRATTATI: 07785000
+C FILE ENDFB: 3 MT: 4 : ANEL SCATT TOT 07786000
+C 3 16 : N,2N 07787000
+C 3 51-90 : LIVELLI ANEL 07788000
+C 3 91 : ANEL SCATT CONTINUO 07789000
+C 3 6-9 : LIVELLI N,2N (PRIMO N) 07790000
+C 3 46-54 : LIVELLI N,2N (SECONDO N) 07791000
+C 4 51-90 : MI MEDIO LIVELLI ANEL 07792000
+ IF(AINDX(30,IR).NE.6.) GO TO 200 07793000
+ IF(AINDX(31,IR).NE.1.) GO TO 210 07794000
+C 07795000
+C SIGIN E SIGN2N = SEZIONI D'URTO A GRUPPO ANEL ED N,2N 07796000
+C 07797000
+ CALL P2F6SG(NG,N4,A,NGLIM,EPS,IR,E) 07798000
+C NGLIM E' L'ULTIMO GRUPPO DIVERSO DA 0 07799000
+ IF(AINDX(32,IR).EQ.1.) NINEL=NGLIM 07800000
+ IF(AINDX(32,IR).EQ.2.) N2NTH=NGLIM 07801000
+ GO TO 200 07802000
+ 210 CONTINUE 07803000
+ IF(AINDX(31,IR).NE.2) GO TO 220 07804000
+C 07805000
+C LIVELLI DISCRETI 07806000
+C 07807000
+C 91,IL CONTINUO NON VA MESSO COME SIGMA QUI ANCHE SE 07808000
+C EVENTUALMENTE P1 LO FA 07809000
+ IF(AINDX(3,IR).EQ.91.) GO TO 200 07810000
+C 07811000
+ MALMA1=MA-LMA+1 07812000
+ CALL P2F6LV(NG,N4,A,NLVN2N,NLVAN,NLVANM,IR,MALMA1,A(LMA),E) 07813000
+ GO TO 200 07814000
+ 220 IF(AINDX(31,IR).NE.3) GO TO 230 07815000
+C 07816000
+C SPETTRO DI EVAPORAZIONE 07817000
+C 07818000
+ MALMA1=MA-LMA+1 07819000
+ CALL P2F6EV(NG,N4,A,NEVN2N,NEVAN,IR,MALMA1,A(LMA),E) 07820000
+ GO TO 200 07821000
+ 230 CONTINUE 07822000
+ IF(AINDX(31,IR).NE.4) GO TO 240 07823000
+C 07824000
+C TABULATI 07825000
+C 07826000
+ MALMA1=MA-LMA+1 07827000
+ CALL P2F6TB(NG,N4,A,IR,MALMA1,A(LMA),NEINTN,NEINTL,LN,LL,LMA,E) 07828000
+C 07829000
+ IF(AINDX(32,IR).EQ.1.) IRANEL=IR 07830000
+ IF(AINDX(32,IR).EQ.2.) IRN2N=IR 07831000
+ GOTO200 07832000
+ 240 CONTINUE 07833000
+ CALL ERR(8HP2MCF6IN ,200) 07834000
+C 07835000
+C DISTRIBUZIONE NON CONTEMPLATA 07836000
+C 07837000
+ 200 CONTINUE 07838000
+ 20 CONTINUE 07839000
+C FINE LOOP SULLE DIVERSE REGISTRAZIONI DELL ISOTOPO ..............07840000
+C 07841000
+ NDUM=MAX0(NLVN2N,NLVAN,NEVAN,NEVN2N, 07842000
+ 1 NEINTN,NEINTL) 07843000
+ IF(NDUM.GT.0) GO TO 201 07844000
+ WRITE(NP,9011) 07845000
+ 9011 FORMAT(10X,' ANELASTIC AND N2N DATA NOT GIVEN') 07846000
+C 07847000
+ RETURN 07848000
+ 201 IF(NLVAN.GT.NLVANM) CALL ERR(8HP2MCF6 ,20) 07849000
+C CONTROLLA CHE PER OGNI LIV ANEL CI SIA UN MI 07850000
+C PUO ESSERCI UN NUMERO MAGGIORE DI MI PERCHE CERTI LIVELLI 07851000
+C POSSONO ESSERE SALTATI SE SONO SOPRA ETOP 07852000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 07853000
+C USA IL PIU GRANDE DEI DUE PER FISSARE GLI SPAZI 07854000
+ NLVAN1=MAX0(NLVAN,NLVANM) 07855000
+ NLVAN=MIN0(NLVAN,NLVANM) 07856000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,07857000
+C 07858000
+C 07859000
+C RILETTURA DEI SCR E SCRITTURA DELL ISOTOPO ( ORDINATO PER GRUPPO 07860000
+C 07861000
+C A QUESTO PUNTO SONO PRESENTI : 07862000
+C SCR: NT(1,90) = PER OGNI LIVELLO ANEL (NLVAN)MTT,IR,NSG,AVGMU(NG07863000
+C NT(1,91) = MTT,IR,NSG,SIGLEV(NG) 07864000
+C NT(1,92) = N2N (NLVN2N) IR,NSG,SIGN(NG) 07865000
+C NT(1,93) = PER OGNI SPETTRO EV (NEVAN) IR,NSG,P(NG) 07866000
+C NT(1,94) = IR,TETA(NG) 07867000
+C NT(1,95) = PER OGNI SPETTRO N2N (NEVN2N) IR,NSG,P(NG) 07868000
+C NT(1,96) = IR,TETA(NG) 07869000
+C NT(1,97) = PER OGNI GRUPPO NG TABULAZ. EL(NEINTL) 07870000
+C NT(1,98) = N2N(NEINTN) 07871000
+C 07872000
+C IN A( NG,5) : 07873000
+C A(. ,1)=SIGIN(NG) SCRITTO DA P2F6SG 07874000
+C 2 =SIGN2N(NG) 07875000
+C 3 = KT ANELASTICA SCRITTO DA P2F6TB 07876000
+C 4 = KT N,2N 07877000
+C IN A(NG*4+LL) = EINT(NEINTL) ENERGIE DI ARRIVO TABULAZIONE ANE07878000
+C +LN = EINTN(NEINTN) ENERGIE DI ARRIVA TABULAZ. N,2N 07879000
+C 07880000
+C LMA= LIMITE RIEMPIMENTO IN A:E' FISSATO FUORI LOOP 20, 07881000
+C INCREMENTATO DA P2F6TB CHE AGGIUNGE E DI ARRIVO DEI DATI TABULATI07882000
+C 07883000
+C CALCOLO NGPASS: NUMERO GRUPPI CHE SI POSSONO TRATTARE IN UNA VOLTA07884000
+C CON LO SPAZIO A DISPOSIZIONE IN A 07885000
+C 07886000
+C CALCOLO SPAZIO DISPONIBILE( LA PARTTE FRA () SERVE ALLA P2F6RB 07887000
+C PER METTERCI COMPATTATA LA ROBA DA SCRIVERE SU REC 3-4 DI MCF6 07888000
+ NSPAZ=MA-LMA-NEVAN-NLVN2N-NLVAN1-2*(NLVAN1+NLVN2N+NEVAN+NEVN2N)- 07889000
+ 1 MAX0(2*NLVAN1+NLVN2N+2*NEVAN+2*NEVN2N, 07890000
+ 2 NEINTL+NEINTN,NEINTL+NEINTN+NLVAN1+NEVAN+NLVN2N) 07891000
+C SPAZIO PER UN GRUPPO: 07892000
+ NSPZGR=NEINTL+NEINTN+2*NEVAN+2*NEVN2N+NLVN2N+NLVAN1*2 07893000
+C NUMERO GRUPPI DI UN PASSO 07894000
+ NGPASS=NSPAZ/NSPZGR 07895000
+ IF(NGPASS.GT.NG) NGPASS=NG 07896000
+ IF(NGPASS.LT.1) CALL ERR(8HP2MCF6 ,30) 07897000
+C 07898000
+C CREAZIONE PUNTATORI 07899000
+C .....................ROBA IN MEMORIA FINO AD ORA 07900000
+ L1=LMA 07901000
+C ..................... SPAZIO PPER EGAM 07902000
+ L2=L1+NLVAN1 07903000
+C ................................GAMN2N 07904000
+ L3=L2+NLVN2N 07905000
+C ................................. U 07906000
+ L4=L3+NEVAN 07907000
+C ................................. SIGLEV 07908000
+ L5=L4+NLVAN1*NGPASS 07909000
+C ................................. AVGMU 07910000
+ L6=L5+NLVAN1*NGPASS 07911000
+C ................................. SIGN 07912000
+ L7=L6+NLVN2N*NGPASS 07913000
+C ................................. TSTAT 07914000
+ L8=L7+NEVAN*NGPASS 07915000
+C ................................. PIN 07916000
+ L9=L8+NEVAN*NGPASS 07917000
+C ................................. TN2N 07918000
+ L10=L9+NEVN2N*NGPASS 07919000
+C ................................. PN2N 07920000
+ L11=L10+NEVN2N*NGPASS 07921000
+C ................................. PINTAB 07922000
+ L12=L11+NEINTL 07923000
+C ................................. PNNTAB 07924000
+ L13=L12+NEINTN 07925000
+C ................................. IR(LIV ANEL)IRLVA 07926000
+ L14=L13+NLVAN1 07927000
+C ................................. IR(LIV N2N) IRLVN 07928000
+ L15=L14+NLVN2N 07929000
+C ................................. IR(EVAP ANEL)IREVA 07930000
+ L16=L15+NEVAN 07931000
+C ................................. IR(EVAP N,2N)IREVN 07932000
+ L17=L16+NEVN2N 07933000
+C ................................. NSG( LIV ANEL)NSGLVA 07934000
+ L18=L17+NLVAN1 07935000
+C ................................. NSG (LIV N,2N)NSGLVN 07936000
+ L19=L18+NLVN2N 07937000
+C ................................. NSG (EVAP ANEL)NSGEVA 07938000
+ L20=L19+NEVAN 07939000
+C ................................. NSG (EVAP N,2N)NSGEVN 07940000
+ L21=L20+NEVN2N 07941000
+C ................................. NORDLA (ORDINE LIV ANEL) 07942000
+ L22=L21+NLVAN1 07943000
+C ................................. NORDLN (ORDINE LIV N,2N) 07944000
+ L23=L22+NLVN2N 07945000
+C ................................. NORDSA (ORDINE SPET ANEL) 07946000
+ L24=L23+NEVAN 07947000
+C ................................. NORDSN (ORDINE SPET N,2N) 07948000
+ L25=L24+NEVN2N 07949000
+C 07950000
+C 07951000
+ LIMIT=L25 07952000
+ IF(LIMIT.GT.MA) CALL ERR(8HP2MCF6 ,31) 07953000
+ IF(LIMIT.GT.MA) WRITE(NP,9998) MA,LMA,LL,LN,NLVAN1,NLVN2N, 07954000
+ 1 NEVAN,NEVN2N,NGPASS,NSPAZ,NSPZGR,NEINTL,NEINTN 07955000
+ 9998 FORMAT(' MA,LMA,LL,LN,NLVAN,NLVN2N,NEVAN,NEVN2N,NGPASS,NSPAZ,',07956000
+ 1 'NSPZGR,NEINTL,NEINTN:'/(1X,13I5)) 07957000
+C 07958000
+ NLCAN=LIMIT-L1 07959000
+ CALL RIEMP(0.0,NLCAN,A(LMA)) 07960000
+C 07961000
+C =====FOR FORTRAN VS COMPILERS (DUMMY DIMENSIONS CANNOT BE .LE.0)07962000
+ MDIMLA=NLVAN 07963000
+ MDIMLN=NLVN2N 07964000
+ MDIMEA=NEVAN 07965000
+ MDIMEN=NEVN2N 07966000
+ MDIMTA=NEINTL 07967000
+ MDIMTN=NEINTN 07968000
+ MDIMLM=NLVANM 07969000
+ IF(MDIMLA.LE.0) MDIMLA=1 07970000
+ IF(MDIMLN.LE.0) MDIMLN=1 07971000
+ IF(MDIMEA.LE.0) MDIMEA=1 07972000
+ IF(MDIMEN.LE.0) MDIMEN=1 07973000
+ IF(MDIMTA.LE.0) MDIMTA=1 07974000
+ IF(MDIMTN.LE.0) MDIMTN=1 07975000
+ IF(MDIMLM.LE.0) MDIMLM=1 07976000
+C 07977000
+ CALL P2F6RB(IRANEL,IRN2N,NMT,NG,A(1),A(NG+1),A(2*NG+1),A(3*NG+1), 07978000
+ 1 NEINTL,A(LL),NEINTN,A(LN), NLVAN,NLVANM, 07979000
+ 2 A(L1),NLVN2N,A(L2),NEVAN,A(L3),NEVN2N,MA-LIMIT,A(LIMIT+1), 07980000
+ 3 NGPASS, 07981000
+ 4 A(L4),A(L5),A(L6),A(L7),A(L8),A(L9),A(L10),A(L11),A(L12), 07982000
+ 5 A(L13),A(L14),A(L15),A(L16),A(L17),A(L18),A(L19),A(L20), 07983000
+ 6 A(L21),A(L22),A(L23),A(L24), 07984000
+ 7 M1,M2,MIX, 07985000
+ 8 MDIMLA,MDIMLN,MDIMEA,MDIMEN,MDIMTA,MDIMTN,MDIMLM) 07986000
+C 07987000
+C 07988000
+ 10 CONTINUE 07989000
+C CLOSE FILES 07990000
+ DO 55 I=1,9 07991000
+ CALL REW(89+I) 07992000
+ 55 CONTINUE 07993000
+ RETURN 07994000
+ END 07995000
+ SUBROUTINE P2F6RB(IRANEL,IRN2N,NMT,NG,SIGIN,SIGN2N,KTL,KTN, 07996000
+ 1 NEINTL,EINTL,NEINTN,EINTN, 07997000
+ 2 NLVAN,NLVANM,EGAM,NLVN2N,GAMN2N,NEVAN,U,NEVN2N, 07998000
+ 3 MA,A,NGPAS1, 07999000
+ 4 SIGLEV,AVGMU,SIGN,TSTAT,PIN,TN2N,PN2N,PINTAB,PNNTAB, 08000000
+ 5 IRLVA,IRLVN,IREVA,IREVN,NSGLVA,NSGLVN,NSGEVA,NSGEVN, 08001000
+ 6 NORDLA,NORDLN,NORDSA,NORDSN, 08002000
+ 7 M1,M2,MIX, 08003000
+ 8 MDIMLA,MDIMLN,MDIMEA,MDIMEN,MDIMTA,MDIMTN,MDIMLM) 08004000
+C *************************************************************** 08005000
+C 08006000
+C REORDERS ANELASTIN AND N,2N SECONDARY ENERGY DISTRIBUTION DATA 08007000
+C LEGGE FILES DI SCRATCH E SCRIVE IL NUCLIDE NEI FILES DELLA 08008000
+C SECONDA SERIE 08009000
+C 08010000
+C SIGIN(NG) = SIGMA A GRUPPI DA P2F6SG PER REC 2 DI MCF6 (ANELASTIC08011000
+C SIGN2N(NG)= (N,2N )08012000
+C KTL (NG) =LEGGE INTERP E' P2F6TB REC 2 (ANEL) 08013000
+C KTN (NG) = (N,2N) 08014000
+C EINTL(NEINTL)=E' ARRIVO TAB 1 (ANEL) 08015000
+C EINTN(NEINTN)= (N,2N) 08016000
+C 08017000
+C IR SONO I NUMERI DEI RECORD DELL'INDICE CORRISPONDENTI AI DATI 08018000
+C UN IR PER OGNI LIVELLO ED SPETTRO EV 08019000
+C 08020000
+C NSG SONO I GRUPPI DI SOGLIA SOTTO CUI NON C'E' NULLA PER 08021000
+C OGNI LIVELLO E SPETTRO EV 08022000
+C 08023000
+C IR ED NSG SONO LETTI DAI FILES SCRATCH OVE SONO STATI MESSI 08024000
+C *************************************************************** 08025000
+C 08026000
+ LOGICAL TNINEL,TN2NTH,TNLEVL,TN2NLV,TMAX1,TMAX2,TMAX3,TMAX4 08027000
+C 08028000
+ COMMON /OPZIO/OPZ(4,8,10) 08029000
+ EQUIVALENCE (OPZ(2,6,3),EPS),(OPZ(2,6,1),STMP) 08030000
+ EQUIVALENCE(OPZ(2,5,2),EUP),(OPZ(2,5,3),DELTAU) 08031000
+ DIMENSION MIX(M1,M2) 08032000
+ COMMON/INDX/AINDX(40,200) 08033000
+ COMMON/INDX1/AINDX1(40,200) 08034000
+ COMMON /DIM/NMX,MIND,NMX2,IND2 08035000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 08036000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 08037000
+ COMMON /FILES/NT(4,99) 08038000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 08039000
+ EQUIVALENCE (NT1,NT(1,91)),(NT2,NT(1,92)),(NT3,NT(1,93)) 08040000
+ EQUIVALENCE (NT4,NT(1,94)),(NT5,NT(1,95)),(NT6,NT(1,96)) 08041000
+ EQUIVALENCE (NT7,NT(1,97)),(NT8,NT(1,98)),(NT0,NT(1,90)) 08042000
+C 08043000
+C DIMENSION SIGIN(NG),SIGN2N(NG),KTL(NG),KTN(NG), 08044000
+C 1 EINTL(NEINTL),EINTN(NEINTN),A(MA),EGAM(NLVAN),GAMN2N(NLVN2N) 08045000
+C DIMENSION U(NEVAN) 08046000
+C DIMENSION SIGLEV(NLVAN,NGPAS1),SIGN(NLVN2N,NGPAS1), 08047000
+C 1 AVGMU(NLVANM,NGPAS1),TSTAT(NEVAN,NGPAS1),PIN(NEVAN,NGPAS1), 08048000
+C 2 PN2N(NEVN2N,NGPAS1),PINTAB(NEINTL),PNNTAB(NEINTN) 08049000
+C 3 ,TN2N(NEVN2N,NGPAS1) 08050000
+C DIMENSION IRLVA(NLVAN),IRLVN(NLVN2N),IREVA(NEVAN),IREVN(NEVN2N), 08051000
+C 1 NSGLVA(NLVAN),NSGLVN(NLVN2N),NSGEVA(NEVAN),NSGEVN(NEVN2N), 08052000
+C 2 NORDLA(NLVAN),NORDLN(NLVN2N),NORDSA(NEVAN),NORDSN(NEVN2N) 08053000
+C 08054000
+C 08055000
+ DIMENSION SIGIN(NG),SIGN2N(NG),KTL(NG),KTN(NG), 08056000
+ 1 EINTL(MDIMTA),EINTN(MDIMTN),A(MA),EGAM(MDIMLA),GAMN2N(MDIMLN) 08057000
+ DIMENSION U(MDIMEA) 08058000
+ DIMENSION SIGLEV(MDIMLA,NGPAS1),SIGN(MDIMLN,NGPAS1), 08059000
+ 1 AVGMU(MDIMLM,NGPAS1),TSTAT(MDIMEA,NGPAS1),PIN(MDIMEA,NGPAS1), 08060000
+ 2 PN2N(MDIMEN,NGPAS1),PINTAB(MDIMTA),PNNTAB(MDIMTN) 08061000
+ 3 ,TN2N(MDIMEN,NGPAS1) 08062000
+ DIMENSION IRLVA(MDIMLA),IRLVN(MDIMLN), 08063000
+ 1 IREVA(MDIMEA),IREVN(MDIMEN), 08064000
+ 1 NSGLVA(MDIMLA),NSGLVN(MDIMLN),NSGEVA(MDIMEA),NSGEVN(MDIMEN), 08065000
+ 2 NORDLA(MDIMLA),NORDLN(MDIMLN),NORDSA(MDIMEA),NORDSN(MDIMEN) 08066000
+C 08067000
+C 08068000
+C DETERMINA SOGLIE DI REAZIONI TABULATE ( SE ESISTONO O NO ) 08069000
+C PER RECORD 5 DI F1 08070000
+C 08071000
+ WRITE(NP,9000) 08072000
+ 9000 FORMAT(' P2F6RB : REORDERS DATA') 08073000
+C 08074000
+C FLAG DI ESISTENZA PER TABULAZIONI (REC 5 DI F1) 08075000
+ CALL SOGL(0,NSGKL,NG,KTL) 08076000
+ MAX2=0 08077000
+ IF(NSGKL.GT.0) MAX2=1 08078000
+ TMAX2=.TRUE. 08079000
+ IF(MAX2.GT.0) TMAX2=.FALSE. 08080000
+ CALL SOGL(0,NSGKN,NG,KTN) 08081000
+ MAX4=0 08082000
+ IF(NSGKN.GT.0) MAX4=1 08083000
+ TMAX4=.TRUE. 08084000
+ IF(MAX4.GT.0) TMAX4=.FALSE. 08085000
+C SOGLIE PER SIGIN E SIGN2N (RECORD 5 DI F1) 08086000
+ CALL SOGL(EPS,NINEL,NG,SIGIN) 08087000
+ CALL SOGL(EPS,N2NTH,NG,SIGN2N) 08088000
+C ALTRI PARAMETRI PER RECORD 5 DI F1 08089000
+C ( ESISTENZA E NUMERO LIVELLI E SPETTRI ) 08090000
+ NLEVLS=NLVAN 08091000
+ TNLEVL=.TRUE. 08092000
+ IF(NLEVLS.GT.0) TNLEVL=.FALSE. 08093000
+ N2NLVS=NLVN2N 08094000
+ TN2NLV=.TRUE. 08095000
+ IF(N2NLVS.GT.0) TN2NLV=.FALSE. 08096000
+ MAX1=NEVAN 08097000
+ TMAX1=.TRUE. 08098000
+ IF(MAX1.GT.0) TMAX1=.FALSE. 08099000
+ MAX3=NEVN2N 08100000
+ TMAX3=.TRUE. 08101000
+ IF(MAX3.GT.0) TMAX3=.FALSE. 08102000
+ NSINK1=NEINTL 08103000
+ NSINK2=NEINTN 08104000
+ NUMREC=1 08105000
+ IF(MAX1.GT.0.OR.MAX3.GT.0) NUMREC=NUMREC+1 08106000
+ IF(MAX2.GT.0.OR.MAX4.GT.0) NUMREC=NUMREC+1 08107000
+C NOME MATERIALE (NOME OUT DELLA MIXING) 08108000
+ NOME1=MIX(1,NMT) 08109000
+ NOME2=MIX(2,NMT) 08110000
+C SOGLIA: GRUPPO SOTTO CUI NON C'E NULLA: 08111000
+ NMAX=MAX0(NINEL,N2NTH) 08112000
+ IF(NMAX.LT.1) CALL ERR(8HP2F6RB ,10) 08113000
+C 08114000
+C QUI ANCORA NON SI SA QUANTO E LUNGO IL RECORD MASSIMO 08115000
+ MAXREC=0 08116000
+ AMAXW4=0 08117000
+C 08118000
+C 08119000
+C FISSA IL FILE DI OUTPUT 08120000
+ NTOUT=36 08121000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT=MIX(5,NMT) 08122000
+ IF(NTOUT.LE.0) NTOUT=36 08123000
+ NTO=NT(1,NTOUT) 08124000
+ CALL POSL(NTOUT) 08125000
+C I DATI TABULATI SONO NEI DUE FILES 97 E 98,UN RECORD PER GRUPP08126000
+ CALL REW(97) 08127000
+ CALL REW(98) 08128000
+C 08129000
+ WRITE(NP,9005) NMAX,NGPAS1 08130000
+ 9005 FORMAT(' GROUP LIMIT:',I5,' GROUPS FOR EACH PASS:',I5) 08131000
+C 08132000
+C .............................. LOOP SUI GRUPPI (TRATTATI A NGPASS 08133000
+C PER VOLTA FINO AD ANMAX ) 08134000
+C PRIMO GRUPPO TRATTATO 08135000
+ NGI=1 08136000
+ 10 CONTINUE 08137000
+C ULTIMO GRUPPO TRATTATO 08138000
+ NGF=NGI+NGPAS1-1 08139000
+ IF(NGF.GT.NMAX) NGF=NMAX 08140000
+C L'ULTIMO GRUPPO TRATTATO PUO ESSERE MENO DI NGPAS1+NGI (SE NG 08141000
+C NON E' DIVISIBILE PER NGPAS1 ) 08142000
+ NGPASS=NGF-NGI+1 08143000
+C REWINDS INPUT FILES 08144000
+C NEI FILES UN SOLO RECORD CONTIENE TUTTI I GRUPPI.I FILES08145000
+C VENGONO REWINDATI A OGNI GIRO E SOLO GLI NPASS 08146000
+C GRUPPI CHE SERVONO SONO LETTI. ESCLUSE LE TABULAZIONI 08147000
+C CHE SONO SCRITTE UN GRUPPO PER RECORD. 08148000
+ DO 20 I=1,7 08149000
+ CALL REW(89+I) 08150000
+ 20 CONTINUE 08151000
+C N1,N12,N11=INDICI PER I DO IMPLICITI DI LETTURA 08152000
+ N1=NGI-1 08153000
+ N12=NGI-1+2 08154000
+ N11=NGI-1+1 08155000
+C 08156000
+C LETTURE GRUPPI DA NGI AD NGF 08157000
+C 08158000
+C LIVELLI ANELASTICI 08159000
+C 08160000
+ WRITE(NP,9010) NLVAN,NT1,NT0,NGI,NGF 08161000
+ 9010 FORMAT(1X,I5,' ANEL LEVELS AND MU FROM UNITS:',2I4, 08162000
+ 1 5X,'GROUPS FROM:',I5,' TO:',I5) 08163000
+C 08164000
+ IF (NLVAN.LE.0) GO TO 301 08165000
+ DO 30 I=1,NLVAN 08166000
+ IF(NGI.NE.1) GO TO 298 08167000
+ READ(NT1) MTT, IRLVA(MTT),NSGLVA(MTT),(SIGLEV(MTT,J),J=1,NGPASS) 08168000
+ GO TO 30 08169000
+ 298 READ(NT1)MTT,(DUM,J=1,N12),(SIGLEV(MTT,J),J=1,NGPASS) 08170000
+ 30 CONTINUE 08171000
+ DO 31 I=1,NLVANM 08172000
+ IF(NGI.NE.1) GO TO 299 08173000
+ READ(NT0) MTT,DUM,DUM,(AVGMU(MTT,J),J=1,NGPASS) 08174000
+ GO TO 31 08175000
+ 299 READ(NT0)MTT,(DUM,J=1,N12),(AVGMU(MTT,J),J=1,NGPASS) 08176000
+ 31 CONTINUE 08177000
+ 301 CONTINUE 08178000
+C LIVELLI N,2N 08179000
+C 08180000
+ WRITE(NP,9020) NLVN2N,NT2,NGI,NGF 08181000
+ 9020 FORMAT(1X,I5,' N2N LEVELS FROM UNIT:',8X,I4, 08182000
+ 1 9X,'GROUPS FROM:',I5,' TO:',I5) 08183000
+C 08184000
+ IF(NLVN2N.LE.0) GO TO 302 08185000
+ DO 32 I=1,NLVN2N 08186000
+ IF(NGI.EQ.1) READ(NT2) IRLVN(I),NSGLVN(I),(SIGN(I,J),J=1,NGPASS) 08187000
+ IF(NGI.NE.1) READ(NT2)(DUM,J=1,N12),(SIGN(I,J),J=1,NGPASS) 08188000
+ 32 CONTINUE 08189000
+ 302 CONTINUE 08190000
+C SPETTRI EVAP ANELASTICI 08191000
+C 08192000
+ WRITE(NP,9030) NEVAN,NT3,NT4,NGI,NGF 08193000
+ 9030 FORMAT(1X,I5,' EVAP PROB AND TEMP FROM UNITS:',2I4, 08194000
+ 1 5X,'GROUPS FROM:',I5,' TO:',I5) 08195000
+C 08196000
+ IF(NEVAN.LE.0) GO TO 303 08197000
+ DO 33 I=1,NEVAN 08198000
+ IF(NGI.NE.1) GO TO 333 08199000
+ READ(NT3)IREVA(I),NSGEVA(I),(PIN(I,J),J=1,NGPASS) 08200000
+ READ(NT4)DUM,(TSTAT(I,J),J=1,NGPASS) 08201000
+ GO TO 33 08202000
+ 333 CONTINUE 08203000
+ READ(NT3)(DUM,J=1,N12),(PIN(I,J),J=1,NGPASS) 08204000
+ READ(NT4)(DUM,J=1,N11),(TSTAT(I,J),J=1,NGPASS) 08205000
+ 33 CONTINUE 08206000
+ 303 CONTINUE 08207000
+C SPETTRI EVAP N,2N 08208000
+C 08209000
+ WRITE(NP,9040) NEVN2N,NT5,NT6,NGI,NGF 08210000
+ 9040 FORMAT(1X,I5,' N2N EVAP PROB AND TEMP FROM UNITS:',2I4, 08211000
+ 1 ' GROUPS FROM:',I5,' TO:',I5) 08212000
+C 08213000
+ IF(NEVN2N.LE.0) GO TO 305 08214000
+ DO 35 I=1,NEVN2N 08215000
+ IF(NGI.NE.1) GO TO 355 08216000
+ READ(NT5) IREVN(I),NSGEVN(I),(PN2N(I,J),J=1,NGPASS) 08217000
+ READ(NT6) DUM,(TN2N(I,J),J=1,NGPASS) 08218000
+ GO TO 35 08219000
+ 355 CONTINUE 08220000
+ READ(NT5)(DUM,J=1,N12),(PN2N(I,J),J=1,NGPASS) 08221000
+ READ(NT6)(DUM,J=1,N11),(TN2N(I,J),J=1,NGPASS) 08222000
+ 35 CONTINUE 08223000
+ 305 CONTINUE 08224000
+C 08225000
+C 08226000
+ IF(NGI.NE.1) GO TO 100 08227000
+C AL PRIMO GIRO CALCOLA SOGLIE ED ESTREMI VARI DI PRESENZA DATI 08228000
+C CIOE TUTTA LA ROBA INDIPENDENTE DAL GRUPPO MA DEDUCIBILE SOLO 08229000
+C IN BASE A DATI PRESENTI SUI SCRATCH 08230000
+C 08231000
+C DEFINESCE I VETTORI CONTENENTI L'ORDINAMENTO DEI LIVELLI E 08232000
+C SPETTRI ( ORDINATI PER SOGLIE DESCRESCENTI, QUELLI CHE 08233000
+C SPARISCONO PIU A BASSE ENERGIE SONO PER ULTIMI ) 08234000
+C QUESTO ORDINAMENTO E' DEFINITO NEI VETTORI NORDLA, 08235000
+C NORDLN,NORDSA,NORDSN, USATI DALLE ROUTINES CHE ORDINANO. 08236000
+C 08237000
+ IF(NLVAN.GT.0) CALL ORDSOG(NLVAN,NSGLVA,NORDLA) 08238000
+ IF(NLVN2N.GT.0)CALL ORDSOG(NLVN2N,NSGLVN,NORDLN) 08239000
+ IF(NEVAN.GT.0) CALL ORDSOG(NEVAN,NSGEVA,NORDSA) 08240000
+ IF(NEVN2N.GT.0)CALL ORDSOG(NEVN2N,NSGEVN,NORDSN) 08241000
+C 08242000
+C EGAM, U, GAMN2N PER RECORD 1 DI F6 08243000
+ IF(NLVAN.LE.0) GO TO 45 08244000
+ DO 41 I=1,NLVAN 08245000
+ 41 EGAM(NORDLA(I))=-AINDX(8,IRLVA(I)) 08246000
+ 45 IF(NEVAN.LE.0) GO TO 47 08247000
+ DO 42 I=1,NEVAN 08248000
+ 42 U(NORDSA(I))=AINDX(8,IREVA(I)) 08249000
+ 47 IF(NLVN2N.LE.0) GO TO 49 08250000
+ DO 43 I=1,NLVN2N 08251000
+ 43 GAMN2N(NORDLN(I))=-AINDX(8,IRLVN(I)) 08252000
+ 49 CONTINUE 08253000
+C 08254000
+C DEVE ESSERE CHE I DATI SIANO IN FILAPER SOGLIA: IL PRIMO 08255000
+C GRUPPO LI HA TUTTI, ANDANDO AVANTI POI PER PRIMO SPARISCE 08256000
+C L'ULTIMO,POI IL PENULTIMO ECC. 08257000
+C SE NON E' COSI' I DATI DI RECORD 1 NON SI RIESCONO A FAR 08258000
+C CORRISPONDERE A QUELLI DEI RECORD 2 E 3 IN MCC2F6 08259000
+C 08260000
+ IF(NLVAN.LE.0) GO TO 345 08261000
+ WRITE(NP,9045)(NSGLVA(J),J=1,NLVAN) 08262000
+ WRITE(NP,9049)(NORDLA(J),J=1,NLVAN) 08263000
+ 9045 FORMAT(' ANEL LEVELS UP TO GROUP:',10I5) 08264000
+ 345 IF(NLVN2N.LE.0) GO TO 346 08265000
+ WRITE(NP,9046) (NSGLVN(J),J=1,NLVN2N) 08266000
+ WRITE(NP,9049) (NORDLN(J),J=1,NLVN2N) 08267000
+ 9046 FORMAT(' N2N LEVELS UP TO GROUP:',10I5) 08268000
+ 346 IF(NEVAN.LE.0) GO TO 347 08269000
+ WRITE(NP,9047) (NSGEVA(J),J=1,NEVAN) 08270000
+ WRITE(NP,9049) (NORDSA(J),J=1,NEVAN) 08271000
+ 9047 FORMAT(' EVAP SPECTR ANEL UP TO GROUP:',10I5) 08272000
+ 347 IF(NEVN2N.LE.0) GO TO 348 08273000
+ WRITE(NP,9048) (NSGEVN(J),J=1,NEVN2N) 08274000
+ WRITE(NP,9049) (NORDSN(J),J=1,NEVN2N) 08275000
+ 9048 FORMAT(' EVAP SPECTR N2N UP TO GROUP:',10I5) 08276000
+ 9049 FORMAT(' OUTPUT ORDER:',10I5) 08277000
+C 08278000
+C SCRIVE DATI NON DIPENDENTI DA GRUPPO 08279000
+C 08280000
+C RECORD 5 DI MCC2F1 08281000
+ 348 NWDS=14 08282000
+ WRITE(NTO)NWDS,NOME1,NOME2,NINEL,N2NTH,NLEVLS,N2NLVS,MAX1,MAX2, 08283000
+ 1MAX3,MAX4,NSINK1,NSINK2,NUMREC,MAXREC 08284000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 08285000
+C 08286000
+ IF(STMP.GT.100) WRITE(NO,1000) 08287000
+ 1NWDS,NOME1,NOME2,NINEL,N2NTH,NLEVLS,N2NLVS,MAX1,MAX2, 08288000
+ 2MAX3,MAX4,NSINK1,NSINK2,NUMREC,MAXREC 08289000
+ 1000 FORMAT(' PART 2 FOR FILE MCC2F6 :WORDS:',I5,2X,2A4/1X, 08290000
+ 1 'N2NTH,NLEVLS,N2NLVS,MAX1 ,MAX2 ,MAX3 ,MAX4 ,NSINK1,NSINK1,', 08291000
+ 2 'NUMREC,MAXREC'/15I6) 08292000
+C 08293000
+C NUMREC(IG) E' NUMERO RECORD DEL GRUPPO ( E' IL MAX(NINEL,N2NTH) 08294000
+C LO CALCOLA IN REALTA' LA PARTE 3 08295000
+C 08296000
+C RECORD 1 DI MCC2F6 08297000
+C 08298000
+ NWDS=NLVAN+NEVAN+NLVN2N+NEINTL+NEINTN 08299000
+C DIMENSIONI DEL RECORD 2 MASSIME 08300000
+ MAXREC=14 08301000
+ IF(MAXREC.LT.NWDS) MAXREC=NWDS 08302000
+C 08303000
+ L=1 08304000
+ IF(NLVAN.GT.0)CALL TRASF1(NLVAN,NORDLA,EGAM,A(L)) 08305000
+ L=L+NLVAN 08306000
+ IF(NEVAN.GT.0)CALL TRASF1(NEVAN,NORDSA,U,A(L)) 08307000
+ L=L+NEVAN 08308000
+ IF(NLVN2N.GT.0)CALL TRASF1(NLVN2N,NORDLN,GAMN2N,A(L)) 08309000
+ L=L+NLVN2N 08310000
+ IF(NEINTL.GT.0)CALL TRASF(NEINTL,EINTL,A(L)) 08311000
+ L=L+NEINTL 08312000
+ IF(NEINTN.GT.0)CALL TRASF(NEINTN,EINTN,A(L)) 08313000
+ L=L+NEINTN 08314000
+C 08315000
+C ADESSO SONO TUTTI IN FILA SENZA BUCHI 08316000
+C 08317000
+ WRITE(NTO)NWDS,(A(J),J=1,NWDS) 08318000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 08319000
+C 08320000
+ IF(STMP.GT.101) WRITE(NO,2000)NWDS, 08321000
+ 1 NLVAN,NEVAN,NLVN2N,NEINTL,NEINTN,(A(J),J=1,NWDS) 08322000
+ 2000 FORMAT(' WORDS:',I4,' NLVAN:',I5,' NEVAN:',I5,' NLVN2N',I5, 08323000
+ 1 ' NEINTL:',I5,' NEINTN:',I5/ 08324000
+ 2 ' EGAM(NLVAN),U(NEVAN),GAMN2N(NLVN2N),EINTL(NEINTL),', 08325000
+ 3 ' EINTN(NEINTN):'/1X,(10E12.5)) 08326000
+ 100 CONTINUE 08327000
+C 08328000
+C .....................LOOP SUI NGPASS GRUPPI (SCRITTURA) 08329000
+C (SUI GRUPPI DEL PASSO ) 08330000
+C PER TABULAZ NULLE SCRIVO 2 RECORDS 08331000
+ DO 50 IG=1,NGPASS 08332000
+ NGC=NGI+IG-1 08333000
+C 08334000
+C LETTURA DATI TABULATI DEL GRUPPO 08335000
+ IF(MAX2.LE.0) GO TO 306 08336000
+ IF(KTL(NGC).LT.0) GO TO 306 08337000
+C 08338000
+ WRITE(NP,9050) NEINTL,NT7,NGC 08339000
+ 9050 FORMAT(1X,I5,' ANEL TABULATED VALUES FROM UNIT:',I4,' GROUP:',I5)08340000
+C 08341000
+ READ(NT7)(PINTAB(J),J=1,NEINTL) 08342000
+ NT(3,97)=NT(3,97)+1 08343000
+ GO TO 307 08344000
+ 306 IF(NEINTL.GT.0) CALL RIEMP(0.0,NEINTL,PINTAB) 08345000
+ 307 IF(MAX4.LE.0) GOTO 308 08346000
+ IF(KTN(NGC).LE.0) GO TO 308 08347000
+C 08348000
+ WRITE(NP,9060) NEINTL,NT7,NGC 08349000
+ 9060 FORMAT(1X,I5,' N2N TABULATED VALUES FROM UNIT:',I4,' GROUP:',I5)08350000
+C 08351000
+ READ(NT8)(PNNTAB(J),J=1,NEINTN) 08352000
+ NT(3,98)=NT(3,98)+1 08353000
+ GO TO 309 08354000
+ 308 IF(NEINTN.GT.0) CALL RIEMP(0.0,NEINTN,PNNTAB) 08355000
+ 309 CONTINUE 08356000
+C 08357000
+C NUMERO EVAPORAZIONI ANEL,N2N NINEVP,N2NTAB E NUM LIVELLI 08358000
+ NINEVP=NSUMG1(NGC,NEVAN,NSGEVA) 08359000
+ N2NEVP=NSUMG1(NGC,NEVN2N,NSGEVN) 08360000
+ NLVS=NSUMG1(NGC,NLVAN,NSGLVA) 08361000
+ N2NLV=NSUMG1(NGC,NLVN2N,NSGLVN) 08362000
+C 08363000
+C LIMITI TABULAZIONI 08364000
+C 08365000
+ CALL LIMIT(EPS,NSTRT1,NEND1,NEINTL,PINTAB) 08366000
+ CALL LIMIT(EPS,NSTRT2,NEND2,NEINTN,PNNTAB) 08367000
+ NINTAB=0 08368000
+ IF(NEND1.GE.NSTRT1.AND.NEND1.GT.0) NINTAB=1 08369000
+ N2NTAB=0 08370000
+ IF(NEND2.GE.NSTRT2.AND.NEND2.GT.0) N2NTAB=1 08371000
+C 08372000
+C MC2-2 E LA PARTE 4 PER CALCOLARE IL NUMERO PAROLE DEL 08373000
+C RECORD 4 FANNO SEMPLICEMENTE NEND-NSTRT+1 SENZA CONTROLLARE 08374000
+C NINTAB ED N2NTAB. PER QUESTO DEVE ESSERE , SE NON CI SONO 08375000
+C DATI TABULATI, NEND-NSTRT=-1 . QUI IMPONGO CHE QUESTO SI 08376000
+C VERIFICHI. 08377000
+ IF(NINTAB.GT.0) GO TO 450 08378000
+ NSTRT1=0 08379000
+ NEND1=-1 08380000
+ 450 IF(N2NTAB.GT.0) GO TO 460 08381000
+ NSTRT2=0 08382000
+ NEND2=-1 08383000
+ 460 CONTINUE 08384000
+C 08385000
+C 08386000
+C SCRITTURA DIP DAL GRUPPO : RECORD 2 DI MCC2F6 08387000
+C 08388000
+C MUTO I CODICI DI ENDFB IN QUELLI DI MC2-2 : 08389000
+C 1 IN 0 ; 2 IN 3 ; 3 IN 2 ; 4 IN 4 ; 5 IN 1 08390000
+C COST LIN-LIN LNX-Y X-LNY LNX-LNY 08391000
+C 08392000
+ KTL1=0 08393000
+C IF(KTL(NGC).EQ.1) KTL1=0 08394000
+ IF(KTL(NGC).EQ.2) KTL1=3 08395000
+ IF(KTL(NGC).EQ.3) KTL1=2 08396000
+ IF(KTL(NGC).EQ.4) KTL1=4 08397000
+ IF(KTL(NGC).EQ.5) KTL1=1 08398000
+ KTN1=0 08399000
+C IF(KTN(NGC).EQ.1) KTN1=0 08400000
+ IF(KTN(NGC).EQ.2) KTN1=3 08401000
+ IF(KTN(NGC).EQ.3) KTN1=2 08402000
+ IF(KTN(NGC).EQ.4) KTN1=4 08403000
+ IF(KTN(NGC).EQ.5) KTN1=1 08404000
+C 08405000
+ TNINEL=.FALSE. 08406000
+ IF(NGC.GT.NINEL) TNINEL=.TRUE. 08407000
+ TN2NTH=.FALSE. 08408000
+ IF(NGC.GT.N2NTH) TN2NTH=.TRUE. 08409000
+C 08410000
+ NWDS=0 08411000
+ IF(TNINEL) GO TO 401 08412000
+ NWDS=NWDS+1 08413000
+ A(NWDS)=SIGIN(NGC) 08414000
+ 401 IF(TN2NTH) GO TO 402 08415000
+ NWDS=NWDS+1 08416000
+ A(NWDS)=SIGN2N(NGC) 08417000
+ 402 IF(TNINEL) GO TO 404 08418000
+ IF(TMAX1) GO TO 403 08419000
+ NWDS=NWDS+1 08420000
+ A(NWDS)=AREAL(NINEVP) 08421000
+ 403 IF(TMAX2) GO TO 404 08422000
+ NWDS=NWDS+1 08423000
+ A(NWDS)=AREAL(NINTAB) 08424000
+ 404 IF(TN2NTH) GO TO 406 08425000
+ IF(TMAX3) GO TO 405 08426000
+ NWDS=NWDS+1 08427000
+ A(NWDS)=AREAL(N2NEVP) 08428000
+ 405 IF(TMAX4) GO TO 406 08429000
+ NWDS=NWDS+1 08430000
+ A(NWDS)=AREAL(N2NTAB) 08431000
+ 406 IF(TNINEL.OR.TMAX2) GO TO 407 08432000
+ NWDS=NWDS+1 08433000
+ A(NWDS)=AREAL(NSTRT1) 08434000
+ NWDS=NWDS+1 08435000
+ A(NWDS)=AREAL(NEND1) 08436000
+ 407 IF(TN2NTH.OR.TMAX4) GO TO 408 08437000
+ NWDS=NWDS+1 08438000
+ A(NWDS)=AREAL(NSTRT2) 08439000
+ NWDS=NWDS+1 08440000
+ A(NWDS)=AREAL(NEND2) 08441000
+ 408 IF(TMAX2.OR.TNINEL) GO TO 409 08442000
+ NWDS=NWDS+1 08443000
+ A(NWDS)=AREAL(KTL1) 08444000
+ 409 IF(TMAX4.OR.TN2NTH) GO TO 410 08445000
+ NWDS=NWDS+1 08446000
+ A(NWDS)=AREAL(KTN1) 08447000
+ 410 IF(TNINEL.OR.TNLEVL) GO TO 411 08448000
+ NWDS=NWDS+1 08449000
+ A(NWDS)=AREAL(NLVS) 08450000
+ 411 IF(TN2NTH.OR.TN2NLV) GO TO 412 08451000
+ NWDS=NWDS+1 08452000
+ A(NWDS)=AREAL(N2NLV) 08453000
+ 412 CONTINUE 08454000
+ WRITE(NTO)NWDS,(A(J),J=1,NWDS) 08455000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 08456000
+C 08457000
+ IF(STMP.GT.102) WRITE(NO,3000) NGC, 08458000
+ 1 SIGIN(NGC),SIGN2N(NGC),NINEVP,NINTAB,N2NEVP,N2NTAB, 08459000
+ 1 NSTRT1,NEND1,NSTRT2,NEND2,KTL1,KTN1,NLVS,N2NLV 08460000
+ 3000 FORMAT(' GROUP:',I4,' SIGIN=',E12.5,' SIGN2N=',E12.5/1X, 08461000
+ 1 'NINEVP,NINTAB,N2NEVP,N2NTAB,NSTRT1,NEND1,NSTRT2,NEND2,KTL, ', 08462000
+ 2 'KTN ,NLVS ,N2NLV:'/1X,2I5,2X,2I5,10I6) 08463000
+C 08464000
+C : RECORD 3 DI MCC2F6 08465000
+ L=1 08466000
+ IF(NLVS.GT.0)CALL TRASF1(NLVS,NORDLA,SIGLEV(1,IG),A(L)) 08467000
+ L=L+NLVS 08468000
+ IF(NLVS.GT.0)CALL TRASF1(NLVS,NORDLA,AVGMU(1,IG),A(L)) 08469000
+ L=L+NLVS 08470000
+ IF(N2NLV.GT.0)CALL TRASF1 (N2NLV,NORDLN,SIGN(1,IG),A(L)) 08471000
+ L=L+N2NLV 08472000
+ IF(NINEVP.GT.0)CALL TRASF1 (NINEVP,NORDSA,TSTAT(1,IG),A(L)) 08473000
+ L=L+NINEVP 08474000
+ IF(NINEVP.GT.0)CALL TRASF1 (NINEVP,NORDSA,PIN(1,IG),A(L)) 08475000
+ L=L+NINEVP 08476000
+ IF(N2NEVP.GT.0)CALL TRASF1 (N2NEVP,NORDSN,TN2N(1,IG),A(L)) 08477000
+ L=L+N2NEVP 08478000
+ IF(N2NEVP.GT.0)CALL TRASF1 (N2NEVP,NORDSN,PN2N(1,IG),A(L)) 08479000
+ L=L+N2NEVP 08480000
+ IF(L.GT.MA) CALL ERR(8HP2MCF6RB ,50) 08481000
+ NWDS=L-1 08482000
+ IF(MAXREC.LT.NWDS) MAXREC=NWDS 08483000
+ WRITE(NTO) NWDS,(A(J),J=1,NWDS) 08484000
+C QUESTO SCRIVE UN RECORD ANCHE SE NWDS=0, P4 ANCHE. 08485000
+C E' PIU' FACILE LEGGERE UN RECORD VUOTO CHE CAPIRE 08486000
+C SE ESISTE O NO IN P3 08487000
+C 08488000
+ IF(STMP.GT.103) WRITE(NO,4000) NWDS,(A(J),J=1,NWDS) 08489000
+ 4000 FORMAT(' RECORD 3 : WORDS:',I5,' SIGLEV(NLVS),AVGMU(NLVS),SIGN(N2N08490000
+ 1LV),TSTAT(NINEVP),PIN(NINEVP),TN2N(NINTAB),PN2N(NINTAB):'/ 08491000
+ 2 (1X,10E12.5) ) 08492000
+C 08493000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 08494000
+C 08495000
+C SCRIVE: RECORD 4 DI F6 : TABULAZIONI 08496000
+ NWDS=0 08497000
+ L=1 08498000
+ IF(NEND1.LE.0) GO TO 505 08499000
+ CALL TRASF (NEND1-NSTRT1+1,PINTAB(NSTRT1),A(L)) 08500000
+ NWDS=NEND1-NSTRT1+1 08501000
+ IF(NWDS.GT.0)L=L+NWDS 08502000
+ 505 IF(NEND2.LE.0) GO TO 506 08503000
+ CALL TRASF(NEND2-NSTRT2+1,PNNTAB(NSTRT2),A(L)) 08504000
+ NWDS=NEND2-NSTRT2+1 08505000
+ IF(NWDS.GT.0)L=L+NWDS 08506000
+ 506 NWDS=L -1 08507000
+ IF(MAXREC.LT.NWDS) MAXREC=NWDS 08508000
+ IF(AMAXW4.LT.NWDS) AMAXW4=NWDS 08509000
+ IF(NWDS.LE.0) GO TO 50 08510000
+ WRITE(NTO) NWDS,(A(J),J=1,NWDS) 08511000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 08512000
+C 08513000
+ IF(STMP.GT.104) WRITE(NO,5000) NWDS,NSTRT1,NEND1,NSTRT2,NEND2, 08514000
+ 1 (A(J),J=1,NWDS) 08515000
+ 5000 FORMAT(' TABULATED DATA: WORDS:',I8,' ANEL LIMITS:',2I10, 08516000
+ 1 ' N2N LIMITS:',2I10/1X,(1X,10E12.5) ) 08517000
+C 08518000
+ 50 CONTINUE 08519000
+C ........... FINE LOOP SUI GRUPPI DEL PASSO(50) 08520000
+ IF(NGF.EQ.NMAX) GO TO 600 08521000
+ NGI=NGF+1 08522000
+ GO TO 10 08523000
+C ................ FINE LOOP 10 DI LETTURA E SCRITTURA SUI PASSI(10)08524000
+ 600 CONTINUE 08525000
+C 08526000
+C RIEMPIMENTO INDICE 08527000
+C 08528000
+C RICERCA IR ( CERCA DEI .NE.0 NEI NUMERI RECORD IR 08529000
+ CALL CERCM(IR1,0,NLVAN,IRLVA) 08530000
+ CALL CERCM(IR2,0,NLVN2N,IRLVN) 08531000
+ CALL CERCM(IR3,0,NEVAN,IREVA) 08532000
+ CALL CERCM(IR4,0,NEVN2N,IREVN) 08533000
+ IR=MAX0(IR1,IR2,IR3,IR4,IRANEL,IRN2N) 08534000
+ IF(IR.LE.0) CALL ERR(8HP2F6RB ,600) 08535000
+C 08536000
+ IF(NMT.GT.M2) GO TO 700 08537000
+ NOM1=MIX(3,NMT) 08538000
+ NOM2=MIX(4,NMT) 08539000
+ NOM3=MIX(1,NMT) 08540000
+ NOM4=MIX(2,NMT) 08541000
+ GO TO 710 08542000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT08543000
+ 700 NOM1=NAREAL(AINDX(35,IR)) 08544000
+ NOM2=NAREAL(AINDX(36,IR)) 08545000
+ NOM3=NAREAL(AINDX(35,IR)) 08546000
+ NOM4=NAREAL(AINDX(36,IR)) 08547000
+ 710 CONTINUE 08548000
+ ANUMRE=NT(3,NTOUT)-NT(4,NTOUT) 08549000
+ IND2=IND2+1 08550000
+ IF(IND2.GT.MIND12) CALL ERR(8HP2F6RB ,650) 08551000
+ CALL EMPIN(MIND11,AINDX1(1,IND2),AINDX(1,IR),AINDX(2,IR), 08552000
+ 1 AINDX(3,IR),AINDX(4,IR),AINDX(5,IR), 08553000
+ 2 NOM1,NOM2,NOM3,NOM4,0., 08554000
+ 3 6.,0.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)), 08555000
+ 4ANUMRE,AMAXW4,0.,FLOAT(NG),EUP,DELTAU,0., 08556000
+ 5FLOAT(NINEL),FLOAT(N2NTH),FLOAT(NLEVLS),FLOAT(N2NLVS), 08557000
+ 6FLOAT(MAX1),FLOAT(MAX2),FLOAT(MAX3),FLOAT(MAX4), 08558000
+ 7FLOAT(NSINK1),FLOAT(NSINK2),FLOAT(NUMREC),FLOAT(MAXREC), 08559000
+ 8 FLOAT(NMAX),0.,0.,0.,0.) 08560000
+ NT(4,NTOUT)=NT(3,NTOUT) 08561000
+ RETURN 08562000
+ END 08563000
+ SUBROUTINE P2F6SG(NG,MNTBG2,ANTBG,NGLIM,EPS,IR,E) 08564000
+C ****************************************************** 08565000
+C SIGIN AND SIGN2N COMPUTATION: ULTRAFINE GROUP CROSS SECTIONS 08566000
+C FOR SECONDARY ENERGY DISTRIBUTION FILE MCC2F6 08567000
+C LEGGE SIGIN E SIGN2N LE INTEGRA A GRUPPI E LETIENE IN ANTBG 08568000
+C ************************************************************** 08569000
+C 08570000
+ DIMENSION ANTBG(NG,MNTBG2),E(NG) 08571000
+C 08572000
+ COMMON/FILES/NT(4,99) 08573000
+ EQUIVALENCE(NO,NT(1,6)),(NP,NT(1,11)) 08574000
+ COMMON /INDX/AINDX(40,200) 08575000
+C 08576000
+ WRITE(NP,9010) AINDX(3,IR) 08577000
+ 9010 FORMAT(' P2F6SG : MULTI-GROUP SCATT CROSS SECTIONS',E12.5) 08578000
+C 08579000
+C NENEL=1 PER ANEL, 2 PER N2N 08580000
+ N2NEL=AINDX(32,IR) 08581000
+ IF(N2NEL.NE.1.AND.N2NEL.NE.2) CALL ERR(8HP2F6SG ,0) 08582000
+ CALL INTEGG(NG,ANTBG(1,N2NEL),IR,E,1,0,0) 08583000
+ NGLIM=1 08584000
+ DO 10 I=1,NG 08585000
+ IF(ANTBG(I,N2NEL).GT.EPS) NGLIM=I 08586000
+ 10 CONTINUE 08587000
+ RETURN 08588000
+ END 08589000
+ SUBROUTINE P2F6LV(NG,MNTBG2,ANTBG,NLVN2N,NLVAN,NLVANM,IR,MA,A,E) 08590000
+C **************************************************************** 08591000
+C DISCRETE LEVELS DATA COMPUTATIONS 08592000
+C LEGGE MU MEDIO, SIGLEV E SIGN LIVELLI ANEL ED N,2N 08593000
+C **************************************************************** 08594000
+C 08595000
+ DIMENSION E(NG) 08596000
+ COMMON/FILES/NT(4,99) 08597000
+ EQUIVALENCE(NP,NT(1,11)) 08598000
+ COMMON/OPZIO/OPZ(4,8,10) 08599000
+ EQUIVALENCE (OPZ(2,6,3),EPS) 08600000
+ COMMON /INDX/AINDX(40,200) 08601000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 08602000
+ 1N1X,N2X,NS,LX,LY,LB 08603000
+ COMMON MAXA,AD(3000) 08604000
+ DIMENSION ANTBG(NG,MNTBG2),A(MA) 08605000
+ EQUIVALENCE(NT(1,90),NT90),(NT(1,91),NT91),(NT(1,92),NT92) 08606000
+C 08607000
+ WRITE(NP,9000) AINDX(3,IR),AINDX(32,IR) 08608000
+ 9000 FORMAT(' P2F6LV : DISCRETE LEVEL:',F10.0, 08609000
+ 1 ' REACTION (1=ANEL,2=N2N,3=MU) :',F5.0) 08610000
+C 08611000
+ IF(MA.LT.NG) CALL ERR(8HP2F6LV ,0) 08612000
+C 08613000
+C MU MEDIO 08614000
+C MEDIO MU A GRUPPI E LO METTO IN SCR 90 08615000
+ IF(AINDX(32,IR).NE.3) GO TO 100 08616000
+C 08617000
+C MI MEDIO PER LIVELLI DISCRETI: MT=51-90 DA FILE 4 ENDFB 08618000
+C I LIVELLI DISCRETI SU F4 DOVREBBERO ESSERE DATI IN C M 08619000
+C SENZA MATRICE DI TRASFORMAZIONE 08620000
+C 08621000
+C LETTURA 08622000
+C 08623000
+ T=AINDX(7,IR) 08624000
+ NTIN=AINDX(23,IR) 08625000
+ NTI=NT(1,NTIN) 08626000
+ NPOST=AINDX(25,IR) 08627000
+ CALL POST(NTIN,NPOST) 08628000
+C HEAD 08629000
+ CALL RREC(1,NTI,3,T) 08630000
+ NT(4,NTIN)=NT(4,NTIN)+1 08631000
+ LVT=L1 08632000
+ LTT=L2 08633000
+C EVENTUALI LIST 08634000
+ IF(LVT.NE.1) GO TO 101 08635000
+ CALL RREC(2,NTI,3,T) 08636000
+ NT(4,NTIN)=NT(4,NTIN)+1 08637000
+ LCT=L2 08638000
+ IF(LCT.EQ.2) GO TO 101 08639000
+C SECONDO IL MANUALE DI ENDFB QUESTO LIST NON ESISTE E I DATI SONO 08640000
+C SONO IN CM. IN CASO CONTRARIO SI DOVREBBE USARE LA MATRICE DI TR08641000
+C DI TRASFORMAZIONE DI QUESTO LIST PER PORTARE I DATI IN C M 08642000
+ CALL ERR(8HP2F6LVIN ,101) 08643000
+ GO TO 102 08644000
+ 101 CALL RREC(1,NTI,3,T) 08645000
+ LI=L1 08646000
+ LCT=L2 08647000
+ NT(4,NTIN)=NT(4,NTIN)+1 08648000
+ IF(LTT.EQ.0) GO TO 190 08649000
+C TAB2 COLLA TABULAZIONE IN E 08650000
+ CALL RREC(4,NTI,3,T) 08651000
+ NT(4,NTIN)=NT(4,NTIN)+1+NREST(N1,3)+N1/3 08652000
+ 102 NE=N2 08653000
+ NR=N1 08654000
+C PREPARO ARRAY (NE,3) IN A CON ( E , KT , MI) 08655000
+ LE=1 08656000
+C ENERGIE 08657000
+ LKT=LE+NE 08658000
+C INTERPOLATION CODE KT (COME INTEGER) 08659000
+ LMI=LKT+NE 08660000
+C MI MEDIO SU ANGOLI AD ENERGIA E 08661000
+ LIMIT=LMI+NE 08662000
+C 08663000
+ IF(LIMIT+NG.GT.MA) CALL ERR(8HP2F6LV ,102) 08664000
+C 08665000
+C METTE LA TABULAZIONE DEL TAB2 IN A COME NUMERO INTERO 08666000
+ CALL FILTB2(NR,NE,A(LKT),NBT,JNT) 08667000
+ IF(LTT.NE.2) GO TO 120 08668000
+C 08669000
+C FUNZIONI TABULATE 08670000
+ DO 10 IE=1,NE 08671000
+C TAB1 08672000
+ CALL RREC(3,NTI,3,NT) 08673000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 08674000
+C ENERGIA 08675000
+ A(IE)=C2 08676000
+C CALCOLO MI MEDIO 08677000
+ CALL GRATP(AMI,AD(LX),AD(LY)) 08678000
+ A(LMI+IE-1)=AMI 08679000
+ 10 CONTINUE 08680000
+ GO TO130 08681000
+ 120 CONTINUE 08682000
+C LEGENDRE 08683000
+ DO 20 IE=1,NE 08684000
+C LIST 08685000
+ CALL RREC(2,NTI,3,T) 08686000
+ NL=N1 08687000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/6+NREST(N1,6) 08688000
+C ENERGIA 08689000
+ A(IE)=C2 08690000
+C CALCOLO MI MEDIO 08691000
+ IF(NL.LT.1) CALL ERR(8H P2F6LV ,20) 08692000
+ A(LMI+IE-1)=AD(LB) 08693000
+ 20 CONTINUE 08694000
+ GO TO 130 08695000
+ 190 CONTINUE 08696000
+C ISOTROPO 08697000
+ NE=2 08698000
+ LE=1 08699000
+ LKT=3 08700000
+ LMI=5 08701000
+ LIMIT=LMI+NE 08702000
+ IF(LIMIT+NG.GT.MA) CALL ERR(8HP2F6LV ,190) 08703000
+ A(1)=E(NG) 08704000
+ A(2)=E(1) 08705000
+ A(3)=AREAL(1) 08706000
+ A(4)=A(3) 08707000
+ A(5)=0. 08708000
+ A(6)=A(5) 08709000
+ 130 CONTINUE 08710000
+C 08711000
+C INTREGRAZIONE A GRUPPI DEL MI MEDIO(E) 08712000
+ CALL RIEMP(0.0,NG,A(LIMIT)) 08713000
+C RIBALTA LE E DI ENDFB PER AVERE E DECRESCENTI PER INTS2 08714000
+ CALL RIBA(NE,A(LKT)) 08715000
+ CALL RIBA(NE,A(LE)) 08716000
+ CALL RIBA(NE,A(LMI)) 08717000
+ CALL INTS2(1,A(LKT),NG,E,A(LIMIT),NE,A(LE),A(LMI)) 08718000
+C RIVERSO SULLO SCR 90 A(LIMIT) CON MI MEDIO A GRUPPI 08719000
+ CALL SOGL(EPS,NSG,NG,A(LIMIT)) 08720000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08721000
+C NON INSERISCE I LIVELLI CON E MIN > E TOP 08722000
+C MA I MU LI INSERISCE TUTTI ( NON SI DISTINGUE IL 08723000
+C LIVELLO SOPRA DALL'ISOTROPIA 08724000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08725000
+C 08726000
+ NLVANM=NLVANM+1 08727000
+C NUMERO I LIVELLI PER RITROVARMELI MEGIO NELLA P2F6RB 08728000
+C E PER AVERE SEMPRE UNA SICURA CORRISPONDENZA FRA MI E SIGLEV 08729000
+ MTT=AINDX(3,IR)-50. 08730000
+ WRITE(NT90) MTT,IR,NSG,(A(LIMIT+J-1),J=1,NG) 08731000
+ NT(3,90)=NT(3,90)+1 08732000
+ NT(4,90)=NT(3,90) 08733000
+ RETURN 08734000
+ 100 CONTINUE 08735000
+C ANELASTICO 08736000
+C MEDIO A GRUPPI E LO METTO IN A 08737000
+ IF(AINDX(32,IR).NE.1) GO TO 200 08738000
+ CALL INTEGG(NG,A,IR,E,1,0,0) 08739000
+C RIVERSO SULLO SCRATCH 91 A 08740000
+C LO SCATCH E REWINDATO DA P2MCF6 E QUI SCRITTO IN SEQUENZA 08741000
+ CALL SOGL(EPS,NSG,NG,A) 08742000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08743000
+C NON INSERISCE I LIVELLI CON E MIN > E TOP 08744000
+ IF(NSG.LT.1)WRITE(NP,9010) 08745000
+ 9010 FORMAT(' THIS LEVEL IS SKIPPED') 08746000
+ IF(NSG.LT.1) RETURN 08747000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08748000
+C 08749000
+ NLVAN=NLVAN+1 08750000
+C NUMERO I LIVELLI PER RITROVARMELI MEGIO NELLA P2F6RB 08751000
+C E PER AVERE SEMPRE UNA SICURA CORRISPONDENZA FRA MI E SIGLEV 08752000
+ MTT=AINDX(3,IR)-50. 08753000
+ WRITE(NT91) MTT,IR,NSG,(A(J),J=1,NG) 08754000
+ NT(3,91)=NT(3,91)+1 08755000
+ NT(4,91)=NT(3,91) 08756000
+ RETURN 08757000
+ 200 CONTINUE 08758000
+C N2N 08759000
+C MEDIO A GRUPPI E METTE IN A 08760000
+ IF(AINDX(32,IR).NE.2) GO TO 300 08761000
+ CALL INTEGG(NG,A,IR,E,1,0,0) 08762000
+C DIVIDO PER 2 ( N,2N) PER I MT CHE HANNO UN N SOLO (IL 16 NE HA 2)08763000
+ IF(AINDX(3,IR).NE.16) CALL NORM(NG,A,2.) 08764000
+C METTO LE N,2N NELLO SCR 92 08765000
+C IL FILE 92 E REWINDATO DA P2MCF6 08766000
+ CALL SOGL(EPS,NSG,NG,A) 08767000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08768000
+C NON INSERISCE I LIVELLI CON E MIN > E TOP 08769000
+ IF(NSG.LT.1)WRITE(NP,9010) 08770000
+ IF(NSG.LT.1) RETURN 08771000
+C ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 08772000
+C 08773000
+ NLVN2N=NLVN2N+1 08774000
+ WRITE(NT92) IR,NSG,(A(J),J=1,NG) 08775000
+ NT(3,92)=NT(3,92)+1 08776000
+ NT(4,92)=NT(3,92) 08777000
+ RETURN 08778000
+ 300 CONTINUE 08779000
+C QUI ARRIVA PER ERRORE IN AINDX(32,.) CHE DEVE ESSERE 1 O 2 O 3 08780000
+ CALL ERR(8HP2FGLV ,300) 08781000
+ RETURN 08782000
+ END 08783000
+ SUBROUTINE P2F6EV(NG,N5,NA,NEVN2N,NEVAN,IR,MA,A,E) 08784000
+C *************************************************** 08785000
+C 08786000
+C EVAPORATION SPECTRUM 08787000
+C 08788000
+C **************************************************** 08789000
+C 08790000
+ DIMENSION NA(NG,N5),A(MA),E(NG) 08791000
+ COMMON/OPZIO/OPZ(4,8,10) 08792000
+ EQUIVALENCE(OPZ(2,6,3),EPS) 08793000
+ COMMON/FILES/NT(4,99) 08794000
+ EQUIVALENCE(NP,NT(1,11)) 08795000
+ EQUIVALENCE(NT(1,93),NT93),(NT(1,94),NT94),(NT(1,95),NT95) 08796000
+ EQUIVALENCE (NT(1,96),NT96) 08797000
+ COMMON/INDX/AINDX(40,200) 08798000
+C 08799000
+ WRITE(NP,9000) AINDX(3,IR) 08800000
+ 9000 FORMAT(' P2F6EV : EVAPORATION SPECTRUM',F5.0) 08801000
+C 08802000
+ IF(MA.LT.NG*2) CALL ERR(8HP2F6EV ,0) 08803000
+C 08804000
+C MEDIO P(E) SUL GRUPPO 08805000
+ CALL INTEGG(NG,A,IR,E,1,1,0) 08806000
+C 08807000
+C INTEGRO THETA SUL GRUPPO 08808000
+ CALL INTEGG(NG,A(NG+1),IR,E,1,1,1) 08809000
+C 08810000
+C ANELASTICHE 08811000
+ IF(AINDX(32,IR).NE.1) GO TO 200 08812000
+ NEVAN=NEVAN+1 08813000
+ CALL SOGL(EPS,NSG,NG,A) 08814000
+ WRITE(NT93) IR,NSG,(A(J),J=1,NG) 08815000
+ WRITE(NT94) IR,(A(NG+J),J=1,NG) 08816000
+ NT(3,93)=NT(3,93)+1 08817000
+ NT(3,94)=NT(3,94)+1 08818000
+ NT(4,93)=NT(4,93)+1 08819000
+ NT(4,94)=NT(4,94)+1 08820000
+ RETURN 08821000
+ 200 CONTINUE 08822000
+C N,2, 08823000
+ IF(AINDX(32,IR).NE.2.) GO TO300 08824000
+ NEVN2N=NEVN2N+1 08825000
+ CALL SOGL(EPS,NSG,NG,A) 08826000
+ WRITE(NT95) IR,NSG,(A(J),J=1,NG) 08827000
+ WRITE(NT96) IR,(A(NG+J),J=1,NG) 08828000
+ NT(3,95)=NT(3,95)+1 08829000
+ NT(4,95)=NT(4,95)+1 08830000
+ NT(3,96)=NT(3,96)+1 08831000
+ NT(4,96)=NT(4,96)+1 08832000
+ RETURN 08833000
+ 300 CONTINUE 08834000
+ CALL ERR(8HP2F6EV ,300) 08835000
+ RETURN 08836000
+ END 08837000
+ SUBROUTINE P2F6TB(NG,MNTBG2,NTBG,IR,MA,A,NEINTN,NEINTL,LN,LL,LMA, 08838000
+ 1 E) 08839000
+C **************************************************************** 08840000
+C 08841000
+C TABULATED ENERGY DISTRIBUTION 08842000
+C 08843000
+C RESTITUISCE: LMA: INDICE DI FINO A DOVE E' PIENO NTBG((NG,5)+..) 08844000
+C LL ED LN : INDIRIZZO DI EINTL ED EINTN IN A 08845000
+C NEINTN E NEINTL : NUMERO ENERGIE EINTL ED EINTN DI ARRIVO 08846000
+C DELLA TABULAZIONE 08847000
+C 08848000
+C NTBG(1,NG) - SIGIN 08849000
+C 2 - SIGN2N 08850000
+C 3 - KTL 08851000
+C 4 - KTN 08852000
+C 08853000
+C **************************************************************** 08854000
+C 08855000
+ DIMENSION NTBG(NG,MNTBG2),A(MA),E(NG),EXX(2),PXX(2) 08856000
+ EQUIVALENCE(EXX(1),EX1),(EXX(2),EX2),(PXX(1),PX1),(PXX(2),PX2) 08857000
+ COMMON /OPZIO/OPZ(4,8,10) 08858000
+ EQUIVALENCE(OPZ(2,6,3),EPS),(OPZ(2,5,2),EUP),(OPZ(2,5,3),DELU) 08859000
+ EQUIVALENCE(OPZ(2,5,4),ANG) 08860000
+ COMMON MAXA,AD(3000) 08861000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 08862000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 08863000
+ 1 N1X,N2X,NS,LX,LY,LB 08864000
+ COMMON/INDX/AINDX(40,200) 08865000
+ COMMON/FILES/NT(4,99) 08866000
+ EQUIVALENCE(NP,NT(1,11)),(NO,NT(1,6)) 08867000
+C 08868000
+ WRITE(NP,9000) AINDX(3,IR) 08869000
+ 9000 FORMAT(' P2F6TB : TABULATED FUNCTIONS',E12.5) 08870000
+C 08871000
+ T=AINDX(37,IR) 08872000
+C ANELASTICHE ON N,2N 08873000
+ N2NEL=AINDX(32,IR) 08874000
+ IF(N2NEL.NE.1.AND.N2NEL.NE.2) CALL ERR(8HP2F6TB ,0) 08875000
+C PER SEGNALARE AD P2F6RB CHE CERTI GRUPPI NON CI SONO 08876000
+ MEN1=-1 08877000
+ CALL RIEMP(MEN1,NG,NTBG(1,2+N2NEL)) 08878000
+C POSIZIONAMENTO FILE DI INPUT 08879000
+ NTIN=AINDX(23,IR) 08880000
+ NTI=NT(1,NTIN) 08881000
+ NPOST=AINDX(25,IR) 08882000
+ CALL POST(NTIN,NPOST) 08883000
+C POSIZIONAMENTO TAPE DI OUTPUT 08884000
+ NTOUT=97 08885000
+ IF(N2NEL.EQ.2) NTOUT=98 08886000
+ NTO=NT(1,NTOUT) 08887000
+C VIENE POSIZIONATO DEL MAIN 08888000
+C PULISCE DENS 08889000
+ CALL DELETE(0) 08890000
+C LETTURA TAB1 CON P(E) 08891000
+ CALL RREC(3,NTI,3,T) 08892000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 08893000
+C LO METTE IN DENS COL NUMERO 1 08894000
+ CALL STORE(3,1,LOF) 08895000
+ IF(LOF.GT.0) CALL ERR(8HP2F6TB ,1) 08896000
+C LEGGE TAB2 08897000
+ CALL RREC(4,NTI,3,T) 08898000
+ NT(4,NTIN)=NT(4,NTIN)+N1/3+NREST(N1,3)+1 08899000
+C NUMERO ENERGIE DI PARTENZA 08900000
+ NE=N2 08901000
+C PUNTATORI 08902000
+ LNE=1 08903000
+C LE E DEL TAB2(E DI PARTENZA) VENGONO MESSE IN A(1) : NE VALORI 08904000
+ LNEKT=LNE+NE 08905000
+C KT : INTERPOLAZIONI DEL TAB2 A(LNEKT) :NE VALORI (QUANTE LE E 08906000
+ LEINT=LNEKT+NE 08907000
+C E' DI ARRIVO EINT : A(LEINT) : NEINT VALORI 08908000
+C 08909000
+C METTO LEGGI DI TABULAZIONE IN A 08910000
+ CALL FILTB2(N1,NE,A(LNEKT),NBT,JNT) 08911000
+C METTE IN DENS AL NUMERO 2 08912000
+ CALL STORE(4,2,LOF) 08913000
+ IF(LOF.GT.0) CALL ERR(8HP2F6TB ,2) 08914000
+C 08915000
+C NUMERO ENERGIE .E' L'INTERSEZIONE DELL ENERGIE DEI DIVERSI TAB1 08916000
+ NEINT=0 08917000
+C 08918000
+C LOOP SUI TAB1 DELLE DIVERSE ENERGIE DI PARTENZA ................ 08919000
+C CHE VENGONO LETTI E MESSI IN /DENS/ 08920000
+ KT=-1 08921000
+ DO 10 IE=1,NE 08922000
+C LEGGE TAB1 08923000
+ CALL RREC(3,NTI,3,T) 08924000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 08925000
+C ENERGIA 08926000
+ A(IE)=C2 08927000
+C PUNTI E' DI INTERPOLAZIONE VENGONO MESSI TUTTI IN FILA INSIEME 08928000
+C POI VENGONO RIORDINATI ED I RIDONDANTI VENGONO ELIMINATI 08929000
+C 08930000
+C PER PERFETTA COERENZA CON ETOE-II BISOGNA NON INSERIRE I PUNTI 08931000
+C DI ARRIVO CORRISPONDENTI AD E DI PARTENZA SOPRA ETOP=E(1) 08932000
+C IF(C2.GT.E(1)) GO TO 101 08933000
+C IN QUESTO MODO SI EVITA DI AVERE DELLE E DI ARRIVO IN PIU' 08934000
+C CUI POI NON ARRIVA ALCUN CONTRIBUTO. QUESTO RENDE RIDONDANTE 08935000
+C LA CHIAMATA ALLA ROUTINE INFER SOTTO ( OVE ELIMINA LE E DI 08936000
+C ARRIVO > DEL PRIMO GRUPPO E(1) 08937000
+C COSI PERO' SI ELIMINANO ANCHE LE E DI ARRIVO CHE HANNO 08938000
+C CONTRIBUTO DALLE E FRA ETOP E LA PRIMA E DI PARTENZA TABULATA 08939000
+C SOTTO ETOP.BISOGNEREBBE METTERE LE E DI ARRIVO E POI RISCARTARLE08940000
+C AL GIRO DOPO SPOSTANDO INDIETRO I PUNTATORI SE NON SI E' SOTTO 08941000
+C ETOP. IN MODO DA TENERE GLI ARRIVI PARTITI DALLA E SUBITO 08942000
+C SOPRA ETOP FINO ALLA E SUBITO SOTTO. 08943000
+C E' COMPLICATO. LASCIO QUALCHE E IN PIU'.MC2-2 FUNZIONA LO STESSO 08944000
+C 08945000
+ DO 15 IE1=1,N2 08946000
+ 15 A(LEINT+NEINT+IE1-1)=AD(LX+IE1-1) 08947000
+ NEINT=NEINT+N2 08948000
+C ESAME DELLE LEGGI DI INTERPOLAZIONE ,CHE DEVONO ESSERE 08949000
+C COSTANTI SU TUTTO IL RANGE DELLE ENERGIE DI ARRIVO 08950000
+C ANZI SUPPONGO CHE SIANO COSTANTI! 08951000
+C 08952000
+ IF(KT.EQ.-1)KT=JNT(1) 08953000
+ DO 20 IKT=1,N1 08954000
+ IF(JNT(IKT).EQ.KT) GO TO 100 08955000
+ KT=2 08956000
+C CALL ERR(8H P2F6TB , 100) 08957000
+ WRITE(NP,7000) MAT,MT 08958000
+ WRITE(NO,7000) MAT,MT 08959000
+ 7000 FORMAT(' WARNING! LINEAR INTERPOLATION IS ASSUMED IN TABULATED' 08960000
+ 1 ,' DATA, MAT=',I5,' MT=',I4) 08961000
+ 100 CONTINUE 08962000
+ 20 CONTINUE 08963000
+C SE LE LEGGI DI INTERPOLAZIONE NON SONO COSTANTI SU 08964000
+C TUTTO IL RANGE DELLE ENERGIE DI ARRIVO, NON SI PUO 08965000
+C ASSEGNARE UNA LEGGE DI INTERPOLAZIONE PER F6, E NEPPURE 08966000
+C INTEGRARE IN DE F(E IN E') CON E' A DIVERSE LEGGI 08967000
+C DI INTERPOLAZIONE A SECONDA DI E 08968000
+C 08969000
+C SE LE TABULAZIONI NON SONO SEMPRE QUELLE 08970000
+C QUI SI DOVREBBE RIDURRE AD UNA TABULAZIONE CON UNICA LEGGE; 08971000
+C SI PROCEDEREBBE COSI': 08972000
+C LOOP SU INTERVALLI ; 08973000
+C SE E' DIVERSO AGGIUNGE PUNTI DI ENERGIA FINCHE' 2 PUNTI NON SONO08974000
+C CIRCA UGUALI CALCOLATI COLLE 2 DIVERSE INTERPOLAZIONI 08975000
+C I PUNTI AGGIUNTI VANNO MESSI IN A COGLI ALTRI,NON IN TAB1, OVE 08976000
+C NON SERVONO, VISTE COME SONO FATTE LE COSE DOPO 08977000
+C SU SCR 98 PER N2N 08978000
+C METTE IN DENS NUMERO 2+IE 08979000
+ 101 CALL STORE(3,2+IE,LOF) 08980000
+ IF(LOF.GT.0) CALL ERR(8HP2F6TB ,10) 08981000
+ 10 CONTINUE 08982000
+C 08983000
+C RIBALTO LE E SU CUI INTERPOLA ED I RELATIVI CODICI DI 08984000
+C INTERPOLAZIONE PER AVERLE NELLO STESSO ORDINE DEI GRUPPI 08985000
+ CALL RIBA(NE,A(LNE) ) 08986000
+ CALL RIBA(NE,A(LNEKT)) 08987000
+C 08988000
+C RIORDINO ED ELIMINO LE E DI ARRIVO DOPPIE 08989000
+ NEINT1=NEINT 08990000
+ CALL ORDIND(1,1,NEINT,NEINT1,A(LEINT)) 08991000
+C 08992000
+C ORA A E' PIENO FINO AD A(LBG=LEINT+NEINT )2* NE VALORI+E: EINT 08993000
+C IN A(LBG+ ) METTE I VALORI DI SIGMA DEL GRUPPO (NEINT VALORI) 08994000
+C OCCUPATI FINO ALLE F INTEGRATI A GRUPPI 08995000
+ LBG=LEINT+NEINT 08996000
+C 08997000
+C ELIMINO LE ENERGIE DI ARRIVO MAGGIORI DEL PRIMO GRUPPO 08998000
+ CALL INFER(E(1),LIM,NEINT,A(LEINT)) 08999000
+ IF(LIM.GT.1) LIM=LIM-1 09000000
+ LEINT=LEINT+LIM-1 09001000
+ NEINT=NEINT-LIM+1 09002000
+C SPOSTO L'INDIRIZZO DI EINT AL PRIMO ABBASTANZA PICCOLO DA 09003000
+C STARE SOTTO LA E DEL PRIMO GRUPPO 09004000
+C 09005000
+C FISSA LIMITI ENERGETICI E INTERVALLO INTERPOLAZIONE IN F(E,E') 09006000
+C GUARDA I VALORI DI E RELATIVI AL TAB2 09007000
+C 09008000
+C LOOK FOR THE FIRST ENERGY GROUP 09009000
+ DO 50 I=2,NG 09010000
+ IF(A(1).LT.E(I)) GO TO 50 09011000
+ NGI=I-1 09012000
+ GO TO 500 09013000
+ 50 CONTINUE 09014000
+ NGI=NG 09015000
+C LOOK FOR THE LAST ENERGY GROUP 09016000
+ 500 NG1=NGI+1 09017000
+ IF(NG1.LE.NG) GO TO 200 09018000
+ GO TO 204 09019000
+ 200 DO 55 I=NG1,NG 09020000
+ IF(A(NE).LT.E(I)) GO TO 55 09021000
+ NGF=I-1 09022000
+ IF(A(NE).EQ.E(I)) NGF=I 09023000
+ GO TO 205 09024000
+ 55 CONTINUE 09025000
+ 204 NGF=NG 09026000
+ 205 CONTINUE 09027000
+C METTE IN RECS IL TAB1 DEI P(E) 09028000
+ CALL FETCH(1,LOF) 09029000
+ IF(LOF.GT.0) CALL ERR(8HP2F6TB ,205) 09030000
+ IEX=1 09031000
+C FISSA VALORI DI E DI PARTENZA FRA CUI INTERPOLARE, 09032000
+C VALORI DI P CORRISPONDENTI E CODICI DI INTERPOLAZIONE IN 09033000
+C E PER F( E IN E' ) 09034000
+C 09035000
+C CERCA IL PRIMO INTERVALLO DI INTERPOLAZIONE 09036000
+ CALL INFER(E(NGI),LIM,NE,A) 09037000
+ IEX=LIM-1 09038000
+ IF(IEX.LE.0) IEX=1 09039000
+ IF(IEX.GE.NE) RETURN 09040000
+C 09041000
+ EX1=A(IEX) 09042000
+ EX2=A(IEX+1) 09043000
+ KINT=NAREAL(A(LNEKT+IEX-1)) 09044000
+C RICAVA P(EX1) , P(EX2) 09045000
+ CALL TERP2(EX1,PX1,1) 09046000
+ CALL TERP2(EX2,PX2,1) 09047000
+ DO 60 IG=NGI,NGF 09048000
+ E1=E(IG) 09049000
+ E2=E(IG+1) 09050000
+ CALL RIEMP(0.,NEINT,A(LBG)) 09051000
+ IF(E2.LT.EX2) GO TO 300 09052000
+C NORMALE INTEGRAZIONE CON ESTREMI DI INTERPOLAZIONE ESTERNI 09053000
+C AGLI ESTREMI DI INTEGRAZIONE 09054000
+ CALL GRATTE(E1,E2,EX1,EX2,PX1,PX2,IEX,NE,KINT,NEINT, 09055000
+ 1 A(LBG),A(LEINT) ) 09056000
+ GO TO 600 09057000
+ 300 CONTINUE 09058000
+ IF(E1.LT.EX2) GO TO 310 09059000
+C ESTREMI DI INTERPOLAZIONE ENTRAMBI SOPRA TUTTI I GRUPPI 09060000
+C 09061000
+C IL PUNTO DI INTERPOLAZIONE FINISCE A META DEL GRUPPO. 09062000
+C INTEGRA SULLA PRIMA PARTE POI CAMBIA I LIMITI DI INTERPOLAZIONE 09063000
+C ED INTEGRA SULLA SECONDA PARTE, SE ESISTE(INTERP=INTEGR A DX) 09064000
+ IF(IG.EQ.NGI.AND.IEX.EQ.1) GO TO 310 09065000
+C CASO DEL PRIMO GRUPPO CON IL SUO PRIMO PEZZO VUOTO 09066000
+C 09067000
+ CALL GRATTE(E1,EX2,EX1,EX2,PX1,PX2,IEX,NE,KINT,NEINT, 09068000
+ 1 A(LBG),A(LEINT) ) 09069000
+C NUMERI RECORDS) , NEX1,NEX2, POSIZIONI;EX1,EX2 ENERGIE;KINT CODIC09070000
+C DI INTERPOLAZIONE IN E 09071000
+C 09072000
+ 310 IEX=IEX+1 09073000
+C SALTO I VALORI DOPPI CHE POSSONO ESISTERE NELLE TABULAZIONI 09074000
+ IF(A(IEX).EQ.A(IEX+1)) IEX=IEX+1 09075000
+ IF(IEX.GE.NE) GO TO 600 09076000
+ EX1=EX2 09077000
+ PX1=PX2 09078000
+ KINT=NAREAL(A(LNEKT+IEX-1)) 09079000
+ EX2=A(IEX+1) 09080000
+ CALL TERP2(EX2,PX2,1) 09081000
+ IF(E2.EQ.EX1) GO TO 600 09082000
+ IF(E2.LT.EX2) GO TO 320 09083000
+C IN QUESTO CASO DEVO ANCORA INTEGRARE SU UN PEZZO DEL GRUPPO 09084000
+ CALL GRATTE(EX1,E2,EX1,EX2,PX1,PX2,IEX,NE,KINT,NEINT, 09085000
+ 1 A(LBG),A(LEINT) ) 09086000
+ GO TO 600 09087000
+ 320 CONTINUE 09088000
+C QUI SE TUTTO IL RANGE DI INTERPOLAZIONE E' COMPRESO 09089000
+C NEL GRUPPO , ALLORA INTEGRO IL RANGE E VADO AVANTI 09090000
+C NELLO STESSO GRUPPO 09091000
+ CALL GRATTE(EX1,EX2,EX1,EX2,PX1,PX2,IEX,NE,KINT,NEINT, 09092000
+ 1 A(LBG),A(LEINT) ) 09093000
+ GO TO 310 09094000
+C 09095000
+ 600 CONTINUE 09096000
+C SCRITTURA TABULAZIONI SU NTOUT( PER IL GRUPPO IN QUESTIONE) 09097000
+C DIVIDE I DATI PER L'INTERVALLO ENERGETICO (SONO MEDIE) 09098000
+ DE=E1-E2 09099000
+ DO 70 J=1,NEINT 09100000
+ 70 A(LBG+J-1)=A(LBG+J-1)/DE 09101000
+ NTBG(IG,2+N2NEL)=KT 09102000
+C KT DEVE ESSERE EGUALE DA PER TUTTO . ALTRIMENTI ANDREBBE 09103000
+C PRODOTTO DA GRATTE ( CHE LO HA TRAMITE IPDS ) PER OGNI ENERG09104000
+C DI PARTENZA E NEI CASI IN CUI LE DUE ENERGIE DI 09105000
+C PARTENZA LO HANNO DIVERSO COME CI SI ARRANGIA? 09106000
+C 09107000
+ WRITE(NTO)(A(LBG+J-1),J=1,NEINT) 09108000
+ 60 CONTINUE 09109000
+C CONSERVA LE ENERGIE DI INTERPOLAZIONE EINT 09110000
+C LL ED LN SONO I L POSTO IN A IN CUI SONO LE ENERGIE PER ANEL ED N09111000
+ IF(NEINT.GT.NG) CALL ERR(8HP2F6TB ,50) 09112000
+ CALL TRASF(NEINT,A(LEINT),A(1)) 09113000
+ IF(N2NEL.EQ.1) NEINTL=NEINT 09114000
+ IF(N2NEL.EQ.2) NEINTN=NEINT 09115000
+ IF(N2NEL.EQ.1) LL=LMA 09116000
+ IF(N2NEL.EQ.2) LN=LMA 09117000
+ LMA=LMA+NEINT 09118000
+ RETURN 09119000
+ END 09120000
+ SUBROUTINE P2MCF7(MA,A,M1,M2,MIX,MKB1,INDIND,MKB,INDMIX,NG,E) 09121000
+C *********************************************************** 09122000
+C 09123000
+C FISSION SPECTRUM DATA FOR FILE MCC2F7 09124000
+C A(MA)=SCR SPACE 09125000
+C MIX(M1,M2)=MIX DELL F7 09126000
+C INDMIX(3,MKB)= INDICE DI MIX : 1,2,3= VALORE,INIZIO,DURATA 09127000
+C MIX E' ORDINATA PER FN 09128000
+C INDIND(3,MKB1)=INDICE DI IND :1-2,3,4=VALORE(REAL*8),INIZIO,DURAT09129000
+C IND E' ORDINATA PER MAT 09130000
+C 09131000
+C ******************************************************************09132000
+C 09133000
+ DATA ZERO,UNO/0.,1./ 09134000
+ DIMENSION A(MA),MIX(M1,M2),INDIND(4,MKB1),INDMIX(3,MKB),E(NG) 09135000
+ COMMON /INDX/AINDX(40,200) 09136000
+ COMMON /INDX1/AINDX1(40,200) 09137000
+ COMMON /FILES/ NT(4,99) 09138000
+ COMMON /DIM/ MMIX,MIND,MNX2,IND2 09139000
+ EQUIVALENCE(NO,NT(1,6)),(NP,NT(1,11)),(NP12,NT(1,12)) 09140000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 09141000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 09142000
+ COMMON MAXA,AD( 4000) 09143000
+ COMMON/OPZIO/ OPZ(4,8,10) 09144000
+ EQUIVALENCE (OPZ(2,7,1),STMP),(COST,OPZ(2,7,2)) 09145000
+ EQUIVALENCE (OPZ(2,7,3),EUNO),(OPZ(2,7,4),EDUE) 09146000
+C 09147000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 09148000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 09149000
+C 09150000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 09151000
+ 7000 FORMAT(' P2MCF7 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 09152000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 09153000
+C 09154000
+C IN A HO : 09155000
+C A(1) 09156000
+C ALFA ( O P DI WATT) 09157000
+C A(NG+1) 09158000
+C BETA ( A A DI WATT) 09159000
+C A(2*NG+1) 09160000
+C TAU ( O C DI WATT) 09161000
+C A(3*NG+1) 09162000
+ LE=3*NG+1 09163000
+C E RIBALTATE PER ESSERE USATE DA TERP2,GRATE 09164000
+C A(4*NG+1) 09165000
+ LIMIT=4*NG 09166000
+ IF(LIMIT.GT.MA) CALL ERR(8HP2MCF7 , 15) 09167000
+ DO 20 I=1,NG 09168000
+ 20 A(3*NG+I)=E(NG-I+1) 09169000
+C HO RIBALTATO LE E PER USARLE MEGLIO IN TERP2 09170000
+C 09171000
+C ........................LOOP SULL INDICE 09172000
+C RICERCA SE GLI ELEMENTI DI IND SONO IN MIX ( DA TRATTARE) 09173000
+ DO 10 IS=1,MKB1 09174000
+ N1S=INDIND(3,IS) 09175000
+ N2S=INDIND(4,IS) 09176000
+ N3S=N1S+N2S-1 09177000
+C 09178000
+C CERCA L ISOTOPO DELLA MIX 09179000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1S,35,3,1) 09180000
+C NON HA TROVATO MATERIALE NELLA MIX 09181000
+ IF(NMT.LE.0.) GO TO 100 09182000
+C 09183000
+C ...................LOOP SU INDICE DEL MATERIALE 09184000
+ DO 15 IR=N1S,N3S 09185000
+C CERCA SE IL MATERIALE E DESTINATO AD F7 ED E SPETTRO DI FISSIONE 09186000
+ IF(AINDX(3,IR).NE.18.) GOTO 150 09187000
+ IF(AINDX(30,IR).NE.7.) GO TO 150 09188000
+ IF(AINDX(12,IR).NE.7..AND.AINDX(12,IR).NE.9..AND.AINDX(12,IR).NE. 09189000
+ 1 11.) CALL ERR(8HP2MCF7 ,170) 09190000
+ L79=0 09191000
+ IF(AINDX(12,IR).EQ.7.) L79=1 09192000
+ IF(AINDX(12,IR).EQ.9.) L79=2 09193000
+ IF(AINDX(12,IR).EQ.11.) L79=1 09194000
+C L79 E' L'INDIRIZZO IN A DI BETA E TAU,TEMPERATURA PER RAPPR 7 O 09195000
+ LL79=L79*NG+1 09196000
+ IF(L79.LE.0) GO TO 150 09197000
+C 09198000
+ COST1=COST 09199000
+ IF(NMT.LE.M2) COST1=MIX(12,NMT) 09200000
+C COST1 =OPZIONE PER IL FORCED E INDEPENDENT CHI 09201000
+C ENERGY LIMITS FOR FORCED E ENDEPENDENT CHI 09202000
+ E111=E(NG) 09203000
+ E222=E(1) 09204000
+ IF(EUNO.LE.0.OR.EDUE.LE.0.) GO TO 170 09205000
+ E111=EUNO 09206000
+ E222=EDUE 09207000
+ 170 IF(NMT.GT.M2) GO TO 180 09208000
+ E11=AREAL(MIX(13,NMT)) 09209000
+ E22=AREAL(MIX(14,NMT)) 09210000
+ IF(E11.LE.0..OR.E22.LE.0.) GO TO 180 09211000
+ E111=E11 09212000
+ E222=E22 09213000
+ 180 CONTINUE 09214000
+C 09215000
+ T=AINDX(37,IR) 09216000
+C 09217000
+C DEFINIZIONE TAPE DI OUTPUT 09218000
+ NTOUT=0 09219000
+ IF(NMT.LE.M2.AND.NMT.GT.0) NTOUT=MIX(5,NMT) 09220000
+ 171 IF(NTOUT.LE.0) NTOUT=37 09221000
+ NTO=NT(1,NTOUT) 09222000
+ CALL POSL(NTOUT) 09223000
+C DEF TAPE DI INPUT 09224000
+ NTIN=AINDX(23,IR) 09225000
+ NTI=NT(1,NTIN) 09226000
+ NPOST=AINDX(25,IR) 09227000
+ CALL POST(NTIN,NPOST) 09228000
+C 09229000
+C FISSION SPECTRUM LF=7 OPPURE LF=9 ( WATT) SONO LE LEGGI AMMESSE D09230000
+C MC2-2 09231000
+C IN PIU' C'E' WATT E DEPENDENT (LF=11) COME USATO NON E' CHIARO 09232000
+C 09233000
+C 09234000
+ ANREC=0. 09235000
+C 09236000
+C L'OPZIONE DI CHI VECTOR NON E' ACCETTATA DA MC2-2 09237000
+C CONTRARIAMENTE A QUANTO PARREBBE DALLA DESCRIZIONE DI MCC2F7 09238000
+C DEI MANUALI 09239000
+ COST1=0. 09240000
+ IF(COST1.LE.0.) GO TO 300 09241000
+C -------------INTERPOLATION AND CHI VECTOR 09242000
+ WRITE(NP,9010) AINDX(35,IR),AINDX(36,IR) 09243000
+ 9010 FORMAT(1X,2A4,' CHI VECTOR OPTION USED') 09244000
+C 09245000
+C LEGGO P(E) (TAB1) 09246000
+ CALL RREC(3,NTI,3,T) 09247000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09248000
+ CALL DTERP2(A(LE),A(1),NG,AD(LX),AD(LY),AD(LB)) 09249000
+C LETTO THETA(E) (TAB1) 09250000
+ CALL RREC(3,NTI,3,T) 09251000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09252000
+ CALL DTERP2(A(LE),A(LL79),NG,AD(LX),AD(LY),AD(LB)) 09253000
+C 09254000
+ IF(AINDX(12,IR).NE.11.) GO TO 250 09255000
+C LEGGE ED INTERPOLA IL TERZO RECORD TAB1 (PER WATT SPECTRUM)(L79=109256000
+ LL80=(L79+1)*NG+1 09257000
+ CALL RREC(3,NTI,3,T) 09258000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09259000
+ CALL DTERP2(A(LE),A(LL80),NG,AD(LX),AD(LY),AD(LB)) 09260000
+C 09261000
+ 250 NGFIN=NG 09262000
+ GO TO 500 09263000
+C 09264000
+ 300 CONTINUE 09265000
+C ---------------MEDIA E CHI FATTO SCALARE 09266000
+ WRITE(NP,9020) AINDX(35,IR),AINDX(36,IR),E111,E222 09267000
+ 9020 FORMAT(1X,2A4,' CHI MEDIATED BETWEEN ENERGY LIMITS:',2E12.5) 09268000
+C 09269000
+C LEGGO P(E) (TAB1) 09270000
+ CALL RREC(3,NTI,3,T) 09271000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09272000
+ CALL GRATE(E111,E222,ANS) 09273000
+ A(1)=ANS/(E222-E111) 09274000
+C LETTO THETA(E) (TAB1) 09275000
+ CALL RREC(3,NTI,3,T) 09276000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09277000
+ CALL GRATE(E111,E222,ANS) 09278000
+ A(L79*NG+1)=ANS/(E222-E111) 09279000
+C 09280000
+ IF(AINDX(12,IR).NE.11.)GO TO 260 09281000
+C LEGGE E MEDIA IL TERZO TAB1 PER WATT SPECTRUM 09282000
+ CALL RREC(3,NTI,3,T) 09283000
+ ANREC=ANREC+1+N1/3+N2/3+NREST(N1,3)+NREST(N2,3) 09284000
+ CALL GRATE(E111,E222,ANS) 09285000
+ A((L79+1)*NG+1)=ANS/(E222-E111) 09286000
+C 09287000
+ 260 NGFIN=1 09288000
+ 500 CONTINUE 09289000
+C 09290000
+ NT(4,NTIN)=NT(4,NTIN)+ANREC 09291000
+C 09292000
+ IF(AINDX(12,IR).EQ.11.)GO TO 400 09293000
+ CALL RIEMP(1.,NGFIN,A((3-L79)*NG+1)) 09294000
+ IF(L79.EQ.2) GO TO 400 09295000
+ DO 40 I=1,NGFIN 09296000
+ 40 A(I)=1.-A(I) 09297000
+ 400 CONTINUE 09298000
+C 09299000
+C ------------------------------SCRIVE 09300000
+C 09301000
+C VIENE SCRITTO ANCHE UNO SPETTRO DI WATT NON MEGLIO IDENTIFICATO 09302000
+C CHE MCC2 LEGGE , MA E' SEMPRE NULLO E NON E' PREVISTO NEL MANUAL09303000
+C DI MC2-2 09304000
+C IN JEF ESISTONO NUCLIDI CON SPETTRO DI WATT QUINDI LO METTO. 09305000
+ IF(NMT.LE.M2) GO TO 410 09306000
+ NOM=NAREAL(AINDX(35,IR)) 09307000
+ NOM1=NAREAL(AINDX(36,IR)) 09308000
+ NOM2=NAREAL(AINDX(35,IR)) 09309000
+ NOM3=NAREAL(AINDX(36,IR)) 09310000
+ GO TO 420 09311000
+ 410 NOM=MIX(3,NMT) 09312000
+ NOM1=MIX(4,NMT) 09313000
+ NOM2=MIX(1,NMT) 09314000
+ NOM3=MIX(2,NMT) 09315000
+ 420 CONTINUE 09316000
+C WRITE(NTO) NOM2,NOM3,MAT,MF,MT 09317000
+C WRITE(NTO) NGFIN 09318000
+ IF(AINDX(12,IR).NE.11.) GO TO 430 09319000
+C SARANNO GIUSTI I PARAMETRI ? 09320000
+ WRITE(NTO)(ZERO,ZERO,ZERO,J=1,NGFIN), 09321000
+ 1 (A(NGFIN-J+1),J=1,NGFIN),(A(NG+NGFIN-J+1),J=1,NGFIN), 09322000
+ 2 (A(2*NG+NGFIN-J+1),J=1,NGFIN) 09323000
+ GO TO 440 09324000
+ 430 WRITE(NTO)(A(NG+NGFIN-J+1),J=1,NGFIN), 09325000
+ 1(A(NGFIN-J+1),J=1,NGFIN),(A(2*NG+NGFIN-J+1),J=1,NGFIN), 09326000
+ 2 (ZERO,J=1,NGFIN),(UNO,UNO,J=1,NGFIN) 09327000
+ 440 IF(STMP.LT.50) GO TO 600 09328000
+ WRITE(NO,1000) NOM2,NOM3,MAT,MF,MT 09329000
+ 1000 FORMAT(' MATERIAL: ',2A4,' MAT:',I5,' MF:',I5,' MT:',I5) 09330000
+ WRITE(NO,2000) NGFIN,AINDX(12,IR) 09331000
+ 2000 FORMAT(' NUMBER OF CHI VALUES:',I5,' SPECTRUM FLAG:',I5) 09332000
+ IF(AINDX(12,IR).NE.11.) GO TO 605 09333000
+ WRITE(NO,3005) (J,A(NGFIN-J+1),A(NG+NGFIN-J+1),A(2*NG+NGFIN-J+1),09334000
+ 1 J=1,NGFIN) 09335000
+ 3005 FORMAT(' GROUP , A (WATT) , B (WATT) , C (WATT)'/1X, 09336000
+ 1 (1X,I5,5X,3E12.5)) 09337000
+ GO TO 600 09338000
+ 605 WRITE(NO,3000) (J,A(NG+NGFIN-J+1),A(NGFIN-J+1),A(2*NG+NGFIN-J+1),09339000
+ 1 J=1,NGFIN) 09340000
+ 3000 FORMAT(' GROUP , BETA , ALFA , TAU '/1X, 09341000
+ 1 (1X,I5,5X,3E12.5)) 09342000
+ 600 CONTINUE 09343000
+C 09344000
+ IND2=IND2+1 09345000
+ IF(IND2.GT.MIND12) CALL ERR(8HP2MCF7 ,600) 09346000
+ CALL EMPIN(MIND11,AINDX1(1,IND2), 09347000
+ 1AINDX(1,IR),AINDX(2,IR),AINDX(3,IR), 09348000
+ 2AINDX(4,IR),AINDX(5,IR),NOM,NOM1,NOM2,NOM3,0., 09349000
+ 37.,1.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)),3., 09350000
+ 4FLOAT(NGFIN),0.,OPZ(2,5,4),OPZ(2,5,3),OPZ(2,5,4),AINDX(10,IR), 09351000
+ 5AINDX(12,IR),AINDX(13,IR),AINDX(8,IR),0.,0.,0.,COST1,E111,E222, 09352000
+ 60.,0.,0.,0.,0.,0.,0.,0.) 09353000
+C 09354000
+ NT(4,NTOUT)=NT(4,NTOUT)+1 09355000
+ NT(3,NTOUT)=NT(4,NTOUT) 09356000
+C 09357000
+ 150 CONTINUE 09358000
+ 15 CONTINUE 09359000
+ 100 CONTINUE 09360000
+ 10 CONTINUE 09361000
+C 09362000
+ RETURN 09363000
+ END 09364000
+ SUBROUTINE P2MCF8(MA,A,M1,M2,MIX,KB1,INDIND,KB,INDMIX,NG,E) 09365000
+C *********************************************************** 09366000
+C 09367000
+C ANGULAR DISTRIBUTION FOR ELASTIC SCATTERING (FOR MCC2F8 FILE) 09368000
+C 09369000
+C *********************************************************** 09370000
+C 09371000
+C 09372000
+C IN A SPAZIO SCRATCH 09373000
+C IN MIX LA MIXING DELL F3 09374000
+C IN INDMIX INDICE DI MIX 09375000
+C (1 ) = VALORE 09376000
+C (2 ) = INIZIO VALORE 09377000
+C (3 ) = DIMENSIONI VALORE 09378000
+C IN INDIND INDICE DI IND 09379000
+C (1,2 = VALORE ( REAL*8) 09380000
+C (3 = INIZIO 09381000
+C (4 = DIMENSIONI 09382000
+C 09383000
+C 09384000
+C 09385000
+C ********************************************** 09386000
+C 09387000
+ DIMENSION A(MA),MIX(M1,M2),E(NG) 09388000
+ DIMENSION INDMIX(3,KB),INDIND(4,KB1) 09389000
+ COMMON /INDX1/AINDX1(40,200) 09390000
+ COMMON /INDX/AINDX(40,200) 09391000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 09392000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 09393000
+ COMMON/DIM/M(5) 09394000
+ EQUIVALENCE (M(2),IND) 09395000
+ COMMON/OPZIO/ OPZ(4,8,10) 09396000
+ EQUIVALENCE (OPZ(2,8,1),STMP),(NP12,NT(1,12)) 09397000
+ COMMON/FILES/NT(4,99) 09398000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 09399000
+ WRITE(NP12,7000)((MIX(J,JJ),J=1,M1),JJ=1,M2) 09400000
+ 7000 FORMAT(' P2MCF8 ENTERED. INPUT TABLE TO BE EXECUTED:'/ 09401000
+ 1 (1X,2A4,1X,2A4,8I4,3E12.5)) 09402000
+C 09403000
+ MANY1=OPZ(2,8,2) 09404000
+C LOOP SUI MATERIALI DELL ' INDICE 09405000
+C QUI IL LOOP E' STRUTTURATO COME F6, CORRE SUI MATERIALI E 09406000
+C POI GUARDA PER OGNI MATERIALE LE SUE SCHEDE DI INDICE 09407000
+C ALTRIMENTI ESISTE L'ALTRA POSSIBILITA' DI FARLO CORRERE 09408000
+C SULL'INDICE DIRETTAMENTE,SCARTANDO POI I RECORDS DI INDICE 09409000
+C CHE NON SERVONO 09410000
+C 09411000
+ DO 10 IS=1,KB1 09412000
+ N1=INDIND(3,IS) 09413000
+ N2=INDIND(4,IS) 09414000
+ N3=N1+N2-1 09415000
+C CERCA L'ISOTOPO IN MIX (NMT E' LA POSIZIONE IN MIX) 09416000
+ NMT=NCERC1(MINDX1,IND,AINDX,M1,M2,MIX,N1,35,3,1) 09417000
+ IF(NMT.LE.0) GO TO 100 09418000
+ WRITE(NP,9010) AINDX(35,N1),AINDX(36,N1) 09419000
+ 9010 FORMAT(1X,2A4,' SUB.P2MCF8: ANGULAR SCATTERING') 09420000
+ IF(STMP.GT.0) WRITE(NO,1000) AINDX(35,N1),AINDX(36,N1) 09421000
+ 1000 FORMAT(//2A4,5X,' ANGULAR SCATTERING DATA'/) 09422000
+C 09423000
+C LOOP SU PARTE DI INDICE RELATIVA AL MATERIALE 09424000
+ DO 20 IR=N1,N3 09425000
+C SCARTA I RECORDS NON DI F8 09426000
+ IF(AINDX(30,IR).NE.8.) GO TO 200 09427000
+C LI=1 : ISOTROPO 09428000
+ LI=AINDX(12,IR) 09429000
+ IF(LI.EQ.1) GO TO 200 09430000
+C CERCA CHE TIPO DI DATO E' 09431000
+ LTT=AINDX(11,IR) 09432000
+ IF(LTT.NE.1) GO TO 300 09433000
+C E' ESPRESSA IN TERMINI DI FUNZIONI DI LEGENDRE 09434000
+C 09435000
+C SPAZIO PER MATRICI VARIE 09436000
+C 09437000
+C NUMERO RANGES DI INTERPOLAZIONE ( LO ZERO E' COMPRESO) 09438000
+ 110 NR=AINDX(16,IR) 09439000
+C NUMERO MAX DI PL 09440000
+ IPTMAX=AINDX(18,IR) 09441000
+ IF(LTT.EQ.2) IPTMAX=OPZ(2,8,3) 09442000
+ IF(IPTMAX.LE.0) IPTMAX=20 09443000
+C NM E' IL NUMERO DI PL DELLA MATRICE V 09444000
+ NM=AINDX(15,IR) 09445000
+C NUMERO DI ENERGIE 09446000
+ NE=AINDX(17,IR) 09447000
+C LUNGHEZZA MATRICE DI TRASFORMAZIONE 09448000
+ NK=AINDX(14,IR) 09449000
+C NUMERO MAX DI PASSI (SPAZIO DI 1 GRUPPO/GRUPPI DI 1 PASSO) 09450000
+ NPSMX=NG/MANY1+1 09451000
+C 09452000
+ L1=1 09453000
+C ER(NE) ENERGIE DI LEGENDRE 09454000
+ L2=L1+NE 09455000
+C KT(NR) LEGGI DI INTERPOLAZIONE (ENDFB) 09456000
+ L3=L2+NR 09457000
+C KT1(NR) LEGGI DI INTERPOLAZIONE (MC2-2) 09458000
+ L4=L3+NR 09459000
+C NGR(IR) GRUPPI ESTREMI DI INTERPOLAZIONE 09460000
+ L5=L4+NR 09461000
+C F(IPTMAX,MANY1) COEFF DI LEGENDRE(PER MANY1 E) 09462000
+ L6=L5+MANY1*IPTMAX 09463000
+C MATRICE V (NK) =V(NM+1,NM+1)(SAREBBE NM NON IPTMAX) 09464000
+ L7=L6+NK 09465000
+C NUMERO PL PER OGNI ENERGIA NPLE(NE) 09466000
+ L8=L7+NE 09467000
+C LEUFLE(NG): NUMERO ENERGIA DI TABULAZIONE PER OGNI GRUPPO09468000
+ L9=L8+NG 09469000
+C IPT(NPASS) :NUM COEFF DI LEGENDRE PER OGNI PASSO 09470000
+ L10=L9+NPSMX 09471000
+C 09472000
+ LIMIT=L10 09473000
+ IF(LIMIT.GT.MA) CALL ERR(8HP2MCF8 ,1) 09474000
+ CALL P2F8LG(M1,M2,MIX,NMT,IR,NE,NG,E,A(L1),NR,A(L2),A(L3),A(L4), 09475000
+ 1 IPTMAX,MANY1,A(L5),A(L6),A(L7),A(L8),NPSMX, 09476000
+ 2 A(L9),MA-LIMIT,A(L10)) 09477000
+C 09478000
+ GO TO 200 09479000
+ 300 CONTINUE 09480000
+C TABULATE DA TRASFORMARE IN LEGENDRE 09481000
+ IF(LTT.EQ.2) GO TO 110 09482000
+C LO FA P2F8LG SUPPONENDO CHE I DATI SIANO INTERPOLABILI 09483000
+C LINEARMENTE IN MI 09484000
+ CALL ERR(8HP2MCF8IN ,300) 09485000
+ 200 CONTINUE 09486000
+ 20 CONTINUE 09487000
+C FINE LOOP SU SCHEDE DELL'ISOTOPO ................... 09488000
+ 100 CONTINUE 09489000
+ 10 CONTINUE 09490000
+C FINE LOOP SU ISOTOPI (SULL'INDICE NELL'ORDINE) 09491000
+ RETURN 09492000
+ END 09493000
+ SUBROUTINE P2F8LG(M1,M2,MIX,NMT,IR,NE,NG,E,ER,NR,KT,KT1,NGR, 09494000
+ 1 IPTMAX,MANY1,F,V,NPL,LEUFLE,NPSMX,IPT,MA,A) 09495000
+C ************************************************************* 09496000
+C 09497000
+C ANGULAR DISTRIBUTION FOR ELASTIC SCATTERING (CONTINUATION OF 09498000
+C P2MCF8 ROUTINE ) 09499000
+C 09500000
+C MIX(M1,M2)= TABELLA DI INPUT DELL'ISOTOPO 09501000
+C NMT= NUMERO DELLA MIX DELL'ISOTOPO 09502000
+C IR = NUMERO DELLA REGISTRAZIONE DELL'INDICE 09503000
+C NE = NUMERO DELLE ENERGIE TABULATE 09504000
+C NG = NUMERO GRUPPI 09505000
+C NR = NUMERO DEI RANGE DI INTERPOLAZIONE 09506000
+C E(NG)=ENERGIE SUP DEI GRUPPI 09507000
+C ER(NR)=ENERGIE DI INTERPOLAZIONE 09508000
+C KT(NR)=LEGGI DI INTERPOLAZIONE DI ENDFB 09509000
+C KT1(NR)=LEGGI DI INTERPOLAZIONE DI MC2-2 09510000
+C NGR(NR)=GRUPPO CUI SI APPLICA UNA LEGGE DI INTERPOLAZIONE 09511000
+C F(IPTMAX,MANY1)=COEFFICIENTI DI LEGENDRE 09512000
+C V(IPTMAX,MANY1)=MATRICE DI TRASFORMAZIONE AL C.M. 09513000
+C NPL(NE)= NUMERO DI PL PER OGNI ER 09514000
+C LEUFLE(NE)= ENERGIA DI TABULAZIONE PER OGNI GRUPPO 09515000
+C IPT(NSPMX)=NUMERO PL PER OGNI PASSO 09516000
+C 09517000
+C 09518000
+C *************************************************************** 09519000
+ DIMENSION KT(NR),NGR(NR),E(NG),F(IPTMAX,MANY1),V(IPTMAX,IPTMAX) 09520000
+ DIMENSION A(MA),NPL(NE),IPT(NPSMX),ER(NE),LEUFLE(NG),MIX(M1,M2) 09521000
+ DIMENSION KT1(NR) 09522000
+ COMMON /INDX/AINDX(40,200) 09523000
+ COMMON /INDX1/AINDX1(40,200) 09524000
+ COMMON /DIM/ MX1,IND,MX2,IND2 09525000
+ COMMON /OPZIO/OPZ(4,8,10) 09526000
+ EQUIVALENCE (OPZ(2,8,1),STMP),(EUP,OPZ(2,5,2)),(DELU,OPZ(2,5,3)) 09527000
+ EQUIVALENCE (OPZ(2,8,3),PLMX) 09528000
+ COMMON /FILES/NT(4,99) 09529000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)) 09530000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 09531000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 09532000
+C 09533000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 09534000
+ COMMON MAXA,AD(1) 09535000
+C 09536000
+C 09537000
+ COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 09538000
+ 1N1X,N2X,NS,LX,LY,LB 09539000
+C 09540000
+C STIMA DEL MAX NUMERO PL PER TABULATI IN LEGENDRE 09541000
+C ( IN QUESTO CASO IPTMAX E' OPZ(2,8,3) OPPURE 20) 09542000
+C 09543000
+ IPMX=IPTMAX 09544000
+ IF(PLMX.GT.0) IPMX=PLMX 09545000
+ IF(IPMX.LE.0) IPMX=1 09546000
+C 09547000
+C TEMPERATURA 09548000
+ T=AINDX(37,IR) 09549000
+ IF(MA.LT.IPTMAX) CALL ERR(8HP2F8LG ,0) 09550000
+C 09551000
+C 09552000
+C LCT : 1=LAB,2=C.M. 09553000
+ LCT=AINDX(13,IR) 09554000
+C LVT=1=DATA MATRICE V 09555000
+ LVT=AINDX(10,IR) 09556000
+C LTT : 1=LEGENDRE,2=TABULATE 09557000
+ LTT=AINDX(11,IR) 09558000
+C 09559000
+ IF(LTT.EQ.2) CALL COEGEN(IPMX,A(1)) 09560000
+C GENERA COEFF DELLE FORMULE DI RODRIGUEZ PER I POL DI LEGENDRE 09561000
+C 09562000
+C 09563000
+C TAPE DI INPUT 09564000
+ NTIN=AINDX(23,IR) 09565000
+ NTI=NT(1,NTIN) 09566000
+ NPOST=AINDX(25,IR) 09567000
+ CALL POST(NTIN,NPOST) 09568000
+C PULISCE DENS 09569000
+ CALL DYDELE(AD(JMT),AD(JAT),AD(JTT),AD(JLT),AD(LA),0) 09570000
+C LETTURA : LEGGE HEAD 09571000
+ CALL RREC(1,NTI,3,T) 09572000
+ NT(4,NTIN)=NT(4,NTIN)+1 09573000
+C 09574000
+ IF(LVT.NE.L1.OR.LTT.NE.L2) CALL ERR(8HP2F8LG ,1) 09575000
+ IF(LVT.NE.0) GO TO 100 09576000
+C CONT ( NON C'E' LA MATRICE V ) 09577000
+ CALL RREC(1,NTI,3,T) 09578000
+ NT(4,NTIN)=NT(4,NTIN)+1 09579000
+ GO TO 200 09580000
+ 100 CONTINUE 09581000
+C LIST RECORD CON MATRICE V 09582000
+ CALL RREC(2,NTI,3,T) 09583000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/6+NREST(N1,6) 09584000
+C NM=N2 09585000
+C METTE IN V LA MATRICE LETTA DA REC 09586000
+C DO 10 I=1,NM+1 09587000
+C DO 10 J=1,NM+1 09588000
+C V(J,I)=AD(LB-1+IPTMAX*(I-1)+J) 09589000
+C10 CONTINUE 09590000
+ 200 CONTINUE 09591000
+C LEGGE TAB2 COLLA TABULAZIONE DELLE ENERGIE 09592000
+ CALL RREC(4,NTI,3,T) 09593000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/3+NREST(N1,3) 09594000
+C LI RICORDO PER STABILIRE IL PUNTO SOTTO CUI E' ISOTROPO 09595000
+ KT11=JNT(1) 09596000
+ NBT11=NBT(1) 09597000
+C LO METTE IN DENS ,COL NUMERO 1 09598000
+ CALL STORE(4,1,LOF) 09599000
+ IF(LOF.GE.1) CALL ERR(8HP2F8LG ,100) 09600000
+ NERIS=0 09601000
+ DO 20 IE=1,NE 09602000
+ IF(LTT.NE.2) GO TO 210 09603000
+C LEGGE I TAB1 COLLE TABULAZIONI 09604000
+ CALL RREC(3,NTI,3,T) 09605000
+ NT(4,NTIN)=NT(4,NTIN)+1+NREST(N1,3)+N1/3+NREST(N2,3)+N2/3 09606000
+C 09607000
+C TRASFORMA IL TAB1 LETTO IN UN LIST COLLE PL 09608000
+C QUESTO PROCEDIMENTO E' POSSIBILE SOLO SE LA 09609000
+C TABULAZIONE E' LINEARE IN MI, ALTRIMENTI NON 09610000
+C SI PUO' PRIMA FARE INTEGRALI E PL IL MU E POI 09611000
+C INTEGRARE IN E. OCCORRE FARE IL CONTRARIO (SEMPRE 09612000
+C CHE IN E SIA LINEARE ) 09613000
+C 09614000
+C 09615000
+ LBB=IPMX*IPMX*2+1 09616000
+C PUNTATORE A SPAZIO PER COEFF LEGENDRE REAL*8 09617000
+ IF(MA.LT.LBB+IPMX*2) CALL ERR(8HP2F8LG ,210) 09618000
+ CALL TABPL(N2X,AD(LX),AD(LY),AD(LB),A(LBB),IPMX,A(1)) 09619000
+ GO TO 220 09620000
+C 09621000
+C LEGGE I RECORDS LIST COLLE PL PER OGNI ENERGIA DI TABULAZIONE 09622000
+ 210 CALL RREC(2,NTI,3,T) 09623000
+ NT(4,NTIN)=NT(4,NTIN)+1+NREST(N1,6)+N1/6 09624000
+ 220 NPL(IE)=N1 09625000
+ ER(IE)=C2 09626000
+C CERCA SE A QUESTA E E' ISOTROPO 09627000
+C (BASTAVA POI PRENDERE IL PUNTO 2 CHE I PRIMI DUE PUNTI 09628000
+C FISSANO IN GENERE IN ENDFB LA ZONA ISOTROPA) 09629000
+ IF(NERIS.NE.0) GO TO 260 09630000
+C NERIS .NE. 0 SE HA TROVATO GIA UNA E NON ISOTROPA 09631000
+ DO 25 IPIS=1,N1 09632000
+ IF(AD(LB+IPIS-1).NE.0.) GO TO 250 09633000
+ 25 CONTINUE 09634000
+C E' ISOTROPO:HA PL NULLE:NON ASSEGNO NERIS CHE RESTA ZERO 09635000
+ GO TO 260 09636000
+C AL PRIMO NON ISOTROPO ASSEGNO NERIS 09637000
+ 250 NERIS=IE-1 09638000
+ IF(NBT11.GE.IE.AND.KT11.EQ.1) NERIS=IE 09639000
+C PER INTERP COST UN PUNTO 0. SEGNALA ISOTROPIA FINO ALLA PRIMA E 09640000
+C CON COEFF NON NULLI.INDI E' QUI E NON NEL PREC CHE ARRIVA ISOTROP09641000
+ IF(NERIS.LE.0) NERIS=1 09642000
+ 260 CONTINUE 09643000
+C 09644000
+C IN DENS CON NUMERI PROGRESSIVI 09645000
+ CALL STORE(2,1+IE,LOF) 09646000
+ IF(LOF.GE.1) CALL ERR(8HP2F8LG ,260) 09647000
+ 20 CONTINUE 09648000
+C 09649000
+C CREO KT(IR) ED NGR(IR) 09650000
+C METTO IL TAB2 IN RECS 09651000
+ CALL FETCH(1,LOF) 09652000
+ IF(LOF.NE.0) CALL ERR(8HP2F8LG ,20) 09653000
+ IF(NR.NE.N1) CALL ERR(8HP2F8LG ,21) 09654000
+ NR=N1 09655000
+ NE1=1 09656000
+ DO 30 I=1,NR 09657000
+ KT(I)=JNT(NR-I+1) 09658000
+C CORRE SULLE ENERGIE UFG ANDANDO IN GIU A CERCARE LA ENERGIA 09659000
+C E SOTTO LA ER(NBT(I)) CUI INIZIA LA TABULAZIONE JNT 09660000
+ IF(NE1.GT.NG) GO TO 300 09661000
+ INBT=NBT(NR-I+1) 09662000
+ DO 40 IE=NE1,NG 09663000
+ IF(ER(INBT).GT.E(IE)) GO TO 400 09664000
+ 40 CONTINUE 09665000
+ IE=NG 09666000
+ 400 CONTINUE 09667000
+ NGR(I)=IE-1 09668000
+ IF(NGR(I).LE.0) NGR(I)=1 09669000
+ NE1=IE 09670000
+ 30 CONTINUE 09671000
+ 300 CONTINUE 09672000
+C 09673000
+C CALCOLO NPASS ,NUMERO PASSI FINO ALLA E SOTTO CUI09674000
+C LO SCATTERING E' ISOTROPO 09675000
+ DO 50 I=1,NG 09676000
+ IF(E(I).LT.ER(NERIS)) GO TO 500 09677000
+ 50 CONTINUE 09678000
+ NGEIS=NG 09679000
+ GO TO 501 09680000
+ 500 NGEIS=I-1 09681000
+ IF(NGEIS.GT.NG) NGEIS=NG 09682000
+ IF(NGEIS.LT.1) NGEIS=1 09683000
+ 501 NPASS=NGEIS/(MANY1-1)+NREST(NGEIS,MANY1-1) 09684000
+C MANY1-1 PERCHE' IL PRIMO VALORE DI UN PASSO E' EGUALE ALL'ULTIMO 09685000
+C DEL PASSO PRECEDENTE 09686000
+C 09687000
+C PER CALCOLO IPT:CALCOLO LEUFLE, PER OGNI GRUPPO E L'ENERGIA DELL 09688000
+C TABULAZIONE CHE LO PRECEDE.(MUTA GRUPPI IN ER) 09689000
+C 09690000
+C LOOP SUGLI INTERVALLI ER DI INTERPOLAZIONE 09691000
+C GUARDA QUALI E SONO COMPRESE NELL'INTERVALLO 09692000
+ IE=1 09693000
+ NE1=NE-1 09694000
+ DO 60 I=1,NE1 09695000
+ IER=NE-I+1 09696000
+ 61 IF(E(IE).LE.ER(IER-1)) GO TO 60 09697000
+ LEUFLE(IE)=IER 09698000
+ IE=IE+1 09699000
+ IF(IE.GT.NG) GO TO 600 09700000
+ GO TO 61 09701000
+ 60 CONTINUE 09702000
+ 600 CONTINUE 09703000
+C 09704000
+C CALCOLA IPT,NUMERO DEI PL CHE OGNI BLOCCO HA 09705000
+ DO 65 I=1,NPASS 09706000
+C LIMITI GRUPPI DI UN PASSO 09707000
+ LL1=LL2 09708000
+ IF(I.EQ.1) LL1=1 09709000
+C PER IL SOLITO FATTO CHEIL PRIMO VALORE DI UN BLOCCO E' 09710000
+C EGUALE ALL'ULTIMO VALORE DEL BLOCCO PRECEDENTE 09711000
+ LL2=LL1+MANY1-1 09712000
+ IF(LL2.GT.NG) LL2=NG 09713000
+ IPT(I)=1 09714000
+ DO 67 IJ=LL1,LL2 09715000
+ IF(IPT(I).LT.NPL(LEUFLE(IJ))) IPT(I)=NPL(LEUFLE(IJ)) 09716000
+ 67 CONTINUE 09717000
+ 65 CONTINUE 09718000
+C 09719000
+C TAPE DI OUTPUT 09720000
+ NTOUT=0 09721000
+ IF(NMT.GT.0.AND.NMT.LE.M2) NTOUT=MIX(5,NMT) 09722000
+ IF(NTOUT.LE.0) NTOUT=38 09723000
+ NTO=NT(1,NTOUT) 09724000
+ CALL POSL(NTOUT) 09725000
+ LGTH=2*NR 09726000
+ IL=NPASS 09727000
+C ------------------- RECORD 1 09728000
+ WRITE(NTO) LGTH,NR,IL,(IPT(J),J=1,NPASS) 09729000
+ IF(STMP.GT.1000.) WRITE(NO,1000) LGTH,NR,IL,(IPT(J),J=1,NPASS) 09730000
+ 1000 FORMAT(' ELASTIC SCATTERING ANGOLAR DISTRIBUTION : MCC2F8 FILE:' 09731000
+ 1 /' LGTH,NR,IL,IPT(NPASS)',3I5/(1X,20I5) ) 09732000
+C 09733000
+C ------------------- RECORD 2 09734000
+ IF(NMT.GT.M2) GO TO 700 09735000
+ NOM1=MIX(3,NMT) 09736000
+ NOM2=MIX(4,NMT) 09737000
+ NOM3=MIX(1,NMT) 09738000
+ NOM4=MIX(2,NMT) 09739000
+ GO TO 710 09740000
+C ANDREBBE MESSO ENDFB ID COME CARATTERE MA NON HO FATTO LA SUBROUT09741000
+ 700 NOM1=NAREAL(AINDX(35,IR)) 09742000
+ NOM2=NAREAL(AINDX(36,IR)) 09743000
+ NOM3=NAREAL(AINDX(35,IR)) 09744000
+ NOM4=NAREAL(AINDX(36,IR)) 09745000
+ 710 CONTINUE 09746000
+C 09747000
+ WRITE(NTO) NOM1,NOM2 09748000
+ IF(STMP.GT.1000.)WRITE(NO,2000) NOM1,NOM2 09749000
+ 2000 FORMAT(1X,2A4) 09750000
+C ------------------- RECORD 3 09751000
+C 09752000
+C TRASFORMA LEGGI DI ENDFB IN LEGGI DI MC2-2, SECONDO: 09753000
+C ENDFB CODE INTERP. LAW MC2-2 CODE 09754000
+C 1 COSTANT 0 09755000
+C 2 X LINEAR IN Y 3 09756000
+C 3 LN X LINEAR IN Y 2 09757000
+C 4 X LINEAR IN LN Y 4 09758000
+C 5 LN X LINEAR IN LN Y 1 09759000
+C 09760000
+ DO 90 I=1,NR 09761000
+ J=KT(I) 09762000
+ GO TO (901,902,903,904,905),J 09763000
+ CALL ERR(8HP2F8LG ,90) 09764000
+ KT1(I)=0 09765000
+ GO TO 90 09766000
+ 901 KT1(I)=0 09767000
+ GO TO 90 09768000
+ 902 KT1(I)=3 09769000
+ GO TO 90 09770000
+ 903 KT1(I)=2 09771000
+ GO TO 90 09772000
+ 904 KT1(I)=4 09773000
+ GO TO 90 09774000
+ 905 KT1(I)=1 09775000
+ 90 CONTINUE 09776000
+C 09777000
+ WRITE(NTO)(KT1(NR-J+1),J=1,NR),(NGR(NR-J+1),J=1,NR) 09778000
+ IF(STMP.GT.1000.)WRITE(NO,3000)(KT1(NR-J+1),NGR(NR-J+1),J=1,NR) 09779000
+ 3000 FORMAT(' KT,NGR:',5(1X,I5,1X,I5,5X)) 09780000
+ NT(3,NTOUT)=NT(3,NTOUT)+3 09781000
+C 09782000
+C ................................. LOOP SU NPASS 09783000
+ DO 70 IP=1,NPASS 09784000
+ CALL RIEMP(0.0,IPTMAX*MANY1,F) 09785000
+ LL1=LL2 09786000
+ IF(IP.EQ.1) LL1=1 09787000
+C L'ULTIMO DATO DI UN PASSO E' EGUALE AL PRIMO DEL PASSO PRECEDENTE09788000
+ LL2=LL1+MANY1-1 09789000
+ IF(LL2.GT.NG) LL2=NG 09790000
+C LOOP SU UFG DEL PASSO 09791000
+ IMAN=0 09792000
+ DO 80 IEU=LL1,LL2 09793000
+ IMAN=IMAN+1 09794000
+C ENERGIA TABULATE (RECORD LIST) DELL'UFG 09795000
+ IREC=LEUFLE(IEU) 09796000
+C LOCATE RECORD IN DENS (JA=RECORD ADDRESS) 09797000
+ CALL LRIDS(1+IREC,JA1,LNT) 09798000
+ CALL LRIDS(1+IREC-1,JA2,LNT1) 09799000
+ IF(LNT.GT.0.OR.LNT1.GT.0) CALL ERR(8HP2F8LG ,86) 09800000
+C 09801000
+C ..................... LOOP SULLE PL 09802000
+ N1PL=IPT(IP) 09803000
+ E1=ER(IREC) 09804000
+ E2=ER(IREC-1) 09805000
+ DO 85 IPL=1,N1PL 09806000
+C DA(LA-1+JA+IPL+8) E' LA F1,F2 CERCATA . F1 PER JA1; F2 PER JA2 09807000
+ IADDP1=LA-1+JA1+IPL+8 09808000
+ IADDP2=LA-1+JA2+IPL+8 09809000
+ F1=0. 09810000
+ F2=0. 09811000
+ IF(NPL(IREC).GE.IPL) F1=AD(IADDP1) 09812000
+ IF(NPL(IREC-1).GE.IPL) F2=AD(IADDP2) 09813000
+C FISSO CODICE DI INTERPOLAZIONE 09814000
+C DEFAULT E' LINEARE (RECCOMENDED IN ENDFB MANUAL) 09815000
+ KTINT=2 09816000
+ DO 86 IT=1,NR 09817000
+ IF(IEU.GT.NGR(NR-IT+1)) GO TO 866 09818000
+ 86 CONTINUE 09819000
+ GOTO 807 09820000
+ 866 CONTINUE 09821000
+ KTINT=KT(NR-IT+1) 09822000
+ 807 CONTINUE 09823000
+C 09824000
+ CALL TERP1(E2,F2,E1,F1,E(IEU),VAL,KTINT) 09825000
+ F(IPL,IMAN)=VAL 09826000
+C .........................FINE LOOP SULLE PL 09827000
+ 85 CONTINUE 09828000
+C EVENTUALE TRASFORMAZIONE DI SISTEMA DI RIFERIMENTO 09829000
+C LE REGOLE DI ENDFB PREVEDONO CHE SI SIA GIA IN C.M. 09830000
+C IF(LVT.EQ.1.AND.LCT.EQ.2) CALL MATPER(IPTMAX,V,F(1,IMAN),A) 09831000
+ 80 CONTINUE 09832000
+C .........................FINE LOOP SUI GRUPPI DEL PASSO 09833000
+C SCRIVE IL PASSO 09834000
+ NWDS=N1PL*MANY1 09835000
+ WRITE(NTO) ((F(J,JJ),J=1,N1PL),JJ=1,MANY1) 09836000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 09837000
+ IF(STMP.LE.1001.)GO TO 801 09838000
+ DO 95 I=1,N1PL 09839000
+ WRITE(NO,4000) I,IP,MANY1,(F(I,J),J=1,MANY1) 09840000
+ 4000 FORMAT(' LEGENDRE COEFF:',I10,' STEP:',I10,' MANY1:',I10/ 09841000
+ 11X,(1X,10E12.5)) 09842000
+ 95 CONTINUE 09843000
+ 801 CONTINUE 09844000
+ 70 CONTINUE 09845000
+C ......................... FINE LOOP SUI PASSI 09846000
+C 09847000
+C 09848000
+C RIEMPIE INDICE 09849000
+C 09850000
+ ANREC=NT(3,NTOUT)-NT(4,NTOUT) 09851000
+ IPTMAX=MAXX(NPASS,IPT) 09852000
+ IND2=IND2+1 09853000
+ IF(IND2.GT.MIND12) CALL ERR(8HP2F8LG ,70) 09854000
+ CALL EMPIN(MIND11,AINDX1(1,IND2), 09855000
+ 1AINDX(1,IR),AINDX(2,IR),AINDX(3,IR),AINDX(4,IR),AINDX(5,IR), 09856000
+ 2 NOM1,NOM2,NOM3,NOM4, 09857000
+ 3 0.,8.,1.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)),ANREC, 09858000
+ 4 0.,0.,FLOAT(NG),EUP,DELU,FLOAT(NPASS),0.,FLOAT(IPTMAX), 09859000
+ 5 FLOAT(MANY1),FLOAT(LGTH),FLOAT(NR),FLOAT(IL),0.,0.,0.,0.,0.,0., 09860000
+ 6 0.,0.,0.,0.,0.) 09861000
+ NT(4,NTOUT)=NT(3,NTOUT) 09862000
+ RETURN 09863000
+ END 09864000
+ SUBROUTINE TABPL(MX,X,Y,B,BB,IPMX,C) 09865000
+C **************************************************** 09866000
+C TRASFORMS A TABULATED DISTRIBUTION INTO A LIST RECORD 09867000
+C CONTAINING LEGENDRE POLINOMIAL COEFFICIENTS 09868000
+C *************************************************** 09869000
+ REAL*8 C,PPLX,PPL,PL,AA,BB(MX),X1,X2,Y1,Y2,VALPL,PPL4 09870000
+ DIMENSION X(MX),Y(MX),B(MX),C(IPMX,IPMX) 09871000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 09872000
+ 1 N1X,N2X,NS,LX,LY,LB 09873000
+ COMMON/OPZIO/ OPZ(4,8,10) 09874000
+ COMMON/FILES/NT(4,99) 09875000
+ EQUIVALENCE(NP,NT(1,11)),(OPZ(2,8,1),STMP),(NO,NT(1,6)) 09876000
+C EQUIVALENCE(PLMX,OPZ(2,8,3)) 09877000
+C PLMX E' IL MAX NUMERO DI PL AMMESSO (DEFINISCE IPMX NELL 09878000
+C ROUTINE P2F8LG (CHIAMANTE)) 09879000
+ DIFPL=OPZ(2,8,4) 09880000
+ IF(DIFPL.LE.0.) DIFPL=1. 09881000
+C DIFPL E' LA PRECISIONE RICHIESTA NELLE PL 09882000
+C 09883000
+ NPL=0 09884000
+C ................. LOOP SULLE PL 09885000
+ DO 5 IL=1,IPMX 09886000
+ N22=0 09887000
+ BB(IL)=0. 09888000
+C ................ LOOP SUI RANGE DI INTERPOLAZIONE 09889000
+ DO 10 IR=1,N1 09890000
+ KT=JNT(IR) 09891000
+C 09892000
+ IF(KT.LE.2.OR.KT.EQ.4) GO TO 110 09893000
+ CALL ERR(8HTABPL ,110) 09894000
+ WRITE(NP,1000)MAT,MF,MT,IR,KT 09895000
+ WRITE(NO,1000)MAT,MF,MT,IR,KT 09896000
+ 1000 FORMAT(' WARNING! LINEAR INTERPOLATION IS SUPPOSED FOR ', 09897000
+ 1 ' TAB1 RECORD IN ANGULAR DISTRIBUTION.'/ 09898000
+ 2 ' MAT=',I5,' MF=',I5,' MT=',I5,' RANGE:',I4,' INTERP CODE:',I4) 09899000
+ 110 CONTINUE 09900000
+C 09901000
+ N11=N22+1 09902000
+ N22=NBT(IR) 09903000
+C ................... LOOP SUI PUNTI DEL RANGE IR 09904000
+ IF(N11.LE.1) N11=2 09905000
+ IF(N22.LT.N11) CALL ERR(8HTABPL ,20) 09906000
+C 09907000
+ IF(KT.NE.4) GO TO 115 09908000
+ DO 25 IP=N11,N22 09909000
+ X1=DBLE(X(IP-1)) 09910000
+ X2=DBLE(X(IP)) 09911000
+ IF(X1.EQ.X2) GO TO 25 09912000
+ Y1=DBLE(Y(IP-1)) 09913000
+ Y2=DBLE(Y(IP)) 09914000
+ AA=DLOG(Y2/Y1)/(X2-X1) 09915000
+ BB(IL)=BB(IL)+Y1*PPL4(X2,X1,AA,IL,IPMX,C) 09916000
+ NPL=IL 09917000
+ 25 CONTINUE 09918000
+ GO TO 116 09919000
+ 115 CONTINUE 09920000
+C 09921000
+ DO 20 IP=N11,N22 09922000
+C I LIMITI DEL LOOP SONO PRESI IN MODO DA USARE COME ESTREMI DI 09923000
+C INTEGRAZIONE IP ED IP-1 09924000
+C 09925000
+ IF(KT.EQ.1) GO TO 20 09926000
+C UN TERMINE COSTANTE DA SOLO CONTRIBUTO ALLA P0, CHE NON E' 09927000
+C IN ENDFB POICHE' SI USA P0=1 09928000
+C 09929000
+ X1=DBLE(X(IP-1)) 09930000
+ X2=DBLE(X(IP)) 09931000
+ IF(X1.EQ.X2) GO TO 20 09932000
+ Y1=DBLE(Y(IP-1)) 09933000
+ Y2=DBLE(Y(IP)) 09934000
+ AA=(Y2-Y1)/(X2-X1) 09935000
+ BB(IL)=BB(IL)+AA*(PPLX(IL,X2,IPMX,C)-PPLX(IL,X1,IPMX,C)) + 09936000
+ 1 (Y1-AA*X1)*(PPL(IL,X2,IPMX,C)-PPL(IL,X1,IPMX,C)) 09937000
+ NPL=IL 09938000
+ 20 CONTINUE 09939000
+ 116 CONTINUE 09940000
+ 10 CONTINUE 09941000
+C 09942000
+C HA FATTO LA PL NUMERO IL , ORA VEDE SE E' BASTANTE 09943000
+ DIFTOT=0. 09944000
+ DIFFT=0. 09945000
+ TOTY=0. 09946000
+ DO 30 IP=1,N2 09947000
+ X1=DBLE(X(IP)) 09948000
+ Y1=DBLE(Y(IP)) 09949000
+C 0.5 E' IL CONTRIBUTO DELLA P0 ( Y E' NORMALIZZATO AD 1 ) 09950000
+ VALPL=0.5 09951000
+ DO 40 ILL=1,NPL 09952000
+ VALPL=VALPL+(2*ILL+1)/2.*BB(ILL)*PL(ILL,X1,IPMX,C) 09953000
+C WRITE(NP,9999) ILL,VALPL,Y1,X1 09954000
+C9999 FORMAT(' PL :',I5,' VALUE OBTAINED:',E12.5,' REAL VALUE:',E12.5, 09955000
+C 1 ' COS(THETA):',E12.5) 09956000
+ 40 CONTINUE 09957000
+ DIFFT=DIFFT+DABS(VALPL-Y1) 09958000
+ TOTY=TOTY+Y1 09959000
+ IF(Y1.EQ.0.) GO TO 401 09960000
+ DIFF=DABS(VALPL-Y1)/Y1*100. 09961000
+ GO TO 402 09962000
+ 401 DIFF=DABS(VALPL)/100. 09963000
+ 402 DIFTOT=DIFTOT+DIFF 09964000
+ 30 CONTINUE 09965000
+ DIFTOT=DIFTOT/N2 09966000
+ IF(DIFTOT.LT.DIFPL) GO TO 100 09967000
+C SE LA DIFFERENZA FRA PL E TABULATI E' PICCOLA SMETTE 09968000
+C 09969000
+ IF(KT.EQ.4.AND.IL.GT.5) GO TO 105 09970000
+C TO COMPUTE LEGENDRE COMPONENTS .GT. ABOUT 6 09971000
+C DUE TO NUMERICAL PROBLEM YOU SHOULD HAVE A PXEA ROUTINE WRITTEN09972000
+C USING EXTENDED PRECISION (REAL*16) 09973000
+C 09974000
+C 09975000
+ 5 CONTINUE 09976000
+ 105 DIFFT1=DIFFT/TOTY*100. 09977000
+ WRITE(NO,2000)DIFFT1,MAT,MT 09978000
+ WRITE(NP,2000) DIFFT1,MAT,MT 09979000
+ 2000 FORMAT(' WARNING! LOSS OF PRECISION IN PL REPRESENTATION OF', 09980000
+ 1 ' ANGULAR DISTRIBUTION.'/' GLOBAL ERROR (%) :',1PE8.1, 09981000
+ 2 ' MAT=',I5,' MT=',I5) 09982000
+ 100 CONTINUE 09983000
+ DIFFT=DIFFT/TOTY*100. 09984000
+ WRITE(NP,3000) C2,NPL,DIFFT 09985000
+ 3000 FORMAT(' ENERGY:',1PE11.4,'NUMBER OF PL:',I4,1X, 09986000
+ 1 ' GLOBAL ERROR (%) :',1PE8.1) 09987000
+C 09988000
+C TRASFORMO IL RECORD TAB1 IN UN LIST 09989000
+ DO 50 I=1,N2 09990000
+ X(I)=0. 09991000
+ 50 Y(I)=0. 09992000
+ DO 60 I=1,N1 09993000
+ JNT(I)=0 09994000
+ 60 NBT(I)=0 09995000
+ N1=NPL 09996000
+ DO 70 I=1,N1 09997000
+ 70 B(I)=BB(I) 09998000
+ N2=0 09999000
+ RETURN 10000000
+ END 10001000
+ SUBROUTINE COEGEN(N,C) 10002000
+C ********************* 10003000
+C LEGENDRE POLINOMIAL COEFFICIENTS COMPUTATION 10004000
+C C(COEFF,PL) E LE PL PARTONO DA 1 CHE LA 0 E' PL0=1. 10005000
+C C SONO I COEFF DELLE POTENZE DI X NELLA FORMULA DI 10006000
+C RODRIGUEZ. C(1,N) E' IL COEFF DI X**N , C(2,N) DI X**(N-1) ECC. 10007000
+C 10008000
+C ***************************************** 10009000
+C 10010000
+ REAL*8 FATT,COST,C,K 10011000
+ DIMENSION C(N,N) 10012000
+ CALL RIEMP(0.0,2*N*N,C) 10013000
+C ............... LOOP SULLE PL 10014000
+ DO 10 IL=1,N 10015000
+ COST=FATT(2*IL)/FATT(IL)**2/2.D0**IL 10016000
+C ............... LOOP SUI COEFF 10017000
+ C(1,IL)=COST 10018000
+ IF(N.LT.2) RETURN 10019000
+ DO 20 I=2,N 10020000
+ K=2*I-2 10021000
+ IF(N-K.LT.0) GO TO 20 10022000
+ C(I,IL)=C(I-1,IL)*(IL-K+1.)*(IL-K+2.)/K/(2.*IL-K+1.)*(-1.) 10023000
+ 20 CONTINUE 10024000
+ 10 CONTINUE 10025000
+ RETURN 10026000
+ END 10027000
+ FUNCTION FATT(N) 10028000
+C ****************************** 10029000
+C FATT E' IL FATTORIALE DI N 10030000
+C ****************************** 10031000
+ REAL*8 FATT 10032000
+ FATT=1.D0 10033000
+ DO 10 I=1,N 10034000
+ 10 FATT=FATT*I 10035000
+ RETURN 10036000
+ END 10037000
+ FUNCTION PPLX(N,X,NPX,C) 10038000
+C ********************************** 10039000
+C FA LA PRIMITIVA DI PN(X)*X 10040000
+C ******************************** 10041000
+ REAL*8 C,PPLX,X 10042000
+ DIMENSION C(NPX,NPX) 10043000
+ IF(N.LE.0) GO TO 100 10044000
+ PPLX=0.D0 10045000
+ IF(DABS(X).LT.1.D-70) RETURN 10046000
+C IN QUESTO CASO VIENE ZERO 10047000
+ NDD=DABS(DLOG10(DABS(X))) 10048000
+C NDD PUO ESSERE GRANDE E NEGATIVO(ES X=1.E-13)POTREBBE DARE OVERFLO10049000
+ IF(NDD.GT.0) N3=70/NDD 10050000
+ IF(NDD.EQ.0) N3=70 10051000
+C 70 E' CIRCA IL MAX EXP POSSIBILE 10052000
+ DO 10 I=1,N 10053000
+ K=2*I-2 10054000
+ IF(N-K.LT.0) GO TO 10 10055000
+C QUESTO RENDE N2 SEMPRE POSITIVO 10056000
+ N2=N-K+2 10057000
+C EVITA OVERFLOW PECCATO CONSUMI TEMPO! 10058000
+C IMPONGO ALL'EXP DI X**N2 DI ESSERE < 70 10059000
+ N4=MIN0(N2,N3) 10060000
+C 10061000
+ PPLX=PPLX+X**N4/N2*C(I,N) 10062000
+ 10 CONTINUE 10063000
+ RETURN 10064000
+C P0 10065000
+ 100 PPLX=X*X*.5D0 10066000
+ RETURN 10067000
+ END 10068000
+ FUNCTION PL(N,X,NPX,C) 10069000
+C ************************************** 10070000
+C FA IL POLINOMIO DI LEGENDRE PN(X) 10071000
+C ***************************** 10072000
+ REAL*8 C,PL,X 10073000
+ DIMENSION C(NPX,NPX) 10074000
+ PL=0.D0 10075000
+ IF(DABS(X).GT.1.D-70) GO TO 101 10076000
+ N3=70 10077000
+ GO TO 102 10078000
+ 101 NDD=DABS(DLOG10(DABS(X))) 10079000
+ IF(NDD.GT.0) N3=70/NDD 10080000
+ IF(NDD.EQ.0) N3=70 10081000
+ 102 DO 10 I=1,N 10082000
+C K=2*I-2 10083000
+ N2=N-2*I+2 10084000
+ IF(N2.GT.0) GO TO 200 10085000
+ IF(N2.EQ.0) PL=PL+C(I,N) 10086000
+ GO TO 10 10087000
+ 200 N4=MIN0(N2,N3) 10088000
+C 10089000
+ PL=PL+X**N4*C(I,N) 10090000
+ 10 CONTINUE 10091000
+ RETURN 10092000
+ END 10093000
+ FUNCTION PPL(N,X,NPX,C) 10094000
+C ************************************* 10095000
+C PRIMITIVA DI PN(X) 10096000
+C ************************************* 10097000
+ REAL*8 C,PPL,X 10098000
+ DIMENSION C(NPX,NPX) 10099000
+ IF(N.LE.0) GO TO 100 10100000
+ PPL=0.D0 10101000
+ IF(DABS(X).LT.1.D-70) RETURN 10102000
+ NDD=DABS(DLOG10(DABS(X))) 10103000
+ IF(NDD.GT.0) N3=70/NDD 10104000
+ IF(NDD.EQ.0) N3=70 10105000
+ DO 10 I=1,N 10106000
+ K=2*I-2 10107000
+ IF(N-K.LT.0) GO TO 10 10108000
+ N2=N-K+1 10109000
+C EVITA OVERFLOW PECCATO CONSUMI TEMPO! 10110000
+C IMPONGO ALL'EXP DI X**N2 DI ESSERE < 70 10111000
+ N4=MIN0(N2,N3) 10112000
+C 10113000
+ PPL=PPL+X**N4/N2*C(I,N) 10114000
+ 10 CONTINUE 10115000
+ RETURN 10116000
+C P0 10117000
+ 100 PPL=X 10118000
+ RETURN 10119000
+ END 10120000
+ FUNCTION PPL4(X,X1,A,N,IPMX,C) 10121000
+C ******************************************* 10122000
+C INTEGRALE FRA X1 ED X DI (PN*EXP(A*(X-X1)) 10123000
+C ************************************************ 10124000
+ REAL*8 X,X1,A,C,PXEA,PPL4,PPL 10125000
+ DIMENSION C(IPMX,IPMX) 10126000
+ IF(A.EQ.0.D0) GOTO 200 10127000
+ IF(N.LE.0) GO TO 100 10128000
+ PPL4=0.D0 10129000
+ DO 10 I=1,N 10130000
+ N2=N-2*I+2 10131000
+ IF(N2.LT.0) GO TO 10 10132000
+ PPL4=PPL4+C(I,N)*PXEA(X,X1,A,N2) 10133000
+ 10 CONTINUE 10134000
+ RETURN 10135000
+C P0 IS UNITY 10136000
+ 100 PPL4=PXEA(X,X1,A,N) 10137000
+ RETURN 10138000
+ 200 PPL4=PPL(N,X,IPMX,C)-PPL(N,X1,IPMX,C) 10139000
+ RETURN 10140000
+ END 10141000
+ FUNCTION PXEA(X2,X1,A,N) 10142000
+C *********************************** 10143000
+ IMPLICIT REAL*8 (A-H,O-Z) 10144000
+ IF(A.EQ.0.D0) GO TO 200 10145000
+ PROD=-1.D0 10146000
+ UNA=1.D0/A 10147000
+ ESP=DEXP(A*(X2-X1)) 10148000
+ SUM=0.D0 10149000
+ IF(N.LE.0) GO TO 100 10150000
+C PRIMO TERMINE ( X **N ) 10151000
+ PROD=UNA 10152000
+ SUM=(X2**N*ESP-X1**N)*PROD 10153000
+ IF(N.LE.1) GO TO 100 10154000
+ DO 10 I=2,N 10155000
+ J=N-I+1 10156000
+C I=N-J+1 10157000
+ PROD=PROD*UNA*(-1)*(J+1) 10158000
+ SUM=SUM+PROD*(X2**J*ESP-X1**J) 10159000
+ 10 CONTINUE 10160000
+ 100 CONTINUE 10161000
+C ULTIMO TERMINE (X**0=1 10162000
+ PROD=PROD*UNA*(-1) 10163000
+ SUM=SUM+PROD*(ESP-1) 10164000
+ PXEA=SUM 10165000
+ RETURN 10166000
+ 200 PXEA=0.D0 10167000
+ IF(N.EQ.0) RETURN 10168000
+ PXEA=(X2**(N+1)-X1**(N+1))/(N+1) 10169000
+ RETURN 10170000
+ END 10171000
+ SUBROUTINE POST(NTP,N) 10172000
+C **************************** 10173000
+C 10174000
+C POSITION FILE NT(1,NTP) AT RECORD N 10175000
+C 10176000
+C ************************************************* 10177000
+C 10178000
+ COMMON /FILES/NT(4,99) 10179000
+ NTT=NT(1,NTP) 10180000
+ 50 NSK=N-NT(4,NTP) 10181000
+ IF(NSK) 100,200,300 10182000
+ 300 CONTINUE 10183000
+ DO 10 I=1,NSK 10184000
+ 10 READ(NTT,1500) 10185000
+ 1500 FORMAT(A80) 10186000
+ NT(4,NTP)=N 10187000
+ 200 RETURN 10188000
+ 100 CONTINUE 10189000
+ REWIND NTT 10190000
+ NT(4,NTP)=1 10191000
+ GO TO 50 10192000
+ END 10193000
+ FUNCTION NCERC1(M1,M2,IND,M3,M4,MIX,N,K1,K2,K3) 10194000
+C ***************************************************** 10195000
+C LOOK FOR INDEX MATERIAL IN INPUT TABLE 10196000
+C GUARDA UN ISOTOPO DELL INDICE PRIMA SERIE SE E IN MIX 10197000
+C SE IL NOME IN MIX E BIANCO CI SONO TUTTI 10198000
+C E IL NUMERO DELLA MIX IN CUI E L ISOTOPO OD M4+1 SE 10199000
+C L ISOTOPO NON E IN MIX , MA VA MESSO 10200000
+C IND(M1,M2)=INDICE 10201000
+C MIX(M3,M4)=MIX 10202000
+C NCERC : POSOZIONE ISOTOPO IN MIX =0 SE NON TROVATO 10203000
+C = POSIZIONI IN MIX IN CUI E 10204000
+C =M4+1 SE NON CI E MA LO METTE 10205000
+C ( BIANCO INPUT NAME ) 10206000
+C =-1 SE ESCLUSO (MIX(5).LT.0) 10207000
+C N= ISOTOPO DELL INDICE 10208000
+C K1= POSIZIONE NELL INDICE DEL NOME 10209000
+C K2= POSIZIONE NELLA MIX DEL NOME DELL ISOTOPO 10210000
+C K3= NOME DI OUTPUT 10211000
+C 10212000
+C **************************************************************** 10213000
+C 10214000
+ INTEGER BIANC 10215000
+ DIMENSION IND(M1,M2),MIX(M3,M4) 10216000
+ DATA BIANC/4H / 10217000
+ NCERC1=0 10218000
+C NON LO CONSIDERO ALL INIZIO ( COME NON TROVATO L ISOTOPO) 10219000
+ DO 10 I=1,M4 10220000
+C UN NOME BIANCO IN MIX SEGNALA DI METTERLO 10221000
+ IF(MIX(K2,I).EQ.BIANC.AND.MIX(K2+1,I).EQ.BIANC)NCERC1=M4+1 10222000
+ IF(IND(K1,N).NE.MIX(K2,I).OR.IND(K1+1,N).NE.MIX(K2+1,I))GOTO 10 10223000
+C QUI LO HA TROVATO 10224000
+ NCERC1=I 10225000
+C GUARDA SE E ESCLUSO 10226000
+ IF(MIX(5,I).GE.0) RETURN 10227000
+ NCERC1=-1 10228000
+ RETURN 10229000
+ 10 CONTINUE 10230000
+C QUI NON LO HA TROVATO 10231000
+C RESTA ZERO 10232000
+ RETURN 10233000
+ END 10234000
+ SUBROUTINE CONTR1(I,AK,NK,MINDX1,MINDX2,INDX) 10235000
+C *********************************** 10236000
+C CONTROL OF MAT,MF,MT FLAGS IN INDEX 10237000
+C CONFRONTA IN /RECS/ MAT,MF,MT CON INDX E SE NON VA 10238000
+C BENE LO SEGNALA 10239000
+C 10240000
+C ****************************************************** 10241000
+C 10242000
+ COMMON /RECS/M(3) 10243000
+ COMMON /FILES/ NT(4,99) 10244000
+ DIMENSION INDX(MINDX1,MINDX2) 10245000
+ LOGICAL T 10246000
+ T=.FALSE. 10247000
+ DO 10 IJ=1,3 10248000
+ T=T.OR.(FLOAT(INDX(IJ,I)).NE.M(I)) 10249000
+ 10 CONTINUE 10250000
+ IF(T) RETURN 10251000
+ WRITE(NO,1000) AK,NT 10252000
+ 1000 FORMAT(' SUBROUTINE CONTR FOUD INDEX ERROR:',A8,I10) 10253000
+ WRITE(NO,2000) I,(INDX(J,I),J=1,MINDX1) 10254000
+ 2000 FORMAT(' INDEX:',10E12.5) 10255000
+ WRITE(NO,3000) 10256000
+ 3000 FORMAT(' FOR RECS RECORD :') 10257000
+ CALL WREC(1,NO,4) 10258000
+ CALL WREC(2,NO,4) 10259000
+ CALL WREC(3,NO,4) 10260000
+ RETURN 10261000
+ END 10262000
+ SUBROUTINE SELR1(NPK,NRS,PK,KE,EINF,ESUP) 10263000
+C ***************************************************** 10264000
+C SELECT RESONANCES 10265000
+C ELIMINA IN PK(NPK,NRS) I VALORI CON PK(KE,.) FUORI EINF-ESUP 10266000
+C **************************************************************** 10267000
+ DIMENSION PK(NPK,NRS) 10268000
+ NP=NRS 10269000
+ I=0 10270000
+ 10 I=I+1 10271000
+ 20 IF(I.GT.NP) GO TO 500 10272000
+ IF(PK(KE,I).LT.EINF.OR.PK(KE,I).GT.ESUP) GO TO 100 10273000
+ GO TO 10 10274000
+C ELIMINA UN ELEMENTO METTENDO L'ULTIMO AL SUO POSTO 10275000
+ 100 DO 30 J=1,NPK 10276000
+ 30 PK(J,I)=PK(J,NP) 10277000
+ NP=NP-1 10278000
+ GO TO 20 10279000
+ 500 NRS=I-1 10280000
+ IF(NRS.LE.0) CALL ERR(8HSELR1WAR ,500) 10281000
+ RETURN 10282000
+ END 10283000
+ SUBROUTINE ENERG(NG1,DELU,EUP,E) 10284000
+C ************************************** 10285000
+C COMPUTES ENERGY BOUNDARIES 10286000
+C ************************************** 10287000
+ DIMENSION E(NG1) 10288000
+ REAL*8 DEUP,DDELU,EDEL 10289000
+C SET DEFAULTS BUT 10290000
+C DEFAULTS ARE JUST SET IN SUBROUTINE TABNIZ 10291000
+ DEUP=EUP 10292000
+ DDELU=DELU 10293000
+ IF(DEUP.LE.0) DEUP=1.419D+7 10294000
+ IF(DDELU.LE.0) DDELU=1./120. 10295000
+ IF(NG1.LE.0) NG1=2083 10296000
+C 10297000
+ EDEL=DEXP(-DDELU) 10298000
+ E(1)=DEUP 10299000
+ DO 10 I=2,NG1 10300000
+ 10 E(I)=E(I-1)*EDEL 10301000
+C 10302000
+ RETURN 10303000
+ END 10304000
+ SUBROUTINE NORM(MA,A,C) 10305000
+C ************************************** 10306000
+C DIVIDE A(MA) PER C 10307000
+C ************************************** 10308000
+ DIMENSION A(MA) 10309000
+ DO 10 I=1,MA 10310000
+ 10 A(I)=A(I)/C 10311000
+ RETURN 10312000
+ END 10313000
+ FUNCTION NSUMG1(NG,M,NL) 10314000
+C ****************************************** 10315000
+C CONTA I NL(M)>=NG 10316000
+C ************************************ 10317000
+C DIMENSION NL(M) 10318000
+ DIMENSION NL(1) 10319000
+ NSUMG1=0 10320000
+ IF(M.LE.0) RETURN 10321000
+ DO 10 I=1,M 10322000
+ IF(NL(I).GE.NG) NSUMG1=NSUMG1+1 10323000
+ 10 CONTINUE 10324000
+ RETURN 10325000
+ END 10326000
+ SUBROUTINE INFER(E,LIM,N,A) 10327000
+C ************************************** 10328000
+C CERCA IL PRIMO PIU PICCOLO DI E IN A(N) 10329000
+C *************************************** 10330000
+ DIMENSION A(N) 10331000
+ DO 10 I=1,N 10332000
+ IF(A(I).GT.E) GO TO 10 10333000
+ LIM=I 10334000
+ RETURN 10335000
+ 10 CONTINUE 10336000
+ LIM=N 10337000
+ RETURN 10338000
+ END 10339000
+ FUNCTION MAXX(N,M) 10340000
+C *********************************** 10341000
+C MASSIMO DEL VETTORE M(N) 10342000
+C *********************************** 10343000
+ DIMENSION M(N) 10344000
+ MAXX=-99999 10345000
+ DO 10 I=1,N 10346000
+ IF(MAXX.LT.M(I)) MAXX=M(I) 10347000
+ 10 CONTINUE 10348000
+ RETURN 10349000
+ END 10350000
+ SUBROUTINE FILTB2(NR,NE,KT,NBT,JNT) 10351000
+C ******************************************* 10352000
+C RIEMPIE UN VETTORE LUNGO NE COLLA TABULAZIONE RELATIVA 10353000
+C ******************************************* 10354000
+ DIMENSION KT(NE),JNT(100),NBT(100) 10355000
+ NR1=1 10356000
+ DO 10 IR=1,NR 10357000
+ NR2=NBT(IR) 10358000
+ IF(NR2.LT.NR1) CALL ERR(8HFILTB2 ,15) 10359000
+ DO 15 IE=NR1,NR2 10360000
+ 15 KT(IE)=JNT(IR) 10361000
+ NR1=NR2 10362000
+ 10 CONTINUE 10363000
+ RETURN 10364000
+ END 10365000
+ SUBROUTINE SOGLM(EPS,NSG,NG,SIG) 10366000
+C ************************************* 10367000
+C 10368000
+C DETERMINA IL POSTO NSG SOTTO CUI ABS(SIG)<=EPS 10369000
+C 10370000
+C ********************************************************* 10371000
+ DIMENSION SIG(NG) 10372000
+ DO 10 I=1,NG 10373000
+ I1=NG-I+1 10374000
+ IF(ABS(SIG(I1)).GT.EPS) GO TO 100 10375000
+ 10 CONTINUE 10376000
+ NSG=0 10377000
+ RETURN 10378000
+ 100 CONTINUE 10379000
+ NSG=I1 10380000
+ RETURN 10381000
+ END 10382000
+ SUBROUTINE SOGLM1(EPS,NSG,NG,SIG) 10383000
+C ************************************* 10384000
+C 10385000
+C DETERMINA IL POSTO NSG SOPRA CUI ABS(SIG)<=EPS 10386000
+C 10387000
+C ********************************************************* 10388000
+ DIMENSION SIG(NG) 10389000
+ DO 10 I=1,NG 10390000
+ IF(ABS(SIG(I)).GT.EPS) GO TO 100 10391000
+ 10 CONTINUE 10392000
+ NSG=0 10393000
+ RETURN 10394000
+ 100 CONTINUE 10395000
+ NSG=I 10396000
+ RETURN 10397000
+ END 10398000
+ SUBROUTINE SOGL(EPS,NSG,NG,SIG) 10399000
+C ************************************* 10400000
+C 10401000
+C DETERMINA IL POSTO NSG SOTTO CUI SIG<=EPS 10402000
+C 10403000
+C ********************************************************* 10404000
+ DIMENSION SIG(NG) 10405000
+ DO 10 I=1,NG 10406000
+ I1=NG-I+1 10407000
+ IF(SIG(I1).GT.EPS) GO TO 100 10408000
+ 10 CONTINUE 10409000
+ NSG=0 10410000
+ RETURN 10411000
+ 100 CONTINUE 10412000
+ NSG=I1 10413000
+ RETURN 10414000
+ END 10415000
+ SUBROUTINE RIBA(N,A) 10416000
+C ***************************** 10417000
+C RIBALTA IL VATTORE A(N) 10418000
+C **************************** 10419000
+ DIMENSION A(N) 10420000
+ N1=N/2 10421000
+ DO 10 I=1,N1 10422000
+ I1=N-I+1 10423000
+ D=A(I) 10424000
+ A(I)=A(I1) 10425000
+ A(I1)=D 10426000
+ 10 CONTINUE 10427000
+ RETURN 10428000
+ END 10429000
+ SUBROUTINE TRASF(M,A,B) 10430000
+C ********************************* 10431000
+C METTE A IN B 10432000
+C ******************************** 10433000
+C DIMENSION A(M),B(M) 10434000
+ DIMENSION A(1),B(1) 10435000
+ IF(M.LE.0) RETURN 10436000
+ DO 10 I=1,M 10437000
+ B(I)=A(I) 10438000
+ 10 CONTINUE 10439000
+ RETURN 10440000
+ END 10441000
+ SUBROUTINE TRASF1(M,N,A,B) 10442000
+C ********************************* 10443000
+C METTE A IN B NELL'ORDINE SPECIFICATO DA N 10444000
+C ************************************** 10445000
+C DIMENSION A(M),B(M),N(M) 10446000
+ DIMENSION A(1),B(1),N(1) 10447000
+ IF(M.LE.0) RETURN 10448000
+ DO 10 I=1,M 10449000
+ B(N(I))=A(I) 10450000
+ 10 CONTINUE 10451000
+ RETURN 10452000
+ END 10453000
+ FUNCTION FNDMX(K,M1,M2,A) 10454000
+C ***************************** 10455000
+C 10456000
+C TROVA IN A(M1,M2) IL MAX DELLA COL A(K, ) 10457000
+C 10458000
+C ********************************************** 10459000
+C 10460000
+ DIMENSION A(M1,M2) 10461000
+ FNDMX=1.E-30 10462000
+ DO 10 I=1,M2 10463000
+ IF(A(K,I).GT.FNDMX) FNDMX=A(K,I) 10464000
+ 10 CONTINUE 10465000
+ RETURN 10466000
+ END 10467000
+ SUBROUTINE EXAM(M,K,N1,N2,NA,NB) 10468000
+C ******************************************* 10469000
+C 10470000
+C ESAMINA A ( COLONNA M) E FA MATRICE NB: 10471000
+C NB(1,.)=VALORE IN A(M, ) 10472000
+C NB(2, )=INIZIO DEL VALORE 10473000
+C NB(3, )=DIMENSIONI DEL VALORE DI A(M, ) 10474000
+C K= DIMENSIONI DI B 10475000
+C 10476000
+C **************************************************** 10477000
+ DIMENSION NA(N1,N2),NB(3,N2) 10478000
+ IF(M.EQ.0.OR.M.GT.N1) CALL ERR(8H EXAM ,0) 10479000
+ K=1 10480000
+ NB(1,K)=NA(M,1) 10481000
+ NB(2,K)=1 10482000
+ NB(3,K)=1 10483000
+ IF(N2.LT.2) RETURN 10484000
+ DO 10 I=2,N2 10485000
+ IF(NA(M,I).NE.NB(1,K))GO TO 100 10486000
+C QUI SE SONO UGUALI INCREMENTA LE DIMENSIONI DI B(3,K) 10487000
+ NB(3,K)=NB(3,K)+1 10488000
+ GO TO 10 10489000
+ 100 CONTINUE 10490000
+C CAMBIA B 10491000
+ K=K+1 10492000
+ NB(1,K)=NA(M,I) 10493000
+ NB(2,K)=I 10494000
+ NB(3,K)=1 10495000
+ 10 CONTINUE 10496000
+ RETURN 10497000
+ END 10498000
+ SUBROUTINE LIMIT(EPS,N1,N2,N,A) 10499000
+C *************************************** 10500000
+C IN A(N) CERCA I LIMITI N1,N2 FRA CUI CI SONO VALORI >EPS 10501000
+C ********************************************************** 10502000
+C DIMENSION A(N) 10503000
+ DIMENSION A(1) 10504000
+ IF(N.LE.0) GO TO 300 10505000
+ N1=1 10506000
+ N2=N 10507000
+ DO 10 I=1,N 10508000
+ IF(A(I).GT.EPS) GOTO100 10509000
+ 10 CONTINUE 10510000
+ I=0 10511000
+ 100 N1=I 10512000
+ DO 20 I=1,N 10513000
+ II=N-I+1 10514000
+ IF(A(II).GT.EPS) GO TO 200 10515000
+ 20 CONTINUE 10516000
+ II=0 10517000
+ 200 N2=II 10518000
+ RETURN 10519000
+ 300 N1=0 10520000
+ N2=0 10521000
+ RETURN 10522000
+ END 10523000
+ SUBROUTINE CERCM(NUM,K,M,N) 10524000
+C ******************************** 10525000
+C CERCA IL PRIMO N(M) >K E LO METTE IN NUM 10526000
+C ************************************ 10527000
+C DIMENSION N(M) 10528000
+ DIMENSION N(1) 10529000
+ NUM=K 10530000
+ IF(M.LE.0) RETURN 10531000
+ DO 10 I=1,M 10532000
+ IF(N(I).LE.K) GO TO 10 10533000
+ NUM=N(I) 10534000
+ RETURN 10535000
+ 10 CONTINUE 10536000
+ RETURN 10537000
+ END 10538000
+ SUBROUTINE ORDMIC(M,N1,N2,NA) 10539000
+C ******************************** 10540000
+C 10541000
+C ORDINA NA PER VALORI CRESCENTI DELLA COLONNA M 10542000
+C !!!!!!!!!!!!!!!! ORDIN1 E' PIU' EFFICIENTE !!!!!!!!!!!!!!! 10543000
+C 10544000
+C *********************************** 10545000
+C 10546000
+ DIMENSION NA(N1,N2) 10547000
+C 10548000
+ DO 10 KI=1,N2 10549000
+C CERCA IL PIU PICCOLO SUI SUCCESSIVI ( DA KI+1=I1) 10550000
+ I1=KI+1 10551000
+ IF(I1.GT.N2) GOTO 10 10552000
+ DO 10 I=I1,N2 10553000
+ IF(NA(M,KI).LE.NA(M,I)) GO TO 10 10554000
+C SCAMBIO I ED K 10555000
+ DO 20 II=1,N1 10556000
+ ND=NA(II,KI) 10557000
+ NA(II,KI)=NA(II,I) 10558000
+ NA(II,I)=ND 10559000
+ 20 CONTINUE 10560000
+ 10 CONTINUE 10561000
+ RETURN 10562000
+ END 10563000
+ SUBROUTINE ORDPU1(NP,EP,SC,SF,SS,KP,EP1,SC1,SF1,SS1) 10564000
+C ********************************************************** 10565000
+C ORDINA LE TABULAZIONI EP SC SF SS (NP) IN BASE A KP 10566000
+C METTE QUELLO CHE OTTIENE IN SC1 SF1 SS1 10567000
+C ********************************************************** 10568000
+C 10569000
+ DIMENSION EP(NP),SC(NP),SF(NP),SS(NP),EP1(NP),SC1(NP),SS1(NP) 10570000
+ DIMENSION SF1(NP),KP(NP) 10571000
+ NEXT=1 10572000
+ DO 10 I=1,NP 10573000
+ EP1(I)=EP(NEXT) 10574000
+ SC1(I)=SC(NEXT) 10575000
+ SF1(I)=SF(NEXT) 10576000
+ SS1(I)=SS(NEXT) 10577000
+ NEXT=KP(NEXT) 10578000
+ 10 CONTINUE 10579000
+ RETURN 10580000
+ END 10581000
+ SUBROUTINE ORDPU3(NP,EP,SP,KP,NF,EF,SF) 10582000
+C *********************************************** 10583000
+C ORDINA LA TABULAZIONE EP SP (NP) IN BASE A KP 10584000
+C METTE QUELLO CHE OTTIENE IN EF SF (NF) 10585000
+C NON ELIMINA I DOPPIONI (CONTRARIAMENTE A ORDPU2) 10586000
+C *********************************************** 10587000
+C 10588000
+ DIMENSION EP(NP),SP(NP),KP(NP),EF(NF),SF(NF) 10589000
+ NEXT=1 10590000
+ DO 10 I=1,NP 10591000
+ EF(I)=EP(NEXT) 10592000
+ SF(I)=SP(NEXT) 10593000
+ NEXT=KP(NEXT) 10594000
+ 10 CONTINUE 10595000
+ NF=NP 10596000
+ RETURN 10597000
+ END 10598000
+ SUBROUTINE ORD(N,A) 10599000
+C ************************************** 10600000
+C ORDINA A PER VALORI CRESCENTI 10601000
+C ******************************************** 10602000
+ DIMENSION A(N) 10603000
+ N1=N-1 10604000
+ DO 10 I=1,N1 10605000
+ N2=I+1 10606000
+ DO 20 J=N2,N 10607000
+ IF(A(I).LE.A(J)) GO TO 20 10608000
+ D=A(I) 10609000
+ A(I)=A(J) 10610000
+ A(J)=D 10611000
+ 20 CONTINUE 10612000
+ 10 CONTINUE 10613000
+ RETURN 10614000
+ END 10615000
+ SUBROUTINE ORDIND(K,N1,NP,NPMX,A) 10616000
+C *************************************** 10617000
+C ORDINA A(NP,N1) PER VALORI DECRESCENTI DI A (.,K) 10618000
+C ELIMINA I VALORI EGUALI DI A (.,K) METTENDOLI ALLA FINE 10619000
+C E CALANDO DI CONSEGUENZA NP 10620000
+C ************************************************** 10621000
+ DIMENSION A(NPMX,N1) 10622000
+ I=0 10623000
+C LOOP SUI NUOVI POSTI I 10624000
+ 10 I=I+1 10625000
+ IF(I.GE.NP) RETURN 10626000
+C CERCA IL MAX SUI SUCCESSIVI 10627000
+ J=I 10628000
+ 20 J=J+1 10629000
+ 25 IF(J.GT.NP) GO TO 10 10630000
+ IF(A(I,K).GT.A(J,K)) GO TO 20 10631000
+ IF(A(I,K).EQ.A(J,K)) GO TO 100 10632000
+C SCAMBIA 10633000
+ 110 DO 30 JJ=1,N1 10634000
+ D=A(I,JJ) 10635000
+ A(I,JJ)=A(J,JJ) 10636000
+ 30 A(J,JJ)=D 10637000
+ GO TO 20 10638000
+C ELIMINA L'ELEMENTO 10639000
+ 100 DO 40 JJ=1,N1 10640000
+ D=A(J,JJ) 10641000
+ A(J,JJ)=A(NP,JJ) 10642000
+ 40 A(NP,JJ)=D 10643000
+ NP=NP-1 10644000
+ GO TO 25 10645000
+ END 10646000
+ SUBROUTINE ORDSOG(N,NSG,NORD) 10647000
+C *********************************** 10648000
+C DEFINISCE NORD, CONTENENTE L'ORDINAMENTO 10649000
+C DECRESCENTE DEI NUMERI IN NSG 10650000
+C ***************************************** 10651000
+C 10652000
+C DIMENSION NSG(N),NORD(N) 10653000
+ DIMENSION NSG(1),NORD(1) 10654000
+ IF(N.LE.0) RETURN 10655000
+ DO 10 I=1,N 10656000
+ 10 NORD(I)=0 10657000
+ DO 20 I=1,N 10658000
+C K E' IL PRIMO NON ASSEGNATO 10659000
+ DO 30 K=1,N 10660000
+ IF(NORD(K).LE.0) GO TO 300 10661000
+ 30 CONTINUE 10662000
+ CALL ERR(8HORDSOG ,300) 10663000
+ 300 DO 40 J=1,N 10664000
+C NORD.NE.0 =>NSG ORDER DEFINED 10665000
+ IF(NORD(J).GT.0) GO TO 40 10666000
+ IF(NSG(J).LE.NSG(K)) GOTO 40 10667000
+ K=J 10668000
+ 40 CONTINUE 10669000
+ NORD(K)=I 10670000
+ 20 CONTINUE 10671000
+ RETURN 10672000
+ END 10673000
+ SUBROUTINE GRATTE(E1,E2,EX1,EX2,PX1,PX2,IEX,NE,KINT,NEINT,A,EINT) 10674000
+C ************************************************************** 10675000
+C 10676000
+C INTEGRATION ROUTINE 10677000
+C INTEGRA PER OGNI EI F(E,EI) FRA E1 ED E2, INTERPOLANDO 10678000
+C FRA EX1 ED EX2 10679000
+C 10680000
+C E1,E2 = ESTREMI DI INTEGRAZIONE 10681000
+C NE1,NE2 = 2 RECORDS (DI 2 ENERGIE E) DI F(E,.) FRA CUI INTEGRA 10682000
+C EX1,EX2 =ENERGIE ALL'ESTREMO DELL'INTERVALLO DI INTERPOLAZIONE 10683000
+C F(E1,.) F(E2,.) 10684000
+C KINT= CODICE DI INTERPOLAZIONE FRA E1 ED E2 10685000
+C 10686000
+C **************************************************************** 10687000
+C 10688000
+ DIMENSION A(NEINT),EINT(NEINT) 10689000
+C COMMON /RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 10690000
+C 1N1X,N2X,NS,LX,LY,LB 10691000
+C COMMON/DENS/JMT,JAT,JTT,JLT,LV,JNS,MNS,JX,MX 10692000
+ NEX1=NE-IEX+1 10693000
+C NUMERO DEL RECORD TAB1 IN DENS,CONTANDO CHE IN DENS SONO 10694000
+C PER E CRESCENTI COME ENDFB, IN P2F6TB IN E DECRESCENTI 10695000
+ NEX2=NEX1-1 10696000
+C LOCATE RECORDS IN DENS FOR F(E1,.) F(E2,.) ( IL RECORD 1 E' P(E)10697000
+C IL RECORD 2 E' IL TAB2 ) I TAB1 SONO IL NUMERO NEX+2 10698000
+ CALL LRIDS(NEX1+2,JAF1,LNT) 10699000
+ IF(LNT.GT.1) CALL ERR(8HGRATTE ,2) 10700000
+ CALL LRIDS(NEX2+2,JAF2,LNT) 10701000
+ IF(LNT.GT.1) CALL ERR(8HGRATTE ,3) 10702000
+ DO 10 I=1,NEINT 10703000
+C ESCLUDO IL CASO OVE GUADAGNA E NELL'URTO 10704000
+ IF(EINT(I).GT.E1) GO TO 10 10705000
+C PROCURO I VALORI DI F(NEX1,E(I)) F(NEX2,E(I)) INTERPOLANDO SU E(I10706000
+ NPF1=1 10707000
+ CALL IPDS(JAF1,NPF1,EINT(I),FX1EI,IPF1) 10708000
+ NPF2=1 10709000
+ CALL IPDS(JAF2,NPF2,EINT(I),FX2EI,IPF2) 10710000
+C MOLTIPLICO P PER F ( QUESTO SUPPONE P SMOOTH RISPETTO AD F O CHE 10711000
+C ABBIANO LA STESSA LEGGE DI INTERPOLAZIONE OPPURE NON SI PUO' 10712000
+C FARE IL PRODOTTO E POI INTEGRARE IL PRODOTTO CON LA LEGGE DI INTE10713000
+C INTERPOLAZIONE DELLE ENERGIE E DI F 10714000
+ EF1=FX1EI*PX1 10715000
+ EF2=FX2EI*PX2 10716000
+C INTEGRO P*F SULLE E DI PARTENZA E1-E2 10717000
+ CALL ECSI(EX2,EF2,EX1,EF1,E2,E1,KINT,B) 10718000
+ A(I)=A(I)+B 10719000
+ 10 CONTINUE 10720000
+ RETURN 10721000
+ END 10722000
+ SUBROUTINE INTEGG(NG,SIG,IR,E,M,IHED,IPOST) 10723000
+C *************************************** 10724000
+C 10725000
+C INTEGRATION ROUTINE 10726000
+C INTEGRO O MEDIO A GRUPPI IL RECORD ENDFB IN INDICE INDX(.,IR) 10727000
+C LO METTE IN SIG , NON LEGGE IL SEND FINALE DI ENDFB 10728000
+C PER M >=1 MEDIA ALTRIMENTI INTEGRA 10729000
+C PER IHED >0 NON LEGGE L'HEAD 10730000
+C PER IPOST >0 NON POSIZIONA IL FILE 10731000
+C *********************************************************** 10732000
+C 10733000
+ DIMENSION SIG(NG),E(NG) 10734000
+ COMMON /FILES/NT(4,99) 10735000
+ EQUIVALENCE(NT(1,6),NO) 10736000
+ COMMON/INDX/AINDX(40,200) 10737000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2 10738000
+C COMMON /OPZIO/ OPZ(4,8,10) 10739000
+C EQUIVALENCE (OPZ(2,6,1),STMP) 10740000
+C COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 10741000
+C 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 10742000
+C 10743000
+C DEFINISCE E POSIZIONA IL FILE DI INPUT 10744000
+ T=AINDX(7,IR) 10745000
+ NTIN=AINDX(23,IR) 10746000
+ NTI=NT(1,NTIN) 10747000
+ IF(IPOST.GT.0) GO TO 100 10748000
+ NPOST=AINDX(25,IR) 10749000
+ CALL POST(NTIN,NPOST) 10750000
+C 10751000
+ 100 IF(IHED.GT.0) GO TO 200 10752000
+C LETTURA DELL HEAD DEL MAT,MT 10753000
+ CALL RREC(1,NTI,3,T) 10754000
+ NT(4,NTIN)=NT(4,NTIN)+1 10755000
+C LETTURA TAB1 10756000
+ 200 CALL RREC(3,NTI,3,T) 10757000
+ NT(4,NTIN)=NT(4,NTIN)+1+N1/3+NREST(N1,3)+N2/3+NREST(N2,3) 10758000
+C 10759000
+C INTEGRAZIONE 10760000
+ DO 10 I=1,NG 10761000
+ E1=E(I) 10762000
+ E2=E(I+1) 10763000
+C GRATE= SUBROUTINE INTEGRANTE ( IN RECS) DI SLAVE3 10764000
+ CALL GRATE(E2,E1,SIG(I)) 10765000
+ IF(M.GT.0) SIG(I)=SIG(I)/(E1-E2) 10766000
+ 10 CONTINUE 10767000
+ RETURN 10768000
+ END 10769000
+ SUBROUTINE GRATP(AMED,X,Y) 10770000
+C ****************************************** 10771000
+C CALCOLO DI AINT(X * Y(X) ) IN UN TAB1 ( AINT(Y(X)=1 PER DEF 10772000
+C ****************************************** 10773000
+C 10774000
+ DIMENSION X(200),Y(200) 10775000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 10776000
+ 1 N1X,N2X,NS,LX,LY,LB 10777000
+ NI1=1 10778000
+ AINT=0. 10779000
+ DO 10 IR=1,N1 10780000
+ KT=JNT(IR) 10781000
+ NI2=NBT(IR)-1 10782000
+C L'ULTIMO NUMERO DEL RANGE NON HA INTEGRALE ASSOCIATO 10783000
+ DO 20 IE=NI1,NI2 10784000
+ X1=X(IE) 10785000
+ X2=X(IE+1) 10786000
+ Y1=Y(IE) 10787000
+ Y2=Y(IE+1) 10788000
+ GO TO (100,200,300,900,500),KT 10789000
+ 900 CALL ERR(8HGRATPIN ,900) 10790000
+ GO TO 600 10791000
+C LEGGE COSTANTE 10792000
+ 100 AINT=Y1/2.*(X2**2-X1**2) +AINT 10793000
+ GO TO 600 10794000
+C LEGGE LINEARE 10795000
+ 200 AN=(Y2-Y1)/(X2-X1) 10796000
+ AINT=AN*(X2**3-X1**3)/3.+(AN*X1+Y1)/2.*(X2**2-X1**2) +AINT 10797000
+ GO TO 600 10798000
+C LN(X) - Y 10799000
+ 300 ALGX1=ALOG(X1) 10800000
+ ALGX2=ALOG(X2) 10801000
+ X12=X1**2 10802000
+ X22=X2**2 10803000
+ AN=(Y2-Y1)/(ALGX2-ALGX1) 10804000
+ AINT=(Y1-AN*ALGX1)/2.*(X22-X12)+X22*(ALGX2/2.-0.25)- 10805000
+ 1 X12*(ALGX1/2.-0.25) +AINT 10806000
+ GO TO 600 10807000
+C LN (X) - LN (Y) 10808000
+ 500 AN=(ALOG(Y2)-ALOG(Y1))/(ALOG(X2)-ALOG(X1)) 10809000
+ AINT=Y1/X1**AN/(AN+2)*(X2**(AN+2)-X1**(AN+2)) +AINT 10810000
+ 600 CONTINUE 10811000
+ 20 CONTINUE 10812000
+ NI1=NBT(IR) 10813000
+ 10 CONTINUE 10814000
+C CALL GRATE(-1.,1.,ANS) 10815000
+C AMED=AINT/ANS 10816000
+C IL DI CUI SOPRA NON SERVE PER LA NORMALIZZ DI P IN ENDFB 10817000
+ AMED=AINT 10818000
+ RETURN 10819000
+ END 10820000
+ SUBROUTINE INTS1(PESO,INTERP,NG,E,SIG,NP,ES,SIGU) 10821000
+C ***************************************************** 10822000
+C 10823000
+C INTEGRATION ROUTINE 10824000
+C INTEGRA A GRUPPI ULTRA FINI E(NG)-SIG(NG) , UNA 10825000
+C TABULAZIONE ES(NP)-SIGU(NP) CON LEGGI DI 10826000
+C INTERPOLAZIONE INTERP=<2,3,>3=LIN,SIGMA-LOG E,LOG-LOG 10827000
+C PESO= 1,>1 =COSTANTE,1/E 10828000
+C 10829000
+C QUESTA ROUTINE NON ORDINA E NON AZZERA SIG 10830000
+C ********************************************************** 10831000
+C 10832000
+ DIMENSION E(NG),SIG(NG),ES(NP),SIGU(NP) 10833000
+ REAL*8 ETEGL,ETEGR,AN,ALGES,ALGES1,ALGE,ALGE1,DELTAU,ESA 10834000
+ REAL*8 DENUM 10835000
+C LOOK FOR THE FIRST ENERGY GROUP 10836000
+ DO 10 I=1,NG 10837000
+ IF(ES(1).LT.E(I)) GO TO 10 10838000
+ NGI=I-1 10839000
+ GO TO 100 10840000
+ 10 CONTINUE 10841000
+ CALL ERR(8H INTS1 ,10) 10842000
+ RETURN 10843000
+ 100 CONTINUE 10844000
+C LOOK FOR THE LAST ENERGY GROUP 10845000
+ NG1=NGI+1 10846000
+ IF(NG1.LE.NG) GO TO 150 10847000
+ CALL ERR(8HINTS1 ,150) 10848000
+ RETURN 10849000
+ 150 CONTINUE 10850000
+ DO 20 I=NG1,NG 10851000
+ IF(ES(NP).LT.E(I)) GOTO 20 10852000
+ NGF=I-1 10853000
+ IF(ES(NP).EQ.E(I)) NGF=I 10854000
+ GOTO 200 10855000
+ 20 CONTINUE 10856000
+ NGF=NG 10857000
+ 200 CONTINUE 10858000
+C 10859000
+C LOOP ON ULTRA-FINE GROUPS INVOLVED 10860000
+ KKL1=1 10861000
+ DO 30 IG=NGI,NGF 10862000
+ IG1=IG+1 10863000
+ IF(IG1.GT.NG+1)GO TO 500 10864000
+C SONO FINITI I GRUPPI. L'INTEGRALE E' FINITO 10865000
+ ALGE=E(IG) 10866000
+ ALGE1=E(IG1) 10867000
+ IF(PESO.LE.1.) GO TO 301 10868000
+ DENUM=DLOG(ALGE1/ALGE) 10869000
+ GO TO 35 10870000
+ 301 DENUM=ALGE1-ALGE 10871000
+C USA IL PRECEDENTE A DESTRA COME PUNTO A SINISTRA SE E' 10872000
+C PASSATO OLTRE IN ENERGIA 10873000
+ 35 ITERPL=KKL1 10874000
+C 10875000
+C CERCA GLI ESTREMI DI INTEGRAZIONE E DI INTERPOLAZIONE A SINISTRA 10876000
+C SE E(IG) ED E(ITERPL) SONO EGUALI I PUNTI DI INTERP ED INTEGR 10877000
+C COINCIDONO . SE ES(ITERPL) E' PRIMA DELL'ENERGIA E(IG) 10878000
+C IL PUNTO DI INTERPOLAZIONE E' E(ITERPL),IL PUNTO DI INTEGRAZIONE10879000
+C E' E(IG) 10880000
+C 10881000
+ ETEGL=E(IG) 10882000
+C SE ES(ITERPL) E' DOPO E(IG) ALLORA IL PUNTO DI INTERPOLAZIONE 10883000
+C ES(ITERPL) E' ANCHE PUNTO DI INIZIO INTEGRAZIONE 10884000
+ IF(E(IG).GT.ES(ITERPL)) ETEGL=ES(ITERPL) 10885000
+C FISSA PUNTO DI INTERPOLAZIONE E DI INTEGRAZIONE A DESTRA. 10886000
+ ITERPR=ITERPL+1 10887000
+ IF(ITERPR.GT.NP) GO TO 550 10888000
+C NON HA PIU' PUNTI DI INTERPOLAZIONE A DESTRA, L'INTEGRALE E' 10889000
+C FINITO (E' A META' GRUPPO VA A DIVIDERE PER DENUM ) 10890000
+ ETEGR=E(IG1) 10891000
+ IF(ES(ITERPR).LT.ETEGR) GO TO 310 10892000
+C SE L'ENERGIA DI INTERPOLAZIONE E' PRIMA DELLA FINE DEL GRUPPO 10893000
+C ALLORA SI INTEGRA FINO ALLA FINE DEL GRUPPO . 10894000
+C SIA IN QUESTO CASO SIA IN CASO SIANO EGUALI SI SEGNA CHE 10895000
+C AL PROSSIMO GIRO IL PUNTO DI INTERPOLAZIONE A DESTRA 10896000
+C DIVIENE PUNTO DI INTERPOLAZIONE A SINISTRA 10897000
+ KKL1=ITERPR 10898000
+ ETEGR=ES(ITERPR) 10899000
+ 310 CONTINUE 10900000
+C 10901000
+C NOW INTEGRATION FOLLOWS: 10902000
+C 10903000
+C ITERPL AND ITERPR ARE THE LEFT AND RIGHT INTERPOLATION POINTS 10904000
+C ETEGR AND ETEGL ARE THE LEFT AND RIGHT INTEGRATION POINTS 10905000
+C 10906000
+C UTILIZZA FORMULE DI PAG. 25-26 DEL MANUALE DI MC2-I 10907000
+C PESO 1/E OPPURE COST (COERENTE CON LE SMOOT):PESO=2,1.. 10908000
+ IF(INTERP.NE.3) GO TO 600 10909000
+C LEGGE SIGMA - LOG E 10910000
+ ALGES1=ALOG(ES(ITERPR)) 10911000
+ ALGES=ALOG(ES(ITERPL)) 10912000
+ AN=(SIGU(ITERPR)-SIGU(ITERPL))/(ALGES1-ALGES) 10913000
+ ALGE1=DLOG(ETEGR) 10914000
+ ALGE=DLOG(ETEGL) 10915000
+ IF(PESO.GT.1.) GO TO 601 10916000
+ SIG(IG)=SIG(IG)+AN* 10917000
+ 1 (ETEGR*ALGE1-ETEGL*ALGE-ETEGR+ETEGL)+ 10918000
+ 2 (SIGU(ITERPL)-AN*ALGES)*(ETEGR-ETEGL) 10919000
+ GOTO400 10920000
+ 601 CONTINUE 10921000
+ DELTAU=DLOG(ETEGR/ETEGL) 10922000
+ SIG(IG)=AN/2.*(ALGE1**2-ALGE**2)+(SIGU(ITERPL)-AN*ALGES)*DELTAU+ 10923000
+ 1 SIG(IG) 10924000
+ GO TO 400 10925000
+ 600 CONTINUE 10926000
+ IF(INTERP.LE.2) GO TO 450 10927000
+C LEGGE LOGE - LOG SIGMA 10928000
+ IF(SIGU(ITERPR).EQ.0..OR.SIGU(ITERPL).EQ.0.) GO TO 450 10929000
+C IN QUESTI CASI IL LOGRITMO E" INDEFINITO,INTERPOLO LINEARE10930000
+ ALGES1=ALOG(ES(ITERPR)) 10931000
+ ALGES=ALOG(ES(ITERPL)) 10932000
+ AN=(ALOG(ABS(SIGU(ITERPR)))-ALOG(ABS(SIGU(ITERPL))))/ 10933000
+ 1 (ALGES1-ALGES) 10934000
+ ESA=ES(ITERPL)**AN 10935000
+ IF(PESO.GT.1.) GO TO 402 10936000
+ SIG(IG)=SIG(IG)+SIGU(ITERPL)/ESA/ 10937000
+ 1 (AN+1)*(ETEGR**(AN+1)-ETEGL**(AN+1)) 10938000
+ GO TO 400 10939000
+ 402 CONTINUE 10940000
+ EA=ETEGL**AN 10941000
+ EA1=ETEGR**AN 10942000
+ SIG(IG)=+SIGU(ITERPL)/ESA/AN*(EA1-EA)+ 10943004
+ 1 SIG(IG) 10944000
+ GO TO 400 10945000
+ 450 CONTINUE 10946000
+C LEGGE LINEARE 10947000
+C TO AVOID OVERFLOWS 10948000
+ IF(ABS(ES(ITERPR)-ES(ITERPL)).LT.1.E-20) GO TO 400 10949000
+ AN=(SIGU(ITERPR)-SIGU(ITERPL))/(ES(ITERPR)-ES(ITERPL)) 10950000
+ IF(PESO.GT.1.) GO TO 403 10951000
+ DDDDDD=SIG(IG)+AN/2.*(ETEGR*ETEGR-ETEGL*ETEGL)+ 10952000
+ 1 (SIGU(ITERPL)-AN*ES(ITERPL))*(ETEGR-ETEGL) 10953000
+ SIG(IG)=DDDDDD 10954000
+ GO TO 400 10955000
+ 403 CONTINUE 10956000
+ DELTAU=DLOG(ETEGR/ETEGL) 10957000
+ DDDDDD=AN*(ETEGR-ETEGL)+(SIGU(ITERPL)-AN*ES(ITERPL))*DELTAU+ 10958000
+ 1 SIG(IG) 10959000
+ SIG(IG)=DDDDDD 10960000
+ 400 CONTINUE 10961000
+C NEL CASO SOTTOCONTEMPLATO NON HA FINITO IL GRUPPO 10962000
+ IF(E(IG1).LT.ETEGR) GOTO35 10963000
+ SIG(IG)=SIG(IG)/DENUM 10964000
+ 30 CONTINUE 10965000
+ 500 CONTINUE 10966000
+ RETURN 10967000
+ 550 SIG(NGF)=SIG(NGF)/DENUM 10968000
+ RETURN 10969000
+C DA QUI ESCE SE FINISCE I PUNTI DI INTERPOLAZ A META DI 10970000
+C UN GRUPPO.ALLORA DEVE ANCORA DIVIDERE PER IL DENUM 10971000
+C RICORDARE CHE TUTTE LE SIGMA A GRUPPI VANNO DIVISE PER 10972000
+C LO STESSO DENOM DEL GRUPPO PERCHE POI VANNO SOMMATE INSIEME 10973000
+ END 10974000
+ SUBROUTINE INTS2(PESO,KT,NG,E,SIG,NP,ES,SIGU) 10975000
+C ***************************************************** 10976000
+C INTEGRATION ROUTINE 10977000
+C MEDIA A GRUPPI ULTRA FINI E(NG)-SIG(NG) , UNA 10978000
+C TABULAZIONE ES(NP)-SIGU(NP) CON LEGGI DI 10979000
+C INTERPOLAZIONE INTERP=<2,3,>3=LIN,SIGMA-LOG E,LOG-LOG 10980000
+C PESO= 1,>1 =COSTANTE,1/E 10981000
+C 10982000
+C QUESTA ROUTINE NON ORDINA E NON AZZERA SIG 10983000
+C 10984000
+C DIFFERISCE DA INTS1 PERCHE LE INTERPOLAZIONI SONO IN UN VETTORE 10985000
+C LUNGO NP INVECE CHE UNA LEGGE DI INTERPOLAZIONE SOLA 10986000
+C E' INSERITA LEGGE COSTANTE E I CODICI DI INTERPOLAZIONE 10987000
+C SONO RESI COERENTI CON QUELLI DI ENDFB 10988000
+C 10989000
+C AGGIUNTA POSSIBILITA' DI INTERVALLO DI ES ESTESO AD ES>E 10990000
+C 10991000
+C ********************************************************** 10992000
+C 10993000
+ DIMENSION E(NG),SIG(NG),ES(NP),SIGU(NP),KT(NP) 10994000
+ REAL*8 ETEGL,ETEGR,AN,ALGES,ALGES1,ALGE,ALGE1,DELTAU,ESA 10995000
+ REAL*8 DENUM 10996000
+C LOOK FOR THE FIRST ENERGY GROUP 10997000
+ DO 10 I=1,NG 10998000
+ IF(ES(1).LT.E(I)) GO TO 10 10999000
+ NGI=I-1 11000000
+ IF(NGI.LT.1) NGI=1 11001000
+ GO TO 100 11002000
+ 10 CONTINUE 11003000
+ CALL ERR(8H INTS2 ,10) 11004000
+ RETURN 11005000
+ 100 CONTINUE 11006000
+C LOOK FOR THE LAST ENERGY GROUP 11007000
+ NG1=NGI+1 11008000
+ IF(NG1.LE.NG) GO TO 150 11009000
+ CALL ERR(8HINTS2 ,150) 11010000
+ RETURN 11011000
+ 150 CONTINUE 11012000
+ DO 20 I=NG1,NG 11013000
+ IF(ES(NP).LT.E(I)) GOTO 20 11014000
+ NGF=I-1 11015000
+ IF(ES(NP).EQ.E(I)) NGF=I 11016000
+ GOTO 200 11017000
+ 20 CONTINUE 11018000
+ NGF=NG 11019000
+ 200 CONTINUE 11020000
+C 11021000
+C RICERCA DEL PRIMO PUNTO ES ( IL PIU VICINO AD E(1) ) 11022000
+ DO 25 I=1,NP 11023000
+ IF(ES(I).LT.E(1)) GO TO 250 11024000
+ 25 CONTINUE 11025000
+ KKL1=1 11026000
+ GO TO 260 11027000
+ 250 KKL1=I-1 11028000
+ IF(KKL1.LE.0) KKL1=1 11029000
+ 260 CONTINUE 11030000
+C 11031000
+C LOOP ON ULTRA-FINE GROUPS INVOLVED 11032000
+ DO 30 IG=NGI,NGF 11033000
+ IG1=IG+1 11034000
+ IF(IG1.GT.NG+1)GO TO 500 11035000
+C SONO FINITI I GRUPPI. L'INTEGRALE E' FINITO 11036000
+ ALGE=E(IG) 11037000
+ ALGE1=E(IG1) 11038000
+ IF(PESO.LE.1.) GO TO 301 11039000
+ DENUM=DLOG(ALGE1/ALGE) 11040000
+ GO TO 35 11041000
+ 301 DENUM=ALGE1-ALGE 11042000
+C USA IL PRECEDENTE A DESTRA COME PUNTO A SINISTRA SE E' 11043000
+C PASSATO OLTRE IN ENERGIA 11044000
+ 35 ITERPL=KKL1 11045000
+C 11046000
+C CERCA GLI ESTREMI DI INTEGRAZIONE E DI INTERPOLAZIONE A SINISTRA 11047000
+C SE E(IG) ED E(ITERPL) SONO EGUALI I PUNTI DI INTERP ED INTEGR 11048000
+C COINCIDONO . SE ES(ITERPL) E' PRIMA DELL'ENERGIA E(IG) 11049000
+C IL PUNTO DI INTERPOLAZIONE E' E(ITERPL),IL PUNTO DI INTEGRAZIONE11050000
+C E' E(IG) 11051000
+C 11052000
+ ETEGL=E(IG) 11053000
+C SE ES(ITERPL) E' DOPO E(IG) ALLORA IL PUNTO DI INTERPOLAZIONE 11054000
+C ES(ITERPL) E' ANCHE PUNTO DI INIZIO INTEGRAZIONE 11055000
+ IF(E(IG).GT.ES(ITERPL)) ETEGL=ES(ITERPL) 11056000
+C FISSA PUNTO DI INTERPOLAZIONE E DI INTEGRAZIONE A DESTRA. 11057000
+ ITERPR=ITERPL+1 11058000
+ IF(ITERPR.GT.NP) GO TO 550 11059000
+C NON HA PIU' PUNTI DI INTERPOLAZIONE A DESTRA, L'INTEGRALE E' 11060000
+C FINITO (E' A META' GRUPPO VA A DIVIDERE PER DENUM ) 11061000
+ ETEGR=E(IG1) 11062000
+ IF(ES(ITERPR).LT.ETEGR) GO TO 310 11063000
+C SE L'ENERGIA DI INTERPOLAZIONE E' PRIMA DELLA FINE DEL GRUPPO 11064000
+C ALLORA SI INTEGRA FINO ALLA FINE DEL GRUPPO . 11065000
+C SIA IN QUESTO CASO SIA IN CASO SIANO EGUALI SI SEGNA CHE 11066000
+C AL PROSSIMO GIRO IL PUNTO DI INTERPOLAZIONE A DESTRA 11067000
+C DIVIENE PUNTO DI INTERPOLAZIONE A SINISTRA 11068000
+ KKL1=ITERPR 11069000
+ ETEGR=ES(ITERPR) 11070000
+ 310 CONTINUE 11071000
+C 11072000
+C NOW INTEGRATION FOLLOWS: 11073000
+C 11074000
+C ITERPL AND ITERPR ARE THE LEFT AND RIGHT INTERPOLATION POINTS 11075000
+C ETEGR AND ETEGL ARE THE LEFT AND RIGHT INTEGRATION POINTS 11076000
+C 11077000
+C UTILIZZA FORMULE DI PAG. 25-26 DEL MANUALE DI MC2-I 11078000
+C PESO 1/E OPPURE COST (COERENTE CON LE SMOOT):PESO=2,1.. 11079000
+ INTERP=KT(ITERPL) 11080000
+ IF(INTERP.NE.3) GO TO 600 11081000
+C LEGGE SIGMA - LOG E 11082000
+ ALGES1=ALOG(ES(ITERPR)) 11083000
+ ALGES=ALOG(ES(ITERPL)) 11084000
+ AN=(SIGU(ITERPR)-SIGU(ITERPL))/(ALGES1-ALGES) 11085000
+ ALGE1=DLOG(ETEGR) 11086000
+ ALGE=DLOG(ETEGL) 11087000
+ IF(PESO.GT.1.) GO TO 601 11088000
+ SIG(IG)=SIG(IG)+AN* 11089000
+ 1 (ETEGR*ALGE1-ETEGL*ALGE-ETEGR+ETEGL)+ 11090000
+ 2 (SIGU(ITERPL)-AN*ALGES)*(ETEGR-ETEGL) 11091000
+ GOTO400 11092000
+ 601 CONTINUE 11093000
+ DELTAU=DLOG(ETEGR/ETEGL) 11094000
+ SIG(IG)=AN/2.*(ALGE1**2-ALGE**2)+(SIGU(ITERPL)-AN*ALGES)*DELTAU+ 11095000
+ 1 SIG(IG) 11096000
+ GO TO 400 11097000
+ 600 CONTINUE 11098000
+ IF(INTERP.NE.5) GO TO 450 11099000
+C LEGGE LOGE - LOG SIGMA 11100000
+ ALGES1=ALOG(ES(ITERPR)) 11101000
+ ALGES=ALOG(ES(ITERPL)) 11102000
+ AN=(ALOG(SIGU(ITERPR))-ALOG(SIGU(ITERPL)))/(ALGES1-ALGES) 11103000
+ ESA=ES(ITERPL)**AN 11104000
+ IF(PESO.GT.1) GO TO 402 11105000
+ SIG(IG)=SIG(IG)+SIGU(ITERPL)/ESA/ 11106000
+ 1 (AN+1)*(ETEGR**(AN+1)-ETEGL**(AN+1)) 11107000
+ GO TO 400 11108000
+ 402 CONTINUE 11109000
+ EA=ETEGL**AN 11110000
+ EA1=ETEGR**AN 11111000
+ SIG(IG)=+SIGU(ITERPL)/ESA/AN*(EA1-EA)+ 11112004
+ 1 SIG(IG) 11113000
+ GO TO 400 11114000
+ 450 CONTINUE 11115000
+ IF(INTERP.NE.2) GO TO 700 11116000
+C LEGGE LINEARE 11117000
+ AN=(SIGU(ITERPR)-SIGU(ITERPL))/(ES(ITERPR)-ES(ITERPL)) 11118000
+ IF(PESO.GT.1.) GO TO 403 11119000
+ SIG(IG)=SIG(IG)+AN/2.*(ETEGR*ETEGR-ETEGL*ETEGL)+ 11120000
+ 1 (SIGU(ITERPL)-AN*ES(ITERPL))*(ETEGR-ETEGL) 11121000
+ GO TO 400 11122000
+ 403 CONTINUE 11123000
+ DELTAU=DLOG(ETEGR/ETEGL) 11124000
+ SIG(IG)=AN*(ETEGR-ETEGL)+(SIGU(ITERPL)-AN*ES(ITERPL))*DELTAU+ 11125000
+ 1 SIG(IG) 11126000
+ GO TO 400 11127000
+ 700 IF(INTERP.NE.1) GO TO 800 11128000
+ IF(PESO.GT.1) GO TO 710 11129000
+ SIG(IG)=SIGU(ITERPL)+SIG(IG) 11130000
+ GO TO 400 11131000
+ 710 SIG(IG)=SIGU(ITERPL)*DLOG(ETEGR/ETEGL)+SIG(IG) 11132000
+ GO TO 400 11133000
+ 800 CALL ERR(8HINTS2 ,800) 11134000
+ 400 CONTINUE 11135000
+C NEL CASO SOTTOCONTEMPLATO NON HA FINITO IL GRUPPO 11136000
+ IF(E(IG1).LT.ETEGR) GOTO35 11137000
+ SIG(IG)=SIG(IG)/DENUM 11138000
+ 30 CONTINUE 11139000
+ 500 CONTINUE 11140000
+ RETURN 11141000
+ 550 SIG(NGF)=SIG(NGF)/DENUM 11142000
+ RETURN 11143000
+C DA QUI ESCE SE FINISCE I PUNTI DI INTERPOLAZ A META DI 11144000
+C UN GRUPPO.ALLORA DEVE ANCORA DIVIDERE PER IL DENUM 11145000
+C RICORDARE CHE TUTTE LE SIGMA A GRUPPI VANNO DIVISE PER 11146000
+C LO STESSO DENOM DEL GRUPPO PERCHE POI VANNO SOMMATE INSIEME 11147000
+ END 11148000
+ SUBROUTINE FTABLE(NTPE,NO,NP,MA,A) 11149000
+C *************************************************************** 11150000
+C THIS IS A MODIFIED VERSION OF THE FTABLE ROUTINE OF ETOE CODE 11151000
+C *************************************************************** 11152000
+C 11153000
+C THIS SUBROUTINE CONTROLS THE CALCULATION AND WRITING OF FILE 2 11154000
+C OF THE MC**2-2 LIBRARY 11155000
+C 11156000
+C SUBROUTINES CALLED BY SUBROUTINE FTABLE 11157000
+C 11158000
+C WTABLE CONTROLS THE CALCULATION AND WRITING OF THE 11159000
+C COURSE AND FINE, REAL AND IMAGINARY PARTS 11160000
+C OF THE W TABLE 11161000
+C E3 CONTROLS THE CALCULATION AND WRITING OF THE 11162000
+C E3 FUNCTION 11163000
+C EXPFCT CALCULATES AN EXPONENTIAL FUNCTION FOR MC**2-2 11164000
+C LIBRARY FILE 2 11165000
+C ESCAPE GENERATES TABLES USED BY RABBLE TO COMPUTE 11166000
+C REGIONAL FIRST FLIGHT ESCAPE AND TRANSMISSION 11167000
+C PROBABILITIES 11168000
+C FXPTBL CALCULATE THE INTERCEPTS AND SLOPES USED 11169000
+C FOR THE CALCULATION OF THE EXPONENTIAL EXP(-X) 11170000
+C ETABLE CALCULATES THE EXPONENTIAL INTEGRALS 11171000
+C E3(X) AND E4(X) 11172000
+C 11173000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN 11174000
+C ORDER TO PRESERVE ACCURACY 11175000
+C 11176000
+ DOUBLE PRECISION BLK,EXPON 11177000
+C 11178000
+ COMMON/OPZIO/OPZ(4,8,10) 11179000
+C 11180000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS, 11181000
+ 1NPASS,NPL,IPTMAX,ETOP,DELTAU 11182000
+C DATA EXPON/6HEXPON / 11183000
+ DIMENSION A(MA) 11184000
+C DEFINE OPTIONS 11185000
+ STMP=OPZ(3,2,1) 11186000
+ NGROUP=OPZ(2,5,4) 11187000
+ ETOP=OPZ(2,5,2) 11188000
+ DELTAU=OPZ(2,5,3) 11189000
+C DEFAULT OPTIONS 11190000
+ IF(NGROUP.LE.0.) NGROUP=2082 11191000
+ IF(DELTAU.LE.0.) DELTAU=1./120. 11192000
+ IF(ETOP.LE.0.) ETOP=1.4190675E+7 11193000
+C 11194000
+ WRITE(NO,1000) NGROUP,ETOP,DELTAU 11195000
+ 1000 FORMAT(///10X,'FILE MCC2F2 PRODUCED FOR',I5,' ENERGY GROUPS,', 11196000
+ 1 'TOP ENERGY=',E12.5,' LETARGY INTERVAL:',E12.5//) 11197000
+C 11198000
+C 11199000
+C DEFINE POINTERS 11200000
+ N41=41 11201000
+ N27=27 11202000
+ LAX=1 11203000
+ LAY=LAX+ N41*2 11204000
+ LTR=LAY+ N27*2 11205000
+ LTI=LTR+ N27*N41 11206000
+ LTRS=LTI+ N27*N41 11207000
+ LTIS=LTRS+ N27*N41 11208000
+ LEXE3=LTIS+N27*N41 11209000
+ LENE3=LEXE3+1001*2 11210000
+C 11211000
+ IF(LENE3+1001.GT.MA) CALL ERR(8HFTABLE ,0) 11212000
+C 11213000
+ M4=4 11214000
+ NG2=NGROUP*2 11215000
+C 11216000
+ REWIND NTPE 11217000
+C 11218000
+C CALCULATE AND WRITE THE W TABLE 11219000
+C 11220000
+ CALL WTABL(N41,N27,A(LAX),A(LAY),A(LTR),A(LTI),A(LTRS),A(LTIS)) 11221000
+C 11222000
+ LTI1=LTI-1 11223000
+ LTRS1=LTRS-1 11224000
+ LTIS1=LTIS-1 11225000
+ LEXE31=LEXE3-1 11226000
+C 11227000
+ WRITE(NTPE) (A(J),J=LTR,LTI1) 11228000
+ WRITE(NTPE) (A(J),J=LTI,LTRS1) 11229000
+ WRITE(NTPE) (A(J),J=LTRS,LTIS1) 11230000
+ WRITE(NTPE) (A(J),J=LTIS,LEXE31) 11231000
+ IF(STMP.LE.100) GO TO 100 11232000
+ WRITE(NO,2000) (A(J),J=LTR,LTI1) 11233000
+ 2000 FORMAT(10X,' W TABLE REAL , COARSE TABULATION'/(1X,10E12.5)) 11234000
+ WRITE(NO,3000) (A(J),J=LTI,LTRS1) 11235000
+ 3000 FORMAT(10X,' W TABLE IMM. , COARSE TABULATION'/(1X,10E12.5)) 11236000
+ WRITE(NO,4000) (A(J),J=LTRS,LTIS1) 11237000
+ 4000 FORMAT(10X,' W TABLE REAL , FINE TABULATION'/(1X,10E12.5)) 11238000
+ WRITE(NO,5000) (A(J),J=LTIS,LEXE31) 11239000
+ 5000 FORMAT(10X,' W TABLE IMM. , FINE TABULATION'/(1X,10E12.5)) 11240000
+C 11241000
+ 100 WRITE(NP,9010) 11242000
+ 9010 FORMAT(' FILE MCC2F2: W TABLE PRODUCED') 11243000
+C 11244000
+C 11245000
+C CALCULATE AND WRITE THE EXPONENTIAL INTEGRAL 11246000
+C 11247000
+ CALL E3(NTPE,STMP,NO,A(LEXE3),A(LENE3)) 11248000
+C 11249000
+ WRITE(NP,9020) 11250000
+ 9020 FORMAT(' FILE MCC2F2: EXPONENTIAL INTEGRAL TABLE PRODUCED') 11251000
+C 11252000
+C CALCULATE AND WRITE THE EXPONENTIAL FUNCTION 11253000
+C 11254000
+ CALL EXPFCT(NTPE,NO,STMP,A(1)) 11255000
+C 11256000
+ WRITE(NP,9030) 11257000
+ 9030 FORMAT(' FILE MCC2F2: EXPONENTIAL FUNCTION TABLE PRODUCED') 11258000
+C 11259000
+C CALCULATE AND WRITE THE FIRST FLIGHT ESCAPE AND TRANSMISSION 11260000
+C PROBABILITIES 11261000
+C 11262000
+ LA1=1 11263000
+ LA11=LA1+181*51 11264000
+ LA2=LA11+181*26 11265000
+ LA3=LA2+ 181*51 11266000
+ LA4=LA3+ 181 11267000
+C 11268000
+ CALL ESCAPE(NTPE,NO,STMP,A(LA1),A(LA11),A(LA2),A(LA3),A(LA4)) 11269000
+C 11270000
+ WRITE(NP,9040) 11271000
+ 9040 FORMAT(' FILE MCC2F2: ESCAPE AND TRASMISSION TABLE PRODUCED') 11272000
+C 11273000
+C CALCULATE AND WRITE EXPONENTIAL INTEGRALS AND FUNCTIONS 11274000
+C 11275000
+ LXYK=1 11276000
+ LTAB=LXYK+2044 11277000
+C 11278000
+ CALL FXPTBL(XYKZ,A(LXYK)) 11279000
+ CALL ETABLE(NTPE,NO,STMP,XYKZ,A(LXYK),A(LTAB)) 11280000
+C 11281000
+ WRITE(NP,9050) 11282000
+ 9050 FORMAT(' FILE MCC2F2: EXPONENTIAL INTEGRALS AND FUNCTIONS PRODUC11283000
+ 1ED') 11284000
+C 11285000
+C REWIND DATA SET LMCCF2 11286000
+C 11287000
+ REWIND NTPE 11288000
+ RETURN 11289000
+ END 11290000
+ SUBROUTINE FXPTBL(XYKZ,XYK) 11291000
+C ******************************************************** 11292000
+C THIS IS A MODIFIED VERSION OF FXPTBL ROUTINE OF ETOE CODE 11293000
+C *************************************************************** 11294000
+C 11295000
+C SUBROUTINE FXPTBL CALCULATES THE INTERCEPTS Y(I) AND SLOPES M(I) 11296000
+C USED FOR THE CALCULATION OF THE EXPONENTIAL EXP(-X) ACCORDING TO 11297000
+C THE LINEAR INTERPOLATION SCHEME EXP(-X)=Y(I)+M(I)*X WHERE 11298000
+C 0.LE.I.LT.1022. THE ARGUEMENT X MAY RANGE BETWEEN 0 AND 18, 11299000
+C INCLUSIVE. AREAS ARE PRESERVED UNDER THE CURVE WHICH IS CONTINUOUS11300000
+C REF. ARNE P. OLSON, A FAST EXPONENTIAL SUBROUTINE FOR CALCULATING 11301000
+C COLLISION PROBABILITIES ON THE IBM/360, ANL-7710, P.447, 11302000
+C JANUARY (1971). 11303000
+C 11304000
+C SUBPROGRAMS CALLED BY SUBROUTINE FXPTBL 11305000
+C 11306000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 11307000
+C 11308000
+C DECLARE VARIABLES REQUIRED FOR PRECISION TO BE DOUBLE PRECISION 11309000
+C 11310000
+ DOUBLE PRECISION ELIM,XLEN,C1,C2 11311000
+C 11312000
+C THE CALCULATED INTERCEPTS AND SLOPES ARE RETURNED IN COMMON BLOCK 11313000
+C EXCOM. XYKZ AND XYK(I),I=1,1022 ARE THE 1023 VALUES OF THE Y 11314000
+C INTERCEPTS. XYK(I),I=1023,2044 ARE THE 1022 VALUES OF THE SLOPES 11315000
+C 11316000
+ DIMENSION XYK(2044) 11317000
+ ELIM=18.D0 11318000
+ NPNT=1023 11319000
+ NINT=NPNT-1 11320000
+ XNINT=NINT 11321000
+ NIN=NINT-1 11322000
+ XLEN=ELIM/XNINT 11323000
+ C1=DEXP(-XLEN) 11324000
+ C2=2.D0*(1.D0-C1)/((1.D0+C1)*XLEN) 11325000
+ XYKZ=C2 11326000
+ DO 20 I=2,NPNT 11327000
+ C2=C1*C2 11328000
+ J=I-1 11329000
+ JP=J+NPNT 11330000
+ XYK(J)=C2 11331000
+ IF (J.EQ.1) GO TO 10 11332000
+ XYK(JP-1)=-(XYK(J)-XYK(J-1))/XLEN 11333000
+ GO TO 20 11334000
+ 10 CONTINUE 11335000
+ XYK(JP-1)=-(XYK(J)-XYKZ)/XLEN 11336000
+ 20 CONTINUE 11337000
+ DO 30 J=1,NIN 11338000
+ XJ=J 11339000
+ JP=J+NPNT 11340000
+ XYK(J)=XYK(J)+XJ*XLEN*XYK(JP) 11341000
+ 30 CONTINUE 11342000
+ RETURN 11343000
+ END 11344000
+ SUBROUTINE EI(X,NX,ENX) 11345000
+C ****************************************************************11346000
+C THIS IS A MODIFIED VERSION OF THE EI ROUTINE OF ETOE CODE 11347000
+C *************************************************************8 11348000
+C 11349000
+C SUBROUTINE EI CALCULATES THE EXPONENTIAL INTEGRAL E3 11350000
+C 11351000
+C X ARGUMENT 11352000
+C NX NUMBER OF VALUES TO BE CALCULATED 11353000
+C ENX COMPUTED EXPONENTIAL INTEGRAL 11354000
+C 11355000
+C SUBROUTINES CALLED BY SUBROUTINE EI 11356000
+C 11357000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 11358000
+C DLOG FORTRAN NATURAL LOGARITHM FUNCTION (DOUBLE 11359000
+C PRECISION) 11360000
+C DFLOAT FORTRAN FUNCTION. CHANGES FIXED POINT NUMBER 11361000
+C INTO FLOATING POINT NUMBER (DOUBLE PRECISION) 11362000
+C 11363000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 11364000
+C TO PRESERVE ACCURACY. 11365000
+C 11366000
+ DOUBLE PRECISION X,ENX,A,B,C 11367000
+ DIMENSION ENX(1) 11368000
+ IF(X.GT.1.D-30) GO TO 250 11369000
+ ENX(1)=1.0D+30 11370000
+ IF(NX.EQ.1) GO TO 150 11371000
+ DO 240 I=2,NX 11372000
+ A=I 11373000
+ ENX(I)=1.D0/(A-1.D0) 11374000
+ 240 CONTINUE 11375000
+ GO TO 150 11376000
+ 250 CONTINUE 11377000
+ IF(X.LT.75.D0) GO TO 280 11378000
+ DO 270 I=1,NX 11379000
+ ENX(I)=0.D0 11380000
+ 270 CONTINUE 11381000
+ GO TO 150 11382000
+ 280 CONTINUE 11383000
+ A=DEXP(-X) 11384000
+ IF(X.GT.1.D0) GO TO 120 11385000
+ B=DLOG(X) 11386000
+ IF(X.GT.1.D-3) GO TO 110 11387000
+ ENX(1)=X-B-0.577215665 11388000
+ GO TO 130 11389000
+ 110 CONTINUE 11390000
+ ENX(1)=-0.577215665-B+X*(1.D0+X*(-0.25D0+X*(0.055555555+X* 11391000
+ 1(-0.010416666+X*(0.16666666D-02+X*(-0.23148148D-03+X* 11392000
+ 2(0.28344671D-04+X*(-0.31001984D-05+X*0.30619244D-06)))))))) 11393000
+ GO TO 130 11394000
+ 120 CONTINUE 11395000
+ B=0.23729050+X*(4.53079235+X*(5.12669020+X)) 11396000
+ C=2.47663307+X*(8.66601262+X*(6.12652717+X)) 11397000
+ ENX(1)=((A/X)*B)/C 11398000
+ 130 CONTINUE 11399000
+ IF(NX.EQ.1) GO TO 150 11400000
+ DO 140 I=2,NX 11401000
+ B=DFLOAT(I)-1.D0 11402000
+ ENX(I)=(A-X*ENX(I-1))/B 11403000
+ 140 CONTINUE 11404000
+ 150 CONTINUE 11405000
+ RETURN 11406000
+ END 11407000
+ SUBROUTINE ESCAPE(NTPE,LTPO,STMP,A1,A11,A2,A3,A4) 11408000
+C *************************************************************** 11409000
+C THIS IS A MODIFIED VERSION OF THE ESCAPE ROUTINE OF ETOE CODE 11410000
+C *************************************************************** 11411000
+C 11412000
+C 11413000
+C PROGRAM TO GENERATE TABLES USED BY RABBLE TO COMPUTE REGIONAL 11414000
+C FIRST FLIGHT ESCAPE AND TRANSMISSION PROBABILITIES 11415000
+C Z = SIGMA * OUTER RADIUS 11416000
+C X = (INNER RADIUS) / (OUTER RADIUS) 11417000
+C TABLE A1 TRANSMISSION PROBABILITY INNER TO OUTER SURFACE FOR 11418000
+C CYLINDRICAL GEOMETRY 11419000
+C TABLE A2 TRANSMISSION PROBABILITY OUTER TO OUTER SURFACE FOR 11420000
+C CYLINDRICAL GEOMETRY 11421000
+C TABLE A3 EXPONENTIAL INTEGRAL OF ORDER TWO 11422000
+C TABLE A4 EXPONENTIAL INTEGRAL OF ORDER FOUR 11423000
+C 11424000
+C RANGE OF X DX 11425000
+C 0.0-0.4 0.01 11426000
+C 0.4-1.0 0.02 11427000
+C 1.0-2.6 0.04 11428000
+C 2.6-5.0 0.06 11429000
+C 5.0-8.0 0.10 11430000
+C 11431000
+C SUBROUTINES CALLED BY SUBROUTINE ESCAPE 11432000
+C 11433000
+C KI3 CALCULATES THIRD ORDER BICKLEY FUNCTION 11434000
+C IBCOM# FORTRAN I/O ROUTINE 11435000
+C DCOS FORTRAN COSINE FUNCTION (DOUBLE PRECISION) 11436000
+C DLOG FORTRAN NATURAL LOGARITHM FUNCTION (DOUBLE 11437000
+C PRECISION) 11438000
+C DSQRT FORTRAN SQUARE ROOT FUNCTION(DOUBLE 11439000
+C PRECISION) 11440000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 11441000
+C 11442000
+ IMPLICIT REAL*8 (B-H,O-Z) 11443000
+ DIMENSION A1(181,51) 11444000
+ DIMENSION A11(181,26),A2(181,51),A3(181),A4(181) 11445000
+C 11446000
+ DO 160 I=1,181 11447000
+ IF(I.GT.41) GO TO 10 11448000
+ Z=I-1 11449000
+ Z=.01*Z 11450000
+ GO TO 50 11451000
+ 10 CONTINUE 11452000
+ IF(I.GT.71) GO TO 20 11453000
+ Z=I-21 11454000
+ Z=.02*Z 11455000
+ GO TO 50 11456000
+ 20 CONTINUE 11457000
+ IF(I.GT.111) GO TO 30 11458000
+ Z=I-46 11459000
+ Z=.04*Z 11460000
+ GO TO 50 11461000
+ 30 CONTINUE 11462000
+ IF(I.GT.151) GO TO 40 11463000
+ Z=I-71 11464000
+ Z=.2+.06*Z 11465000
+ GO TO 50 11466000
+ 40 CONTINUE 11467000
+ Z=I-101 11468000
+ Z=.1*Z 11469000
+ 50 CONTINUE 11470000
+ N=-1 11471000
+ DO 120 J=1,50 11472000
+ X=J-1 11473000
+ X=.02*X 11474000
+ X2=X*X 11475000
+ Q=Z/(1.-X) 11476000
+ T1=.0 11477000
+ T2=.0 11478000
+ DO 110 K=1,8 11479000
+ DO 110 L=1,7 11480000
+ W=.9817477D-02 11481000
+ GO TO (80,70,90,60,90,70,90),L 11482000
+ 60 CONTINUE 11483000
+ W=W+.9817477D-02 11484000
+ 70 CONTINUE 11485000
+ W=W+.39269908D-01 11486000
+ GO TO 90 11487000
+ 80 CONTINUE 11488000
+ IF(K.GT.L) GO TO 100 11489000
+ 90 CONTINUE 11490000
+ H=6*K+L-7 11491000
+ Y=DCOS(.327249234D-01*H) 11492000
+ Y2=Y*Y 11493000
+ FY3=2.*Q*Y 11494000
+ FY2=2.*Q*DSQRT(1.-X2*(1.-Y2)) 11495000
+ CALL KI3(Z2,FY2) 11496000
+ CALL KI3(Z3,FY3) 11497000
+ XT2=Y*(Z3-X*Z2) 11498000
+ IF(N.EQ.1) GO TO 100 11499000
+ FY1=.5*FY2-Q*Y*X 11500000
+ CALL KI3(Z1,FY1) 11501000
+ XT1=Y*Z1 11502000
+ 100 CONTINUE 11503000
+ T2=T2+W*XT2 11504000
+ IF(N.EQ.1) GO TO 110 11505000
+ T1=T1+W*XT1 11506000
+ 110 CONTINUE 11507000
+ A1(I,J)=1.2732395*T1 11508000
+ A2(I,J)=1.2732395*T2 11509000
+ N=-N 11510000
+ 120 CONTINUE 11511000
+ EX=DEXP(-Z) 11512000
+ IF(I.GT.1) GO TO 130 11513000
+ A1(I,51)=1. 11514000
+ A3(I)=1. 11515000
+ A4(I)=.3333333 11516000
+ GO TO 155 11517000
+ 130 CONTINUE 11518000
+ IF(Z.GT.1.) GO TO 140 11519000
+ T=-DLOG(Z)-.57721566+Z*(.99999193-Z*(.24991055-Z*(.05519968-Z*( 11520000
+ X .00976004-.00107857*Z)))) 11521000
+ GO TO 150 11522000
+ 140 CONTINUE 11523000
+ T=(EX/Z)*(.2677737343+Z*(8.634760892+Z*(18.05901697+Z*(8.57332874 11524000
+ X +Z))))/(3.958496923+Z*(21.09965308+Z*(25.63295615+Z*( 11525000
+ X 9.573322345+Z)))) 11526000
+ 150 CONTINUE 11527000
+ A3(I)=EX-Z*T 11528000
+ A1(I,51)=EX-Z*A3(I) 11529000
+ A4(I)=(EX-.5*Z*A1(I,51))/3. 11530000
+ 155 CONTINUE 11531000
+ A2(I,51)=.0 11532000
+ 160 CONTINUE 11533000
+ K=0 11534000
+ DO 170 J=1,51,2 11535000
+ K=K+1 11536000
+ DO 170 I=1,181 11537000
+ A11(I,K)=A1(I,J) 11538000
+ 170 CONTINUE 11539000
+ IF(STMP.LT.10.) GO TO 1111 11540000
+ WRITE(LTPO,1000) 11541000
+ WRITE(LTPO,1500)((I,J,A11(I,J),I=1,181),J=1,26) 11542000
+ WRITE(LTPO,1100) 11543000
+ WRITE(LTPO,1500)((I,J,A2(I,J),I=1,181),J=1,51) 11544000
+ 1111 CONTINUE 11545000
+C 11546000
+C WRITE FIRST FLIGHT TRANSMISSION PROBABILITIES 11547000
+C 11548000
+C NWDS=14299 NO LONGER WRITE A3 AND A4 INTO FIRST FLIGHT 11549000
+C TRANSMISSION PROBABILITIES RECORD 11550000
+C NWDS=13937 11551000
+C 11552000
+ WRITE(NTPE) A11,A2 11553000
+C 11554000
+ 1000 FORMAT(1H1,40X,48HTRANSMISSION PROBABILITY, INNER TO OUTER SURFACE11555000
+ 1 /41X,12HI,J,T1(I,J) /) 11556000
+ 1100 FORMAT(1H1,40X,48HTRANSMISSION PROBABILITY, OUTER TO OUTER SURFACE11557000
+ 1 /41X,12HI,J,T2(I,J) /) 11558000
+ 1500 FORMAT(4(2X,2I6,1PE14.5)) 11559000
+ 1600 FORMAT(6(2X,I6,1PE14.5)) 11560000
+ RETURN 11561000
+ END 11562000
+ SUBROUTINE ETABLE(NTPE,LTPO,STMP,XYKZ,XYK,TAB) 11563000
+C *************************************************************** 11564000
+C THIS IS A MODIFIED VERSION OF THE ETABLE ROUTINE OF ETOE CODE 11565000
+C *************************************************************** 11566000
+C 11567000
+C SUBROUTINE ETABLE CALCULATES THE EXPONENTIAL INTEGRALS E3(X) AND 11568000
+C E4(X) FOR THE TABULAR RANGE 0(0.01)2(0.02)4(0.08)6.4. THE 11569000
+C TABULATED VALES OF E3 AND E4 ARE RETURNED IN TAB 11570000
+C 11571000
+C SUBPROGRAMS CALLED BY SUBROUTINE ETABLE 11572000
+C 11573000
+C EXP FORTRAN EXPONENTIAL FUNCTION 11574000
+C ALOG FORTRAN NATURAL LOGARITM FUNCTION 11575000
+C 11576000
+ DIMENSION TAB(662) 11577000
+ DIMENSION XYK(2044) 11578000
+C EQUIVALENCE (E3(1),TAB(1)) 11579000
+C 11580000
+C 11581000
+ DO 100 I=1,331 11582000
+ IF(I.GT.201) GO TO 110 11583000
+ FI=I-1 11584000
+ X=FI*0.01+1.0E-09 11585000
+ GO TO 120 11586000
+ 110 CONTINUE 11587000
+ IF(I.GT.301) GO TO 130 11588000
+ FI=I-101 11589000
+ X=FI*0.02 11590000
+ GO TO 120 11591000
+ 130 CONTINUE 11592000
+ FI=I-251 11593000
+ X=FI*0.08 11594000
+ 120 CONTINUE 11595000
+ FAC=EXP(-X) 11596000
+ IF(X.GT.1.0) GO TO 140 11597000
+C 11598000
+C POLYNOMIAL EXPANSION FOR E1(X) FOR X .LE. 1.0 11599000
+C 11600000
+ TAB(I)=-ALOG(X)-0.57721566+X*(0.99999193+X*(-0.24991055+X* 11601000
+ 1 (0.05519968+X*(-0.00976004+X*0.00107857)))) 11602000
+ GO TO 150 11603000
+ 140 CONTINUE 11604000
+C 11605000
+C POLYNOMIAL EXPANSION FOR E1(X) FOR X .GT.1.0 11606000
+C 11607000
+ TAB(I)=(FAC/X)*(0.2677737343+X*(8.6347608925+X*(18.0590169730+X* 11608000
+ 1 (8.5733287401+X))))/(3.9584969228+X*(21.099653082711609000
+ 2 +X*(25.6329561486+X*(9.5733223454+X)))) 11610000
+ 150 CONTINUE 11611000
+C 11612000
+C E2=E2(X)=EXP(-X)-X*E1(X) 11613000
+C 11614000
+ E2=FAC-X*TAB(I) 11615000
+C 11616000
+C E3(X)=0.5*(EXP(-X)-X*E2(X)) 11617000
+C 11618000
+ TAB(I)=0.5*(FAC-X*E2) 11619000
+C 11620000
+C E4(X)=(EXP(-X)-X*E3(X))/3 11621000
+C 11622000
+ I331=I+331 11623000
+ TAB(I331)=0.33333333*(FAC-X*TAB(I)) 11624000
+ 100 CONTINUE 11625000
+C 11626000
+C WRITE EXPONENTIAL INTEGRALS AND FUNCTIONS 11627000
+C 11628000
+ I1=1 11629000
+ I1022=1022 11630000
+ IF(STMP.LT.10.) GO TO 1111 11631000
+ WRITE(LTPO,1200) 11632000
+ WRITE(LTPO,1000)I1,XYKZ,(I,XYK(I-I1),I=2,1023) 11633000
+ WRITE(LTPO,1400) 11634000
+ WRITE(LTPO,1000)(I,XYK(I+I1022),I=1,1022) 11635000
+ WRITE(LTPO,1600) 11636000
+ WRITE(LTPO,1000)(I,TAB(I),I=1,331) 11637000
+ WRITE(LTPO,1800) 11638000
+ WRITE(LTPO,1000)(I,TAB(I+331),I=1,331) 11639000
+ 1111 CONTINUE 11640000
+C 11641000
+ NWDS=2707 11642000
+C 11643000
+ WRITE(NTPE) XYKZ,XYK,TAB 11644000
+C 11645000
+ 1000 FORMAT(7(I6,1PE12.5)) 11646000
+ 1200 FORMAT(1H1,40X,38HORDINATES Y(I) FOR EXP(-X)=Y(I)-M(I)*X / 11647000
+ 141X,7HI, EXPY /) 11648000
+ 1400 FORMAT(1H1,40X,35HSLOPES M(I) FOR EXP(-X)=Y(I)-M(I)*X / 11649000
+ 141X,7HI, EXPM /) 11650000
+ 1600 FORMAT(1H1,40X,21HEXPONENTIAL INTEGRAL /41X,8HI, E3(I) /) 11651000
+ 1800 FORMAT(1H1,40X,21HEXPONENTIAL INTEGRAL /41X,8HI, E4(I) /) 11652000
+ RETURN 11653000
+ END 11654000
+ SUBROUTINE EXPFCT(NTPE,LTPO,STMP,EXPON) 11655000
+C ************************************************************ 11656000
+C THIS ROUTINE IS A MODIFIED VERSION OF ROUTINE EXPON OF ETOE CODE11657000
+C ****************************************************************11658000
+C 11659000
+C SUBROUTINE EXPFCT CALCULATES AN EXPONENTIAL FUNCTION 11660000
+C FOR MC**2-2 LIBRARY FILE 2 11661000
+C 11662000
+C SUBROUTINES CALLED BY SUBROUTINE EXPFCT 11663000
+C 11664000
+C IBCOM# FORTRAN I/O ROUTINE 11665000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 11666000
+C 11667000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 11668000
+C TO PRESERVE ACCURACY 11669000
+C 11670000
+ DOUBLE PRECISION C,DELTAU 11671000
+ DIMENSION EXPON(1) 11672000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS, 11673000
+ 1NPASS,NPL,IPTMAX,ETOP,DU 11674000
+C 11675000
+ DELTAU=DU 11676000
+ C=DEXP(-DELTAU) 11677000
+ NG21=NGROUP*2-1 11678000
+ DO 100 I=1,NG21 11679000
+ IF(-(1./C)**(NGROUP-I).LT.-180.D0)GOTO101 11680000
+C THIS ISTRUCTION GIVES DEXP UNDERFLOW 11681000
+ EXPON(I)=(1.+(1./C)**(NGROUP-I))*DEXP(-(1./C)**(NGROUP-I)) 11682000
+ GO TO 100 11683000
+ 101 EXPON(I)=0. 11684000
+ 100 CONTINUE 11685000
+ IF(STMP.GT.10.) WRITE (LTPO,1000) (I,EXPON(I),I=1,NG21) 11686000
+ NWDS=NG21 11687000
+C 11688000
+ WRITE(NTPE) (EXPON(J),J=1,NWDS) 11689000
+C 11690000
+ 1000 FORMAT (1H1,40X,20HEXPONENTIAL FUNCTION/(5(2X,I6,1PE13.6))) 11691000
+ RETURN 11692000
+ END 11693000
+ SUBROUTINE E3(NTPE,STMP,LTPO,AX,EN) 11694000
+C ************************************************************ 11695000
+C THIS IS A MODIFIED ETOE ROUTINE 11696000
+C *********************************************************** 11697000
+C 11698000
+C SUBROUTINE E3 CONTROLS THE CALCULATION AND WRITING OF THE E3 11699000
+C FUNCTION 11700000
+C 11701000
+C SUBROUTINES CALLED BY SUBROUTINE E3 11702000
+C 11703000
+C EI CALCULATES THE EXPONENTIAL INTEGRAL E3 11704000
+C IBCOM# FORTRAN I/O ROUTINE 11705000
+C 11706000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 11707000
+C TO PRESERVE ACCURACY. 11708000
+C 11709000
+ DOUBLE PRECISION ENX,X,AX,DELX 11710000
+ DIMENSION AX(1001),EN(1001),ENX(3) 11711000
+C 11712000
+ NWDS=1001 11713000
+ NX=3 11714000
+ AX(1)=0.0D0 11715000
+ AX(2)=0.01D0 11716000
+ DELX=0.01D0 11717000
+ DO 100 I=3,1001 11718000
+ AX(I)=AX(I-1)+DELX 11719000
+ 100 CONTINUE 11720000
+ DO 200 I=1,1001 11721000
+ X=AX(I) 11722000
+ CALL EI(X,NX,ENX) 11723000
+ EN(I)=ENX(3) 11724000
+ 200 CONTINUE 11725000
+C 11726000
+ WRITE(NTPE) EN 11727000
+C 11728000
+ IF(STMP.LT.10) RETURN 11729000
+ WRITE(LTPO,1000) 11730000
+ WRITE(LTPO,2000)(AX(I),EN(I),I=1,1001) 11731000
+ 1000 FORMAT(1H1/6X,1HX,10X,5HE3(X) /) 11732000
+ 2000 FORMAT(1PE11.3,E15.6) 11733000
+ RETURN 11734000
+ END 11735000
+ SUBROUTINE KI3(Z,X) 11736000
+C ************************************************************* 11737000
+C THIS ROUTINE HAS BEEN TAKEN FROM ETOE CODE 11738000
+C ************************************************************* 11739000
+C 11740000
+C SUBROUTINE KI3 CALCULATES THE THIRD ORDER BICKLEY FUNCTION 11741000
+C 11742000
+C X ARGUMENT 11743000
+C Z CALCULATED BICKLEY FUNCTION 11744000
+C 11745000
+C SUBROUTINES CALLED BY SUBROUTINE KI3 11746000
+C 11747000
+C DSQRT FORTRAN SQUARE ROOT FUNCTION (DOUBLE PRECISION) 11748000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 11749000
+C 11750000
+ IMPLICIT REAL*8 (A-H,O-Z) 11751000
+ IF(X.GT..0) GO TO 10 11752000
+ Z=.785398163D-00 11753000
+ GO TO 30 11754000
+ 10 CONTINUE 11755000
+ IF(X.LT.30.) GO TO 20 11756000
+ IF(X.LT.160.) GO TO 15 11757000
+ Z=0.0 11758000
+ GO TO 30 11759000
+ 15 CONTINUE 11760000
+ Z=DEXP(-X)*DSQRT(1.570796/X)*(1.-(1.625-5.13281/X)/X) 11761000
+ GO TO 30 11762000
+ 20 CONTINUE 11763000
+ ZD=.16852107+X*(5.05688558+X*(34.1521732+X*(79.7244201+X*( 11764000
+ X 78.79235419+X*(34.81496948+X*(6.561524932+.4172698268*X)))))) 11765000
+ ZN=.13235614+X*(3.86932674+X*(23.8493885+X*(44.6280232+X*( 11766000
+ X 29.46275616+X*(7.112371513+.522969883*X))))) 11767000
+ Z=DEXP(-X)*DSQRT(1.+X)*ZN/ZD 11768000
+ 30 CONTINUE 11769000
+ IF(Z.LT.1.D-50)Z=0.0 11770000
+ RETURN 11771000
+ END 11772000
+ SUBROUTINE P3(MA,NA,ML1,ML2,AINDX1) 11773000
+C *************************************************** 11774000
+C THIS IS THE MAIN ROUTINE FOR THE PART 3 OF THE CODE. 11775000
+C IT READS THE SECOND GROUP OF INTERMEDIATE FILES AND WRITES THE 11776000
+C MC2-2 LIBRARY FILES MCC2F1-3-4-5-6-7-8 11777000
+C **************************************************** 11778000
+C 11779000
+ DIMENSION NA(MA),AINDX1(ML1,ML2) 11780000
+ DATA NBIANC/4H / 11781000
+ COMMON/FILES/NT(4,99) 11782000
+ EQUIVALENCE(NI,NT(1,5)),(NO,NT(1,6)),(NP,NT(1,11)),(NPP,NT(1,12))11783000
+C 11784000
+C FILES: NT(1,.)= NUM LOGICO 11785000
+C NT(2,.)= REC INIZIALE (NO MORE USED ) 11786000
+C NT(3,.)=PRIMO REC LIBERO 11787000
+C NT(4,.)=RECORD CORRENTE 11788000
+C 11789000
+ COMMON/OPZIO/ OPZ(4,8,10) 11790000
+ EQUIVALENCE (OPZ(3,1,1),STMP) 11791000
+C 11792000
+C OPZ= OPZIONI( PARTE 1,2 ECC ; FILE MCC2F1,2 ECC ; OPZIONE) 11793000
+C 11794000
+C 11795000
+ COMMON/DIM/M(5) 11796000
+ EQUIVALENCE (M(4),IND),(M(5),KMIX) 11797000
+C DIMENSIONI EFFETTIVE DI VARIE MATRICI : M(1)=DIM MIX SERIE 1 FILE11798000
+C M(2)=DIM INDICE PRIMA SER11799000
+C M(3)=DIM MIX SECONDA SERI11800000
+C M(4)=DIM INDICE SECONDA S11801000
+C M(5)=DIM MIX TERZA SERIE 11802000
+C 11803000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 11804000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 11805000
+C 11806000
+ COMMON /INDX/NTABL(40,200) 11807000
+C INDICI PRIMA SERIE ; ORA USATI PER TABELLA FATTA CON MIXING 11808000
+ COMMON /MIX/MIX(15,300) 11809003
+C MIXING ISOTOPI DA TRATTARE 11810000
+C 11811000
+C ALTRI INDICI TAPES DI OUTPUT (INDX ED INDX1 SONO SCAMBIATI 11812000
+C RISPETTO A P2: P2 LEGGE INDX SCRIVE INDX1,QUI LEGGE INDX1 11813000
+C USA INDX COME SPAZIO SCRATCH 11814000
+ COMMON/RC1F1/ NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 11815000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX,MAXREC 11816000
+C MAXREC E' UN DATO DEL RECORD 5 DI F1, MA E' MESSO IN /RC1F1/ 11817000
+C PER COMODITA'. 11818000
+C 11819000
+ DIMENSION NRC1F1(13) 11820000
+ EQUIVALENCE (NRC1F1(1),NMAT) 11821000
+C 11822000
+C SE NON ESISTE INDICE PARTE 2 11823000
+ IF(M(4).GT.0) GOTO 110 11824000
+ WRITE(NO,9000) 11825000
+ WRITE(NP,9000) 11826000
+ 9000 FORMAT(' WARNING! PART 3 CAN NOT FIND THE INDEX OF THE DATA!' 11827000
+ 1 ,' PART 3 NOT EXECUTED') 11828000
+ RETURN 11829000
+ 110 CONTINUE 11830000
+C ANNULLA COMMON /RC1F1/ ED NA(MA) 11831000
+ CALL RIEMP(0.,14,NMAT) 11832000
+ CALL RIEMP(0.,MA,NA) 11833000
+C 11834000
+C ESPANDE IN NOME BIANCO NELLA MIX A RAPPRESENTARE TUTTI I 11835000
+C NOMI DI NUCLIDI DELL'INDICE 11836000
+ IF(KMIX.LE.0) GO TO 401 11837000
+ KKMIX=KMIX 11838000
+C .......... LOOP SULLA MIX E PER OGNI NOME BIANCO AGGIUNGE 11839000
+ DO 5 I=1,KKMIX 11840000
+ IF(MIX(1,I).NE.NBIANC.OR.MIX(2,I).NE.NBIANC) GO TO5 11841000
+C ........ LOOP SU INDICE ED AGGIUNGE TUTTI I NUCLIDI DELL'INDICE 11842000
+ KMIX1=KMIX+1 11843000
+ DO 6 IJ=1,IND 11844000
+ NA1=NAREAL(AINDX1(8,IJ)) 11845000
+ NA2=NAREAL(AINDX1(9,IJ)) 11846000
+C ESCLUDO NUCLIDI CON NOME BIANCO (USUALLY CODE ERRORS ) 11847000
+ IF(NA1.EQ.NBIANC.AND.NA2.EQ.NBIANC) GO TO 6 11848000
+ IF(NA1.EQ.0.AND.NA2.EQ.0) GO TO 6 11849000
+ IF(AREAL(NA1).EQ.0.0.AND.AREAL(NA2).EQ.0.0) GO TO 6 11850000
+ IF(KMIX.LT.KMIX1) GO TO402 11851000
+C ......... LOOP PER VEDERE SE LO HA GIA' MESSO 11852000
+ DO 7 IJJ=KMIX1,KMIX 11853000
+ IF(NA1.EQ.MIX(1,IJJ).AND.NA2.EQ.MIX(2,IJJ)) GO TO 6 11854000
+ 7 CONTINUE 11855000
+ 402 CONTINUE 11856000
+C AGGIUNGE 11857000
+ KMIX=KMIX+1 11858000
+ MIX(1,KMIX)=NA1 11859000
+ MIX(2,KMIX)=NA2 11860000
+ MIX(3,KMIX)=NA1 11861000
+ MIX(4,KMIX)=NA2 11862000
+ DO 8 J=5,15 11863000
+ 8 MIX(J,KMIX)=MIX(J,I) 11864000
+ 6 CONTINUE 11865000
+ 5 CONTINUE 11866000
+C 11867000
+C SE NON ESISTE MIX FA UNA MIX FITTIZIA E CONTEMPORANEAMENTE IL SUO11868000
+C INDICE PRENDENDO TUTTI I MATERIALI DALL'INDICE DEI TAPES 11869000
+ 401 KMAT=0 11870000
+ IF(M(5).GT.0) GO TO 400 11871000
+ N1=M(4) 11872000
+ DO 42 IR=1,N1 11873000
+ NA1=NAREAL(AINDX1(8,IR)) 11874000
+ NA2=NAREAL(AINDX1(9,IR)) 11875000
+C ESCLUDO NUCLIDI CON NOME BIANCO (USUALLY CODE ERRORS ) 11876000
+ IF(NA1.EQ.NBIANC.AND.NA2.EQ.NBIANC) GO TO 42 11877000
+ IF(NA1.EQ.0.AND.NA2.EQ.0) GO TO 42 11878000
+ IF(KMAT.LE.0) GO TO 410 11879000
+C GUARDA NELLA MIX GIA FATTA SE C'E' 11880000
+ DO 45 I=1,KMAT 11881000
+ IF(NA1.EQ.NA(1+(I-1)*4).AND.NA2.EQ.NA(2+(I-1)*4)) GO TO 420 11882000
+ 45 CONTINUE 11883000
+C METTE IL MATERIALE (CHE NON C'E') NELLA MIX CHE STA FACENDO 11884000
+ 410 KMAT=KMAT+1 11885000
+ MIX(1,KMAT)=NA1 11886000
+ MIX(3,KMAT)=NA1 11887000
+ MIX(2,KMAT)=NA2 11888000
+ MIX(4,KMAT)=NA2 11889000
+ DO 47 II=5,15 11890000
+ 47 MIX(II,KMAT)=0 11891000
+ NA(1+(KMAT-1)*4)=NA1 11892000
+ NA(2+(KMAT-1)*4)=NA2 11893000
+C POSIZIONE DEL NOME NELLA MIX (INDICE DELLA MIX) 11894000
+ NA(3+(KMAT-1)*4)=KMAT 11895000
+ NA(4+(KMAT-1)*4)=1 11896000
+ 420 CONTINUE 11897000
+ 42 CONTINUE 11898000
+ KMIX=KMAT 11899000
+ GOTO 430 11900000
+ 400 CONTINUE 11901000
+C ORDINA MIX PER MATERIALI OUT, CREA KMAT=NUMERO MATERIALI 11902000
+C E CREA MATRICE A(4,K)=NOME,NOME(A8IN DUE) ,INIZIO VALORE,LUNGHEZZ11903000
+ CALL ORDMD(1,K,MMIX1,KMIX,MIX,NA) 11904000
+ KMAT=K 11905000
+C 11906000
+ 430 CALL RIEMP(0,MINDX1*MINDX2,NTABL) 11907000
+ CALL MIXSHO(3,NP) 11908006
+C A PIENO FINO A: A(4*KMAT) : INDICE DI MIX 11909000
+C 11910000
+C ORDINA AINDX1 PER MATERIALE E FA MATRICE DI INDICE DELL'INDICE 11911000
+ CALL ORDMD(8,KIND,MIND11,IND,AINDX1,NA(4*KMAT+1)) 11912000
+C 11913000
+C A PIENO FINO A: A(4*KMAT + 4*KIND): INDICE DI AIND 11914000
+C 11915000
+C PUTATORE ALLA TAVOLA DEGLI ISOTOPI 11916000
+ LISTAB=4*KMAT+4*KIND+1 11917000
+C DIMENSIONE TAVOLA DEGLI ISOTOPI (INCREMENTATO POI MENTRE LA FA)11918000
+ NISTAB=0 11919000
+ NISO=0 11920000
+C 11921000
+C 11922000
+C RIEMPIE LA TABELLA DI CREAZIONE MCCF 11923000
+C 11924000
+C FISSA I NOMI DEI MATERIALI 11925000
+ DO 10 I=1,KMAT 11926000
+ NTABL(1,I)=NA(1+(I-1)*4) 11927000
+ NTABL(2,I)=NA(2+(I-1)*4) 11928000
+ 10 CONTINUE 11929000
+C 11930000
+C ........... LOOP SUI MATERIALI OUTPUT (DI INDICE DI MIX) 11931000
+ DO 15 I=1,KMAT 11932000
+ N1=NA(3+(I-1)*4) 11933000
+ N2=NA(4+(I-1)*4)+N1-1 11934000
+C 11935000
+C ... LOOP SU MIXING DEL MATERIALE QUESTIONE 11936000
+ DO 20 IMX=N1,N2 11937000
+ IF(IMX.GT.N1) GO TO 202 11938000
+C CERCA NELL INDICE DELL' INDICE IL NOME OUT 11939000
+C INDIVIDUA I RECORD DELL'INDICE DEL MATERIALE IN CUI CERCARE 11940000
+C 11941000
+ DO 21 J=1,KIND 11942000
+ KKINDN=(J-1+KMAT)*4 11943000
+ IF(MIX(3,IMX).EQ.NA(1+KKINDN).AND. 11944000
+ 1 MIX(4,IMX).EQ.NA(2+KKINDN)) GO TO 201 11945000
+ 21 CONTINUE 11946000
+ NI1=1 11947000
+ NI2=IND 11948000
+ CALL ERR(8HP3 ,201) 11949000
+ GO TO 20 11950000
+ 201 NI1=NA(3+KKINDN) 11951000
+ NI2=NA(4+KKINDN)+NI1-1 11952000
+C ........................... LOOP SULL'INDICE DEL MATERIALE 11953000
+ 202 DO 30 IIND=NI1,NI2 11954000
+C VEDE SE E L MCCF N 11955000
+ IF(AINDX1(11,IIND).NE.MIX(6,IMX).AND.MIX(6,IMX).NE.0) GO TO 30 11956000
+C VEDE SE E IL NOME INPUT I 11957000
+ IF( NAREAL(AINDX1(8,IIND)).EQ.MIX(3,IMX) 11958000
+ 1 .AND.NAREAL(AINDX1(9,IIND)).EQ.MIX(4,IMX)) GO TO 203 11959000
+ CALL ERR(8HP3 ,202) 11960000
+ GOTO 30 11961000
+C QUI HA TROVATO NOME E NUMERO MCF (OPPURE MCF=0) 11962000
+ 203 NPOST=0 11963000
+ NMCF=AINDX1(11,IIND) 11964000
+C DETERMINA PEZZO DELLA TABELLA IN CUI VA IL NUMERO DELL INDICE 11965000
+C F1 SIGMA POTENZIALE DI BACKGROUD 11966000
+ IF(NMCF.EQ.1) NPOST=3 11967000
+C F3 SIGMA UNRES 11968000
+ IF(NMCF.EQ.3) NPOST=4 11969000
+C F4 PK UNRESOLVED 11970000
+ IF(NMCF.EQ.4) NPOST=5 11971000
+C F7 FISSION SPECTRUM 11972000
+ IF(NMCF.EQ.7) NPOST=6 11973000
+C F6: DISTRIBUZIONI ANEL, N,2N 11974000
+ IF(NMCF.EQ.6) NPOST=32 11975000
+C F5 SMMOOTH PIU RESTO 11976000
+ IF(NMCF.EQ.8) NPOST=33 11977000
+C 11978000
+ IF(NMCF.NE.5) GO TO 100 11979000
+C F5 SMOOTHS 11980000
+C DETERMINO IN CHE POSIZIONE DELLATAVOLA VA ( ESISTE UNA POSIZIONE 11981000
+C PER OGNI REAZIONE CON DENTRO IL NUMERO DELL INDICE) 11982000
+C DETERMINO IL TIPO DI DATO : SMMOOTH,UNRES,RES 11983000
+ INCR=0 11984000
+C SMOOTHS 11985000
+ IF(AINDX1(25,IIND).EQ.1.) INCR=6 11986000
+C UNRESOLVED 11987000
+ IF(AINDX1(25,IIND).EQ.2.) INCR=15 11988000
+C RESOLVED 11989000
+ IF(AINDX1(25,IIND).EQ.3.) INCR=20 11990000
+C BACK DI A.A. 11991000
+ IF(AINDX1(25,IIND).EQ.4.) INCR=25 11992000
+C NI 11993000
+ IF(AINDX1(25,IIND).EQ.5.) INCR=31 11994000
+C 11995000
+C A SECONDA DELLA REAZIONE FISSA IL PUNTO=0 11996000
+ INCR1=0 11997000
+C SCARTA I CASI SENZA TIPO DI REAZIONE ,ALTRIMENTI METTO 11998000
+C ( PER SMMOOTH,RES,UNRES) ULTERIORE INCREMENTO A SECONDA DEL 11999000
+C TIPO DI REAZIONE : TOT,EL ,ANEL,NG,FISS, ETC 12000000
+ IF(AINDX1(25,IIND).EQ.1.) INCR1=AINDX1(23,IIND) 12001000
+ IF(AINDX1(25,IIND).GE.2.AND.AINDX1(25,IIND).LE.4.) 12002000
+ 1 INCR1=AINDX1(26,IIND) 12003000
+ IF(AINDX1(26,IIND).EQ.4.) INCR1=4 12004000
+C 12005000
+C ANELASTICA DA SOMMARE ALLA TOTAL: POS=39=INCR1+INCR=33+6 12006000
+ IF(AINDX1(23,IIND).EQ.10.) INCR1=33 12007000
+C N,2N DA SOMMARE ALLA TOTAL: POS=40=INCR1+INCR=34+6 12008000
+ IF(AINDX1(23,IIND).EQ.11.) INCR1=34 12009000
+ IF(INCR.NE.31.AND.INCR1.LE.0) GO TO 30 12010000
+ 200 CONTINUE 12011000
+C 12012000
+C QUI HO DETERMINATO IL POSTO IN CUI VA LA COORDINATA DELL INDICE 12013000
+C ORA VEDO SE LA DEVO METTERE OPPURE NO, A SECONDA DI CHE MI DICE 12014000
+C LA MIX. CALCOLA IL POSTO COLLA MIX E SE NON COINCIDONO( E LA 12015000
+C MIX NON E' NULLA) SALTO IL MATERIALE 12016000
+C INCREMENTO DETERMINATO IN BASE A MIX 12017000
+ INCRM=0 12018000
+C SMOOTH 12019000
+ IF(MIX(7,IMX).EQ.1) INCRM=6 12020000
+C UNRES 12021000
+ IF(MIX(7,IMX).EQ.2) INCRM=15 12022000
+C RESOLVED 12023000
+ IF(MIX(7,IMX).EQ.3) INCRM=20 12024000
+C BACK DI A.A. 12025000
+ IF(MIX(7,IMX).EQ.4) INCRM=25 12026000
+C NU 12027000
+ IF(MIX(7,IMX).EQ.5) INCRM=31 12028000
+ INCRM1=MIX(8,IMX) 12029000
+ IF(INCRM1.EQ.10.) INCRM1=5 12030000
+ IF(INCRM1.EQ.11.) INCRM1=4 12031000
+ IF(INCRM1.EQ.12.)INCRM1=39 12032000
+ IF(INCRM1.EQ.13.) INCRM1=40 12033000
+ IF(MIX(8,IMX).GT.11) INCRM1=0 12034000
+C CONFRONTO DEI 2 INCREMENTI 12035000
+ IF(INCRM.NE.0.AND.INCRM.NE.INCR) GO TO 30 12036000
+ IF(INCRM1.NE.0.AND.INCRM1.NE.INCR1) GO TO 30 12037000
+C ASSEGNAZIONE INDICE 12038000
+ NPOST=INCR+INCR1 12039000
+ 300 CONTINUE 12040000
+ 100 CONTINUE 12041000
+ IF(NPOST.LE.0) 12042000
+ 1CALL ERR(8HP3 ,100) 12043000
+C 12044000
+C NU TABULATO VA NEL POSTO 36 12045000
+ IF(NPOST.EQ.31.AND.AINDX1(14,IIND).GT.0.) NPOST=36 12046000
+C SE NU TABULATO E' NELLO STESSO RECORD DI INDICE DEL NU COEFFICI12047000
+C ALLORA VA ANCHE NEL POSTO 31 DI NTABL 12048000
+ IF(NPOST.EQ.36.AND.AINDX1(34,IIND).GT.0.) NTABL(31,I)=IIND 12049000
+C 12050000
+C STRUTTURA AD ISOTOPI PER RES ED UNRES SOMMATE ALLE SMOOTHS 12051000
+C FA TAVOLA DI ISOTOPI PER OGNUNA DELLE 10 REAZIONI RISONANTI E 12052000
+C PER OGNI REAZIONE NISO VALORI DI IND CUI RIFERIRSI NELLE SOMME 12053000
+C IN NTABL VIENE MESSO(CON SEGNO -) L'INDIRIZZO DELLA 12054000
+C TAVOLA DEGLI ISOTOPI DELLA REAZIONE 12055000
+C 12056000
+ IF(NPOST.LT.16.OR.NPOST.GT.25) GO TO 301 12057000
+ IF(AINDX1(10,IIND).LE.1.) GO TO 301 12058000
+C SE NISO E' .GT.1 DEVE FARE LA TAVOLA DEI NUCLIDI 12059000
+ NISO=AINDX1(10,IIND) 12060000
+C 12061000
+C ===== SI SUPPONE CHE L'ISOTOPO NUMERO 1 ESISTA SEMPRE 12062000
+C IN CASO CONTRARIO SI DOVRANNO CERCARE GLI ALTRI, PER AVERE NISO12063000
+C E POI CONTROLLARE CHE NISO SIA COERENTE E SPERARE DI AVERCI PRE12064000
+C CHE QUI NON SI SA QUANTI ISOTOPI CI SONO ============== 12065000
+C 12066000
+ ISO=AINDX1(35,IIND) 12067000
+C NELLA POSIZIONE NPOST DELLA TAVOLA STA CON SEGNO - L'ADDRESS 12068000
+C DELLA REAZIONE NELLA TAVOLA DEI NUCLIDI 12069000
+ IF(NTABL(NPOST,I).NE.0.AND.NTABL(NPOST,I).NE.(-((NPOST-16)*NISO+12070000
+ 1 1+NISTAB))) CALL ERR(8HP3 ,301) 12071000
+ NTABL(NPOST,I)=-((NPOST-16)*NISO+1+NISTAB) 12072000
+C IL NUMERO DELL'INDICE E' NELLA TABELLA DEGLI ISOTOPI 12073000
+ NTB=((NPOST-16)*NISO+ISO)+NISTAB+LISTAB-1 12074000
+ IF(NA(NTB).GT.0) CALL ERR(8HP3 ,302) 12075000
+ NA(NTB)=IIND 12076000
+ GO TO 30 12077000
+C 12078000
+ 301 NTABL(NPOST,I)=IIND 12079000
+C 12080000
+ 30 CONTINUE 12081000
+ 20 CONTINUE 12082000
+ NISTAB=NISTAB+NISO*10 12083000
+ NISO=0 12084000
+ 15 CONTINUE 12085000
+C 12086000
+C ORDINAMENTO E SISTEMAZIONE TAVOLA DEI NUCLIDI 12087000
+C 12088000
+ CALL ORDTAB(MINDX1,KMAT,NTABL,ML1,ML2,AINDX1) 12089000
+C 12090000
+C 12091000
+ WRITE(NP,1000) (I,I=3,20) 12092000
+ DO 58 I=1,KMAT 12093000
+ 58 WRITE(NP,2000)(NTABL(J,I),J=1,20) 12094000
+ WRITE(NP,1000) (I,I=21,40) 12095000
+ DO 59 I=1,KMAT 12096000
+ 59 WRITE(NP,2000)NTABL(1,I),NTABL(2,I),(NTABL(J,I),J=21,MINDX1) 12097000
+ WRITE(NP,1010) NISTAB 12098000
+ 1010 FORMAT(' TABLE OF ISOTOPES: (TABLE LENGTH:',I10,')') 12099000
+ NK11=LISTAB+NISTAB-1 12100000
+ IF(NISTAB.GT.0) WRITE(NP,2010) (NA(J),J=LISTAB,NK11) 12101000
+ 2010 FORMAT(1X,10I7) 12102000
+C 12103000
+ 1000 FORMAT(30X,'PART 3 - MC2-II FILES WRITENER '/ 12104000
+ 120X,' TABLE OF INPUT MATERIALS:'/1X,(8X,40I5)) 12105000
+ 2000 FORMAT(1X,2A4,38I5) 12106000
+C 12107000
+C FISSO CODICE DI ESISTENZA FILES 12108000
+ NFLG1=NEXDI1(0,3,3,MINDX1,KMAT,INDX) 12109000
+C NEXDI1 DIVERSO DA ZERO SE NELLE COL DA 3 A 3 NTABL(MINDX1,KM).NE.012110000
+ NFLG3=NEXDI1(0,4,4,MINDX1,KMAT,NTABL) 12111000
+ NFLG4=NEXDI1(0,5,5,MINDX1,KMAT,NTABL) 12112000
+ NFLG5=NEXDI1(0,7,31,MINDX1,KMAT,NTABL) 12113000
+ NFLG6=NEXDI1(0,32,32,MINDX1,KMAT,NTABL) 12114000
+ NFLG7=NEXDI1(0,6,6,MINDX1,KMAT,NTABL) 12115000
+ NFLG8=NEXDI1(0,33,34,MINDX1,KMAT,NTABL) 12116000
+C 12117000
+C AZZERA DATI IN COMMON CHE E RECORD 1 DI F1 12118000
+ DO 40 IKJ=1,13 12119000
+ 40 NRC1F1(IKJ)=0 12120000
+C 12121000
+C FISSO SPAZIO PER FILE 1 IN A (PIENA FINO A 4*KMAT+4*KIND)+NISTAB 12122000
+C 12123000
+C IF ISOTOPE TABLE DOESN'T EXIST NISTAB IS SET 1 TO AVOID DIM .LE.0 12124000
+ IF(NISTAB.LE.0) NISTAB=1 12125000
+C 12126000
+C DETERMINO POSIZIONE INIZIALE DEI DATI PER I RECORDS DI F1 12127000
+ NREC2=1+(KMAT+KIND)*4 +NISTAB 12128000
+C SPAZIO PER RECORD 2 ( NOMI MAT) 12129000
+ NREC3=NREC2+2*KMAT 12130000
+C RECORD 3 : A,Z,ENDF ID,EFISS,ECATT, PER OGNI MAT 12131000
+ NREC4=NREC3+5*KMAT 12132000
+C RECORD 4 : SPECIFICHE DI UNRES E RES 12133000
+ NREC5=NREC4+5*KMAT 12134000
+C RECORD 5 : SPECIFICHE F6 ( ANEL,N2N ECC ) 12135000
+C 12 PAROLE + 1 PAROLA PER GRUPPO+ 1 PAROLA (OPZ(2,5,4)=NG 12136000
+ NREC6=NREC5+12*KMAT+OPZ(2,5,4)+1 12137000
+C RECORD 6 : SIGP 12138000
+C 12139000
+ NREC7=NREC6+KMAT 12140000
+C 12141000
+ IF(NREC7.GT.MA) CALL ERR(8H P3 ,20) 12142004
+C IF(NREC7.GT.MA) CALL ERRP(2,MA,NREC7,0.,0.,0.) 12143000
+C 12144000
+ IF(NFLG3.GT.0)CALL P3MCF3(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12145000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7),NA(1),KIND,NA(KMAT*4+1), 12146000
+ 2 ML1,ML2,AINDX1) 12147000
+C 12148000
+ IF(NFLG4.GT.0)CALL P3MCF4(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12149000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7),NA(1),KIND,NA(KMAT*4+1), 12150000
+ 2 ML1,ML2,AINDX1) 12151000
+C 12152000
+ IF(NFLG5.GT.0)CALL P3MCF5(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12153000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7),NISTAB,NA(LISTAB), 12154000
+ 2 ML1,ML2,AINDX1) 12155000
+C 12156000
+ IF(NFLG6.GT.0)CALL P3MCF6(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12157000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7), 12158000
+ 2 ML1,ML2,AINDX1) 12159000
+C 12160000
+ IF(NFLG7.GT.0)CALL P3MCF7(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12161000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7), 12162000
+ 2 ML1,ML2,AINDX1) 12163000
+C 12164000
+ IF(NFLG8.GT.0)CALL P3MCF8(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12165000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7), 12166000
+ 2 ML1,ML2,AINDX1) 12167000
+C 12168000
+ IF(NFLG1.GT.0)CALL P3MCF1(KMAT,NA(NREC2),NA(NREC3),NA(NREC4), 12169000
+ 1NA(NREC5),NA(NREC6),MA-NREC7,NA(NREC7), 12170000
+ 2 ML1,ML2,AINDX1) 12171000
+ RETURN 12172000
+ END 12173000
+ SUBROUTINE ORDTAB(M1,KMAT,NTABL,ML1,ML2,AINDX1) 12174000
+C ***************************************************** 12175000
+C THIS ROUTINE ORDERS THE MATERIALS TABLE FOR DECREASING 12176000
+C MASS NUMBERS 12177000
+C ***************************************************** 12178000
+C 12179000
+ DIMENSION AINDX1(ML1,ML2),NTABL(M1,KMAT) 12180000
+ COMMON/FILES/NT(4,99) 12181000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 12182000
+ DIMENSION NHIDR(2) 12183000
+ DATA NHIDR/4HHYDR,4HGN / 12184000
+C 12185000
+C LA TABELLA VIENE ORDINATA IN BASE AD A : AINDX1(5,NTABL(3,IS)12186000
+C VIENE ORDINATA PER NUMERI DI MASSA DECRESCENTI 12187000
+ IF(KMAT.LE.0) RETURN 12188000
+C 12189000
+ DO 10 IS=1,KMAT 12190000
+ KAI=NTABL(3,IS) 12191000
+ IF(KAI.GT.0.AND.KAI.LE.ML2) GO TO 100 12192000
+ CALL ERR(8HORDTAB ,100) 12193000
+ GO TO10 12194000
+ 100 AI=AINDX1(5,KAI) 12195000
+ I1=IS+1 12196000
+ IF(I1.GT.KMAT) GO TO 300 12197000
+ DO 20 IS1=I1,KMAT 12198000
+ KAI1=NTABL(3,IS1) 12199000
+ IF(KAI1.LE.0.OR.KAI.GT.ML2) GO TO 200 12200000
+ AI1=AINDX1(5,KAI1) 12201000
+ IF(AI1.LE.AI) GO TO 20 12202000
+C SCAMBIA 12203000
+ DO 30 I=1,M1 12204000
+ NDUM=NTABL(I,IS) 12205000
+ NTABL(I,IS)=NTABL(I,IS1) 12206000
+ NTABL(I,IS1)=NDUM 12207000
+ 30 CONTINUE 12208000
+ AI=AI1 12209000
+ 20 CONTINUE 12210000
+ 200 CONTINUE 12211000
+ 10 CONTINUE 12212000
+ 300 CONTINUE 12213000
+C L'ULTIMO IL PIU LEGGERE, SE E' H LA CHIAMA 12214000
+C COL NOME HYDRGN 12215000
+C 12216000
+ IF(NTABL(3,KMAT).LE.0.OR.NTABL(3,KMAT).GT.ML2) GOTO500 12217000
+ IF(AINDX1(5,NTABL(3,KMAT)).GT.1.5) GO TO 500 12218000
+ IF(NTABL(1,KMAT).EQ.NHIDR(1).AND.NTABL(2,KMAT).EQ.NHIDR(2)) 12219000
+ 1 GO TO 500 12220000
+ WRITE(NP,1000) NTABL(1,KMAT),NTABL(2,KMAT),NHIDR 12221000
+ WRITE(NO,1000) NTABL(1,KMAT),NTABL(2,KMAT),NHIDR 12222000
+ 1000 FORMAT(' WARNING! NAME: ',2A4,' ,RECOGNIZED AS HYDROGEN,' 12223000
+ 1 ,' HAS BEEN CHANGED INTO: ',2A4,' AS REQUIRED BY MC2-2') 12224000
+ NTABL(1,KMAT)=NHIDR(1) 12225000
+ NTABL(2,KMAT)=NHIDR(2) 12226000
+ 500 RETURN 12227000
+ END 12228000
+ SUBROUTINE P3MCF3(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,NA, 12229000
+ 1 INDMIX,KIND,INDIND,ML1,ML2,AINDX1) 12230000
+C ******************************************************* 12231000
+C FILE MCC2F3 GENERATION:UNRESOLVED RESONANCE PARAMETERS 12232000
+C FA FILE MCC2F3 . IN ARGOMENTI NA: SPAZIO DI LAVORO ED I 12233000
+C DIVERSI RECORDS DI MCC2F1 12234000
+C 12235000
+C INDIND(4,KIND) = INDICE DI IND: NOME(REAL*8) INIZIO DURATA 12236000
+C INDMIX(4,NNUC) = INDICE DI MIX: " " " 12237000
+C 12238000
+C ************************************************************** 12239000
+C 12240000
+ DIMENSION NREC3(5,NNUC),NREC4(5,NNUC),NREC5(12,NNUC) 12241000
+ DIMENSION SIGP(NNUC),NA(MA),INDIND(4,KIND),INDMIX(4,NNUC) 12242000
+ DIMENSION AINDX1(ML1,ML2) 12243000
+ REAL*8 NAME(NNUC) 12244000
+C 12245000
+ COMMON/FILES/NT(4,99) 12246000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 12247000
+ COMMON /DIM/M(5) 12248000
+ EQUIVALENCE (M(2),MIND) 12249000
+C IN DIM IN M(4) STA ANCHE NNUC, LUNGHEZZA DI INDX ( NUMERO ISOTOP 12250000
+ COMMON /RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 12251000
+ 1IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX 12252000
+ COMMON/INDX/NTABL(40,200) 12253000
+ COMMON/OPZIO/ OPZ(4,8,10) 12254000
+ EQUIVALENCE (OPZ(3,3,1),STMP) 12255000
+C 12256000
+ WRITE(NP,9999) 12257000
+ 9999 FORMAT(' P3MCF3 ENTERED : UNRESOLVED RESONANCE PARAMETERS') 12258000
+C 12259000
+C COSTRUISCO SPAZI PER RECORDS 1,2,3 12260000
+C CON DATI DELL INDICE 12261000
+C 12262000
+C GLI INDIRIZZI IN QUESTA ROUTINE, CONTRARIAMENTE ALLA 12263000
+C PRATICA CORRENTE IN QUESTO PROGRAMMA SONO IL NUMERO 12264000
+C DI LOCAZIONI CHE PRECEDONO IL DATO E NON, COME 12265000
+C USUALMENTE, LA PRIMA LOCAZIONE DEL DATO. 12266000
+C 12267000
+ NR1=0 12268000
+C INIZIO DI RECORD 1 DI F3 ( NOMI REAL*8) I NOMI SONO INDICATI 12269000
+C NEL RESTO DEL PROGRAMMA COME NA(1) NON NA(NR1+1) 12270000
+ NR2=NR1+2*NNUC 12271000
+C POSIZIONAMENTO DELLE PAROLE DEL RECORD 2 ( SPECIFICHE GENERALI) 12272000
+ NR2NIS=NR2 12273000
+C .................. NOMI MATERIALI 12274000
+ NR2IFI=NNUC+NR2NIS 12275000
+C .................. IFI ( FLAG DI FISSIONE) 12276000
+ NR2ISK=NR2IFI+NNUC 12277000
+C .................. ISK NUMERO DEI RECORDS 12278000
+ NR2LSM=NR2ISK+NNUC 12279000
+ NR2LS1=NR2LSM+1 12280000
+C .................. LST MAX ( DEL FILE MCC2F3 12281000
+ NR2JSM=NR2LSM+1 12282000
+ NR2JS1=NR2JSM+1 12283000
+C .................. JST MAX ( DI MCC2F3 12284000
+ NR2NPM=NR2JSM+1 12285000
+ NR2NP1=NR2NPM+1 12286000
+C .................. NPTMAX (DI MCC2F3 12287000
+C RECORD 3 12288000
+ NR3=NR2NPM+1 12289000
+ IF(NR3.GT.MA) CALL ERR(8HP3MCF3 ,0) 12290000
+C 12291000
+C IL RECORD 3 PER MCF3 VIENE QUINDI PREPARATO IN QUESTO MODO: 12292000
+C ABUND,A,RPF,LST,NPT,RPS,NADD 12293000
+C 1 2 3 4 5 6 7 / POSIZ=(NUNRMT-1)(7*(NUM ISO-1)+NR312294000
+C TUTTI I DATI DEL RECORD SONO VERI E PROPRI DATI DEL RECORD 3 DI M12295000
+C MCF3 , SALVO NADD, CHE E IL NUMERO DEL RECORD DI INDX CHE CONTIEN12296000
+C L ISOTOPO 12297000
+C 12298000
+C QUESTA ROBA VA MESSA QUI PER IL CALCOLO DEL MAX CHE VA IN RECORD 12299000
+C 12300000
+C NMNG E IL NUMERO DEI GRUPPI DI QUESTI 7 VALORI CHE VIENE RIEMPITO12301000
+C 12302000
+ CALL RIEMP(0.0,MA,NA) 12303000
+C 12304000
+C NUMERO DI MATERIALI UNRES PER F1:NUNRMT 12305000
+ NUNRMT=0 12306000
+ NMNG=0 12307000
+C ----------------- CALCOLO DATI DEI RECORDS 1 - 2 -------------12308000
+C 12309000
+C .....................LOOP SU MATERIALI ( SULLE RIGHE DELLA TAVOLA12310000
+C RIEMPIMENTO RECORD 3 12311000
+ DO 10 IM=1,NNUC 12312000
+ NINDX=NTABL(4,IM) 12313000
+ IF(NINDX.LE.0) GO TO 10 12314000
+C SALTA SE NON E' UN F3 DEL MATERIALE ( ESISTE UN ALMENO DI SPECIFI12315000
+C DI MCF3 NELLA TAVOLA OPPURE P3MCF3 NON SAREBBE STATA CHIAMATA) 12316000
+ NUNRMT=NUNRMT+1 12317000
+C NUNRMT E' UN DATO DI MCF1 12318000
+ NOM=NAREAL(AINDX1(8,NINDX)) 12319000
+ NOM1=NAREAL(AINDX1(9,NINDX)) 12320000
+C NOM,NOM1 DEFINISCONO IL NOME DI INPUT CHE NON E' QUELLO 12321000
+C DELLA TABELLA NTABL, CONTENENTE IL NOME DI OUTPUT. 12322000
+ NISO=AINDX1(20,NINDX) 12323000
+ IF(NISO.LE.0) CALL ERR(8HP3MCF3 ,1) 12324000
+C .................. DEFINIZIONE PARTE DI IND DEL MATERIALE 12325000
+ DO 20 I=1,KIND 12326000
+ IF(NOM.EQ.INDIND(1,I).AND.NOM1.EQ.INDIND(2,I)) GO TO 151 12327000
+ 20 CONTINUE 12328000
+ CALL ERR(8HP3MCF3 ,20) 12329000
+ GO TO 10 12330000
+ 151 NI1=INDIND(3,I) 12331000
+ NI2=NI1+INDIND(4,I)-1 12332000
+C ............. LOOP SU INDICE DI INTERESSE 12333000
+ DO 30 IND=NI1,NI2 12334000
+C CERCO GLI ISOTOPI. QUANDO NE TROVO UNO LO METTO NEL SUO POSTO 12335000
+C POI ALLA FINE CONTROLLO SE CI SONO TUTTI. 12336000
+ IF(AINDX1(11,IND).NE.3.) GO TO 30 12337000
+ NUMIS=AINDX1(34,IND) 12338000
+ IF(NUMIS.LE.0.OR.NUMIS.GT.NISO) GO TO 30 12339000
+ NPOST=NR3+(NMNG+NUMIS-1)*7 12340000
+C SE L'ISOTOPO E' GIA STATO PRESO NON LO RIPRENDE 12341000
+ IF(AREAL(NA(NPOST+1)).GT.0.)GO TO 30 12342000
+C TROVATO L'ISOTOPO LO METTE NEL RECORD 3 12343000
+C 12344000
+C 12345000
+C ABBONDANZA ISOTOPO 12346000
+ NA(NPOST+1)=NAREAL(AINDX1(26,IND)) 12347000
+C A 12348000
+ NA(NPOST+2)=NAREAL(AINDX1(27,IND)) 12349000
+C RPF 12350000
+ NA(NPOST+3)=NAREAL(AINDX1(29,IND)) 12351000
+C LST 12352000
+ NA(NPOST+4)=AINDX1(23,IND) 12353000
+C NPT 12354000
+ NA(NPOST+5)=AINDX1(25,IND) 12355000
+C RPS 12356000
+ NA(NPOST+6)=NAREAL(AINDX1(28,IND)) 12357000
+C 12358000
+C POSIZIONE DELL INDICE 12359000
+ NA(NPOST+7)=IND 12360000
+C 12361000
+C MASSIMI DI RECORD 3-4 CONTENUTI NEL RECORD 2: 12362000
+C 12363000
+ IF(NA(NR2LS1).LT.AINDX1(23,IND))NA(NR2LS1)=AINDX1(23,IND) 12364000
+C 12365000
+ IF(NA(NR2JS1).LT.AINDX1(24,IND))NA(NR2JS1)=AINDX1(24,IND) 12366000
+C 12367000
+ IF(NA(NR2NP1).LT.AINDX1(25,IND))NA(NR2NP1)=AINDX1(25,IND) 12368000
+C 12369000
+C METTO EMAX ED EMIN IN F1 12370000
+ IF(AREAL(NREC4(4,NUNRMT)).LT.AINDX1(33,IND)) 12371000
+ 1 NREC4(4,NUNRMT)=NAREAL(AINDX1(33,IND)) 12372000
+C 12373000
+ IF(AREAL(NREC4(5,NUNRMT)).LE.0.) 12374000
+ 1 NREC4(5,NUNRMT)=NAREAL(AINDX1(32,IND)) 12375000
+ IF(AREAL(NREC4(5,NUNRMT)).GT.AINDX1(32,IND)) 12376000
+ 1 NREC4(5,NUNRMT)=NAREAL(AINDX1(32,IND)) 12377000
+C 12378000
+C FINE LOOP SU IND DEL MAT PER RICERCA ISOTOPO.................... 12379000
+ 30 CONTINUE 12380000
+ NMNG=NMNG+NISO 12381000
+C 12382000
+C CONTROLLO DI AVER TROVATO TUTTI GLI ISOTOPI 12383000
+ DO 31 J=1,NISO 12384000
+ IF(NAREAL(NA(NPOST+J)).GT.0.) GO TO 31 12385000
+ CALL ERR(8HP3MCF3 , 31) 12386000
+C CALL ERRP(5,IM,NUNRMT,NISO,J,NA) 12387000
+ 31 CONTINUE 12388000
+C 12389000
+C IL SEGUITO NON DIPENDE DA ISOTOPI 12390000
+C 12391000
+C ------------------- DATI DEL RECORD 1 ----------------- 12392000
+C NOMI MATERIALI IN DOPPIA 12393000
+ NA(1+2*(NUNRMT-1))=NTABL(1,IM) 12394000
+ NA(2*NUNRMT)=NTABL(2,IM) 12395000
+C NISO 12396000
+ NA(NR2NIS+NUNRMT)=AINDX1(20,NINDX) 12397000
+C IFI 12398000
+ NA(NR2IFI+NUNRMT)=AINDX1(21,NINDX) 12399000
+C ISK 12400000
+ NA(NR2ISK+NUNRMT)=AINDX1(22,NINDX)+1 12401000
+C FINE LOOP SU TAVOLA ( NUCLIDI ) IM 12402000
+C 12403000
+ 10 CONTINUE 12404000
+ NR4=NR3+NMNG*7 12405000
+C 12406000
+C ------------------ SCRITTURE E LETTURE ----------------- 12407000
+C 12408000
+C DEFINIZIONE TAPE DI OUTPUT ( E IL NUMERO 53 DELLA TAVOLA NT) 12409000
+ NTOUT=53 12410000
+ NTO=NT(1,NTOUT) 12411000
+ CALL REW(NTOUT) 12412000
+C ------------------------------------ SCRIVE RECORD 1 12413000
+ N1=2*NUNRMT 12414000
+ WRITE(NTO) (NA(J),J=1,N1) 12415000
+ WRITE(NO,1000)(NA(J),J=1,N1) 12416000
+ WRITE(NP,1001)(NA(J),J=1,N1) 12417000
+ 1000 FORMAT(///20X,'FILE MCC2F3 PRODUCED - UNRESOLVED RESONANCE', 12418000
+ 1 ' PARAMETERS' 12419000
+ 2 ///20X,' MATERIALS:'// 12420000
+ 3 1X,(10(2X,2A4))) 12421000
+ 1001 FORMAT(1X,'FILE MCC2F3 PRODUCED. MATERIALS:' 12422000
+ 1 /(10(2X,2A4))) 12423000
+C 12424000
+C ---------------------------------- SCRIVE RECORD 2 12425000
+C 12426000
+ WRITE(NTO) (NA(NR2NIS+J),J=1,NUNRMT),(NA(NR2IFI+J),J=1,NUNRMT), 12427000
+ 1(NA(NR2ISK+J),J=1,NUNRMT),NA(NR2LS1),NA(NR2JS1),NA(NR2NP1) 12428000
+ IF(STMP.GT.1001) WRITE(NO,2000) 12429000
+ 1 NUNRMT,NA(NR2LS1),NA(NR2JS1),NA(NR2NP1), 12430000
+ 2 (J,NA(NR2NIS+J),NA(NR2IFI+J),NA(NR2ISK+J),J=1,NUNRMT) 12431000
+ 2000 FORMAT(//20X,'RECORD 2:'/' UNRESOLVED RESONANCE MATERIALS:', 12432000
+ 1I5,5X,' LSTMAX:',I5,5X,'JSTMAX:',I5,5X,'NPTMAX:',I5/ 12433000
+ 2' MATERIAL , NISO , IFI , ISK '/1X,(1X,I6,3I10)) 12434000
+C 12435000
+C ..................... LOOP SU MATERIALI ............... 12436000
+C 12437000
+ NMNG=0 12438000
+C SONO IGRUPPI DI 7 GIA LETTI (DEI MATERIALI PRECEDENTI(TUTTI GLI I12439000
+C ISOTOPI) 12440000
+ DO 40 IM=1,NNUC 12441000
+C 12442000
+ NINDX=NTABL(4,IM) 12443000
+ IF(NINDX.LE.0) GO TO 40 12444000
+ NISO=AINDX1(20,NINDX) 12445000
+C 12446000
+C ------------------------------------SCRITTURA RECORD 3 12447000
+C 12448000
+ WRITE (NTO)((NA(NR3+NMNG+7*(J-1)+JJ),J=1,NISO),JJ=1,6) 12449000
+ IF(STMP.GT.1003.) 12450000
+ 1WRITE(NO,3000)IM,(J,(NA(NR3+NMNG+7*(J-1)+JJ),JJ=1,6),J=1,NISO) 12451000
+ 3000 FORMAT(/20X,'RECORD 3 , MATERIAL:',I5/ 12452000
+ 1' ISOTOPE , ABUND , A , RPF , LST, NPT , RPS'/ 12453000
+ 2 1X,(1X,I5,3X,3E12.5,2I5,E12.5)) 12454000
+C 12455000
+C ------------------------------- RECORD 4 E RECORD 5 12456000
+C 12457000
+ DO 50 IS=1,NISO 12458000
+C POSIZIONE DELL'ISOTOPO NELL'INDICE 12459000
+ NINDP=NA(NR3+NMNG+7*(IS-1)+7) 12460000
+C DEFINIZIONE POSIZIONE SUL FILE 12461000
+ NTIN=AINDX1(15,NINDP) 12462000
+ NTI=NT(1,NTIN) 12463000
+ NRECI=AINDX1(16,NINDP) 12464000
+ CALL POST1(NTIN,NRECI) 12465000
+C IN QUESTO INDEX LA PARTE 2 METTE LE PAROLE DEI RECORDS 4 E 5 , CO12466000
+C NON DEVO RICALCOLARLE CHE E COMPLICATO 12467000
+ NL4=AINDX1(18,NINDP) 12468000
+ NL5=AINDX1(19,NINDP) 12469000
+C USA SPAZIO A RIMASTO 12470000
+ IF(NR4+NL4+1.GT.MA) CALL ERR(8HP3MCF3 ,50) 12471000
+ IF(NR4+NL5+1.GT.MA) CALL ERR(8HP3MCF3 ,51) 12472000
+ READ(NTI)(NA(NR4+J),J=1,NL4) 12473000
+ WRITE(NTO)(NA(NR4+J),J=1,NL4) 12474000
+ READ(NTI)(NA(NR4+J),J=1,NL5) 12475000
+ WRITE(NTO)(NA(NR4+J),J=1,NL5) 12476000
+C 12477000
+ NT(4,NTI)=NT(4,NTI)+2 12478000
+ 50 CONTINUE 12479000
+ NMNG=NMNG+NISO*7 12480000
+C 12481000
+C NMNG E IL NUMERO DI GRUPPI DI 7 LETTI NELLO SPAZIO NA PER IL RECOR12482000
+C 12483000
+ 40 CONTINUE 12484000
+C ........................................... FINE LOOP MATERIALI 12485000
+ CALL REW(NTOUT) 12486000
+ RETURN 12487000
+ END 12488000
+ SUBROUTINE P3MCF4(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,NA, 12489000
+ 1 INDMIX,KIND,INDIND,ML1,ML2,AINDX1) 12490000
+C **************************************************************** 12491000
+C FILE MCC2F4 GENERATION: RESOLVED RESONANCE PARAMETERS 12492000
+C FA FILE MCF4 IN ARGOMENTO : SPAZIO DI LAVORO NA ED I DIVERSI 12493000
+C RECORDS DI MC2F1 12494000
+C INDIND(4,KIND)=INDICE DI INDX 12495000
+C INDMIX(4,NNUC)=INDICE DI MIX 12496000
+C 12497000
+C **************************************************************** 12498000
+C 12499000
+ DIMENSION SIGP(NNUC),NA(MA),INDIND(4,KIND),INDMIX(4,NNUC) 12500000
+ DIMENSION NREC3(5,1),NREC4(5,1),NREC5(12,1) 12501000
+ DIMENSION AINDX1(ML1,ML2) 12502000
+ REAL*8 NAME(NNUC) 12503000
+C 12504000
+ COMMON/FILES/NT(4,99) 12505000
+ EQUIVALENCE (NT(1,6),NO),(NP,NT(1,11)) 12506000
+ COMMON /DIM/M(5) 12507000
+ EQUIVALENCE(M(2),MIND) 12508000
+ COMMON /INDX/NTABL(40,200) 12509000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 12510000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX 12511000
+ COMMON/OPZIO/OPZ(4,8,10) 12512000
+ EQUIVALENCE (OPZ(3,4,1),STMP) 12513000
+C 12514000
+ WRITE(NP,9999) 12515000
+ 9999 FORMAT(' P3MCF4 ENTERED : RESOLVED RESONANCE PARAMETERS') 12516000
+C 12517000
+C 12518000
+C COSTRUZIONE SPAZI PER I RECORDS 1,2,3 12519000
+C 12520000
+C INIZIO RECORD 1 DI F4 12521000
+ NR1=0 12522000
+C ------------------ INIZIO RECORD 2 12523000
+ NR2=NR1+NNUC*2 12524000
+C POSIZIONE PAROLE DELE RECORD 2 (SPECIFICHE GENERALI) 12525000
+ NR2NIS=NR2 12526000
+C NOMI MATERALI 12527000
+ NR2IWR=NR2NIS+NNUC 12528000
+C IWR: TIPO RAPPRESENTAZIONE 12529000
+ NR2EL=NR2IWR+NNUC 12530000
+C E INF 12531000
+ NR2EU=NR2EL+NNUC 12532000
+C ENERGIA UPPER 12533000
+C ---------------- RECORD 3 : INIZIO 12534000
+ NR3=NR2EU+NNUC 12535000
+ CALL RIEMP(0.0,MA,NA) 12536000
+ IF(NR3.GT.MA) CALL ERR(8HP3MCF4 ,0) 12537000
+C NUOVO RES PER F2 12538000
+ NRESMT=0 12539000
+C RIEMPIMENTO RECORD 3 ( TUTTO COME P3MCF3 LA STRUTTURA) 12540000
+ NMNG=0 12541000
+C ...................................LOOP SU MATERIALI( RIGHE DELLA12542000
+C TAVOLA) 12543000
+ DO 10 IM=1,NNUC 12544000
+ NINDX=NTABL(5,IM) 12545000
+ IF(NINDX.LE.0) GO TO 10 12546000
+C SALTA SE NON CI E F4 NELLA TAVOLA 12547000
+ NRESMT=NRESMT+1 12548000
+ NOM=NAREAL(AINDX1(8,NINDX)) 12549000
+ NOM1=NAREAL(AINDX1(9,NINDX)) 12550000
+ NISO=AINDX1(20,NINDX) 12551000
+ IF(NISO.LE.0) CALL ERR(8HP3MCF4 ,1) 12552000
+C CERCA IL NOME NELL'INDICE DELL'INDICE 12553000
+ DO 20 I=1,KIND 12554000
+ IF(NOM.EQ.INDIND(1,I).AND.NOM1.EQ.INDIND(2,I))GOTO 151 12555000
+ 20 CONTINUE 12556000
+ CALL ERR(8HP3MCF4 ,20) 12557000
+ GO TO 10 12558000
+ 151 NI1=INDIND(3,I) 12559000
+ NI2=NI1+INDIND(4,I)-1 12560000
+C LOOP SU INDICE DEL MATERIALE (CERCA ISOTOPI) 12561000
+ DO 30 IND=NI1,NI2 12562000
+C 12563000
+ IF(AINDX1(11,IND).NE.4.) GO TO 30 12564000
+ NUMIS=AINDX1(34,IND) 12565000
+ IF(NUMIS.LE.0.OR.NUMIS.GT.NISO) GO TO 30 12566000
+ NPOST=NR3+(NMNG+NUMIS-1)*3 12567000
+ IF(AREAL(NA(NPOST+1)).GT.0.) GO TO 30 12568000
+C 12569000
+C ----------------- RIEMPIE IL RECORD 3 (PER ISOTOPO TROVATO) 12570000
+C ABBONDANZA 12571000
+ NA(NPOST+1)=NAREAL(AINDX1(26,IND)) 12572000
+C NUMERO RISONANZE 12573000
+ NA(NPOST+2)=AINDX1(18,IND) 12574000
+C POSIZIONE NELL INDICE 12575000
+ NA(NPOST+3)=IND 12576000
+C E INF 12577000
+ IF(NA(NR2EU+NRESMT).EQ.0) NA(NR2EL+NRESMT)=NAREAL(AINDX1(32,IND)) 12578000
+ IF(AREAL(NA(NR2EL+NRESMT)).GT.AINDX1(32,IND)) 12579000
+ 1 NA(NR2EL+NRESMT)=NAREAL(AINDX1(32,IND)) 12580000
+C E UPPER 12581000
+ IF(NAREAL(NA(NR2EU+NRESMT)).LT.AINDX1(33,IND)) 12582000
+ 1 NA(NR2EU+NRESMT)=NAREAL(AINDX1(33,IND)) 12583000
+ 30 CONTINUE 12584000
+C CONTROLLO DI AVER TROVATO TUTTI GLI ISOTOPI 12585000
+ DO 31 J=1,NISO 12586000
+ NPOST=NR3+(NMNG+J-1)*3+1 12587000
+ IF(NAREAL(NA(NPOST)).GT.0.) GO TO 31 12588000
+ CALL ERR(8HP3MCF4 , 31) 12589000
+C CALL ERRP(5,IM,NUNRMT,NISO,J,NA(NPOST)) 12590000
+ 31 CONTINUE 12591000
+ NMNG=NMNG+NISO 12592000
+C 12593000
+C RIEMPIO IL RECORD 1 ( SUPPONGO COERENZA FRA I VARI PEZZI DI NTAB12594000
+C , CIOE STESSO NUM ISOTOPI ETC O E IL CAOS, I SINGOLI ISOTOPI DEVO12595000
+C ESSERE COERENTI 12596000
+C 12597000
+C ------------------------------RECORD 1 12598000
+ NA(1+2*(NRESMT-1))=NTABL(1,IM) 12599000
+ NA(2*NRESMT)=NTABL(2,IM) 12600000
+C ----------------------------- RECORD 2 12601000
+ NA(NR2NIS+NRESMT)=AINDX1(20,NINDX) 12602000
+C -------------------------------NISO 12603000
+ NA(NR2IWR+NRESMT)=AINDX1(23,NINDX) 12604000
+C -------------------------------IWR : TIPO RAPPRESENTAZIONE 12605000
+C 12606000
+ 10 CONTINUE 12607000
+C FINE LOOP SU IM: TAVOLA DEI NUCLIDI ; HA FATTO RECORDS 1,2,3 12608000
+ NR4=NR3+NMNG*3 12609000
+C 12610000
+C -------------------- LEGGE RECORD RESTANTI E SCRIVE 12611000
+C DEFINIZIONE TAPE DI OUTPUT ( E IL 54 DELLA TAVOLA NT ) 12612000
+ NTOUT=54 12613000
+ NTO=NT(1,NTOUT) 12614000
+ CALL REW(NTOUT) 12615000
+C --------------------SCRIVE RECORD 1 12616000
+ N1=2*NRESMT 12617000
+ WRITE(NTO) (NA(J),J=1,N1) 12618000
+ WRITE(NO,1000)(NA(J),J=1,N1) 12619000
+ WRITE(NP,1001)(NA(J),J=1,N1) 12620000
+ 1000 FORMAT(///20X,'FILE MCC2F4 PRODUCED - RESOLVED RESONANCE', 12621000
+ 1 ' PARAMETERS' 12622000
+ 2 ///20X,'MATERIALS:'/ 12623000
+ 3 1X,(10(2X,2A4))) 12624000
+ 1001 FORMAT(1X,'FILE MCC2F4 PRODUCED. MATERIALS:' 12625000
+ 1 /(10(2X,2A4))) 12626000
+C 12627000
+C --------------------- SCRIVE RECORD 2 12628000
+ WRITE(NTO) (NA(NR2NIS+J),J=1,NRESMT),(NA(NR2IWR+J),J=1,NRESMT), 12629000
+ 1(NA(NR2EL+J),J=1,NRESMT),(NA(NR2EU+J),J=1,NRESMT) 12630000
+ IF(STMP.GT.1001) WRITE(NO,2000) 12631000
+ 1 NRESMT, 12632000
+ 2 (J,NA(NR2NIS+J),NA(NR2IWR+J),NA(NR2EL+J),NA(NR2EU+J),J=1,NRESMT) 12633000
+ 2000 FORMAT(//20X,'RECORD 2:'/' RESOLVED RESONANCE MATERIALS:',I5/ 12634000
+ 15X,' MATERIAL , NISO , IWR , EL ,EU'/(1X,3I10,2E12.5))12635000
+C 12636000
+C LOOP SUI MATERIALI ............................................ 12637000
+ NMNG=0 12638000
+C 12639000
+C IM CORRE SU TUTTI I NUCLIDI, IMM SUI SOLI RISONANTI. 12640000
+C 12641000
+ IMM=0 12642000
+ DO 40 IM=1,NNUC 12643000
+ NINDX=NTABL(5,IM) 12644000
+ IF(NINDX.LE.0) GO TO 40 12645000
+ IMM=IMM+1 12646000
+ NISO=AINDX1(20,NINDX) 12647000
+C ----------------------- SCRITTURA RECORD 3 12648000
+ WRITE(NTO) ((NA(NR3+NMNG+3*(J-1)+JJ),J=1,NISO),JJ=1,2) 12649000
+ IF(STMP.GT.1003.) 12650000
+ 1WRITE(NO,3000)IMM,(J,(NA(NR3+NMNG+3*(J-1)+JJ),JJ=1,2),J=1,NISO) 12651000
+ 3000 FORMAT(/20X,'RECORD 3 , MATERIAL:',I5/ 12652000
+ 1' ISOTOPE , ABUND , NRES '/ 12653000
+ 2 (1X,I5,3X,E12.5,I10)) 12654000
+C 12655000
+C TENGO DATI PER F1 12656000
+C 12657000
+C NUMERO RECORDS SCRITTI PER QUESTI NUCLIDI 12658000
+ NREC4(2,IMM)=1 12659000
+C E DELLA UPPER RESONANCE 12660000
+ NREC4(3,IMM)=0 12661000
+C LOOP SU ISOTOPI ........................................... 12662000
+ DO 50 IS=1,NISO 12663000
+C POSIZIONE DELL'ISOTOPO NELL'INDICE 12664000
+ NINDP=NA(NR3+NMNG+3*(IS-1)+3) 12665000
+C E DELLA UPPER RESONANCE 12666000
+ IF(AREAL(NREC4(3,IMM)).LT.AINDX1(22,NINDP)) 12667000
+ 1 NREC4(3,IMM)=NAREAL(AINDX1(22,NINDP)) 12668000
+C 12669000
+C DEFINIZIONE POSIZIONE SUL FILE DEL ISOTOPO 12670000
+ NTIN=AINDX1(15,NINDP) 12671000
+ NTI=NT(1,NTIN) 12672000
+ NRECI=AINDX1(16,NINDP) 12673000
+ CALL POST1(NTIN,NRECI) 12674000
+C 12675000
+C 12676000
+ NPK=AINDX1(19,NINDP) 12677000
+ IF(NPK.LT.7)CALL ERR(8HP2MCF4 , 59) 12678000
+ NRES=AINDX1(18,NINDP) 12679000
+C PER F1 NUMERO DI RISONANZE DEL NUCLIDE ( SOMMA SU ISOTOPI) 12680000
+ NREC4(1,IMM)=NREC4(1,IMM)+NRES 12681000
+ IF(MA.LT.NR3+NMNG*3+NRES) CALL ERR(8HP3MCF4 ,60) 12682000
+ DO 59 IPK=1,4 12683000
+ READ(NTI)(NA(NR4+J),J=1,NRES) 12684000
+ IF(STMP.GT.1010.)WRITE(NO,4000)IPK,(NA(NR4+J),J=1,NRES) 12685000
+ 4000 FORMAT(' RESONANCE PARAMETER:',I5/(1X,10E12.5)) 12686000
+ 59 WRITE(NTO)(NA(NR4+J),J=1,NRES) 12687000
+ IF(AINDX1(23,NINDP).NE.1..AND.AINDX1(23,NINDP).NE.3.)GOTO 610 12688000
+ NRES2=NRES*2 12689000
+C PER BWML E BWSL 2 PARAMETRI STANNO IN UN SOLO RECORD 12690000
+ READ(NTI)(NA(NR4+J),J=1,NRES2) 12691000
+ WRITE(NTO)(NA(NR4+J),J=1,NRES2) 12692000
+ IF(STMP.LE.1010.) GO TO 610 12693000
+ IPK=5 12694000
+ WRITE(NO,4000)IPK,(NA(NR4+J),J=1,NRES) 12695000
+ IPK=6 12696000
+ WRITE(NO,4000)IPK,(NA(NR4+NRES+J),J=1,NRES) 12697000
+ 610 IF(AINDX1(23,NINDP).NE.2.) GO TO 620 12698000
+ READ(NTI)(NA(NR4+J),J=1,NRES) 12699000
+ WRITE(NTO)(NA(NR4+J),J=1,NRES) 12700000
+ IPK=5 12701000
+ IF(STMP.GT.1010.)WRITE(NO,4000)IPK,(NA(NR4+J),J=1,NRES) 12702000
+ READ(NTI)(NA(NR4+J),J=1,NRES) 12703000
+ WRITE(NTO)(NA(NR4+J),J=1,NRES) 12704000
+ IPK=6 12705000
+ IF(STMP.GT.1010.)WRITE(NO,4000)IPK,(NA(NR4+J),J=1,NRES) 12706000
+ 620 NPK1=7 12707000
+ DO 60 IPK=NPK1,NPK 12708000
+ READ(NTI)(NA(NR4+J),J=1,NRES) 12709000
+ IF(STMP.GT.1010.)WRITE(NO,4000)IPK,(NA(NR4+J),J=1,NRES) 12710000
+C PER BWML IL PARAMETRO 16 (INTERFERENZA SIMMETRICO) NON C'E' 12711000
+ IF(AINDX1(23,NINDP).EQ.3.AND.IPK.EQ.NPK) GO TO 630 12712000
+ 60 WRITE(NTO)(NA(NR4+J),J=1,NRES) 12713000
+ 630 CONTINUE 12714000
+ NT(4,NTIN)=NT(4,NTIN)+NPK 12715000
+C PER F1 : NUMERO DI RECORDS 12716000
+ NREC4(2,IMM)=NREC4(2,IMM)+NPK 12717000
+ IF(AINDX1(23,NINDP).EQ.2.) GO TO 50 12718000
+C PER BW 2 PARAMETRI STANNO NELLO STESSO RECORD 12719000
+ NT(4,NTIN)=NT(4,NTIN)-1 12720000
+ NREC4(2,IMM)=NREC4(2,IMM)-1 12721000
+C PER BWML IL PARAMETRO 16 NON VIENE SCRITTO 12722000
+ IF(AINDX1(23,NINDP).EQ.3.) NREC4(2,IMM)=NREC4(2,IMM)-1 12723000
+ 50 CONTINUE 12724000
+C ........................... FINE LOOP SU ISOTOPI 12725000
+ NMNG=NMNG+NISO*3 12726000
+ 40 CONTINUE 12727000
+C ........................... FINE LOOP TAVOLA NUCLIDI 12728000
+ CALL REW(NTOUT) 12729000
+ RETURN 12730000
+ END 12731000
+ SUBROUTINE P3MCF5(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,A, 12732000
+ 1 MISTAB,NISTAB,ML1,ML2,AINDX1) 12733000
+C ***************************************************** 12734000
+C 12735000
+C FILE MCC2F5 GENERATION: SMOOTH CROSS SECTIONS 12736000
+C 12737000
+C ****************************************************** 12738000
+C 12739000
+ DIMENSION A(MA),NREC3(5,NNUC),NREC4(5,NNUC),NREC5(12,NNUC) 12740000
+ DIMENSION SIGP(NNUC),NISTAB(MISTAB),AINDX1(ML1,ML2) 12741000
+ REAL*8 NAME(NNUC) 12742000
+ COMMON/FILES/NT(4,99) 12743000
+ EQUIVALENCE (NT(1,11),NP),(NO,NT(1,6)) 12744000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 12745000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX 12746000
+ COMMON /DIMC/MMMMMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 12747000
+ 1,MMMMM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 12748000
+C 12749000
+ COMMON/INDX/NTABL(40,200) 12750000
+ COMMON/DIM/M(5) 12751000
+C 12752000
+ WRITE(NP,9999) 12753000
+ 9999 FORMAT(' P3MCF5 ENTERED: SMOOTH CROSS SECTIONS') 12754000
+C 12755000
+ NMAT=NNUC 12756000
+ CALL CNTRI(NNUC,M(2),GROUP,20,7,30, 12757000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12758000
+ CALL CNTRI(NNUC,M(2),GROUP,20,39,40, 12759000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12760000
+ NGROUP=GROUP 12761000
+ NG=NGROUP 12762000
+ CALL CNTRI(NNUC,M(2),ETOP,21,7,30, 12763000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12764000
+ CALL CNTRI(NNUC,M(2),DELTAU,22,39,40, 12765000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12766000
+ CALL CNTRI(NNUC,M(2),ETOP,21,7,30, 12767000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12768000
+ CALL CNTRI(NNUC,M(2),DELTAU,22,39,40, 12769000
+ 1 ML1,ML2,AINDX1,MINDX1,MINDX2,NTABL) 12770000
+ N1=1 12771000
+ N9=11 12772000
+ N2=N1+NGROUP*N9+1 12773000
+ MMA=MA-N2 12774000
+ IF(MMA.LT.NG) CALL ERR(8HP3MCF5 ,0) 12775000
+ CALL P3F51(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,NG,N9,A(N1),MMA,A(N2),12776000
+ 1 MISTAB,NISTAB,ML1,ML2,AINDX1) 12777000
+ RETURN 12778000
+ END 12779000
+ SUBROUTINE P3F51(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,NG,N9,SIG,MA,A, 12780000
+ 1 MISTAB,NISTAB,ML1,ML2,AINDX1) 12781000
+C ***************************************************************** 12782000
+C CONTINUATION OF P3MCF5 ROUTINE 12783000
+C NUC E'=NMAT , NGROUP=NG, C'E' SOVRABBONDANZA DI PARAMETRI 12784000
+C QUI LA PARTE 3 SOMMA SOLO, IN BASE AD INDICI, PER FARE TOTAL 12785000
+C ECC. NELL'INPUT ALLA PARTE 3 ( MIXING) SI DEVE DECIDERE 12786000
+C COSA FARE 12787000
+C 12788000
+C ******************************************************************12789000
+C 12790000
+ DIMENSION A (MA), SIG(N9,NG),NISTAB(MISTAB) 12791000
+ DIMENSION NAME(2,NNUC),AINDX1(ML1,ML2) 12792000
+ DIMENSION SIGP(NNUC) 12793000
+ DIMENSION NREC3(5,NNUC),NREC4(5,NNUC),NREC5(12,NNUC) 12794000
+ COMMON/FILES/NT(4,99) 12795000
+ EQUIVALENCE(OPZ(3,5,9),GRAFIC),(NP,NT(1,11)) 12796000
+ COMMON/OPZIO/OPZ(4,8,10) 12797000
+ EQUIVALENCE(OPZ(3,5,1),STMP),(OPZ(3,5,2),TOT),(NO,NT(1,6)) 12798000
+ COMMON/INDX/NTABL(40,200) 12799000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX,ETOP12800000
+ 1,DELTAU,MANY1,MMAT,NMAX 12801000
+ COMMON/DIM/M(5) 12802000
+ EQUIVALENCE(M(2),MMIND) 12803000
+ DIMENSION NSUMT(40) 12804000
+ REAL*8 NOME(11) 12805000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 12806000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 12807000
+C 12808000
+ DATA NSUMT/0,0,0,0,0, 0,1,2,3,4,5,6,7,8,0, 12809000
+ 1 1,2,3,1,0, 1,2,3,1,0, 1,2,3,1,0, 0,0,0,0,0, 0,0,0,10,11/ 12810000
+C NSUMT SONO I POSTI IN CUI VANNO SOMMATE LE SEZIONE 12811000
+C D'URTO CUI LA TAVOLA FA RIFERIMENTO 12812000
+C LO SCATT POTENZIALE DEVE ESSERE NELLA 1:ELASTICA 12813000
+C LA TOTALE NON VIENE USATA , MA E' RICALCOLATA. 12814000
+C 12815000
+ DATA NOME/8HELASTIC ,8HFISSION ,8HCAPTURE ,8H N,P , 12816000
+ 1 8H N,D ,8H N,H3 ,8H N,HE3 ,8H N,ALFA , 12817000
+ 2 8H TOTAL ,8H N,2N ,8H ANEL / 12818000
+ DIMENSION NRC(9),ANU(4) 12819000
+C 12820000
+C DEFINIZIONE FILE DI OUTPUT 12821000
+ NTOUT=55 12822000
+ NTO=NT(1,NTOUT) 12823000
+ CALL REW(NTOUT) 12824000
+ WRITE(NO,1010) 12825000
+ 1010 FORMAT(//20X,' FILE MCC2F5 PRODUCED - SMOOTH CROSS SECTIONS') 12826000
+C LOOP SU ISOTOPI ........................................ 12827000
+ DO 10 I=1,NNUC 12828000
+C RECORD 1 12829000
+ NAM1=NTABL(1,I) 12830000
+ NAM2=NTABL(2,I) 12831000
+C CREA RECORD 2 DI F1 12832000
+ NAME(1,I)=NAM1 12833000
+ NAME(2,I)=NAM2 12834000
+ WRITE(NP,9000) NAM1,NAM2 12835000
+ 9000 FORMAT(1X,2A4) 12836000
+C RECORD 2 DI F5 INIZIALIZZAZIONE 12837000
+ NREAC=0 12838000
+ DO 15 IJ=1,9 12839000
+ 15 NRC(IJ)=0 12840000
+ DO 16 IJ=1,4 12841000
+ 16 ANU(IJ)=0. 12842000
+ CALL RIEMP(0.0,NG*N9,SIG) 12843000
+C 12844000
+C RICERCA DEL NU 12845000
+ IND=NTABL(31,I) 12846000
+ IF(IND.LE.0) GO TO100 12847000
+C NU ( E' IN INDICE 12848000
+ DO 20 IJ=1,4 12849000
+ 20 ANU(IJ)=AINDX1(33+IJ,IND) 12850000
+ 100 CONTINUE 12851000
+C REAZIONI VARIE 12852000
+ DO 30 IC=7,40 12853000
+ IND=NTABL(IC,I) 12854000
+ IF(IND.EQ.0) GO TO 30 12855000
+C NSUMT E' PER OGNI POSTO DELLA TAVOLA IL POSTO IN CUI VA 12856000
+C SOMMATA LA SIGMA CONTENUTA, NELL'ORDINE: 12857000
+C NEL,NF,NGAMMA,NP,ND,NH3,NHE3,NALFA,TOT 12858000
+C PER TUTTI I TIPI DI ROBA CHE POI VA MESSA IN F5 (DA UNRES,RES ECC12859000
+C 12860000
+ INDNN=IND 12861000
+ ABUND=1. 12862000
+C ..........LOOP SU ISOTOPI DEL NUCLIDE ........................ 12863000
+ IF(IND.GT.0) GO TO 301 12864000
+C ========= IL PRIMO NUCLIDE CI DEVE SEMPRE ESSERE,PERCHE' DA LUI12865000
+C SI RICAVA NISO ============= 12866000
+ IF(-IND.GT.MISTAB) CALL ERR(8HP3F51 ,101) 12867000
+ IND1N=NISTAB(-IND) 12868000
+ IF(IND1N.LE.0.OR.IND1N.GT.ML2) CALL ERR(8HP3F51 ,100) 12869000
+ NISO=AINDX1(10,IND1N) 12870000
+ IF(NISO.LE.0) CALL ERR(8HP3F51 ,35) 12871000
+C 12872000
+ IIJJ=-IND-1 12873000
+ 35 IIJJ=IIJJ+1 12874000
+ IF(IIJJ.GT.NISO-IND-1) GO TO 305 12875000
+ INDNN=NISTAB(IIJJ) 12876000
+ IF(INDNN.LE.0) GO TO 300 12877000
+ ABUND=AINDX1(36,INDNN) 12878000
+ ISO=AINDX1(35,INDNN) 12879000
+ NREC=NSUMT(IC) 12879105
+ IF(NREC.LE.0) GOTO 30 12879205
+ WRITE(NP,9010) ISO,ABUND,NISO,INDNN 12880000
+ 9010 FORMAT(' ISOTOPE:',I4,' ABUNDANCE:',E12.5,' NISO:',I4,' INDEX:',12881000
+ 1 I10 ) 12882000
+ 301 NREC=NSUMT(IC) 12885005
+ IF(NREC.LE.0) GO TO 30 12886005
+ NLAST=AINDX1(24,INDNN) 12887000
+ NFIRST=AINDX1(28,INDNN) 12888000
+ IF(NFIRST.GT.NG.OR.NFIRST.LE.0) CALL ERR(8HP3F51 ,301) 12889000
+ IF(NLAST.GT.NG.OR.NLAST.LE.0) CALL ERR(8HP3F51 ,302) 12890000
+ IF(NFIRST.GT.NLAST) CALL ERR(8HP3F51 ,303) 12891000
+C TAPE DI INPUT 12892000
+ NTIN=AINDX1(15,INDNN) 12893000
+ NTI=NT(1,NTIN) 12894000
+ NRECI=AINDX1(16,INDNN) 12895000
+ CALL POST1(NTIN,NRECI) 12896000
+C RECORD 2 AGGIUNGO GLI INDICI DI ESISTENZA (CONTENGONO IL NUMERO 12897000
+C DI GRUPPI PIENI ) 12898000
+C 12899000
+ IF(NRC(NREC).LT.NLAST) NRC(NREC)=NLAST 12900000
+ READ(NTI) (A(J),J=NFIRST,NLAST) 12901000
+ NT(4,NTIN)=NT(4,NTIN)+1 12902000
+ DO 40 IJ=NFIRST,NLAST 12903000
+ SIG(NREC,IJ)=SIG(NREC,IJ)+A(IJ)*ABUND 12904000
+ 40 CONTINUE 12905000
+ 300 CONTINUE 12906000
+C FINE DEL LOOP SU ISOTOPI ................... 12907000
+ IF(IND.LT.0) GO TO 35 12908000
+ 305 WRITE(NP,9020) NOME(NSUMT(IC)) 12909000
+ 9020 FORMAT(' READ DATA FOR REACTION : ',A8) 12910000
+C FINE DEL LOOP SU REAZIONI................... 12911000
+ 30 CONTINUE 12912000
+C SOMMANDO CREO LA TOTALE. NELLE RISONANZE RISOLTE UNA 12913000
+C TOTALE NON VIENE PRODOTTA, INDI DEVO SOMMARE TUTTO 12914000
+C E NON POSSO USARE LA TOTALE SOMMA DELLE TOTALI 12915000
+C DELLA PARTE 2. 12916000
+ IF(TOT.GT.0) GO TO 450 12917000
+ WRITE(NP,9025) 12918000
+ 9025 FORMAT(' TOTAL CROSS SECTION GENERATED') 12919000
+ DO 43 J=1,NG 12920000
+ 43 SIG(9,J)=0.0 12921000
+C 12922000
+ DO 45 II=1,8 12923000
+ IF(NRC(9).LT.NRC(II)) NRC(9)=NRC(II) 12924000
+ DO 45 J=1,NG 12925000
+ 45 SIG(9,J)=SIG(9,J)+SIG(II,J) 12926000
+ DO 46 J=1,NG 12927000
+ 46 SIG(9,J)=SIG(9,J)+SIG(10,J)+SIG(11,J) 12928000
+ 450 CONTINUE 12929000
+C 12930000
+C ORA HA FATTO LE SIGMA E IL RECORD 2 FA N REAZIONI DEL RECORD 2 12931000
+ NREAC=0 12932000
+ DO 50 IJ=1,9 12933000
+ IF(NRC(IJ).GT.0) NREAC=NREAC+1 12934000
+ 50 CONTINUE 12935000
+C SCRITTURA DELL' ISOTOPO 12936000
+C PRIMO RECORD: NOME ISOTOPO 12937000
+ WRITE(NTO) NAM1,NAM2 12938000
+ WRITE(NO,1000) NAM1,NAM2 12939000
+ 1000 FORMAT(//20X,' MULTIGROUP DATA PRODUCED FOR', 12940000
+ 1 ' MATERIAL : ',2A4) 12941000
+C SECONDO RECORD 12942000
+ WRITE(NP,9030) NAM1,NAM2,NREAC,(NRC(J),J=1,9) 12943000
+ 9030 FORMAT(1X,2A4,' , ',I4,' REACTIONS, FLAGS:',9I5) 12944000
+ WRITE(NTO) NREAC,(NRC(J),J=1,9),(ANU(J),J=1,4) 12945000
+ IF(STMP.GT.101.) WRITE(NO,2000) NREAC,(NRC(J),J=1,9), 12946000
+ 1 (ANU(J),J=1,4) 12947000
+ 2000 FORMAT(1X,' CROSS SECTION FLAGS:',10I10/' NU COEFF:',4E12.5) 12948000
+C ALTRI RECORDS SCRITTI A SECONDA DEI FLAG DI ESISTENZA 12949000
+ DO 60 IJ=1,9 12950000
+ NLAST=NRC(IJ) 12951000
+ IF(NLAST.LE.0) GO TO 600 12952000
+ WRITE(NTO) ( SIG(IJ,J),J=1,NLAST) 12953000
+ WRITE(NP,9040) NOME(IJ),NLAST 12954000
+ 9040 FORMAT(1X,' REACTION:',A8,' LAST GROUP:',I10) 12955000
+C OUTPUT PER GRAFICO 12956000
+ IF(GRAFIC.LE.0.) GO TO 550 12957000
+ NTGRF=GRAFIC 12958000
+ NTGR=NT(1,NTGRF) 12959000
+ NWDS=NLAST+10 12960000
+ NDUM=0 12961000
+ NDUM1=1 12962000
+ WRITE(NTGR)NWDS,NAME(1,I),NAME(2,I),NOME(IJ),IJ,I,NDUM,NDUM,12963000
+ 1 NDUM1,NLAST,(SIG(IJ,J),J=1,NLAST) 12964000
+ 550 IF(STMP.GT.110.) WRITE(NO,3000)NOME(IJ),(SIG(IJ,J),J=1,NLAST) 12965000
+ 3000 FORMAT(1X,A8,' CROSS SECTION :'/(1X,10E12.5)) 12966000
+ 600 CONTINUE 12967000
+ 60 CONTINUE 12968000
+ 10 CONTINUE 12969000
+C FINE DEI LOOP SUI MATERIALI .....................................12970000
+ CALL REW(NTOUT) 12971000
+ RETURN 12972000
+ END 12973000
+ SUBROUTINE P3MCF6(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,A,ML1,ML2, 12974000
+ 1 AINDX1)12975000
+C ************************************************************ 12976000
+C 12977000
+C FILE MCC2F6 GENERATION: ANELASTIC AND N,2N SECONDARY ENERGY 12978000
+C DISTRIBUTION 12979000
+C ******************************************************* 12980000
+C 12981000
+C IN ARGOMENTO: NNUC=NUMERO NUCLIDI ( DI MCC2F1) 12982000
+C NAME(NNUC) NOME NUCLIDE ( RECORD 1 DI MCC2F1) REAL*8 12983000
+C NREC3 RECORD 3 DI MCC2F1 12984000
+C NREC4 4 12985000
+C NREC5 5 12986000
+C SIGP RECORD DI MCC2F1 12987000
+C A(MA) SPAZIO DI LAVORO 12988000
+C 12989000
+C ****************************************************** 12990000
+C 12991000
+ DIMENSION NREC5(12,NNUC) 12992000
+C E' IL RECORD 5 DI MCC2F1 FATTO COSI': 12993000
+C NOME,NOME,NINEL,N2NTH,NLEVLS,N2NLEV,MAX1,MAX2,MAX3,MAX4, 12994000
+C NSINK1,NSINK2,NUMREC(1 PAROLA PER GRUPPO),MAXREC 12995000
+C MAXREC E' VERAMENTE MESSO NON IN ARRAY NREC5, MA IN /RC1F1/ 12996000
+C 12997000
+C 12998000
+ DIMENSION A(MA),AINDX1(ML1,ML2) 12999000
+ COMMON/FILES/NT(4,99) 13000000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 13001000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 13002000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX,MAXREC 13003000
+ COMMON/INDX/NTABL(40,200) 13004000
+ COMMON/DIM/M(5) 13005000
+ COMMON /OPZIO/ OPZ(4,8,10) 13006000
+ EQUIVALENCE (STMP,OPZ(3,6,1)) 13007000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 13008000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 13009000
+C 13010000
+ WRITE(NP,9999) 13011000
+ 9999 FORMAT(' P3MCF6 ENTERED: ENERGY DISTRIBUTIONS') 13012000
+C 13013000
+C 13014000
+ NG=OPZ(2,5,4) 13015000
+C 13016000
+C CALCOLO NUMERO NUCLIDI DI F6 PER RECORD 1 DI F1 13017000
+C DEFINIZIONE FILE DI OUTPUT 13018000
+ NTOUT=56 13019000
+ NTO=NT(1,56) 13020000
+ CALL REW(NTOUT) 13021000
+C INIZIALIZZA RECORD 1 DI F1 (MAX NUM GRUPPI IN F6) 13022000
+ NMAX=0 13023000
+ MAXREC=0 13024000
+C INIZIALIZZA NUMREC(NMAX); IL MAX DI NMAX E' NG 13025000
+ CALL RIEMP(0.,NG,NREC5(12+1,NNUC)) 13026000
+ LIMIT=0 13027000
+C 13028000
+C LETTURA RECORD 1 13029000
+C 13030000
+ INUC=0 13031000
+C MAX LUNGHEZZA RECORD PER UN SINGOLO NUCLIDE 13032000
+ MAXRCM=0 13033000
+C ................... LOOP SUI NUCLIDI DELLA TAVOLA 13034000
+ DO 10 IS=1,NNUC 13035000
+ IND=NTABL(32,IS) 13036000
+ IF(IND.LE.0) GO TO 10 13037000
+ INUC=INUC+1 13038000
+C POSIZIONAMENTO FILE DI INPUT 13039000
+ NTIN=AINDX1(15,IND) 13040000
+ NTI=NT(1,NTIN) 13041000
+ NRECI=AINDX1(16,IND) 13042000
+ CALL POST1(NTIN,NRECI+1) 13043000
+C NON LEGGE IL RECORD 5 DI F1 LO PRENDE DALL'INDICE 13044000
+ NREC5(1,INUC)=NTABL(1,IS) 13045000
+ NREC5(2,INUC)=NTABL(2,IS) 13046000
+ DO 15 I=3,12 13047000
+ NREC5(I,INUC)=AINDX1(21+I,IND) 13048000
+ 15 CONTINUE 13049000
+C DETERMINO IL NUMERO DI GRUPPO MAX CHE ESISTE PER OGNI NUCLIDE 13050000
+ NMING=MAX1(AINDX1(24,IND),AINDX1(25,IND)) 13051000
+ NMING1=AINDX1(36,IND) 13052000
+ IF(NMING1.NE.NMING) CALL ERR(8HP3MCF6 ,15) 13053000
+ IF(NMAX.LT.NMING) NMAX=NMING 13054000
+C MAXRCM E' PER LEGGERE E' IL MAX LUNGHEZZA DEL RECORD DI UN 13055000
+C MATERIALE, INVECE MAXREC E' LA LUNGHEZZA MAX DI UNO DEI RECORDS 13056000
+C CON DENTRO TUTTI I MATERIALI 13057000
+ IF(MAXRCM.LT.AINDX1(35,IND)) MAXRCM=AINDX1(35,IND) 13058000
+C LEGGE RECORD 1 DI F6 13059000
+ READ(NTI) NWDS,(A(LIMIT+J),J=1,NWDS) 13060000
+ NT(4,NTIN)=NT(4,NTIN)+1 13061000
+C CI METTE DENTRO IL RECORD SUCCESSIVO DA LEGGERE (IN AINDX1(39,IND13062000
+ AINDX1(39,IND)=NT(4,NTIN) 13063000
+ LIMIT=LIMIT+NWDS 13064000
+ 10 CONTINUE 13065000
+ IF(MAXRCM.LE.0) CALL ERR(8HP3MCF6 ,10) 13066000
+ MMAT=INUC 13067000
+ IF(MMAT.LE.0) CALL ERR(8HP3MCF6 ,11) 13068000
+C SCRIVE IL RECORD 1 13069000
+ WRITE(NTO) (A(J),J=1,LIMIT) 13070000
+ IF(MAXREC.LT.LIMIT) MAXREC=LIMIT 13071000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 13072000
+ NT(4,NTOUT)=NT(3,NTOUT) 13073000
+ IF(STMP.LE.100.) GO TO 105 13074000
+ WRITE(NO,1000) (A(J),J=1,LIMIT) 13075000
+ 1000 FORMAT(' FILE MCC2F6 CREATION : RECORD 1 PRODUCED:'/ 13076000
+ 1 (1X,6E12.5)) 13077000
+C 13078000
+C RECORDS 2,3,4 13079000
+C 13080000
+ 105 NGRMX=(MA-MAXRCM*MMAT)/((MAXRCM+1)*MMAT*3) 13081000
+ IF(NGRMX.LE.0) NGRMX=1 13082000
+ WRITE(NP,9998) NGRMX,MAXRCM 13083000
+ 9998 FORMAT(' IN EACH PASS ',I4,' GROUPS ARE READ. MAX REC FOR A' 13084000
+ 1 ,' MATERIAL:',I10) 13085000
+ NPASSI=NMAX/NGRMX 13086000
+ IF(NGRMX*NPASSI.LT.NMAX) NPASSI=NPASSI+1 13087000
+C 13088000
+C IN A METTO UNA MATRICE LARGA MAXRCM*MMAT (MEGLIO SAREBBE MAXREC 13089000
+C PER IL RECORD DA SCRIVERE 13090000
+C 13091000
+C IN A METTO ANCHE UNA MATRICE (MMAT,3,NGRMX) CON LE LUNGHEZZE DEI13092000
+C RECORDS DA LEGGERE E DA SCIVERE 13093000
+C 13094000
+C LLIMW PUNTA ALLA MATRICE COL NUMERO DI PAROLE DEI RECORDS 13095000
+ LLIMW= MAXRCM*MMAT+1 13096000
+C 13097000
+C IN A SIMULO UNA MATRICE (MAXRCM,MMAT,3,NGRMX) OVE NGRMX E' 13098000
+C IL NUMERO MAX DI GRUPPI CHE SI RIESCE A TRATTARE IN UNA VOLTA 13099000
+C 13100000
+C LLIMR PUNTA AI RECORDS DA LEGGERE 13101000
+ LLIMR=LLIMW+NGRMX*3*MMAT 13102000
+C 13103000
+C ............................ LOOP SUI GRUPPI DI GRUPPI 13104000
+ DO 20 IP=1,NPASSI 13105000
+ NGI=NGRMX*(IP-1)+1 13106000
+ NGF=NGI+NGRMX-1 13107000
+ IF(NGF.GT.NMAX) NGF=NMAX 13108000
+ NGTOT=NGF-NGI+1 13109000
+C AZZERA L'ARRAY DEI LIMITI DEI RECORDS 13110000
+ CALL RIEMP(0,MMAT*3*NGRMX,A(LLIMW)) 13111000
+C 13112000
+ INUC=0 13113000
+C .................. LETTURA: UN LOOP SUI NUCLIDI: 13114000
+ DO 40 I=1,NNUC 13115000
+ IND=NTABL(32,I) 13116000
+ IF(IND.LE.0) GO TO 40 13117000
+ INUC=INUC+1 13118000
+C POSIZIONO FILE DI INPUT 13119000
+ NTIN=AINDX1(15,IND) 13120000
+ NTI=NT(1,NTIN) 13121000
+ NRECI=AINDX1(39,IND) 13122000
+ CALL POST1(NTIN,NRECI) 13123000
+C LETTURA DI NGRMX RECORDS E CALCOLO DEI LIMITI RELATIVI 13124000
+ CALL READ6(NTIN,NT(4,NTIN),NGI,NGTOT,INUC,NREC5(3,INUC), 13125000
+ 1 NREC5(4,INUC),NREC5(7,INUC),NREC5(8,INUC),NREC5(9,INUC), 13126000
+ 2NREC5(10,INUC), 13127000
+ 3 AINDX1(1,IND),MAXRCM,MMAT,NGRMX,A(LLIMW),A(LLIMR)) 13128000
+ 40 CONTINUE 13129000
+C 13130000
+C SCRITTURA DEI NGRMX GRUPPI DEL PASSO 13131000
+C .................. LOOP SUI GRUPPI 13132000
+ DO 50 IG=1,NGTOT 13133000
+ NGC=NGI+IG-1 13134000
+ INR=0 13135000
+C .................LOOP SUI TRE RECORDS 13136000
+ DO 60 IR=1,3 13137000
+C METTE INSIEME IN A I RECORDS DI TUTTI I NUCLIDI 13138000
+ NWDS=1 13139000
+ CALL COMPAT(IR,NWDS,IG,MAXRCM,MMAT,NGRMX,A,A(LLIMW),A(LLIMR)) 13140000
+ IF(NWDS.LE.0) GO TO 60 13141000
+ WRITE(NTO) (A(J),J=1,NWDS) 13142000
+ IF(NWDS.GT.MAXREC) MAXREC=NWDS 13143000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 13144000
+ NT(4,NTOUT)=NT(3,NTOUT) 13145000
+ INR=INR+1 13146000
+ IF(IR.NE.1) GO TO 501 13147000
+ IF(STMP.LT.102.) GO TO 501 13148000
+ WRITE(NO,5001) IG,(A(J),J=1,NWDS) 13149000
+ 5001 FORMAT(' RECORD 2: GRUPPO:',I5 /(1X,20I4)) 13150000
+ GO TO 502 13151000
+ 501 IF(STMP.LT.103.) GO TO 502 13152000
+ IRR23=IR+1 13153000
+ WRITE(NO,5002) IRR23,IG,(A(J),J=1,NWDS) 13154000
+ 5002 FORMAT(' RECORD:',I5,' GRUPPO:',I5/(1X,10E12.5)) 13155000
+ 502 CONTINUE 13156000
+ 60 CONTINUE 13157000
+ NREC5(12+NGC,NNUC)=INR 13158000
+ 50 CONTINUE 13159000
+C .......................... FINE LOOP SCRITTURA GRUPPI 13160000
+ 20 CONTINUE 13161000
+C .......................... FINE LOOP SUI PASSI 13162000
+ WRITE(NO,7000) 13163000
+ 7000 FORMAT(//20X,' FILE MCC2F6 PRODUCED - ANELASTIC AND N,2N DATA') 13164000
+ CALL REW(NTOUT) 13165000
+ RETURN 13166000
+ END 13167000
+ SUBROUTINE READ6(NTI,NT4NT,NGI,NGTOT,INUC,NINEL,N2NTH,MAX1,MAX2, 13168000
+ 1 MAX3,MAX4,AINDX1,MAXRCM,MMAT,NGRMX,LIMITI,RECORD) 13169000
+C *************************************************************** 13170000
+C LEGGE RECORDS DEL NUCLIDE INUC PER NGRMX GRUPPI E NE 13171000
+C RICORDA LE LUNGHEZZA ( IN LIMITI) 13172000
+C *************************************************************** 13173000
+ DIMENSION AINDX1(40),LIMITI(MMAT,3,NGRMX) 13174000
+ INTEGER RECORD(MAXRCM,MMAT,3,NGRMX) 13175000
+C 13176000
+ DO 10 IG=1,NGTOT 13177000
+C RECORD 2 13178000
+ NGC=NGI+IG-1 13179000
+ IF(NINEL.LT.NGC.AND.N2NTH.LT.NGC) GO TO 10 13180000
+ READ(NTI) NWDS,(RECORD(J,INUC,1,IG),J=1,NWDS) 13181000
+ LIMITI(INUC,1,IG)=NWDS 13182000
+ NT4NT=NT4NT+1 13183000
+C CERCA SE ESISTE IL RECORD 4 ( LIMITI E' AZZERATO ALL'INIZIO ) 13184000
+ NINTAB=0 13185000
+ N2NTAB=0 13186000
+ N1=4 13187000
+ IF(N2NTH.LT.NGC) N1=N1-1 13188000
+ IF(MAX1.LT.1) N1=N1-1 13189000
+ IF(NINEL.LT.NGC.OR.MAX2.LT.1) N1=0 13190000
+C 13191000
+ N2=2 13192000
+ IF(NINEL.GT.NGC) N2=N2+1 13193000
+ IF(MAX1.GT.0.AND.NINEL.GT.NGC) N2=N2+1 13194000
+ IF(MAX2.GT.0.AND.NINEL.GT.NGC) N2=N2+1 13195000
+ IF(MAX3.GT.0.AND.N2NTH.GT.NGC) N2=N2+1 13196000
+ IF(N2NTH.LT.NGC.OR.MAX4.LT.1) N2=0 13197000
+ IF(N1.GT.0) NINTAB=RECORD(N1,INUC,1,IG) 13198000
+ IF(N2.GT.0) N2NTAB=RECORD(N2,INUC,1,IG) 13199000
+C READS RECORD 3 13200000
+ READ(NTI) NWDS,(RECORD(J,INUC,2,IG),J=1,NWDS) 13201000
+ LIMITI(INUC,2,IG)=NWDS 13202000
+ NT4NT=NT4NT+1 13203000
+C READS RECORD 4 SE ESISTE 13204000
+ IF(NINTAB.LE.0.AND.N2NTAB.LE.0) GO TO 10 13205000
+ READ(NTI) NWDS,(RECORD(J,INUC,3,IG),J=1,NWDS) 13206000
+ LIMITI(INUC,3,IG)=NWDS 13207000
+ NT4NT=NT4NT+1 13208000
+ 10 CONTINUE 13209000
+C .................. FINE LOOP SUI GRUPPI 13210000
+ AINDX1(39)=NT4NT 13211000
+C IN AINDX1 RI CORDA DOVE E' ARRIVATO A LEGGERE 13212000
+ RETURN 13213000
+ END 13214000
+ SUBROUTINE COMPAT(NREC,NWDS,IG,MAXRCM,MMAT,NGRMX,A,LIMITI,RECORD)13215000
+C **************************************************************** 13216000
+C COSTRUISCE UN RECORD DI OUTPUT DI UN GRUPPO CON I RECORDS DI 13217000
+C TUTTI I NUCLIDI 13218000
+C NREC E' IL TIPO DI RECORD 13219000
+C *************************************************************** 13220000
+ DIMENSIONA(NWDS),LIMITI(MMAT,3,NGRMX),RECORD(MAXRCM,MMAT,3,NGRMX)13221000
+ NWDS=0 13222000
+ DO 10 IM=1,MMAT 13223000
+ LIMIT=LIMITI(IM,NREC,IG) 13224000
+ IF(LIMIT.LE.0) GO TO 10 13225000
+ DO 20 J=1,LIMIT 13226000
+ 20 A(NWDS+J)=RECORD(J,IM,NREC,IG) 13227000
+ NWDS=NWDS+LIMIT 13228000
+ 10 CONTINUE 13229000
+ RETURN 13230000
+ END 13231000
+ SUBROUTINE P3MCF7(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,NA, 13232000
+ 1 ML1,ML2,AINDX1) 13233000
+C ***************************************************** 13234000
+C FILE MCC2F7 GENERATION: FISSION SPECTRUM DATA 13235000
+C ******************************************************** 13236000
+C 13237000
+ COMMON/FILES/NT(4,99) 13238000
+ EQUIVALENCE (NT(1,11),NP) 13239000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPL,IPTMAX,ETOP, 13240000
+ 1DELTAU,MANY1,MMAT,NMAX 13241000
+ DIMENSION AINDX1(ML1,ML2) 13242000
+ COMMON/INDX/NTABL(40,200) 13243000
+ COMMON /OPZIO/OPZ(4,8,10) 13244000
+ COMMON/DIM/M(5) 13245000
+ EQUIVALENCE(M(2),MIND),(OPZ(3,7,1),STMP),(NT(1,6),NO) 13246000
+ DIMENSION NA(MA) 13247000
+C 13248000
+ WRITE(NP,9999) 13249000
+ 9999 FORMAT(' P3MCF7 ENTERED : FISSION SPECTRUM') 13250000
+C 13251000
+C SPAZI PER RECORDS 1,2,3 13252000
+ NRC0=0 13253000
+C PER MEMORIZZARE GLI INDICI NEL PRIMO LOOP SULLATAVOLA E 13254000
+C RIUTILIZZARLI NEL SECONDO LOOP SENZA LOPPARE ANCORA PER TROVARLI 13255000
+ NRC1=NRC0+NNUC 13256000
+C NOMI REAL*8 13257000
+ NRC2=NRC1+NNUC*2 13258000
+C ICHI 13259000
+ NRC3=NRC2+NNUC 13260000
+ MSORS=0 13261000
+C LOOP SU NUCLIDI ( TAVOLA) 13262000
+ DO 10 I=1,NNUC 13263000
+ IND=NTABL(6,I) 13264000
+ IF(IND.LE.0) GO TO 100 13265000
+C RECORD 1 DI F1 13266000
+ MSORS=MSORS+1 13267000
+C MEMORIZZAZIONE INDICE PER NON DOVERSI RIGUARDARE TUTTA LA TAVOLA 13268000
+C SECONDO LOOP 13269000
+ NA(NRC0+MSORS)=IND 13270000
+C RECORD 2 DI F7 ( ICHI) 13271000
+ NA(NRC2+MSORS)=AINDX1(18,IND) 13272000
+C RECORD 1 DI F7 ( NOMI) 13273000
+ NA(NRC1+MSORS*2-1)=NTABL(1,I) 13274000
+ NA(NRC1+MSORS*2)=NTABL(2,I) 13275000
+ 100 CONTINUE 13276000
+ 10 CONTINUE 13277000
+ IF(MSORS.LE.0) RETURN 13278000
+C MA SE E CHIAMATO F7 VUOL DIRE CHE NE ESISTE ALMENO 1 DI SPETTRO D13279000
+C FISSIONE 13280000
+ NTOUT=57 13281000
+ NTO=NT(1,NTOUT) 13282000
+ CALL REW(NTOUT) 13283000
+C SCRITTURE 13284000
+ N1=2*MSORS 13285000
+C RECORD 1 13286000
+ WRITE(NTO) (NA(NRC1+J),J=1,N1) 13287000
+ WRITE(NO,1000) (NA(NRC1+J),J=1,N1) 13288000
+ WRITE(NP,1001) (NA(NRC1+J),J=1,N1) 13289000
+ 1000 FORMAT(///20X,' FILE MCC2F7 PRODUCED - FISSION SPECTRUM '///20X, 13290000
+ 1 ' SOURCE NAMES:'//(1X,10(2X,2A4))) 13291000
+ 1001 FORMAT(' FILE MCC2F7 PRODUCED,', 13292000
+ 1 ' SOURCE NAMES:'/(1X,10(2X,2A4))) 13293000
+C RECORD 2 13294000
+ WRITE(NTO) (NA(NRC2+J),J=1,MSORS) 13295000
+ IF(STMP.GT.101.)WRITE(NO,2000) (J,NA(NRC2+J),J=1,MSORS) 13296000
+ 2000 FORMAT( ' SOURCE:',I10,5X,' GROUP DEPENDENCE FLAG:',I10) 13297000
+ DO 20 I=1,MSORS 13298000
+ IND=NA(NRC0+I) 13299000
+ ICHI=NA(NRC2+I) 13300000
+C FIX DD DI INPPUT 13301000
+ NTIN=AINDX1(15,IND) 13302000
+ NTI=NT(1,NTIN) 13303000
+ NRECI=AINDX1(16,IND) 13304000
+ CALL POST1(NTIN,NRECI) 13305000
+C RECORD 3 13306000
+ N1=NRC3+1 13307000
+ N2=6*ICHI+N1-1 13308000
+ READ(NTI)(NA(J),J=N1,N2) 13309000
+ WRITE(NTO)(NA(J),J=N1,N2) 13310000
+ NT(4,NTIN)=NT(4,NTIN)+1 13311000
+ IF(STMP.GT.110.) WRITE(NO,3000) I,(NA(J),J=N1,N2) 13312000
+ 3000 FORMAT(' SOURCE:',I5,' CHI VALUES:'/(1X,10E12.5)) 13313000
+ 20 CONTINUE 13314000
+C 13315000
+C ESISTE LA POSSIBILITA' DI AVERE DATI TABULATI DEL NU SUL FILE 13316000
+C MCC2F7 ( COSA CONTEMPLATA DA MC2-2 MA NON DAL SUO MANUALE) 13317000
+C 13318000
+C TRATTO QUI LA SECONDA PARTE DI F7 CON I DATI TABULATI DEL NU 13319000
+ L1=1 13320000
+C NUMNU 13321000
+ L2=NNUC+L1 13322000
+C KT 13323000
+ L3=L2+NNUC 13324000
+ LFIN=L3 13325000
+ IF(LFIN.GT.MA) CALL ERR(8HP3MCF7 ,20) 13326000
+ CALL P3MC7N(NTO,NTOUT,NNUC,NA(L1),NA(L2),MA-LFIN,NA(LFIN), 13327000
+ 1 ML1,ML2,AINDX1) 13328000
+C 13329000
+ CALL REW(NTOUT) 13330000
+ RETURN 13331000
+ END 13332000
+ SUBROUTINE P3MC7N(NTO,NTOUT,NNUC,NUMNU,KT,MA,A,ML1,ML2,AINDX1) 13333000
+C ************************************************************ 13334000
+C NU TABULATED ON MCC2F7 ******** 13335000
+C ************************************************************ 13336000
+ DIMENSION NUMNU(NNUC),KT(NNUC),A(MA),AINDX1(ML1,ML2) 13337000
+ COMMON/FILES/NT(4,99) 13338000
+ EQUIVALENCE (NT(1,11),NP) 13339000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPL,IPTMAX,ETOP, 13340000
+ 1DELTAU,MANY1,MMAT,NMAX 13341000
+ COMMON/INDX/NTABL(40,200) 13342000
+ COMMON /OPZIO/OPZ(4,8,10) 13343000
+ COMMON/DIM/M(5) 13344000
+ EQUIVALENCE(M(2),MIND),(OPZ(3,7,1),STMP),(NT(1,6),NO) 13345000
+C 13346000
+C FIX NUM NU E KT (INTERPOLAZ) PER OGNI NUCLIDE 13347000
+C 13348000
+ DO 10 I=1,NNUC 13349000
+ IND=NTABL(36,I) 13350000
+ IF(IND.LE.0) GO TO 100 13351000
+ NUMNU(I)=AINDX1(19,IND) 13352000
+ KT(I)=AINDX1(29,IND) 13353000
+ GO TO 10 13354000
+ 100 NUMNU(I)=0 13355000
+ IF(NTABL(31,I).GT.0) NUMNU(I)=1 13356000
+ KT(I)=0 13357000
+ 10 CONTINUE 13358000
+ WRITE(NTO) (NUMNU(J),J=1,NNUC),(KT(J),J=1,NNUC) 13359000
+ IF(STMP.GT.120.) WRITE(NO,1000) (J,NUMNU(J),KT(J),J=1,NNUC) 13360000
+ 1000 FORMAT(' NUCLIDE:',I5,' NU NUMBER:',I5,' INTERP CODE:',I5) 13361000
+C 13362000
+ DO 20 I=1,NNUC 13363000
+ IF(NUMNU(I).LE.1) GO TO 20 13364000
+C LETTURA 13365000
+ IND=NTABL(36,I) 13366000
+ NTIN=AINDX1(15,IND) 13367000
+ NTI=NT(1,NTIN) 13368000
+ NRECI=AINDX1(16,IND) 13369000
+ CALL POST1(NTIN,NRECI) 13370000
+ NWDS=AINDX1(18,IND) 13371000
+ READ(NTI) (A(J),J=1,NWDS) 13372000
+ NT(4,NTIN)=NT(4,NTIN)+1 13373000
+ NUM=AINDX1(19,IND) 13374000
+ WRITE(NTO) (A(J),J=1,NWDS) 13375000
+ IF(STMP.GT.130.) WRITE(NO,2000) (A(J),A(J+NUM),J=1,NUM) 13376000
+ 2000 FORMAT(2(' ENERGY:',E12.5,' NU:',E12.5)) 13377000
+ 20 CONTINUE 13378000
+ RETURN 13379000
+ END 13380000
+ SUBROUTINE P3MCF8(NNUC,NAME,NREC3,NREC4,NREC5,SIGP,MA,A, 13381000
+ 1 ML1,ML2,AINDX1) 13382000
+C ************************************************************ 13383000
+C 13384000
+C MCC2F8 FILE GENERATION: ANGULAR DISTRIBUTION FOR ELASTIC SCATTER13385000
+C 13386000
+C ******************************************************* 13387000
+C 13388000
+C IN ARGOMENTO: NNUC=NUMERO NUCLIDI ( DI MCC2F1) 13389000
+C NAME(NNUC) NOME NUCLIDE ( RECORD 1 DI MCC2F1) REAL*8 13390000
+C NREC3 RECORD 3 DI MCC2F1 13391000
+C NREC4 4 13392000
+C NREC5 5 13393000
+C SIGP RECORD 6 DI MCC2F1 13394000
+C A(MA) SPAZIO DI LAVORO 13395000
+C 13396000
+C ****************************************************** 13397000
+C 13398000
+ DIMENSION A(MA),AINDX1(ML1,ML2),NREC5(12,NNUC) 13399000
+ COMMON/FILES/NT(4,99) 13400000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 13401000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 13402000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX 13403000
+ COMMON/INDX/NTABL(40,200) 13404000
+ COMMON /OPZIO/OPZ(4,8,10) 13405000
+ EQUIVALENCE (STMP,OPZ(3,8,1)) 13406000
+C 13407000
+ WRITE(NP,9999) 13408000
+ 9999 FORMAT(' P3MCF8 ENTERED: ANGULAR DISTRIBUTIONS') 13409000
+C 13410000
+C 13411000
+C DEFINIZIONE FILES DI OUTPUT 13412000
+ NTOUT=58 13413000
+ NTO=NT(1,NTOUT) 13414000
+ CALL REW(NTOUT) 13415000
+C 13416000
+C ............. LOOP SU TABELLA DI P3 ( NTABL) 13417000
+C RECORD 1 DI F1 13418000
+ NPL=0 13419000
+ IPTMAX=0 13420000
+ NPASS=0 13421000
+ MANY1=OPZ(2,8,2) 13422000
+ IF(MANY1.LE.0) MANY1=126 13423000
+ INUC=0 13424000
+ WRITE(NO,1010) 13425000
+ 1010 FORMAT(//20X,' FILE MCC2F8 PRODUCED - ELASTIC SCATTERING DATA') 13426000
+C FISSA IPTMAX , MAX DI IPT SU TUTTI I NUCLIDI 13427000
+C FISSA NPASS NUMERO DI PASSI MAX SU TUTTI I NUCLIDI 13428000
+ DO 10 IS=1,NNUC 13429000
+ IND=NTABL(33,IS) 13430000
+ IF(IND.LE.0) GO TO 10 13431000
+C PL 13432000
+ IF(NPASS.LT.AINDX1(23,IND)) NPASS=AINDX1(23,IND) 13433000
+ IF(MANY1.NE.AINDX1(26,IND)) CALL ERR(8HP3MCF8 , 9) 13434000
+ IF(IPTMAX.LT.AINDX1(25,IND)) IPTMAX=AINDX1(25,IND) 13435000
+C TJ,FACK 13436000
+ IF(NPL.LT.AINDX1(24,IND)) NPL=AINDX1(24,IND) 13437000
+ INUC=INUC+1 13438000
+ 10 CONTINUE 13439000
+ IF(OPZ(3,8,2).GT.0.) NPL=OPZ(3,8,2) 13440000
+ IF(NPL.LE.0) NPL=9 13441000
+ NPL1=NPL+1 13442000
+ IPTMX1=IPTMAX+1 13443000
+ IF(NPL.GT.IPTMX1) NPL=IPTMX1 13444000
+C NINUC E' IL NUMERO DEI NUCLIDI DI F8 13445000
+ IF(NNUC.NE.INUC) CALL ERR(8HP3MCF8WR ,10) 13446000
+ NINUC=INUC 13447000
+C FISSA SPAZI PER RECORD 1 (USO NMAT DI F1)=NNUC, NON NINUC, 13448000
+C NUMERO NUCLIDI FISSATO QUI. NEGLI ALTRI POSTI USO SEMPRE NINUC) 13449000
+C 13450000
+C CONTRARIAMENTE AL SOLITO I PUNTATORI INDICANO IL NUMERO DI LOCAZI13451000
+C PRECEDENTI IL DATO IN MEMORIA. PIU COMODO PER LETTURE E SCRITTUR13452000
+C 13453000
+ LLGTH=0 13454000
+C LGTH 13455000
+ LIR=LLGTH+NNUC 13456000
+C IR 13457000
+ LIL=LIR+NNUC 13458000
+C IL 13459000
+ LIPT=LIL+NNUC 13460000
+C IPT 13461000
+ LIMIT=LIPT+NPASS*NNUC 13462000
+C 13463000
+ IF(LIMIT.GT.MA) CALL ERR(8HP3MCF8 ,11) 13464000
+ CALL RIEMP(0.0,LIMIT,A) 13465000
+C LETTURA RECORD 1 E SCRITTURA 13466000
+C (RECORD 1 SERVE PER LEGGERE RECORD 4 ED INDI VIENE CREATO A PARTE13467000
+C ................... LOOP SUI NUCLIDI DELLA TAVOLA 13468000
+ INUC=0 13469000
+ DO 20 IS=1,NNUC 13470000
+ IND=NTABL(33,IS) 13471000
+C CONTEMPLO LA POSSIBILITA CHE ESISTANO NUCLIDI SENZA PL, 13472000
+C ANCHE SE QUESTO IN MCC2F8 NON E' PRECISATO 13473000
+ IF(IND.LE.0)CALL ERR(8HP3MCF8WR ,105) 13474000
+ IF(IND.LE.0) GO TO 200 13475000
+ INUC=INUC+1 13476000
+C POSIZIONE FILE DI INPUT 13477000
+ NTIN=AINDX1(15,IND) 13478000
+ NTI=NT(1,NTIN) 13479000
+ NRECI=AINDX1(16,IND) 13480000
+ CALL POST1(NTIN,NRECI) 13481000
+C NPASSI NUMERO PASSI DEL NUCLIDE 13482000
+ NPASSI=AINDX1(23,IND) 13483000
+C FOLLOWING 5 INSTRUCTIONS TO ALLOW CONPILATION BY VS FORTRAN 13484000
+C OF THE FOLLOWING STATEMENT: 13485000
+C READ(NTI) A(LLGTH+INUC),A(LIR+INUC),A(LIL+INUC), 13486000
+C 1 (A(LIPT+(INUC-1)*NPASS+J),J=1,NPASSI) 13487000
+ LVS1=LLGTH+INUC 13488000
+ LVS2=LIR+INUC 13489000
+ LVS3=LIL+INUC 13490000
+ LVS4=LIPT+(INUC-1)*NPASS 13491000
+ READ(NTI)A(LVS1),A(LVS2),A(LVS3),(A(LVS4+J),J=1,NPASSI) 13492000
+C IPTMAX DEL MATERIALE 13493000
+ IPTMXM=MAXX(NPASSI,A(LIPT+(INUC-1)*NPASS+1)) 13494000
+ AM=AINDX1(5,IND) 13495000
+ IF(AM.GT.1.)GO TO 105 13496000
+ Q3=0 13497000
+ GO TO 106 13498000
+ 105 Q3=ALOG((AM+1.)/(AM-1.))**2/3. 13499000
+ 106 N26=2 13500000
+ N50=50 13501000
+ IF(DELTAU.GE.Q3) N50=54 13502000
+ IF(DELTAU.GE.Q3) N26=6 13503000
+C PER MC2-2 LGTH=NUMERO WORDS RECORD DEI TLJ E: 13504000
+C PER I TLJ IL NUMERO DELLE PAROLE REAL*8 13505000
+C PER KT,NG IL NUMERO DELLE PAROLE REAL*4 13506000
+ NWDS3=2*(NAREAL(A(LIR+INUC)))+(N50+IPTMXM*(NPL+N26)+NPL) 13507000
+ A(LLGTH+INUC)=AREAL(NWDS3) 13508000
+ NT(4,NTIN)=NT(4,NTIN)+1 13509000
+ 200 CONTINUE 13510000
+ 20 CONTINUE 13511000
+C SCRITTURA DEL RECORD 1 13512000
+C NEL RECORD 1 ANCHE EVENTUALI NUCLIDI SENZA PL 13513000
+C USO NNUC , NON NINUC 13514000
+ N1=NPASS*NNUC 13515000
+ WRITE(NTO) (A(LLGTH+J),J=1,NNUC),(A(LIR+J),J=1,NNUC), 13516000
+ 1 (A(LIL+J),J=1,NNUC),(A(LIPT+J),J=1,N1) 13517000
+C 13518000
+ IF(STMP.LT.10) GO TO 210 13519000
+ WRITE(NO,1000) NINUC,NPASS 13520000
+ 1000 FORMAT(' RECORD 1 OF FILE MCC2F8 PRODUCED: NUCLIDES:',I5, 13521000
+ 1 ' NUMBER OF PASS:',I5) 13522000
+ WRITE(NO,2000) (J,A(LLGTH+J),A(LIR+J),A(LIL+J),J=1,NNUC) 13523000
+ 2000 FORMAT(' NUCLIDE,LENGTH OF RECORD 3,INTERP CODE,NUMB OF BLOCKS' 13524000
+ 1 /(1X,I5,2X,3I10)) 13525000
+ WRITE(NO,3000) (A(LIPT+J),J=1,N1) 13526000
+ 3000 FORMAT(' IPT: NUMBER OF LEGENDRE COMP FOR EACH PASS AND MATERIAL'13527000
+ 1 /(10I10)) 13528000
+ 210 CONTINUE 13529000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 13530000
+ NT(4,NTOUT)=NT(3,NTOUT) 13531000
+C 13532000
+ MXIR=MAXX(NNUC,A(LIR+1)) 13533000
+ MXXPT=MAXX(NPASS*INUC,A(LIPT+1)) 13534000
+C 13535000
+C DEFINIZIONE SPAZI 13536000
+C HO SOVRADIMENSIONATO TUTTO 13537000
+C LIMIT=LIMITE CUI A E PIENO 13538000
+ LNOME=LIMIT 13539000
+C NOME (REAL*8) 13540000
+ LKT=LNOME+2 13541000
+C KT 13542000
+ LNG=LKT+MXIR 13543000
+C NG 13544000
+ LTLJ=LNG+MXIR 13545000
+C TLJ 13546000
+ LTLJ1=LTLJ+(NPL1*IPTMX1)*2 13547000
+C TLJ1 E FAC 13548000
+ LTLJ2=LTLJ1+(6*IPTMX1)*2 13549000
+C TLJ2 13550000
+ LFACK=LTLJ2+2*2*MAX0(IPTMX1,6) 13551000
+C FACK 13552000
+ LFN=LFACK+(6*6)*2 13553000
+C FN 13554000
+ LVV=LFN+IPTMX1*IPTMX1*2 13555000
+C VV (SCR PER TMATRIX) 13556000
+ LLLPP=MAX0(IPTMX1*3/2,30) 13557000
+ LPN=LVV+IPTMX1*LLLPP*2 13558000
+C PN ( SCR PER PN PER TMATRIX) 13559000
+ LIMIT=LPN+MANY1*MXXPT 13560000
+ LIMIT1=LPN+MANY1*128*2 13561000
+ LIMIT=MAX0(LIMIT,LIMIT1) 13562000
+ IF(LIMIT.GT.MA) CALL ERR(8HP3MCF8 ,210) 13563000
+ IF(LIMIT1.GT.MA) CALL ERR(8HP3MCF8 ,211) 13564000
+ CALL P3MF81(NTO,NTOUT,NNUC,NINUC,NPASS,MANY1,NPL,NPL1,IPTMAX, 13565000
+ 1 IPTMX1,MXIR,MXXPT, 13566000
+ 2 A(LLGTH+1),A(LIR+1),A(LIL+1),A(LIPT+1),A(LNOME),A(LKT),A(LNG), 13567000
+ 3 A(LTLJ),A(LTLJ1),A(LTLJ2),A(LFACK),A(LFN),A(LVV),A(LPN), 13568000
+ 4 MA-LIMIT,A(LIMIT),ML1,ML2,AINDX1) 13569000
+C 13570000
+ WRITE(NP,9000) 13571000
+ 9000 FORMAT(' FILE MCC2F8 PRODUCED : ELASTIC SCATTERING DATA') 13572000
+ CALL REW(NTOUT) 13573000
+ RETURN 13574000
+ END 13575000
+ SUBROUTINE P3MF81(NTO,NTOUT,NNUC,NINUC,NPASS,MANY1,NPL,NPL1, 13576000
+ 1 IPTMAX,IPTMX1,MXIR,MAXPT, 13577000
+ 2 LGTH,IR,IL,IPT,NOME,KT,NG,TLJ,FAC,TLJ2,FACK,FN,VV,PN,MA,A, 13578000
+ 3 ML1,ML2,AINDX1) 13579000
+C ******************************************************************13580000
+C CONTINUATION OF ROUTINE P3MCF8 13581000
+C SEGUITO DI P3MCF8 - TRATTA RECORDS 2,3,4 DI F8 13582000
+C I TLJ1 SONO CONTENUTI IN FAC(5-6,.) 13583000
+C 13584000
+C ************************************************************* 13585000
+C 13586000
+ DIMENSION IPT(NPASS,NINUC),LGTH(NINUC),IR(NINUC),IL(NINUC) 13587000
+ REAL*8 NOME,TLJ(NPL1,IPTMX1),TLJ2(2,IPTMX1),FACK(6,6), 13588000
+ 1 FAC(6,IPTMX1), 13589000
+ 2 VV(IPTMX1,1),PN(IPTMX1,1) 13590000
+ DIMENSION KT(MXIR),NG(MXIR),FN(MAXPT,MANY1),A(MA) 13591000
+ DIMENSION AINDX1(ML1,ML2) 13592000
+C 13593000
+C TLJ2 E' NEI FACK(5:6,.) 13594000
+C 13595000
+ COMMON/FILES/NT(4,99) 13596000
+ COMMON/INDX/NTABL(40,200) 13597000
+ COMMON/OPZIO/OPZ(4,8,10) 13598000
+ EQUIVALENCE(OPZ(2,5,3),DELTAU),(NO,NT(1,6)),(NP,NT(1,11)) 13599000
+ EQUIVALENCE(STMP,OPZ(3,8,1)) 13600000
+C 13601000
+C 13602000
+C LOOP SUI NUCLIDI ( TAVOLA FATTA DA P3: NTABL) 13603000
+C 13604000
+ INUC=0 13605000
+ DO 10 IS=1,NNUC 13606000
+ IND=NTABL(33,IS) 13607000
+ IF(IND.LE.0) GO TO 100 13608000
+C 13609000
+ INUC=INUC+1 13610000
+C LETTURA DELLA PL 13611000
+C 13612000
+C POSIZIONAMENTO FILES 13613000
+ NTIN=AINDX1(15,IND) 13614000
+ NTI=NT(1,NTIN) 13615000
+ NRECI=AINDX1(16,IND) +2 13616000
+ CALL POST1(NTIN,NRECI) 13617000
+C SALTA RECORD 1 (LETTO IN P3MCF8 E RECORD 2 ( NOME NUCLIDE) ) 13618000
+ NOM1=NTABL(1,IS) 13619000
+ NOM2=NTABL(2,IS) 13620000
+ WRITE(NTO) NOM1,NOM2 13621000
+ IF(STMP.GT.100.) WRITE(NO,1000) NOM1,NOM2 13622000
+ 1000 FORMAT( ' MATERIAL:',2A4) 13623000
+C RECORD 3 13624000
+ IR1=IR(INUC) 13625000
+C IL NUMERO DI PL PUO' ESSERE DIVERSO PER DIVERSI NUCLIDI 13626000
+C RICALCOL LE TLJ IN OGNI CASO. 13627000
+C IF(AINDX1(18,IND).GE.0..AND.AINDX1(12,IND).EQ.3.) GOTO400 13628000
+ READ(NTI)(KT(J),J=1,IR1),(NG(J),J=1,IR1) 13629000
+ NT(4,NTIN)=NT(4,NTIN)+1 13630000
+C 13631000
+ 400 AM=AINDX1(5,IND) 13632000
+ IF(AM.GT.1.) GO TO 405 13633000
+ Q3=0. 13634000
+ GO TO 406 13635000
+ 405 Q3=ALOG((AM+1.)/(AM-1.))**2/3. 13636000
+ 406 IPTMXM=AINDX1(25,IND) 13637000
+ IPTXM1=IPTMXM+1 13638000
+C LETTURA DEI TLJ SOPPRESSA (VENGONO RICALCOLATI SEMPRE)13639000
+C IF(AINDX1(18,IND).LE.0..OR.AINDX1(12,IND).NE.3.) GOTO200 13640000
+C LETTURA DEI TLJ SE ESISTONO 13641000
+C IF(DELTAU.GE.Q3) 13642000
+C 1 READ(NTI) (KT(J),J=1,IR1),(NG(J),J=1,IR1), 13643000
+C 2 ((TLJ(J,JJ),J=2,NPL1),JJ=1,IPTXM1), 13644000
+C 3 ((FAC(J,JJ),J=5,6),JJ=1,IPTXM1), 13645000
+C 4 ((TLJ2(J,JJ),J=1,2),JJ=1,6), 13646000
+C 5 ((FACK(J,JJ),J=1,6),JJ=1,6),((FAC(J,JJ),J=1,4),JJ=1,IPTXM1) 13647000
+C IF(DELTAU.LT.Q3) 13648000
+C 1 READ(NTI) (KT(J),J=1,IR1),(NG(J),J=1,IR1), 13649000
+C 2 ((TLJ(J,JJ),J=2,NPL1),JJ=1,IPTXM1), 13650000
+C 3 ((FAC(J,JJ),J=5,6),JJ=1,IPTXM1), 13651000
+C 4 ((TLJ2(J,JJ),J=1,2),JJ=1,6), 13652000
+C 5 ((FACK(J,JJ),J=1,6),JJ=1,6) 13653000
+C NT(4,NTIN)=NT(4,NTIN)+1 13654000
+C CREAZIONE DEI TLJ 13655000
+C GO TO 300 13656000
+C200 CONTINUE 13657000
+ CALL MODPAR(AM,FACK) 13658000
+C TMATRX ACCETTA IPTMX1 SOLO FINO A 20 (MUST BE IPTMX1<=20 ) 13659000
+ IF(IPTMX1.GT.21) CALL ERR(8HP3MF81IN ,200) 13660000
+ CALL TMATRX(AM,FAC,PN,TLJ,TLJ2,VV,NPL1,IPTMX1,DELTAU,IPTXM1,Q3) 13661000
+ 300 IF(DELTAU.GE.Q3) 13662000
+ 1WRITE(NTO) (KT(J),J=1,IR1),(NG(J),J=1,IR1), 13663000
+ 2 ((TLJ(J,JJ),J=2,NPL1),JJ=1,IPTXM1), 13664000
+ 3 ((FAC(J,JJ),J=5,6),JJ=1,IPTXM1), 13665000
+ 4 ((TLJ2(J,JJ),J=1,2),JJ=1,6), 13666000
+ 5 ((FACK(J,JJ),J=1,6),JJ=1,6),((FAC(J,JJ),J=1,4),JJ=1,IPTXM1) 13667000
+ IF(DELTAU.LT.Q3) 13668000
+ 1WRITE(NTO) (KT(J),J=1,IR1),(NG(J),J=1,IR1), 13669000
+ 2 ((TLJ(J,JJ),J=2,NPL1),JJ=1,IPTXM1), 13670000
+ 3 ((FAC(J,JJ),J=5,6),JJ=1,IPTXM1), 13671000
+ 4 ((TLJ2(J,JJ),J=1,2),JJ=1,6), 13672000
+ 5 ((FACK(J,JJ),J=1,6),JJ=1,6) 13673000
+ IF(STMP.LT.1000.) GO TO 350 13674000
+ WRITE(NO,2000) (KT(J),NG(J),J=1,IR1) 13675000
+ 2000 FORMAT(4(' KT:',I5,' NG:',I5)) 13676000
+ WRITE(NO,3000)NPL1,IPTMX1,((TLJ(J,JJ),J=2,NPL1),JJ=1,IPTXM1) 13677000
+ 3000 FORMAT(' TLJ: (NPL1=',I5,'IPTMX1=',I5,')'/(1X,10E12.5)) 13678000
+ WRITE(NO,4000)((FAC(J,JJ),J=5,6),JJ=1,IPTXM1) 13679000
+ 4000 FORMAT(' FAC:',10E12.5) 13680000
+ WRITE(NO,5000) ((TLJ2(J,JJ),J=1,2),JJ=1,6) 13681000
+ 5000 FORMAT(' TLJ2:',10E12.5) 13682000
+ WRITE(NO,6000) 13683000
+ 5 ((FACK(J,JJ),J=1,6),JJ=1,6) 13684000
+ 6000 FORMAT(' FACK:',10E12.5) 13685000
+ IF(DELTAU.GE.Q3) WRITE(NO,7000) 13686000
+ 5 ((FAC(J,JJ),J=1,4),JJ=1,IPTXM1) 13687000
+ 7000 FORMAT(' FAC: ',10E12.5) 13688000
+C 13689000
+ 350 IL1=IL(INUC) 13690000
+ DO 20 IP=1,IL1 13691000
+ IP1=IPT(IP,INUC) 13692000
+ READ(NTI)((FN(J,JJ),J=1,IP1),JJ=1,MANY1) 13693000
+ NT(4,NTIN)=NT(4,NTIN)+1 13694000
+ WRITE(NTO)((FN(J,JJ),J=1,IP1),JJ=1,MANY1) 13695000
+ IF(STMP.GT.1020.) WRITE(NO,8000) 13696000
+ 1 ((FN(J,JJ),J=1,IP1),JJ=1,MANY1) 13697000
+ 8000 FORMAT(' FN:',10E12.5) 13698000
+ 20 CONTINUE 13699000
+ 100 CONTINUE 13700000
+ 10 CONTINUE 13701000
+ RETURN 13702000
+ END 13703000
+ SUBROUTINE P3MCF1(NNUC,NAME,REC3,REC4,REC5,SIGP,MA,A, 13704000
+ 1 ML1,ML2,AINDX1) 13705000
+C ****************************************************** 13706000
+C FILE MCC2F1 GENERATION: GENERAL DATA 13707000
+C 13708000
+C IN ARGOMENTO: NNUC=NUMERO NUCLIDI ( DI MCC2F1) 13709000
+C NAME(NNUC) NOME NUCLIDE ( RECORD 1 DI MCC2F1) REAL*8 13710000
+C REC3 RECORD 3 DI MCC2F1 13711000
+C REC4 4 13712000
+C REC5 5 13713000
+C SIGP RECORD DI MCC2F1 13714000
+C A(MA) SPAZIO DI LAVORO 13715000
+C 13716000
+C ****************************************************** 13717000
+C 13718000
+ DIMENSION REC3(5,NNUC),REC4(5,NNUC),REC5(12,NNUC),SIGP(NNUC) 13719000
+C 13720000
+C INTEGER REC5(12,NNUC) 13721000
+C E' IL RECORD 5 DI MCC2F1 FATTO COSI': 13722000
+C NOME,NOME,NINEL,N2NTH,NLEVLS,N2NLEV,MAX1,MAX2,MAX3,MAX4, 13723000
+C NSINK1.NSINK2,NUMREC(1 PAROLA PER GRUPPO),MAXREC 13724000
+C 13725000
+C 13726000
+ DIMENSION A(MA),AINDX1(ML1,ML2) 13727000
+ COMMON/FILES/NT(4,99) 13728000
+ EQUIVALENCE(NO,NT(1,6)),(NP,NT(1,11)) 13729000
+ COMMON/RC1F1/NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 13730000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX,MAXREC 13731000
+ COMMON/INDX/NTABL(40,200) 13732000
+ COMMON/DIM/M(5) 13733000
+ COMMON/OPZIO/OPZ(4,8,10) 13734000
+ EQUIVALENCE( STMP,OPZ(3,1,1)) 13735000
+C 13736000
+ WRITE(NP,9999) 13737000
+ 9999 FORMAT(' P3MCF1 ENTERED: GENERAL DATA FILE') 13738000
+C 13739000
+C 13740000
+ NTOUT=51 13741000
+ NTO=NT(1,NTOUT) 13742000
+ CALL REW(NTOUT) 13743000
+C RECORD 1 MESSO DALLE DIVERSE SUBROUTINES DI P3 IN COMMON /RC1F1/ 13744000
+C NNUC=LUNGHEZZA TAVOLA COI NOMI DEI NUCLIDI 13745000
+ NMAT=NNUC 13746000
+ NGROUP=OPZ(2,5,4) 13747000
+ ETOP=OPZ(2,5,2) 13748000
+ DELTAU=OPZ(2,5,3) 13749000
+C 13750000
+ WRITE(NTO) NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 13751000
+ 1 ETOP,DELTAU,MANY1,MMAT,NMAX 13752000
+ WRITE(NO,1000) NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 13753000
+ 1 IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX 13754000
+ 1000 FORMAT('0 FILE MCC2F1 PRODUCED - GENERAL DATA.'// 13755000
+ 1 ' NUMBER OF MATERIALS (NMAT):',I5/ 13756000
+ 2 ' NUMBER OF ENERGY GROUPS (NGROUP):',I5/ 13757000
+ 3 ' RESOLVED RESONANCE MATERIALS (NRESMT):',I5/ 13758000
+ 4 ' UNRESOLVED RESONANCE MATERIALS (NUNRMT):',I5/ 13759000
+ 5 ' NUMBER OF FISSION SOURCES (MSORS):',I5/ 13760000
+ 6 ' NUMBER OF STEPS FOR ELASTIC SCATTERING DATA (NPASS):',I5/ 13761000
+ 7 ' NUMBER OF LEGENDRE POLINOMIAL COEFFICIENTS (NPL):',I5/ 13762000
+ 8 ' MAXIMUN NUMBER OF LEGENDRE COMPONENTS (IPTMAX):',I5/ 13763000
+ 9 ' TOP ENERGY OF MULTIGROUP SCHEME (ETOP):',E12.5/ 13764000
+ A ' LETARGY INTERVAL (DELTAU):',E12.5/ 13765000
+ B ' STEP LENGTH FOR LEGENDRE POLINOMIAL (MANY1):',I5/ 13766000
+ C ' NUMBER OF MATERIALS IN THE ENERGY DISTRIBUTION FILE (MMAT):',I513767000
+ D/' NUMBER OF GROUPS IN THE ENERGY DISTRIBUTION FILE (NMAX):',I5///13768000
+ E ) 13769000
+C 13770000
+C RECORD 2 (NOMI DELLA TABELLE NTABL) (NAME NON E' USATO) 13771000
+ WRITE(NTO) (NTABL(1,J),NTABL(2,J),J=1,NMAT) 13772000
+ WRITE(NO,2000) (NTABL(1,J),NTABL(2,J),J=1,NMAT) 13773000
+ 2000 FORMAT(' MATERIALS:'/(10(5X,2A4))) 13774000
+ DO 10 IS=1,NNUC 13775000
+ IND=NTABL(3,IS) 13776000
+ IF(IND.GT.0) GO TO 100 13777000
+ CALL ERR(8HP3MCF1 ,100) 13778000
+ 100 CONTINUE 13779000
+C A 13780000
+ REC3(1,IS)=AINDX1(5,IND) 13781000
+C Z 13782000
+ NDUM=AINDX1(21,IND) 13783000
+ REC3(2,IS)=AREAL(NDUM) 13784000
+C MAT 13785000
+ NDUM=AINDX1(1,IND) 13786000
+ REC3(3,IS)=AREAL(NDUM) 13787000
+C E FISS , E CATT ( DA SMOOTHS) + E PER N,ALFA,NH ETC 13788000
+ REC3(5,IS)=AINDX1(25,IND)+AINDX1(28,IND) 13789000
+ REC3(4,IS)=AINDX1(24,IND) 13790000
+C QUESTO E/FISS NON COMPRENDE I NEUTRINI (DA MT=18) 13791000
+ SIGP(IS)=AINDX1(23,IND) 13792000
+ 10 CONTINUE 13793000
+C 13794000
+C SCRIVE RECORD 3 13795000
+ WRITE(NTO) ((REC3(J,I),I=1,NMAT),J=1,5) 13796000
+ WRITE(NO,4000)(I,NTABL(1,I),NTABL(2,I), 13797000
+ 1 (REC3(J,I),J=1,5),I=1,NMAT) 13798000
+ 4000 FORMAT(/' MATERIAL , A',12X,', Z , MAT , E FISS ,', 13799000
+ 1 ' E CAPT '/ 13800000
+ 2 (1X,I5,1X,2A4,E12.5,I10,I10,2E12.5)) 13801000
+C 13802000
+C SCRIVE RECORD 4 13803000
+ WRITE(NTO) ((REC4(I,J),J=1,NRESMT),I=1,3), 13804000
+ 1 ((REC4(I,J),J=1,NUNRMT),I=4,5) 13805000
+ WRITE(NO,5000)((REC4(I,J),I=1,3),J=1,NRESMT) 13806000
+ 5000 FORMAT(/ ' RESOLVED RESONANCES,RECORDS,E MAX RESOLVED'/ 13807000
+ 1 (1X,I10,I15,3X,E12.5)) 13808000
+ WRITE(NO,6000)((REC4(I,J),I=4,5),J=1,NUNRMT) 13809000
+ 6000 FORMAT(/' INF ENERGY , UPPER ENERGY (UNRESOLVED RESONANCE DATA)13810000
+ 1 '/(1X,E12.5,4X,E12.5)) 13811000
+C 13812000
+C SCRIVE RECORD 5 13813000
+ WRITE(NTO)(REC5(1,J),REC5(2,J),J=1,MMAT), 13814000
+ 1 ((REC5(I,J),J=1,MMAT),I=3,12),(REC5(12+J,NNUC),J=1,NMAX),MAXREC 13815000
+ WRITE(NO,7000)((REC5(I,J),I=1,12),J=1,MMAT) 13816000
+ 7000 FORMAT(//' NAME',6X,'NINEL,N2NTH,NLEVLS,N2NLEV,', 13817000
+ 1 'MAX1,MAX2, MAX3, MAX4,', 13818000
+ 2 'NSINK1,NSINK2 (FILE MCC2F6 PARAMETERS)'/(1X,2A4,10I6)) 13819000
+ WRITE(NO,8000) MAXREC,(REC5(12+J,NNUC),J=1,NMAX) 13820000
+ 8000 FORMAT(' MAXIMUM NUMBER OF RECORDS MAXREC:',I10// 13821000
+ 2 ' NUMBER OF RECORDS FOR EACH GROUP (FILE MCC2F6):' 13822000
+ 1 /(1X,30I4)) 13823000
+ 13824000
+C 13825000
+C RECORD 6 : SIGP 13826000
+ WRITE(NTO) (SIGP(J),J=1,NMAT) 13827000
+ WRITE(NO,9000) (NTABL(1,J),NTABL(2,J),SIGP(J),J=1,NMAT) 13828000
+ 9000 FORMAT(/' SCATTERING RADIUS:'/(3(5X,2A4,1X,E12.5))) 13829000
+ CALL REW(NTOUT) 13830000
+ RETURN 13831000
+ END 13832000
+ SUBROUTINE P4(MA,A) 13833000
+C ******************************* 13834000
+C 13835000
+C READS THE FILES OF MC2-II : MCC2F1,3,4,5,6,7,8 . 13836000
+C PUT THEM IN THE FORMAT OF THE SECOND GROUP OF INTERMEDIATE FILES 13837000
+C AND WRITES THEIR INDEX, TO ALLOW MERGING OF LIBRARIES 13838000
+C 13839000
+C ********************************************************** 13840000
+C 13841000
+C IL COMANDO DI QUESTA PARTE CONSTA DI UN NUMERO DI FILE MCC2F... 13842000
+C ED ALCUNI NUMERI INTERI: 13843000
+C IC(1)=NUMERO FILE MCC2F1, 3 , 4,5,6,7,8 13844000
+C IC(2)= NUMERO LOGICO FILE INPUT 13845000
+C IC(3)= NUMERO LOGICO FILE OUTPUT 13846000
+C SE IC(1)=0 LI FA TUTTI 13847000
+C SE IC=-N LI FA TUTTI MA NON IL NUMERO N 13848000
+C 13849000
+C ****************************************************** 13850000
+ DIMENSION A(MA) 13851000
+ COMMON/FILES/NT(4,99) 13852000
+ EQUIVALENCE (NT(1,6),NO),(NT(1,11),NP),(OPZ(4,1,1),STMP) 13853000
+ COMMON/OPZIO/OPZ(4,5,10) 13854000
+ COMMON/COMM/C,IC(6),AC(4) 13855000
+ REAL*8 C 13856000
+ COMMON/RC1F1/ NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL,IPTMAX, 13857000
+ 1ETOP,DELTAU,MANY1,MMAT,NMAX,MAXREC 13858000
+ COMMON/DIM/MDI1,MDI2,MDI3,IND 13859000
+ COMMON/INDX1/AINDX1(40,200) 13860000
+C 13861000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 13862000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 13863000
+C 13864000
+ DATA NFLGF1/0/ 13865000
+ DATA LIMIT/1/ 13866000
+C 13867000
+C MCC2F1, SEMPRE RICHIESTO, 13868000
+C VA LETTO ALMENO UNA VOLTA NEL CORSO DEL RUN 13869000
+C 13870000
+ 9001 FORMAT(' PART 4 : READING OF A MC2-2 INPUT LIBRARY TO BE UPDATED')13871000
+ 9000 FORMAT('0 FILE MCC2F',I1,' INPUT FILE NUMBER:',I4, 13872000
+ 1 ' OUTPUT FILE NUMBER:',I4) 13873000
+ IF(NFLGF1.LE.0.AND.ICCCC.NE.1.AND.ICCCC.NE.0.AND.ICCCC.GE.-1) 13874000
+ 1 CALL ERR(8HP4 ,100) 13875000
+C 13876000
+C CERCA IL FILE CHE DEVE SMONTARE 13877000
+ IF(IC(1).GT.8.OR.IC(1).LT.-8) RETURN 13878000
+ WRITE(NP,9001) 13879000
+ IF(IC(1).NE.1.AND.IC(1).GT.0) GO TO 200 13880000
+ IF(IC(1).EQ.-1) GO TO 200 13881000
+ ICCCC=1 13882000
+ NTIN=IC(2) 13883000
+ IF(NTIN.LE.0) NTIN=41 13884000
+C 13885000
+ WRITE(NO,9000) ICCCC,NTIN 13886000
+ NTI=NT(1,NTIN) 13887000
+ CALL REW(NTIN) 13888000
+ 100 CONTINUE 13889000
+ READ(NTI,END=555) NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 13890000
+ 1 IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX 13891000
+ WRITE(NO,1000) NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 13892000
+ 1 IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX 13893000
+ 1000 FORMAT('0 CONTENTS OF MC2-2 FILES TO UPDATE:'/ 13894000
+ 1 ' NUMBER OF MATERIALS (NMAT):',I5/' ENERGY GROUPS (NGROUP):',I5/ 13895000
+ 2 ' RESOLVED RES.MATERIALS (NRESMT):',I5/' UNRESOLVED RESONANCE', 13896000
+ 3 ' MATERIALS (NUNRMT):',I5/' FISSION SOURCES (MSORS):',I5/ 13897000
+ 4 ' PASSES FOR ELASTIC SCATTERING DATA (NPASS):',I5/ 13898000
+ 5 ' LEGENDRE POLINOMIAL COEFFICIENTS (NPL):',I5/' MAX LEGENDRE' 13899000
+ 6 ,' COMPONENTS (IPTMAX):',I5/' TOP ENERGY (ETOP):',E12.5/ 13900000
+ 7 ' LETARGY INTERVAL (DELTAU):',E12.5/ 13901000
+ 8 ' PASS LENGTH FOR LEGENDRE POLINOMIAL (MANY1):',I5/' ANELASTIC' 13902000
+ 9,' AND N,2N MATERIALS (MMAT):',I5/' GROUPS OF ANEL AND N,2N DATA' 13903000
+ A,' (NMAX):',I5//) 13904000
+C SPAZI PER RECORDS DEL FILE F1 13905000
+ LRC2=1 13906000
+C RECORD 2 13907000
+C NAMES ( REAL*8) 13908000
+ LRC3=LRC2+2*NMAT 13909000
+C RECORD 3 13910000
+C A,Z,MAT,EFISS,ECATT 13911000
+ LRC4=LRC3+5*NMAT 13912000
+C RECORD 4 13913000
+C RESONANCES 13914000
+ LRC41=LRC4 13915000
+ LRC42=LRC4+NRESMT 13916000
+ LRC43=LRC42+NRESMT 13917000
+ LRC44=LRC43+NRESMT 13918000
+ LRC45=LRC44+NUNRMT 13919000
+C 13920000
+ LRC5=LRC45+NUNRMT 13921000
+C RECORD 5 13922000
+C ANEL,N2N ENERGY DISTRIBUTIONS 13923000
+ LRC51=LRC5 13924000
+C NOME 13925000
+ LRC52=LRC5+2*MMAT 13926000
+C NINEL 13927000
+ LRC53=LRC52+MMAT 13928000
+C N2NTH 13929000
+ LRC54=LRC53+MMAT 13930000
+C NLEVLS 13931000
+ LRC55=LRC54+MMAT 13932000
+C N2NLVS 13933000
+ LRC56=LRC55+MMAT 13934000
+C MAX1 13935000
+ LRC57=LRC56+MMAT 13936000
+C MAX2 13937000
+ LRC58=LRC57+MMAT 13938000
+C MAX3 13939000
+ LRC59=LRC58+MMAT 13940000
+C MAX4 13941000
+ LRC60=LRC59+MMAT 13942000
+C NSINK1 13943000
+ LRC61=LRC60+MMAT 13944000
+C NSINK2 13945000
+ LRC62=LRC61+MMAT 13946000
+C NUMREC 13947000
+ LRC63=LRC62+NMAX 13948000
+C MAXREC 13949000
+ LRC6=LRC63+1 13950000
+C RECORD 6 13951000
+C SIGP 13952000
+ LIMIT=LRC6+NMAT +1 13953000
+ IF(LIMIT.GT.MA) CALL ERR(8H P4 ,0) 13954000
+C 13955000
+C LETTURA DI F1 13956000
+ N1=2*NMAT 13957000
+ READ(NTI) (A(LRC2+J-1),J=1,N1) 13958000
+ READ(NTI)((A(LRC3-1+5*(J-1)+JJ),J=1,NMAT),JJ=1,5) 13959000
+ N1=3*NRESMT+2*NUNRMT 13960000
+ READ(NTI)(A(LRC4+J-1),J=1,N1) 13961000
+C RESONANCE RECORD 13962000
+ N1=12*MMAT+1+NMAX 13963000
+ READ(NTI)(A(LRC5+J-1),J=1,N1) 13964000
+C MCC2F6 RECORD 13965000
+ MAXREC=NAREAL(A(LRC63)) 13966000
+ N1=NMAT 13967000
+ READ(NTI)(A(LRC6+J-1),J=1,N1) 13968000
+C THE FOLLOWING STATEMENTS TO ALLOW COMPILATION BY VS FORTRAN 13969000
+C OF THE STATEMENT: 13970000
+C WRITE(NO,2000) (A(LRC2+2*J-2),A(LRC2+2*J-1),A(LRC6+J-1), 13971000
+C 1 (A(LRC3-1+5*(J-1)+JJ),JJ=1,5),J=1,NMAT) 13972000
+ DO 10 J=1,NMAT 13973000
+ LVS1=LRC2+2*J-2 13974000
+ LVS2=LRC2+2*J-1 13975000
+ LVS3=LRC6+J-1 13976000
+ LVS4=LRC3-1+5*(J-1) 13977000
+ WRITE(NO,2000) A(LVS1),A(LVS2),A(LVS3),(A(LVS4+JJ),JJ=1,5) 13978000
+ 10 CONTINUE 13979000
+ 2000 FORMAT(1X,2A4,' SIGP:',E12.5,' A:',F6.2,' Z:',I5,' MAT',I5, 13980000
+ 1' E FISS:',E12.5,' E CATT:',E12.5) 13981000
+ NT(3,NTIN)=NT(3,NTIN)+6 13982000
+ NFLGF1=NTI 13983000
+ CALL P4MCF1(NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 13984000
+ 1IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX, 13985000
+ 2 A(LRC2),A(LRC3),A(LRC6) ,MA-LIMIT,A(LIMIT+1)) 13986000
+ CALL REW(NTIN) 13987000
+C 13988000
+ 200 CONTINUE 13989000
+ IF(IC(1).EQ.2) CALL ERR(8HP4INIMPL ,200) 13990000
+C 13991000
+C 13992000
+ 300 CONTINUE 13993000
+ IF(IC(1).NE.3.AND.IC(1).GT.0) GO TO 400 13994000
+ IF(IC(1).EQ.-3) GO TO 400 13995000
+ ICCCC=3 13996000
+ NTIN=IC(2) 13997000
+ IF(NTIN.LE.0) NTIN=43 13998000
+C 13999000
+ WRITE(NO,9000) ICCCC,NTIN 14000000
+C SPAZI PER LETTURE RECORDS 1 ETC DI F3 14001000
+ L1=LIMIT 14002000
+C NOME 14003000
+ L2=L1+NUNRMT*2 14004000
+C NISO 14005000
+ L3=L2+NUNRMT 14006000
+C IFI 14007000
+ L4=L3+NUNRMT 14008000
+C ISK 14009000
+ L5=L4+NUNRMT 14010000
+C 14011000
+ LIMIT1=L5 14012000
+C 14013000
+ CALL P4MCF3(NTIN,MMAT,NGROUP,NRESMT,NUNRMT, 14014000
+ 1 A(LRC2),A(LRC3),A(LRC41),A(LRC42),A(LRC43),A(LRC44),A(LRC45), 14015000
+ 2 A(L1),A(L2),A(L3),A(L4),MA-LIMIT1,A(LIMIT1+1)) 14016000
+ CALL REW(NTIN) 14017000
+C 14018000
+ 400 CONTINUE 14019000
+ IF(IC(1).NE.4.AND.IC(1).GT.0) GO TO 500 14020000
+ IF(IC(1).EQ.-4) GO TO 500 14021000
+ ICCCC=4 14022000
+ NTIN=IC(2) 14023000
+ IF(NTIN.LE.0) NTIN=44 14024000
+C 14025000
+ WRITE(NO,9000) ICCCC,NTIN 14026000
+C SPAZI PER RECORDS 1 E 2 DI F4 14027000
+ L1=LIMIT 14028000
+C NOME 14029000
+ L2=L1+NRESMT*2 14030000
+C NISO 14031000
+ L3=L2+NRESMT 14032000
+C IWR 14033000
+ L4=L3+NRESMT 14034000
+C EL 14035000
+ L5=L4+NRESMT 14036000
+C EU 14037000
+ L6=L5+NRESMT 14038000
+C 14039000
+ LIMIT1=L6+1 14040000
+C 14041000
+ CALL P4MCF4(NTIN,NMAT,NGROUP,NRESMT, 14042000
+ 1A(LRC2),A(LRC3),A(LRC41),A(LRC42),A(LRC43), 14043000
+ 2 A(L1),A(L2),A(L3),A(L4),A(L5),MA-LIMIT1,A(LIMIT1+1)) 14044000
+ CALL REW(NTIN) 14045000
+C 14046000
+C 14047000
+ 500 CONTINUE 14048000
+ IF(IC(1).NE.5.AND.IC(1).GT.0) GO TO 600 14049000
+ IF(IC(1).EQ.-5) GO TO 600 14050000
+ ICCCC=5 14051000
+ NTIN=IC(2) 14052000
+ NTOUT=IC(3) 14053000
+ IF(NTOUT.LE.0) NTOUT=65 14054000
+ IF(NTIN.LE.0) NTIN=45 14055000
+C 14056000
+ WRITE(NO,9000) ICCCC,NTIN,NTOUT 14057000
+ CALL P4MCF5(NTIN,NTOUT,NMAT,NGROUP, 14058000
+ 1ETOP,DELTAU,A(LRC2),A(LRC3),MA,A(LIMIT+1)) 14059000
+ CALL REW(NTIN) 14060000
+C 14061000
+ 600 CONTINUE 14062000
+ IF(IC(1).NE.6.AND.IC(1).GT.0) GO TO 700 14063000
+ IF(IC(1).EQ.-6) GO TO 700 14064000
+ ICCCC=6 14065000
+ NTIN=IC(2) 14066000
+ NTOUT=IC(3) 14067000
+ IF(NTOUT.LE.0) NTOUT=66 14068000
+ IF(NTIN.LE.0) NTIN=46 14069000
+C 14070000
+ WRITE(NO,9000) ICCCC,NTIN,NTOUT 14071000
+ NTI=NT(1,NTIN) 14072000
+ CALL REW(NTIN) 14073000
+C SPAZI VARI PER LETTURA INDICI DI INDICI 14074000
+ L1=LIMIT 14075000
+ L2=L1+MMAT 14076000
+ LIMIT1=L2+MMAT 14077000
+ CALL P4MCF6(NTIN,NTOUT,NMAT,NGROUP, 14078000
+ 1 ETOP,DELTAU,MMAT,NMAX, 14079000
+ 2 A(LRC2),A(LRC3),A(LRC5), 14080000
+ 3 A(LRC52),A(LRC53),A(LRC54),A(LRC55),A(LRC56),A(LRC57), 14081000
+ 4 A(LRC58),A(LRC59),A(LRC60),A(LRC61),A(LRC62),MAXREC, 14082000
+ 5 A(L1),A(L2),MA-LIMIT1,A(LIMIT1+1)) 14083000
+ CALL REW(NTIN) 14084000
+C 14085000
+C 14086000
+700 CONTINUE 14087000
+ IF(IC(1).NE.7.AND.IC(1).GT.0) GO TO 800 14088000
+ IF(IC(1).EQ.-7) GO TO 800 14089000
+ ICCCC=7 14090000
+ NTIN=IC(2) 14091000
+ NTOUT=IC(3) 14092000
+ IF(NTOUT.LE.0) NTOUT=67 14093000
+ IF(NTIN.LE.0) NTIN=47 14094000
+C 14095000
+ WRITE(NO,9000) ICCCC,NTIN,NTOUT 14096000
+C SPAZI VARI PER LETTURE 14097000
+ L1=LIMIT 14098000
+ L2=L1+2*MSORS 14099000
+ L3=L2+MSORS 14100000
+ L4=L3+NMAT 14101000
+ LIMIT1=L4+NMAT 14102000
+C 14103000
+ CALL P4MCF7(NTIN,NTOUT,NMAT,NGROUP,MSORS, 14104000
+ 1 ETOP,DELTAU, 14105000
+ 2 A(LRC2),A(LRC3), 14106000
+ 5 A(L1),A(L2),A(L3),A(L4),MA-LIMIT1,A(LIMIT1+1)) 14107000
+ CALL REW(NTIN) 14108000
+C 14109000
+ 800 CONTINUE 14110000
+ IF(IC(1).NE.8.AND.IC(1).GT.0) GO TO 900 14111000
+ IF(IC(1).EQ.-8) GO TO 900 14112000
+ ICCCC=8 14113000
+ NTIN=IC(2) 14114000
+ NTOUT=IC(3) 14115000
+ IF(NTOUT.LE.0) NTOUT=68 14116000
+ IF(NTIN.LE.0) NTIN=48 14117000
+C 14118000
+ WRITE(NO,9000) ICCCC,NTIN,NTOUT 14119000
+ L1=LIMIT 14120000
+C LGTH 14121000
+ L2=L1+NMAT 14122000
+C IR 14123000
+ L3=L2+NMAT 14124000
+C IL 14125000
+ L4=L3+NMAT 14126000
+C IPT 14127000
+ LIMIT1=L4+NMAT*NPASS 14128000
+C 14129000
+ CALL P4MCF8(NTIN,NTOUT,NMAT,NGROUP,NPASS,NPL, 14130000
+ 1IPTMAX,ETOP,DELTAU,MANY1, 14131000
+ 2 A(LRC2),A(LRC3), 14132000
+ 5 A(L1),A(L2),A(L3),A(L4),MA-LIMIT1,A(LIMIT1+1)) 14133000
+ CALL REW(NTIN) 14134000
+ 900 CONTINUE 14135000
+ IND=IND+1 14136000
+ CALL SCARIN(4,MIND11,IND,AINDX1) 14137000
+ RETURN 14138000
+ 555 WRITE(NP,9555) NTI 14139000
+ WRITE(NO,9555) NTI 14140000
+ 9555 FORMAT(' !!! WARNING !! NO FILE MCC2F1 TO BE UPDATED FOUND ON' 14141000
+ 1 ,' UNIT:',I4) 14142000
+ RETURN 14143000
+ END 14144000
+ SUBROUTINE P4MCF1(NMAT,NGROUP,NRESMT,NUNRMT,MSORS,NPASS,NPL, 14145000
+ 1 IPTMAX,ETOP,DELTAU,MANY1,MMAT,NMAX,NAME,NREC3,SIGP,MA,A) 14146000
+C **************************************************************** 14147000
+C FILE MCC2F1 14148000
+C SMONTA FILE MCC2F1 E SCRIVE RECORD INDICE CON RECORD 6=SIGP 14149000
+C IL FILE MCC2F1 LO LEGGE P4 14150000
+C 14151000
+C ******************************************************** 14152000
+C 14153000
+ COMMON/DIM/M(5) 14154000
+ EQUIVALENCE(M(4),IND) 14155000
+ COMMON/INDX1/AINDX1(40,200) 14156000
+C 14157000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14158000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14159000
+C 14160000
+ DIMENSION NREC3(5,NMAT),SIGP(NMAT),NAME(NMAT) 14161000
+C 14162000
+ DO 10 IM=1,NMAT 14163000
+ ZA=1000.0*(NREC3(2,IM))+AREAL(NREC3(1,IM)) 14164000
+ NA=AREAL(NREC3(1,IM)) 14165000
+C 14166000
+ IND=IND+1 14167000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14168000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,IM)), 14169000
+ 1 -1. ,0.,ZA,NREC3(1,IM), 14170000
+ 2 NAME(IM*2-1),NAME(IM*2),NAME(IM*2-1),NAME(IM*2),0., 14171000
+ 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0., 14172000
+ 4 FLOAT(NREC3(2,IM)),FLOAT(NA),SIGP(IM), 14173000
+ 5 NREC3(4,IM),NREC3(5,IM),0.,0.,0.,0.,SIGP(IM), 14174000
+ 6 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.) 14175000
+C 14176000
+ 10 CONTINUE 14177000
+ RETURN 14178000
+ END 14179000
+ SUBROUTINE P4MCF3(NTIN,NMAT,NGROUP,NRESMT,NUNRMT, 14180000
+ 1 NAME,NREC3,NRES,NREC,EMAXR,EMAXU,EMINU, 14181000
+ 2 NAMUN,NISO,IFI,ISK,MA,NA) 14182000
+C ******************************************************************14183000
+C 14184000
+C READS FILE MCC2F3 14185000
+C 14186000
+C IL FILE NON VIENE REALMENTE SMONTATO, NE E' SOLO FATTO UN INDICE14187000
+C 14188000
+C *************************************************************** 14189000
+C 14190000
+ DIMENSION NAME(NMAT),NREC3(5,NMAT),NRES(NRESMT),NREC(NRESMT) 14191000
+ DIMENSION EMAXU(NUNRMT),EMINU(NUNRMT),NAMUN(NUNRMT),NISO(NUNRMT) 14192000
+ DIMENSION IFI(NUNRMT),ISK(NUNRMT),NA(MA),EMAXR(NRESMT) 14193000
+C 14194000
+C COMMONS: 14195000
+ COMMON/FILES/NT(4,99) 14196000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 14197000
+ COMMON/INDX1/AINDX1(40,200) 14198000
+ COMMON/COMM/C,IC(6),AC(4) 14199000
+ COMMON/DIM/M1,M2,M3,IND 14200000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14201000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14202000
+C 14203000
+C 14204000
+C FILE INPUT 14205000
+ NTI=NT(1,NTIN) 14206000
+ CALL REW(NTIN) 14207000
+C LETTURA RECORD 1 14208000
+ N1=NUNRMT*2 14209000
+ READ(NTI,END=555)(NAMUN(J),J=1,N1) 14210000
+C LETTURA RECORD 2 14211000
+ READ(NTI)(NISO(J),J=1,NUNRMT),(IFI(J),J=1,NUNRMT), 14212000
+ 1 (ISK(J),J=1,NUNRMT),LSTMAX,JSTMAX,NPTMAX 14213000
+ WRITE(NP,1000) NTI,(NAMUN(2*J-1),NAMUN(2*J),EMAXU(J),EMINU(J), 14214000
+ 1 NISO(J),IFI(J),ISK(J),J=1,NUNRMT) 14215000
+ 1000 FORMAT(' UNRESOLVED RESONANCE FILE MCC2F3 READ ON UNIT:',I5/ 14216000
+ 2 (1X,2A4,' EMAX:',E12.5,' EMIN:',E12.5,' NISO:',I5,' IFI:',I4, 14217000
+ 3 ' ISK:',I4)) 14218000
+ NT(4,NTIN)=NT(4,NTIN)+2 14219000
+ DO 10 IN=1,NUNRMT 14220000
+ NIS=NISO(IN) 14221000
+ N1=6*NIS 14222000
+C LETTURA RECORD 3 14223000
+ READ(NTI)(NA(J),J=1,N1) 14224000
+ NT(4,NTIN)=NT(4,NTIN)+1 14225000
+C 14226000
+ DO 20 IS=1,NIS 14227000
+ NPT=NA(NIS*4+IS) 14228000
+ LST=NA(NIS*3+IS) 14229000
+ L1=N1+1 14230000
+C ES(NPT) 14231000
+ L2=L1+NPT 14232000
+C DEL(NPT) 14233000
+ L3=L2+NPT 14234000
+C JST(LST) 14235000
+ L4=L3+LST-1 14236000
+C 14237000
+ READ(NTI) (NA(J),J=L1,L4) 14238000
+ N1=L4+1 14239000
+ N2=0 14240000
+ DO 30 IJ=L3,L4 14241000
+ 30 N2=N2+NA(IJ) 14242000
+ N2=N2*(4*NPT+3) + N1-1 14243000
+ IF(N2.GT.MA) CALL ERR(8HP4MCF3 ,30) 14244000
+ READ(NTI) (NA(J),J=N1,N2) 14245000
+C 14246000
+C RIEMPIE L'INDICE 14247000
+C CERCA IL MATERIALE ( L'ORDINE IN CUI E' IN F1) 14248000
+ I=IDENT8(NMAT,NAMUN(IN*2-1),NAME) 14249000
+ IF(I.LE.0) CALL ERR(8HP4MCF3 ,40) 14250000
+C I E' IL NUMERO DEL NUCLIDE NEI RECORDS DI F1 14251000
+C 14252000
+ IND=IND+1 14253000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14254000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,I)),-3.,0.,0., 14255000
+ 1 NREC3(1,I),NAMUN(IN*2-1),NAMUN(IN*2),NAMUN(IN*2-1),NAMUN(IN*2), 14256000
+ 2 0.,3.,0.,0.,FLOAT(NTI),FLOAT(NTIN),FLOAT(NT(4,NTIN)),2., 14257000
+ 3 FLOAT(L4-L1+1),FLOAT(N2-N1+1),FLOAT(NIS),FLOAT(IFI(IN)),2., 14258000
+ 4 FLOAT(LST),FLOAT(JSTMAX),FLOAT(NPT), 14259000
+ 5 NA(IS),NA(NIS+IS),NA(NIS*5+IS),NA(NIS*2+IS),0.,0., 14260000
+ 6 EMINU(IN),EMAXU(IN),FLOAT(IS),0.,0.,0.,0.,0.,0.) 14261000
+ NT(4,NTIN)=NT(4,NTIN)+2 14262000
+ 20 CONTINUE 14263000
+ 10 CONTINUE 14264000
+C FINE LOOP ISOTOPI E MATERIALE ............................... 14265000
+ RETURN 14266000
+ 555 WRITE(NP,9555) NTI 14267000
+ WRITE(NO,9555) NTI 14268000
+ 9555 FORMAT(' !!! WARNING !! NO FILE MCC2F3 TO BE UPDATED FOUND ON' 14269000
+ 1 ,' UNIT:',I4) 14270000
+ RETURN 14271000
+ END 14272000
+ SUBROUTINE P4MCF4(NTIN,NMAT,NGROUP,NRESMT, 14273000
+ 1 NAME,NREC3,NRES,NREC,EMAXR, 14274000
+ 2 NAMER,NISO,IWR,EL,EU,MA,A) 14275000
+C ************************************************************* 14276000
+C 14277000
+C READS FILE MCC2F4 14278000
+C 14279000
+C NON VIENE REALMENTE SMONTATO, NE VIENE SOLO FATTO UN INDICE 14280000
+C 14281000
+C ******************************************************* 14282000
+C 14283000
+ DIMENSION NAMER(NRESMT),NISO(NRESMT),IWR(NRESMT),EL(NRESMT), 14284000
+ 1 EU(NRESMT),NAME(NMAT),NREC3(5,NMAT),A(MA),EMAXR(NRESMT) 14285000
+C 14286000
+C COMMONS: 14287000
+ COMMON/FILES/NT(4,99) 14288000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 14289000
+ COMMON/INDX1/AINDX1(40,200) 14290000
+ COMMON/DIM/M1,M2,M3,IND 14291000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14292000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14293000
+C 14294000
+C FILE INPUT 14295000
+ NTI=NT(1,NTIN) 14296000
+ CALL REW(NTIN) 14297000
+C 14298000
+C LETTURA RECORD 1 E RECORD 2 14299000
+ N1=2*NRESMT 14300000
+ READ(NTI,END=555) (NAMER(J),J=1,N1) 14301000
+ READ(NTI) (NISO(J),J=1,NRESMT),(IWR(J),J=1,NRESMT), 14302000
+ 1(EL(J),J=1,NRESMT),(EU(J),J=1,NRESMT) 14303000
+ NT(4,NTIN)=NT(4,NTIN)+2 14304000
+ WRITE(NP,1000) NTI,(NAMER(2*J-1),NAMER(2*J),NISO(J),IWR(J), 14305000
+ 2 EL(J),EU(J),EMAXR(J),J=1,NRESMT) 14306000
+ 1000 FORMAT(' RESOLVED RESONANCE FILE MCC2F4 READ ON UNIT:',I5/ 14307000
+ 1 (1X,2A4,' NISO:',I4,' IWR:',I4,' EL:',E12.5,' EU:',E12.5, 14308000
+ 2 ' EMAXR:',E12.5)) 14309000
+ DO 10 IM=1,NRESMT 14310000
+ IW=IWR(IM) 14311000
+ ELL=EL(IM) 14312000
+ EUU=EU(IM) 14313000
+ NIS=NISO(IM) 14314000
+ L1=1 14315000
+C ABUN 14316000
+ L2=NIS+L1 14317000
+C NRGYS 14318000
+ L3=L2+NIS-1 14319000
+C 14320000
+ IF(MA.LT.L3) CALL ERR(8HP4MCF4 ,39) 14321000
+ READ(NTI) (A(J),J=L1,L3) 14322000
+ NT(4,NTIN)=NT(4,NTIN)+1 14323000
+C 14324000
+ DO 20 IS=1,NIS 14325000
+ ABU=A(L1+IS-1) 14326000
+ NRGY=NAREAL(A(L2+IS-1)) 14327000
+ NRGY2=NRGY*2 14328000
+C 14329000
+C NUMERO DI PARAMETRI 14330000
+ NRCF=8 14331000
+ IF(IW.EQ.2) NRCF=10 14332000
+ IF(IW.EQ.3) NRCF=16 14333000
+C 14334000
+C NUMERO RECORDS (I PARAMETRI 5 E 6 SONO IN UN SOLO RECORD PER BW) 14335000
+ NREC=7 14336000
+ IF(IW.EQ.2) NREC=10 14337000
+ IF(IW.EQ.3) NREC=15 14338000
+C 14339000
+ DO 30 IR=1,NREC 14340000
+ 30 READ(NTI) 14341000
+C 14342000
+C 14343000
+C IDENTIFICAZIONE NUMERO NUCLIDE IN F1 : =I 14344000
+ I=IDENT8(NMAT,NAMER(IM*2-1),NAME) 14345000
+C RIEMPIE INDICE 14346000
+ IND=IND+1 14347000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14348000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,I)),-4.,0.,0., 14349000
+ 1NREC3(1,I),NAMER(IM*2-1),NAMER(IM*2),NAMER(IM*2-1),NAMER(IM*2), 14350000
+ 2 0.,4.,0.,0.,FLOAT(NTI),FLOAT(NTIN),FLOAT(NT(4,NTIN)),FLOAT( 14351000
+ 3 NREC),FLOAT(NRGY),FLOAT(NRCF),FLOAT(NIS),FLOAT(IW),EMAXR(IM), 14352000
+ 4 FLOAT(IW),0.,0.,ABU,0.,0.,0.,0.,0.,ELL,EUU, 14353000
+ 5 FLOAT(IS),0.,0.,0.,0.,0.,0.) 14354000
+ NT(4,NTIN)=NT(4,NTIN)+NREC 14355000
+C FINE LOOPS............................................. 14356000
+ 20 CONTINUE 14357000
+ 10 CONTINUE 14358000
+ RETURN 14359000
+ 555 WRITE(NP,9555) NTI 14360000
+ WRITE(NO,9555) NTI 14361000
+ 9555 FORMAT(' !!! WARNING !! NO FILE MCC2F4 TO BE UPDATED FOUND ON' 14362000
+ 1 ,' UNIT:',I4) 14363000
+ RETURN 14364000
+ END 14365000
+ SUBROUTINE P4MCF5(NTIN,NTOUT,NMAT,NGROUP, 14366000
+ 1 ETOP,DELTAU,NOM,NREC3,MA,A) 14367000
+C **************************************************************** 14368000
+C 14369000
+C FILE MCC2F5 OF MC2-II 14370000
+C 14371000
+C SOLO UNA ANELASTICA VIENE PRODOTTA, IL RESTO NON VIENE 14372000
+C REALMENTE SMONTATO MA SE NE FA SOLO L'INDICE 14373000
+C 14374000
+C **************************************************************** 14375000
+C 14376000
+ DIMENSION NOM(NMAT),NREC3(5,NMAT),A(MA) 14377000
+ DIMENSION NFLG(10),ANMT(10) 14378000
+ DATA ANMT/0.,2.,18.,102.,103.,104.,105.,106.,107.,1./ 14379000
+C 14380000
+C COMMONS: 14381000
+ COMMON/FILES/NT(4,99) 14382000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 14383000
+ COMMON/INDX1/AINDX1(40,200) 14384000
+ COMMON/DIM/M1,M2,M3,IND 14385000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14386000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14387000
+C 14388000
+C 14389000
+ LTOT=NGROUP+5 14390000
+ NGR2=LTOT+NGROUP-1 14391000
+C FILE INPUT 14392000
+ NTI=NT(1,NTIN) 14393000
+ CALL REW(NTIN) 14394000
+C FILE DI OUTPUT 14395000
+ NTO=NT(1,NTOUT) 14396000
+ CALL POSL(NTOUT) 14397000
+ IF(MA.LT.NGROUP+LTOT) CALL ERR(8HP4MCF5 ,0) 14398000
+ WRITE(NP,1000) NTI 14399000
+ 1000 FORMAT(' SMOOTH CROSS SECTION FILE MCC2F5 READ ON UNIT:',I5) 14400000
+ DO 10 IM=1,NMAT 14401000
+ CALL RIEMP(0,NGROUP,A(LTOT)) 14402000
+ READ(NTI,END=555) NOM1,NOM2 14403000
+ READ(NTI) NFLG,A0,A1,A2,A3 14404000
+ NT(4,NTIN)=NT(4,NTIN)+2 14405000
+C 14406000
+ IF(A0.EQ.0.AND.A1.EQ.0..AND.A2.EQ.0..AND.A3.EQ.0.) GO TO 100 14407000
+ IND=IND+1 14408000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14409000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,IM)),-5.,18.,0., 14410000
+ 1NREC3(1,IM),NOM(IM*2-1),NOM(IM*2),NOM1,NOM2,0.,5.,2.,11. 14411000
+ 2 ,0.,0.,0.,0.,0.,0.,FLOAT(NGROUP),ETOP,DELTAU,0.,0., 14412000
+ 3 5.,0.,1.,0.,0.,0.,0.,0.,0.,A0,A1,A2,A3,0.,0.,0.) 14413000
+C 14414000
+ 100 DO 20 IR=2,10 14415000
+ NFL=NFLG(IR) 14416000
+ IF(NFL.LE.0) GO TO 20 14417000
+ READ(NTI) (A(J),J=1,NFL) 14418000
+ WRITE(NP,2000) NOM1,NOM2,ANMT(IR),NFL 14419000
+ 2000 FORMAT(1X,2A4,' MT=',F4.0,' READ FROM GROUP 1 TO GROUP:',I5) 14420000
+ IND=IND+1 14421000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14422000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,IM)),-5.,ANMT(IR), 14423000
+ 1 0.,NREC3(1,IM),NOM(IM*2-1),NOM(IM*2),NOM1,NOM2,0.,5.,3.,0., 14424000
+ 2 FLOAT(NTI),FLOAT(NTIN),FLOAT(NT(4,NTIN)),1.,0.,0., 14425000
+ 3 FLOAT(NGROUP),ETOP,DELTAU,FLOAT(IR-1),FLOAT(NFL),1.,0.,0.,1., 14426000
+ 4 0.,0.,0., 0.,0.,0., 0.,0.,0., 0.,0.,0.) 14427000
+ NT(4,NTIN)=NT(4,NTIN)+1 14428000
+C 14429000
+ IF(IR.EQ.10) GO TO 200 14430000
+ DO 30 I=1,NFL 14431000
+ 30 A(LTOT+I-1)=A(LTOT+I-1)+A(I) 14432000
+ GO TO 20 14433000
+C FA UNA NELASTICA , DALLA TOTAL MENO TUTTE LE SUE COMPONENTI, DAT14434000
+C CHE P3 RICREALA TOTAL PER SOMMA ( COSI QUESTA ANELASTICA VIENE A14435000
+C CONTENERE TUTTO QUELLO CHE NON E' NELLE PRIME 7 REAZIONI) 14436000
+ 200 DO 40 I=1,NFL 14437000
+ 40 A(LTOT+I-1)=A(I)-A(LTOT+I-1) 14438000
+ WRITE(NTO) (A(J),J=LTOT,NGR2) 14439000
+ WRITE(NP,3000) NOM1,NOM2 14440000
+ 3000 FORMAT(1X,2A4,' ANELASTIC CROSS SECTION GENERATED') 14441000
+ IND=IND+1 14442000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14443000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,IM)),-5.,4.,0., 14444000
+ 1 NREC3(1,IM),NOM(IM*2-1),NOM(IM*2),NOM1,NOM2,0.,5.,3.,0., 14445000
+ 2 FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(3,NTOUT)),1.,0.,0., 14446000
+ 3 FLOAT(NGROUP),ETOP,DELTAU,11.,FLOAT(NGROUP),1.,0.,0.,1., 14447000
+ 4 0.,0.,0., 0.,0.,0., 0.,0.,0., 0.,0.,0.) 14448000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 14449000
+ NT(4,NTOUT)=NT(3,NTOUT) 14450000
+ 20 CONTINUE 14451000
+ 10 CONTINUE 14452000
+ RETURN 14453000
+ 555 WRITE(NP,9555) NTI 14454000
+ WRITE(NO,9555) NTI 14455000
+ 9555 FORMAT(' !!! WARNING !! FILE MCC2F5 TO BE UPDATED INCOMPLETE,' 14456000
+ 1 ,' UNIT:',I4) 14457000
+ RETURN 14458000
+ END 14459000
+ SUBROUTINE P4MCF6(NTIN,NTOUT,NMAT,NGROUP, 14460000
+ 1 ETOP,DELTAU,MMAT,NMAX,NOMI,NREC3,ANAME, 14461000
+ 2 NINEL,N2NTH,NLEVLS,N2NLVS,MAX1,MAX2,MAX3,MAX4, 14462000
+ 3 NSINK1,NSINK2,NUMREC,MAXREC,NRC1I,NRC1L,MA,A) 14463000
+C ************************************************************ 14464000
+C 14465000
+C FILE MCC2F6 : DISTRIBUZIONI ENERGETICHE REAZIONI DI 14466000
+C SCATTERING ANELASTICO ED N,2N 14467000
+C NRC1I : INIZIO DATI DI 1 NUCLIDE IN RECORD 1 DI F6 14468000
+C NRC1L : LUNGHEZZA DATI DI UN NUCLIDE IN RECORD 1 DI F6 14469000
+C 14470000
+C ************************************************************** 14471000
+C 14472000
+ DIMENSION NOMI(NMAT),AR2(14),NREC3(5,NMAT) 14473000
+ DIMENSION ANAME(MMAT),NINEL(MMAT),N2NTH(MMAT),NLEVLS(MMAT), 14474000
+ 1 MAX1(MMAT),MAX2(MMAT),MAX3(MMAT),MAX4(MMAT),NSINK1(MMAT), 14475000
+ 2 NSINK2(MMAT),NUMREC(NMAX) 14476000
+ DIMENSION A(MA),NRC1I(MMAT),NRC1L(MMAT),N2NLVS(MMAT) 14477000
+C 14478000
+C 14479000
+C COMMONS: 14480000
+ COMMON /OPZIO/OPZ(4,8,10) 14481000
+ EQUIVALENCE (OPZ(4,6,1),STMP),(NT(1,6),NO),(NT(1,11),NP) 14482000
+ COMMON/FILES/NT(4,99) 14483000
+ COMMON/INDX1/AINDX1(40,200) 14484000
+ COMMON/DIM/M1,M2,M3,IND 14485000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14486000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14487000
+C 14488000
+C FILE INPUT 14489000
+ NTI=NT(1,NTIN) 14490000
+ CALL REW(NTIN) 14491000
+C FILE DI OUTPUT 14492000
+ NTO=NT(1,NTOUT) 14493000
+ CALL POSL(NTOUT) 14494000
+ WRITE(NP,1000) NTI 14495000
+ 1000 FORMAT(' ENERGY DISTRIBUTION FILE MCC2F6 READ FROM UNIT:',I5) 14496000
+C LOOP SU MATERIALI ......................................... 14497000
+C CALCOLA PER OGNI MATERIALE LE DIMENSIONI DEL RECORD 1,2,3 14498000
+C CALCOLA POSIZIONE DEI DATI DEI VARI NUCLIDI NEL RECORD 1 14499000
+ NRC1I(1)=1 14500000
+ NRC1L(1)=NLEVLS(1)+MAX1(1)+N2NLVS(1)+NSINK1(1)+NSINK2(1) 14501000
+ IF(MMAT.LT.2) GO TO 55 14502000
+ DO 5 I=2,MMAT 14503000
+ NRC1L(I)=NLEVLS(I)+MAX1(I)+N2NLVS(I)+NSINK1(I)+NSINK2(I) 14504000
+ NRC1I(I)=NRC1I(I-1)+NRC1L(I-1) 14505000
+ 5 CONTINUE 14506000
+ 55 NRC1=NRC1I(MMAT)+NRC1L(MMAT) -1 14507000
+ IF(NRC1+MAXREC+1.GT.MA) CALL ERR(8HP4MCF6 ,0) 14508000
+ READ(NTI,END=555) (A(J),J=1,NRC1) 14509000
+ NT(4,NTIN)=NT(4,NTIN)+1 14510000
+ LIMIT=NRC1 +1 14511000
+C IL RECORD 1 LO TENGO IN MEMORIA CON TUTTI I MATERIALI 14512000
+C LOOP SUI NUCLIDI ( LETTURA DI UN NUCLIDE ) ............... 14513000
+ DO 10 IM=1,MMAT 14514000
+ NUMREM=2 14515000
+ MAXREM=0 14516000
+C LETTURA DI 1 MATERALE 14517000
+C RICERCA DEL MATERIALE : I=POSIZ DEL MAT IN F1 14518000
+ I=IDENT8(NMAT,ANAME(IM*2-1),NOMI) 14519000
+C LEGGE TUTTO FINO AL MATERIALE IN QUESTIONE 14520000
+C POSIZIONE AD INIZIO LOOP SUI GRUPPI 14521000
+ CALL REW(NTIN) 14522000
+ READ(NTI) 14523000
+ NT(4,NTIN)=NT(4,NTIN)+1 14524000
+C SCRIVE RECORD DEL MATERIALE (RECORD 5 DI MCC2F1) 14525000
+ WRITE(NTO) ANAME(IM*2-1),ANAME(IM*2),NINEL(IM),N2NTH(IM), 14526000
+ 1 NLEVLS(IM),N2NLVS(IM), 14527000
+ 1 MAX1(IM),MAX2(IM),MAX3(IM),MAX4(IM),NSINK1(IM),NSINK2(IM), 14528000
+ 2 NUMREC,MAXREC 14529000
+C SCRIVE RECORD 1 DI F6 14530000
+ N1=NRC1I(IM) 14531000
+ N2=N1+NRC1L(IM)-1 14532000
+ WRITE(NTO) NRC1L(IM),(A(J),J=N1,N2) 14533000
+ IF(MAXREM.LT.NRC1L(IM)) MAXREM=NRC1L(IM) 14534000
+ NT3OU=2 14535000
+ WRITE(NP,9000) ANAME(IM*2-1),ANAME(IM*2),NINEL(IM),N2NTH(IM), 14536000
+ 1 NLEVLS(IM),N2NLVS(IM),MAX1(IM),MAX3(IM),MAX2(IM),MAX4(IM) 14537000
+ 9000 FORMAT(1X,2A4,' N2N,ANEL GROUPS:',I4,I5,' LEVELS:',2I3, 14538000
+ 1 ' EVAP.SPEC.:',2I3,' TAB.:',2I2) 14539000
+ IF(STMP.GT.10.) 14540000
+ 1WRITE(NO,1100) ANAME(IM*2-1),ANAME(IM*2),NINEL(IM),N2NTH(IM), 14541000
+ 2 NLEVLS(IM),N2NLVS(IM), 14542000
+ 3 MAX1(IM),MAX2(IM),MAX3(IM),MAX4(IM),NSINK1(IM),NSINK2(IM), 14543000
+ 4 MAXREC,NUMREC 14544000
+ 1100 FORMAT(1X,2A4,' PARAMETERS: NINEL, N2NTH,NLELVS,N2NLVS, MAX1,' 14545000
+ 1,'MAX2 MAX3 , MAX4 ,NSINK1,NSINK2, MAXREC, NUMREC:'/(20X,12I7)) 14546000
+ IF(STMP.GT.100.) WRITE(NO,2000) (A(J),J=N1,N2) 14547000
+ 2000 FORMAT(' RECORD 1 READ:'/(1X,10E12.5)) 14548000
+ DO 15 IG=1,NMAX 14549000
+C SE IL GRUPPO E' SOTTO SOGLIA NON VIENE SCRITTO E NON VIENE LETTO 14550000
+C ( NON C'E' PIU NULLA SU MCC2F6 PER IL MATERIALE ) MCC2F6 VIENE 14551000
+C POI RIAVVOLTO PER LEGGERCI IL NUCLIDE SUCCESSIVO 14552000
+C 14553000
+ IF(NINEL(IM).LT.IG.AND.N2NTH(IM).LT.IG) GOTO 160 14554000
+C 14555000
+C RECORD 2 14556000
+C 14557000
+C SUMJ LEGGE IL RECORD 2 DEL GRUPPO. PER IL NUCLIDE IN QUESTIONE 14558000
+C CALCOLA I VALORI DEI PARAMETRI SIGIN,SIGN2N,...N2NLV 14559000
+C CALCOLA IL NUMERO DI PAROLE DEL RECORD 3 E 4 14560000
+C 14561000
+ CALL SUMJ(IG,IM,NTI,NR,NWDS,NPDS3,NPDS4,NWDS3,NWDS4,NFLAG4, 14562000
+ 1 NFLAG3, 14563000
+ 1 A(LIMIT),MMAT,SIGIN,SIGN2N,NINEVP, 14564000
+ 2 NINTAB,N2NEVP,N2NTAB,NSTRT1,NEND1,NSTRT2,NEND2,KT1,KT2,NLVS, 14565000
+ 3 N2NLV,NINEL,N2NTH,NLEVLS,N2NLVS,MAX1,MAX2,MAX3,MAX4) 14566000
+ NT(4,NTIN)=NT(4,NTIN)+1 14567000
+C 14568000
+C IN A(NWDS) C'E' IL RECORD 2 ED ANCHE IN SIGIN,SIGN2N ECC. 14569000
+C 14570000
+C NR : PAROLE DEL RECORD 2 PRECEDENTI IL NUCLIDE 14571000
+C NWDS: PAROLE DEL RECORD 2 DEL NUCLIDE 14572000
+C NWDS3: PAROLE RECORD 3 DEL MAT 14573000
+C NPDS3: PAROLE DEL RECORD 3 PRECEDENTI IL MAT 14574000
+C NWDS4,NPDS4: IDEM PER RECORD 4, NR,NWDS: IDEM PER RECORD 2 14575000
+C NFLAG4: SEGNALA SE ESISTE UN RECORD 4 NEL GRUPPO, ANCHE SE 14576000
+C IL NUCLIDE E I NUCLIDI PRECEDENTI NON HANNO RECORD 4 14577000
+C NFLAG3 ANALOGAMENTE SEGNALA L'ESISTENZA DI UN RECORD 3 14578000
+C 14579000
+C 14580000
+ N1=NR+LIMIT 14581000
+ N2=N1+NWDS-1 14582000
+ WRITE(NTO) NWDS,(A(J),J=N1,N2) 14583000
+ NT3OU=NT3OU+1 14584000
+ IF(STMP.LT.101) GO TO 101 14585000
+ WRITE(NO,8887) SIGIN,SIGN2N,NINEVP,NINTAB,N2NEVP,N2NTAB, 14586000
+ 1 NSTRT1,NEND1,NSTRT2,NEND2,KT1,KT2,NLVS,N2NLV 14587000
+ 8887 FORMAT(' REC 2 :SIGIN,SIGN2N:',2E12.5/ 14588000
+ 1' NINEVP,NINTAB,N2NEVP,N2NTAB,NSTRT1,NEND1,NSTRT2,NEND2,' 14589000
+ 2,'KT1,KT2,NLVS,N2NLV'/1X,12I6) 14590000
+C IF(IG.LE.NINEL(IM).AND.IG.LE.N2NTH(IM)) GO TO 102 14591000
+C WRITE(NO,3000) (A(J),J=N1,N2) 14592000
+C3000 FORMAT(' RECORD 2 READ:',E12.5,12I5) 14593000
+C GOTO101 14594000
+C102 WRITE(NO,4000) (A(J),J=N1,N2) 14595000
+C4000 FORMAT(' RECORD 2 READ:',2E12.5,12I5) 14596000
+ 101 CONTINUE 14597000
+C 14598000
+C RECORD 3 14599000
+ N1=NPDS3+LIMIT 14600000
+ N2=N1+NWDS3-1 14601000
+ IF(NWDS3.LE.0) GO TO 105 14602000
+ READ(NTI) (A(J),J=LIMIT,N2) 14603000
+ NT(4,NTIN)=NT(4,NTIN)+1 14604000
+ WRITE(NTO) NWDS3,(A(J),J=N1,N2) 14605000
+ IF(NWDS3.GT.MAXREM) MAXREM=NWDS3 14606000
+ NT3OU=NT3OU+1 14607000
+ IF(STMP.GT.200) WRITE(NO,5000) (A(J),J=N1,N2) 14608000
+ 5000 FORMAT(' RECORD 3 READ:'/(1X,10E12.5)) 14609000
+ GO TO 106 14610000
+ 105 WRITE(NTO) NWDS3,DUM,DUM,DUM 14611000
+ NT3OU=NT3OU+1 14612000
+C IL RECORD 3 VA SCRITTO IN TUTTI I MODI,COSI' FA P2 14613000
+C P3 LEGGE SEMPRE UN RECORD 3 ANCHE SE VUOTO. 14614000
+C E' PIU' SEMPLICE LEGGERE UN RECORD VUOTO CHE 14615000
+C ESAMINARE IN P3 SE ESISTE O NO 14616000
+C 14617000
+C SUL FILE DI INPUT, SE C'E', 14618000
+C IL RECORD 3 VA SALTATO IN TUTTI I MODI ANCHE SE IL NUCIDE IM 14619000
+C O NUCLIDI PRECEDENTI NON CI SONO 14620000
+ IF(NFLAG3.LE.0.AND.NPDS3.LE.0) GO TO 106 14621000
+ READ(NTI) DUM 14622000
+ NT(4,NTIN)=NT(4,NTIN)+1 14623000
+C 14624000
+C RECORD 4 14625000
+ 106 N1=NPDS4+LIMIT 14626000
+ N2=N1+NWDS4-1 14627000
+ IF(NWDS4.LE.0) GO TO 150 14628000
+ READ(NTI) (A(J),J=LIMIT,N2) 14629000
+ NT(4,NTIN)=NT(4,NTIN)+1 14630000
+ WRITE(NTO) NWDS4,(A(J),J=N1,N2) 14631000
+ NUMREM=3 14632000
+ IF(NWDS4.GT.MAXREM) MAXREM=NWDS4 14633000
+ NT3OU=NT3OU+1 14634000
+ IF(STMP.GT.300) WRITE(NO,6000) (A(J),J=N1,N2) 14635000
+ 6000 FORMAT(' RECORD 4 READ:'/(1X,10E12.5)) 14636000
+ GOTO 15 14637000
+C 14638000
+ 150 CONTINUE 14639000
+C SALTA IL RECORD 4 DEL GRUPPO SE ESISTE E NON E' STATO LETTO 14640000
+ IF(NFLAG4.LE.0.AND.NPDS4.LE.0) GO TO 15 14641000
+ READ(NTI) DUM 14642000
+ NT(4,NTIN)=NT(4,NTIN)+1 14643000
+C 14644000
+ 15 CONTINUE 14645000
+C FINE LOOP SUI GRUPPI .................................. 14646000
+ 160 NMAXIM=MAX0(NINEL(IM),N2NTH(IM)) 14647000
+C RIEMPIE INDICE 14648000
+ IND=IND+1 14649000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14650000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,I)),-6.,0.,0., 14651000
+ 1 NREC3(1,I),NOMI(2*I-1),NOMI(2*I),ANAME(2*IM-1),ANAME(2*IM),0., 14652000
+ 2 6.,0.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(3,NTOUT)), 14653000
+ 3 FLOAT(NT3OU),FLOAT(MAXREM),0.,FLOAT(NGROUP),ETOP,DELTAU,0., 14654000
+ 4 FLOAT(NINEL(IM)),FLOAT(N2NTH(IM)),FLOAT(NLEVLS(IM)), 14655000
+ 4 FLOAT(N2NLVS(IM)),FLOAT(MAX1(IM)),FLOAT(MAX2(IM)), 14656000
+ 4 FLOAT(MAX3(IM)),FLOAT(MAX4(IM)),FLOAT(NSINK1(IM)), 14657000
+ 5 FLOAT(NSINK2(IM)),FLOAT(NUMREM),FLOAT(MAXREM),FLOAT(NMAXIM), 14658000
+ 6 0.,0.,0.,0.) 14659000
+C 14660000
+ NT(3,NTOUT)=NT(3,NTOUT)+NT3OU 14661000
+ NT(4,NTOUT)=NT(3,NTOUT) 14662000
+ 10 CONTINUE 14663000
+C FINE LOP SUI NUCLIDI ......................................... 14664000
+ RETURN 14665000
+ 555 WRITE(NP,9555) NTI 14666000
+ WRITE(NO,9555) NTI 14667000
+ 9555 FORMAT(' !!! WARNING !! FILE MCC2F6 TO BE UPDATED NOT FOUND!' 14668000
+ 1 ,' UNIT:',I4) 14669000
+ RETURN 14670000
+ END 14671000
+ SUBROUTINE SUMJ(IG,IM,NTI,NR,NWDS,NPDS3,NPDS4,NWDS3,NWDS4,NFLAG4, 14672000
+ 1 NFLAG3, 14673000
+ 1 NA,MMAT,SIGIN,SIGN2N,NINEVP,NINTAB,N2NEVP, 14674000
+ 1 N2NTAB,NSTRT1,NEND1,NSTRT2,NEND2,KT1,KT2,NLVS,N2NLV,NINEL,N2NTH, 14675000
+ 2 NLEVLS,N2NLVS,MAX1,MAX2,MAX3,MAX4) 14676000
+C *************************************************************** 14677000
+C LEGGE IL RECORD 2 DI F6 CALCOLANDOSI QUANTO E' LUNGA LA PARTE 14678000
+C PRIMA DEL MATERIALE DA LEGGERE. IL RECORD E' MESSO IN A(NWDS) 14679000
+C E NEI SIGIN,SIGN2N ECC. 14680000
+C NWDS3,NWDS4,NPDS3,NPDS4: DATI DI LUNGHEZZA RECORD 3 E 4 14681000
+C *****************************************************************14682000
+C 14683000
+ DIMENSION NINEL(MMAT),N2NTH(MMAT),NLEVLS(MMAT),N2NLVS(MMAT) 14684000
+ DIMENSION MAX1(MMAT),MAX2(MMAT),MAX3(MMAT),MAX4(MMAT) 14685000
+ DIMENSION NA(NWDS) 14686000
+ INTEGER SIGIN,SIGN2N 14687000
+C 14688000
+ NR=0 14689000
+ IM1=IM-1 14690000
+ IF(IM1.LE.0) GO TO 500 14691000
+C CALCOLO PAROLE PRECEDENTI IL PRIMO NUCLIDE NEL RECORD 2 14692000
+ DO 20 IMM=1,IM1 14693000
+ IF(NINEL(IMM).LT.IG) GO TO 300 14694000
+ NR=NR+1 14695000
+ IF(MAX1(IMM).GT.0) NR=NR+1 14696000
+ IF(MAX2(IMM).GT.0) NR=NR+4 14697000
+ IF(NLEVLS(IMM).GT.0) NR=NR+1 14698000
+ 300 IF(N2NTH(IMM).LT.IG) GO TO 400 14699000
+ NR=NR+1 14700000
+ IF(MAX3(IMM).GT.0) NR=NR+1 14701000
+ IF(MAX4(IMM).GT.0) NR=NR+4 14702000
+ IF(N2NLVS(IMM).GT.0) NR=NR+1 14703000
+ 400 CONTINUE 14704000
+ 20 CONTINUE 14705000
+ 500 CONTINUE 14706000
+C FINE DEL CALCOLO DEI PRECEDENTI 14707000
+C CALCOLO DELLE PAROLE DEL RECORD 2 DEL NUCLIDE 14708000
+ NWDS=0 14709000
+ IF(NINEL(IM).LT.IG) GO TO 600 14710000
+ NWDS=NWDS+1 14711000
+ IF(MAX1(IM).GT.0) NWDS=NWDS+1 14712000
+ IF(MAX2(IM).GT.0) NWDS=NWDS+4 14713000
+ IF(NLEVLS(IM).GT.0) NWDS=NWDS+1 14714000
+ 600 IF(N2NTH(IM).LT.IG) GO TO 700 14715000
+ NWDS=NWDS+1 14716000
+ IF(MAX3(IM).GT.0) NWDS=NWDS+1 14717000
+ IF(MAX4(IM).GT.0) NWDS=NWDS+4 14718000
+ IF(N2NLVS(IM).GT.0) NWDS=NWDS+1 14719000
+ 700 CONTINUE 14720000
+C CALCOLO PAROLE SUCCESSIVE AL NUCLIDE NEL RECORD 2 14721000
+ NRDOPO=0 14722000
+ IM2=IM+1 14723000
+ IF(IM2.GT.MMAT) GO TO 750 14724000
+ DO 25 IMM=IM2,MMAT 14725000
+ IF(NINEL(IMM).LT.IG) GO TO 350 14726000
+ NRDOPO=NRDOPO+1 14727000
+ IF(MAX1(IMM).GT.0) NRDOPO=NRDOPO+1 14728000
+ IF(MAX2(IMM).GT.0) NRDOPO=NRDOPO+4 14729000
+ IF(NLEVLS(IMM).GT.0) NRDOPO=NRDOPO+1 14730000
+ 350 IF(N2NTH(IMM).LT.IG) GO TO 450 14731000
+ NRDOPO=NRDOPO+1 14732000
+ IF(MAX3(IMM).GT.0) NRDOPO=NRDOPO+1 14733000
+ IF(MAX4(IMM).GT.0) NRDOPO=NRDOPO+4 14734000
+ IF(N2NLVS(IMM).GT.0) NRDOPO=NRDOPO+1 14735000
+ 450 CONTINUE 14736000
+ 25 CONTINUE 14737000
+ 750 CONTINUE 14738000
+ N1=NR+NWDS+NRDOPO 14739000
+ IF(N1.LE.0) GO TO 800 14740000
+ READ(NTI) (NA(J),J=1,N1) 14741000
+ 800 CONTINUE 14742000
+C 14743000
+C CALCOLO DELLE PAROLE PRECEDENTI IL NUCLIDE NEI RECORD 3 E 4 14744000
+ NPDS3=0 14745000
+ NPDS4=0 14746000
+ J=1 14747000
+ IF(NR.LE.0) GO TO 850 14748000
+ DO 85 IMM=1,IM1 14749000
+C CERCA NINEVP DEL NUCLIDE IMM 14750000
+ IF(NINEL(IMM).GE.IG) J=J+1 14751000
+ IF(N2NTH(IMM).GE.IG) J=J+1 14752000
+ IF(NINEL(IMM).LT.IG.OR.MAX1(IMM).LE.0) GO TO 852 14753000
+ NPDS3=NPDS3+NA(J)*2 14754000
+ J=J+1 14755000
+C CERCA N2NEVP DEL NUCLIDE IMM 14756000
+ 852 IF(NINEL(IMM).GE.IG.AND.MAX2(IMM).GT.0) J=J+1 14757000
+ IF(N2NTH(IMM).LT.IG.OR.MAX3(IMM).LE.0) GO TO 854 14758000
+ NPDS3=NPDS3+NA(J)*2 14759000
+ J=J+1 14760000
+C CERCA NSTRT1,NEND1 DEL NUCLIDE IMM 14761000
+ 854 IF(N2NTH(IMM).GE.IG.AND.MAX4(IMM).GT.0) J=J+1 14762000
+ IF(NINEL(IMM).LT.IG.OR.MAX2(IMM).LE.0) GO TO 856 14763000
+ NPDS4=NPDS4+NA(J+1)-NA(J)+1 14764000
+ J=J+2 14765000
+C CERCA NSTRT2,NEND2 DEL NUCLIDE IMM 14766000
+ 856 IF(N2NTH(IMM).LT.IG.OR.MAX4(IMM).LE.0) GO TO 857 14767000
+ NPDS4=NPDS4+NA(J+1)-NA(J)+1 14768000
+ J=J+2 14769000
+C CERCA NLVS DEL NUCLIDE IMM 14770000
+ 857 IF(NINEL(IMM).GE.IG.AND.MAX2(IMM).GT.0) J=J+1 14771000
+ IF(N2NTH(IMM).GE.IG.AND.MAX4(IMM).GT.0) J=J+1 14772000
+ IF(NINEL(IMM).LT.IG.OR.NLEVLS(IMM).LE.0) GO TO860 14773000
+ NPDS3=NPDS3+NA(J)*2 14774000
+ J=J+1 14775000
+C CERCA N2NLV DEL NUCLIDE IN QUESTIONE 14776000
+ 860 IF(N2NTH(IMM).LT.IG.OR.N2NLVS(IMM).LE.0) GO TO 85 14777000
+ NPDS3=NPDS3+NA(J) 14778000
+ J=J+1 14779000
+ 85 CONTINUE 14780000
+ 850 CONTINUE 14781000
+C 14782000
+C FINE CALCOLO NUMERO PAROLE PRECEDENTI IL NUCLIDE NEL REC3,414783000
+C 14784000
+C QUI ASSEGNA GLI SCALARI 14785000
+ SIGIN=0 14786000
+ SIGN2N=0 14787000
+ NINEVP=0 14788000
+ NINTAB=0 14789000
+ N2NEVP=0 14790000
+ N2NTAB=0 14791000
+ NSTRT1=0 14792000
+ NEND1=0 14793000
+ NSTRT2=0 14794000
+ NEND2=0 14795000
+ KT1=0 14796000
+ KT2=0 14797000
+ NLVS=0 14798000
+ N2NLV=0 14799000
+C 14800000
+ IF(J.NE.NR+1) CALL ERR(8HSUMJ ,900) 14801000
+ IF(NINEL(IM).LT.IG) GO TO 900 14802000
+ SIGIN=NA(J) 14803000
+ J=J+1 14804000
+ 900 IF(N2NTH(IM).LT.IG) GO TO 910 14805000
+ SIGN2N=NA(J) 14806000
+ J=J+1 14807000
+ 910 IF(NINEL(IM).LT.IG.OR.MAX1(IM).LE.0) GO TO 920 14808000
+ NINEVP=NA(J) 14809000
+ J=J+1 14810000
+ 920 IF(NINEL(IM).LT.IG.OR.MAX2(IM).LE.0) GO TO 930 14811000
+ NINTAB=NA(J) 14812000
+ J=J+1 14813000
+ 930 IF(N2NTH(IM).LT.IG.OR.MAX3(IM).LE.0) GO TO 940 14814000
+ N2NEVP=NA(J) 14815000
+ J=J+1 14816000
+ 940 IF(N2NTH(IM).LT.IG.OR.MAX4(IM).LE.0) GO TO 950 14817000
+ N2NTAB=NA(J) 14818000
+ J=J+1 14819000
+ 950 IF(NINEL(IM).LT.IG.OR.MAX2(IM).LE.0) GO TO 960 14820000
+ NSTRT1=NA(J) 14821000
+ J=J+1 14822000
+ NEND1=NA(J) 14823000
+ J=J+1 14824000
+ 960 IF(N2NTH(IM).LT.IG.OR.MAX4(IM).LE.0) GO TO 970 14825000
+ NSTRT2=NA(J) 14826000
+ J=J+1 14827000
+ NEND2=NA(J) 14828000
+ J=J+1 14829000
+ 970 IF(NINEL(IM).LT.IG.OR.MAX2(IM).LE.0) GO TO 980 14830000
+ KT1=NA(J) 14831000
+ J=J+1 14832000
+ 980 IF(N2NTH(IM).LT.IG.OR.MAX4(IM).LE.0) GO TO 990 14833000
+ KT2=NA(J) 14834000
+ J=J+1 14835000
+ 990 IF(NINEL(IM).LT.IG.OR.NLEVLS(IM).LE.0) GO TO 995 14836000
+ NLVS=NA(J) 14837000
+ J=J+1 14838000
+ 995 IF(N2NTH(IM).LT.IG.OR.N2NLVS(IM).LE.0) GO TO 996 14839000
+ N2NLV=NA(J) 14840000
+ J=J+1 14841000
+C 14842000
+ 996 NWDS3=2*(N2NEVP+NINEVP+NLVS)+N2NLV 14843000
+ NWDS4=0 14844000
+ IF(NINTAB.GT.0) NWDS4=NWDS4+(NEND1-NSTRT1+1) 14845000
+ IF(N2NTAB.GT.0) NWDS4=NWDS4+(NEND2-NSTRT2+1) 14846000
+C 14847000
+C IL CONTROLLO SU NINTAB,N2NTAB NON SEMPRE SI TROVA. IN MC214848000
+C NON ESISTE. PER CUI DEVE ESSERE NEND1-NSTRT1=-1 14849000
+C 14850000
+ NFLAG3=0 14851000
+ NFLAG4=0 14852000
+C SOLO NEL CASO IL RECORD 4 SIA COSTITUITO DA DATI DI NUCLIDI 14853000
+C SUCCESSIVI AL IMM ;LA SUA LETTURA VERREBBE SALTATA SE NON SI 14854000
+C ATTIVA NFLAG4 14855000
+C IDEM PER RECORD 3 CON NFLAG3 14856000
+ IF(IM2.GT.MMAT.OR.NRDOPO.LE.0) RETURN 14857000
+ DO 95 IMM=IM2,MMAT 14858000
+C CERCA NINEVP DEL NUCLIDE IMM 14859000
+ IF(NINEL(IMM).GE.IG) J=J+1 14860000
+ IF(N2NTH(IMM).GE.IG) J=J+1 14861000
+ IF(NINEL(IMM).LT.IG.OR.MAX1(IMM).LE.0) GO TO 952 14862000
+ NFLAG3=NFLAG3+NA(J)*2 14863000
+ J=J+1 14864000
+C CERCA N2NEVP DEL NUCLIDE IMM 14865000
+ 952 IF(NINEL(IMM).GE.IG.AND.MAX2(IMM).GT.0) J=J+1 14866000
+ IF(N2NTH(IMM).LT.IG.OR.MAX3(IMM).LE.0) GO TO 954 14867000
+ NFLAG3=NFLAG3+NA(J)*2 14868000
+ J=J+1 14869000
+C CERCA NSTRT1,NEND1 DEL NUCLIDE IMM 14870000
+ 954 IF(N2NTH(IMM).GE.IG.AND.MAX4(IMM).GT.0) J=J+1 14871000
+ IF(NINEL(IMM).LT.IG.OR.MAX2(IMM).LE.0) GO TO 956 14872000
+ NFLAG4=NFLAG4+NA(J+1)-NA(J)+1 14873000
+ J=J+2 14874000
+C CERCA NSTRT2,NEND2 DEL NUCLIDE IMM 14875000
+ 956 IF(N2NTH(IMM).LT.IG.OR.MAX4(IMM).LE.0) GO TO 957 14876000
+ NFLAG4=NFLAG4+NA(J+1)-NA(J)+1 14877000
+ J=J+2 14878000
+C CERCA NLVS DEL NUCLIDE IMM 14879000
+ 957 IF(NINEL(IMM).GE.IG.AND.MAX2(IMM).GT.0) J=J+1 14880000
+ IF(N2NTH(IMM).GE.IG.AND.MAX4(IMM).GT.0) J=J+1 14881000
+ IF(NINEL(IMM).LT.IG.OR.NLEVLS(IMM).LE.0) GO TO 958 14882000
+ NFLAG3=NFLAG3+NA(J)*2 14883000
+ J=J+1 14884000
+C CERCA N2NLV DEL NUCLIDE IN QUESTIONE 14885000
+ 958 IF(N2NTH(IMM).LT.IG.OR.N2NLVS(IMM).LE.0) GO TO 95 14886000
+ NFLAG3=NFLAG3+NA(J) 14887000
+ J=J+1 14888000
+ 95 CONTINUE 14889000
+ RETURN 14890000
+ END 14891000
+ SUBROUTINE P4MCF7(NTIN,NTOUT,NMAT,NGROUP,MSORS, 14892000
+ 1ETOP,DELTAU,NOMI,NREC3,NAM,ICHI,NUMNU,KT,MA,A) 14893000
+C ************************************************************** 14894000
+C 14895000
+C READS FILE MCC2F7 OF MC2-II 14896000
+C 14897000
+C ********************************************************* 14898000
+C 14899000
+ DIMENSION NAM(MSORS),ICHI(MSORS),NOMI(NMAT),NREC3(5,NMAT),A(MA) 14900000
+ DIMENSION NUMNU(NMAT),KT(NMAT) 14901000
+C 14902000
+C COMMONS: 14903000
+ COMMON/FILES/NT(4,99) 14904000
+ COMMON/INDX1/AINDX1(40,200) 14905000
+ COMMON/COMM/C,IC(6),AC(4) 14906000
+ COMMON/DIM/M1,M2,M3,IND 14907000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14908000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14909000
+ EQUIVALENCE (NO,NT(1,6)),(NP,NT(1,11)) 14910000
+C 14911000
+C FILE INPUT 14912000
+ NTI=NT(1,NTIN) 14913000
+ CALL REW(NTIN) 14914000
+C FILE DI OUTPUT 14915000
+ NTO=NT(1,NTOUT) 14916000
+ CALL POSL(NTOUT) 14917000
+C 14918000
+ N1=2*MSORS 14919000
+ READ(NTI,END=555) (NAM(J),J=1,N1) 14920000
+ READ(NTI) (ICHI(J),J=1,MSORS) 14921000
+ NT(4,NTIN)=NT(4,NTIN)+2 14922000
+ WRITE(NP,1000) NTI,(NAM(J),J=1,N1) 14923000
+ 1000 FORMAT(' SOURCE FILE READ FROM UNIT:',I5/(10X,' SOURCES:',10A4)) 14924000
+ DO 10 IM=1,MSORS 14925000
+ I=IDENT8(NMAT,NAM(IM*2-1),NOMI) 14926000
+ ICH=ICHI(IM) 14927000
+ N1=6*ICH 14928000
+ READ(NTI) (A(J),J=1,N1) 14929000
+ NT(4,NTIN)=NT(4,NTIN)+1 14930000
+ WRITE(NTO) (A(J),J=1,N1) 14931000
+ NT(3,NTOUT)=NT(3,NTOUT)+1 14932000
+ IND=IND+1 14933000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14934000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,I)),-7.,18., 14935000
+ 10.,NREC3(1,I),NOMI(2*I-1),NOMI(2*I),NAM(2*IM-1),NAM(2*IM), 14936000
+ 2 0.,7.,1.,0.,FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)), 14937000
+ 3 1.,FLOAT(ICH),0.,FLOAT(NGROUP),ETOP,DELTAU, 14938000
+ 4 0.,0.,0.,0.,0.,0.,0.,0.,0.,0. ,0.,0.,0.,0.,0.,0.,0.,0.) 14939000
+ NT(4,NTOUT)=NT(3,NTOUT) 14940000
+ 10 CONTINUE 14941000
+C 14942000
+C SECONDA PARTE COL NU TABULATO (NON LO SMONTA,NE FA UN INDICE)14943000
+C 14944000
+ READ(NTI) (NUMNU(J),J=1,NMAT),(KT(J),J=1,NMAT) 14945000
+ ANTCON=NT(4,NTIN) 14946000
+ NT(4,NTIN)=NT(4,NTIN)+1 14947000
+ DO 20 IM=1,NMAT 14948000
+ IF(NUMNU(IM).LE.1) GO TO 20 14949000
+ ANTCON=ANTCON+1. 14950000
+ ANUM=NUMNU(IM)*2 14951000
+ IND=IND+1 14952000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 14953000
+ CALL EMPIN(MIND11,AINDX1(1,IND), 14954000
+ 1 FLOAT(NREC3(3,IM)),-5.,18.,0.,NREC3(1,IM),NOMI(2*IM-1),NOMI(2*IM)14955000
+ 2, NOMI(2*IM-1),NOMI(2*IM),0., 14956000
+ 3 5.,2.,11.,FLOAT(NTI),FLOAT(NTIN),ANTCON,1.,ANUM, 14957000
+ 4 FLOAT(NUMNU(IM)),FLOAT(NGROUP),ETOP,DELTAU, 14958000
+ 5 0.,0.,5.,0.,2.,0.,FLOAT(KT(IM)),0., 14959000
+ 6 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.) 14960000
+C 14961000
+ 20 CONTINUE 14962000
+ RETURN 14963000
+ 555 WRITE(NP,9555) NTI 14964000
+ WRITE(NO,9555) NTI 14965000
+ 9555 FORMAT(' !!! WARNING !! FILE MCC2F7 TO BE UPDATED NOT FOUND!' 14966000
+ 1 ,' UNIT:',I4) 14967000
+ RETURN 14968000
+ END 14969000
+ SUBROUTINE P4MCF8(NTIN,NTOUT,NMAT,NGROUP,NPASS,NPL, 14970000
+ 1IPTMAX,ETOP,DELTAU,MANY1,NOMI,NREC3, 14971000
+ 2 LGTH,IR,IL,IPT,MA,A) 14972000
+C ********************************************************8 14973000
+C 14974000
+C READS FILE MCC2F8 : DISTRIBUZIONI ANGOLARI SCATT ELASTICO 14975000
+C 14976000
+C ************************************************************ 14977000
+C 14978000
+ REAL*8 NOME 14979000
+ DIMENSION NOMI(NMAT),NREC3(5,NMAT),A(MA),NOM11(2) 14980000
+ DIMENSION LGTH(NMAT),IR(NMAT),IL(NMAT),IPT(NPASS,NMAT) 14981000
+ EQUIVALENCE(NOME,NOM11(1)),(NT(1,6),NO),(NT(1,11),NP) 14982000
+ EQUIVALENCE (STMP,OPZ(4,8,1)) 14983000
+C 14984000
+C 14985000
+C COMMONS: 14986000
+ COMMON /OPZIO/OPZ(4,8,10) 14987000
+ COMMON/FILES/NT(4,99) 14988000
+ COMMON/INDX1/AINDX1(40,200) 14989000
+ COMMON/DIM/M1,M2,M3,IND 14990000
+ COMMON /DIMC/MMA,MINDX1,MINDX2,MMIX1,MMIX2,MOPZ1,MOPZ2,MOPZ3 14991000
+ 1,MM,MN1X,MN2X,MJX,MMX,MNT1,MNT2,MIND11,MIND12 14992000
+C 14993000
+C FILE INPUT 14994000
+ NTI=NT(1,NTIN) 14995000
+ CALL REW(NTIN) 14996000
+C FILE DI OUTPUT 14997000
+ NTO=NT(1,NTOUT) 14998000
+ CALL POSL(NTOUT) 14999000
+ READ(NTI,END=555) (LGTH(J),J=1,NMAT),(IR(J),J=1,NMAT), 15000000
+ 1 (IL(J),J=1,NMAT),((IPT(J,JJ),J=1,NPASS),JJ=1,NMAT) 15001000
+ NT(4,NTIN)=NT(4,NTIN)+1 15002000
+ WRITE(NP,1000) NTI 15003000
+ 1000 FORMAT(' ANGULAR DISTRIBUTION FILE MCC2F8 READ FROM UNIT:',I5) 15004000
+C .......................... LOOP SU ISOTOPI 15005000
+ DO 10 IM=1,NMAT 15006000
+ IRIM=IR(IM) 15007000
+ LGTHIM=LGTH(IM) 15008000
+ ILIM=IL(IM) 15009000
+ IPTMXM=MAXX(NPASS,IPT(1,IM)) 15010000
+C ISOTOPO IN F1 POSTO = ISOTOPO IN F8 (LO CERCO LO STE15011000
+ READ(NTI) NOME 15012000
+ I=IDENT8(NMAT,NOME,NOMI) 15013000
+ WRITE(NP,9010) NOME,I,LGTHIM,IRIM,ILIM 15014000
+ 9010 FORMAT(1X,A8,' NUMBER:',I3,' LENGTH (LGTH):',I5, 15015000
+ 1 ' INTERP. (IR):',I2,' BLOCKS (IL):',I4) 15016000
+ AMASS=AREAL(NREC3(1,I)) 15017000
+ Q=ALOG(((AMASS+1)/(AMASS-1))**2)/3. 15018000
+ N2IR=2*IRIM 15019000
+ IF(DELTAU.GE.Q) N3=N2IR+2*(54+IPTMXM*(NPL+6)+NPL) 15020000
+ IF(DELTAU.LT.Q) N3=N2IR+2*(50+IPTMXM*(NPL+2)+NPL) 15021000
+ IF(N3.GT.MA) CALL ERR(8HP4MCF8 ,0) 15022000
+ READ(NTI) (A(J),J=1,N3) 15023000
+ NT(4,NTIN)=NT(4,NTIN)+2 15024000
+ WRITE(NTO) LGTHIM,IRIM,ILIM,(IPT(J,IM),J=1,NPASS) 15025000
+ WRITE(NTO) NOME 15026000
+ WRITE(NTO) (A(J),J=1,N3) 15027000
+ WRITE(NO,1010) NOME 15028000
+ 1010 FORMAT(1X,2A4) 15029000
+ IF(STMP.LT.100) GO TO 101 15030000
+ WRITE(NO,2000) LGTHIM,IRIM,ILIM,(IPT(J,IM),J=1,NPASS) 15031000
+ 2000 FORMAT(' PARAMETERS: LGTH=',I5,' IR=',I5,' IL=',I5/ 15032000
+ 1 (5X,' IPT=',20I5)) 15033000
+ IF(STMP.LT.200) GO TO 101 15034000
+ WRITE(NO,3000) (A(J),J=1,N3,2) 15035000
+ 3000 FORMAT(' TLJ FACTORS DATA:'/(1X,10E12.5)) 15036000
+ 101 CONTINUE 15037000
+ NT3OU=3 15038000
+C 15039000
+ DO 20 IP=1,ILIM 15040000
+ N4=MANY1*IPT(IP,IM) 15041000
+ IF(N4.GT.MA) CALL ERR(8HP4MCF8 ,0) 15042000
+ READ(NTI) (A(J),J=1,N4) 15043000
+ NT(4,NTIN)=NT(4,NTIN)+1 15044000
+ WRITE(NTO) (A(J),J=1,N4) 15045000
+ NT3OU=NT3OU+1 15046000
+ IF(STMP.GT.300) WRITE(NO,4000) IP,IPT(IP,IM),(A(J),J=1,N4) 15047000
+ 4000 FORMAT( ' LEGENDRE COEFFICIENTS: PASS:',I5,'ORDER:',I5/ 15048000
+ 1 (1X,10E12.5)) 15049000
+ 20 CONTINUE 15050000
+ NT(3,NTOUT)=NT(3,NTOUT)+NT3OU 15051000
+ IND=IND+1 15052000
+ IF(IND.GT.MIND12) CALL SCARIN(4,MIND11,IND,AINDX1) 15053000
+ CALL EMPIN(MIND11,AINDX1(1,IND),FLOAT(NREC3(3,IM)),-8.,2.,0., 15054000
+ 1NREC3(1,I),NOMI(2*I-1),NOMI(2*I),NOM11(1),NOM11(2),0.,8.,3.,0., 15055000
+ 2 FLOAT(NTO),FLOAT(NTOUT),FLOAT(NT(4,NTOUT)),FLOAT(NT3OU), 15056000
+ 3 FLOAT(N3-N2IR),0.,FLOAT(NGROUP),ETOP,DELTAU, 15057000
+ 4 FLOAT(NPASS),FLOAT(NPL),FLOAT(IPTMXM),FLOAT(MANY1),FLOAT(LGTHIM),15058000
+ 5 FLOAT(IRIM),FLOAT(ILIM),0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.) 15059000
+ NT(4,NTOUT)=NT(3,NTOUT) 15060000
+C 15061000
+ 10 CONTINUE 15062000
+ RETURN 15063000
+ 555 WRITE(NP,9555) NTI 15064000
+ WRITE(NO,9555) NTI 15065000
+ 9555 FORMAT(' !!! WARNING !! FILE MCC2F8 TO BE UPDATED NOT FOUND!' 15066000
+ 1 ,' UNIT:',I4) 15067000
+ RETURN 15068000
+ END 15069000
+ FUNCTION NEXDI1(VAL,I1,I2,M1,M2,A) 15070000
+C ******************************************* 15071000
+C 15072000
+C NEXDI1= VALORE PRIMO POSTO IN CUI E , NELLE 15073000
+C RIGHE DA I1 AD I2 DI A(M1,M2) , UN 15074000
+C VALORE DIVERSO DA VAL 15075000
+C 15076000
+C ******************************************************* 15077000
+C 15078000
+ DIMENSION A(M1,M2) 15079000
+ NEXDI1=0 15080000
+ DO 10 I=1,M2 15081000
+ DO 20 J=I1,I2 15082000
+ IF(A(J,I).NE.VAL) GO TO 500 15083000
+ 20 CONTINUE 15084000
+ 10 CONTINUE 15085000
+ RETURN 15086000
+ 500 NEXDI1=I 15087000
+ RETURN 15088000
+ END 15089000
+ SUBROUTINE CNTRI(NNUC,MIND,ANG,NCIN,NCOL,NCOL1, 15090000
+ 1 ML1,ML2,AINDX1,ML3,ML4,NTABL) 15091000
+C ************************************************ 15092000
+C 15093000
+C CONTROLLA IL VALORE DI NG IN COL NCIN DI INDX 15094000
+C PER GLI INDX INDIVIDUATI DAL VALORE NELLE COLONNE DA 15095000
+C NCOL AD NCOL1 DI NTABL 15096000
+C NNUC E IL DIM 2 EFFETTIVA DI NTABL 15097000
+C MIND E IL DIM 2 EFFETTIVA DI INDX 15098000
+C 15099000
+C ********************************************************8 15100000
+C 15101000
+C 15102000
+ DIMENSION AINDX1(ML1,ML2),NTABL(ML3,ML4) 15103000
+ IF(NCOL1.LT.NCOL) CALL ERR(8HCNTRI ,0) 15104000
+ NFLAG=0 15105000
+ DO 10 I=1,NNUC 15106000
+ DO 20 IJ=NCOL,NCOL1 15107000
+ IND=NTABL(IJ,I) 15108000
+ IF(IND.LE.0) GO TO 20 15109000
+C QUESTA LO FA SOLA LA PRIMA VOLT ( INIZIALIZZA ) ANG 15110000
+ IF(NFLAG.NE.0) GOTO 100 15111000
+ ANG=AINDX1(NCIN,IND) 15112000
+ NFLAG=IND 15113000
+ 100 CONTINUE 15114000
+C CONTROLLI 15115000
+ IF(ANG.EQ.AINDX1(NCIN,IND)) GO TO 200 15116000
+ CALL ERR(8H CNTRI ,100) 15117000
+ CALL ERRP(4,AINDX1(NCIN,IND),IND,I,IJ,0) 15118000
+ 200 CONTINUE 15119000
+ 20 CONTINUE 15120000
+ 10 CONTINUE 15121000
+ RETURN 15122000
+ END 15123000
+ SUBROUTINE POST1(NTP,N) 15124000
+C **************************** 15125000
+C 15126000
+C POSIZIONA IL TAPE NT(1,NTP) AL RECORD N. LETTURA SENZA FORMAT 15127000
+C 15128000
+C ************************************************* 15129000
+C 15130000
+ COMMON /FILES/NT(4,99) 15131000
+ NTT=NT(1,NTP) 15132000
+ 50 NSK=N-NT(4,NTP) 15133000
+ IF(NSK) 100,200,300 15134000
+ 300 CONTINUE 15135000
+ DO 10 I=1,NSK 15136000
+ 10 READ(NTT) 15137000
+ NT(4,NTP)=N 15138000
+ 200 RETURN 15139000
+ 100 CONTINUE 15140000
+ REWIND NTT 15141000
+ NT(4,NTP)=1 15142000
+ GO TO 50 15143000
+ END 15144000
+ FUNCTION IDENT8(N,A,B) 15145000
+C **************************** 15146000
+C 15147000
+C IDENT8 E' LA POSIZIONE DI A IN B(N) 15148000
+C 15149000
+C *************************************** 15150000
+C 15151000
+ REAL*8 A,B(N) 15152000
+ DO 10 I=1,N 15153000
+ IF(A.EQ.B(I)) GO TO 100 15154000
+ 10 CONTINUE 15155000
+ IDENT8=0 15156000
+ RETURN 15157000
+ 100 CONTINUE 15158000
+ IDENT8=I 15159000
+ RETURN 15160000
+ END 15161000
+C ***************************************************** 15162000
+C 15163000
+C ROUTINES TAKEN FROM ETOE-II TO GENERATE 15164000
+C TLJ FUNCTIONS ETC. FOR MC2-II FILE MCC2F8 15165000
+C 15166000
+C ***************************************************** 15167000
+C 15168000
+C 15169000
+ BLOCK DATA 15170000
+C 15171000
+C WRITTEN BY R.F.BERLAND ATOMICS INTERNATIONAL 7/66 15172000
+C BLOCK DATA STORES FROM 0 TO 100 FACTORIAL IN ARGUMENT 15173000
+C AND EXPONENT FORM. 15174000
+C REFERENCE - R.F.BERLAND,CHAD - CODE TO HANDLE ANGULAR 15175000
+C DATA,NAA-SR-11231,DEC.1965 15176000
+C 15177000
+C NFAC(I) EXPONENT FOR I-1 FACTORIAL. 15178000
+C FAC(I) ARGUMENT FOR I-1 FACTORIAL. 15179000
+C 15180000
+C SUBROUTINES USING BLOCK DATA. 15181000
+C 15182000
+C CLEB CALCULATES CLEBSCH-GORDAN COEFFICIENTS. 15183000
+C MATRIX CALCULATES ZERO ORDER T AND ZERO ORDER T 15184000
+C INVERSE MATRIX ELEMENTS. 15185000
+C 15186000
+C 15187000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15188000
+C TO PRESERVE ACCURACY. 15189000
+C 15190000
+ IMPLICIT REAL*8 (A-H,O-Z,$) 15191000
+ COMMON/FACTRL/FAC(101),NFAC(101) 15192000
+C 15193000
+ DATA FAC/1.0,1.0,2.0,6.0,2.4,1.2,7.2,5.04,4.03215194000
+ 1,3.6288,3.6288,3.99168,4.790016,6.2270208,8.7178291,1.3076744, 15195000
+ 22.0922790,3.5568743,6.4023737,1.2164510,2.4329020,5.1090942, 15196000
+ 31.1240007,2.5852017,6.2044840,1.5511210,4.0329146,1.0888869, 15197000
+ 43.0488834,8.8417620,2.6525286,8.2228387,2.6313084,8.6833176, 15198000
+ 52.9523280,1.0333148,3.7199333,1.3763753,5.2302262,2.0397882, 15199000
+ 68.1591528,3.3452527,1.4050061,6.0415263,2.6582716,1.1962222, 15200000
+ 75.5026222,2.5862324,1.2413916,6.0828186,3.0414093,1.5511188, 15201000
+ 88.0658175,4.2748833,2.3084370,1.2696403,7.1099859,4.0526920, 15202000
+ 92.3505613,1.3868312,8.3209871,5.0758021,3.1469973,1.9826083, 15203000
+ X1.2688693,8.2476506,5.4434494,3.6471111,2.4800355,1.7112245, 15204000
+ X1.1978572,8.5047859,6.1234458,4.4701155,3.3078854,2.4809141, 15205000
+ X1.8854947,1.4518309,1.1324281,8.9461821,7.1569457,5.7971260, 15206000
+ X4.7536433,3.9455240,3.3142401,2.8171041,2.4227095,2.1077573, 15207000
+ X1.8548264,1.6507955,1.4857160,1.3520015,1.2438414,1.1567725, 15208000
+ X1.0873662,1.0329978,9.9167793,9.6192760,9.4268904,2*9.3326215 / 15209000
+ DATA NFAC/0,0,0,0,1,2,2,3,4,5,6,7,8,9,10,12,13,14, 15210000
+ 115,17,18,19,21,22,23,25,26,28,29,30,32,33,35,36,38,40,41,43,44,46,15211000
+ 247,49,51,52,54,56,57,59,61,62,64,66,67,69,71,73,74,76,78,80,81,83,15212000
+ 385,87,89,90,92,94,96,98,100,101,103,105,107,109,111,113,115,116, 15213000
+ 4118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148, 15214000
+ 5149,151,153,155,157/ 15215000
+ END 15216000
+ FUNCTION CLEB(I1,I2,I3) 15217000
+C 15218000
+C WRITTEN BY R.F.BERLAND ATOMICS INTERNATIONAL 7/66 15219000
+C FUNCTION CLEB COMPUTES THE CLEBSCH-GORDAN COEFFICIENTS. 15220000
+C REFERENCE - R.F.BERLAND,CHAD - CODE TO HANDLE ANGULAR 15221000
+C DATA,NAA-SR-11231,DEC.1965 15222000
+C 15223000
+C I1,I2,I3 INDICES FOR DESIRED COEFFICIENT. 15224000
+C 15225000
+C SUBROUTINES CALLED BY FUNCTION CLEB. 15226000
+C 15227000
+C DSQRT FORTRAN SQUARE ROOT FUNCTION (DOUBLE 15228000
+C PRECISION). 15229000
+C MOD FORTRAN MODULAR ARITHMETIC ROUTINE. 15230000
+C 15231000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15232000
+C TO PRESERVE ACCURACY. 15233000
+C 15234000
+ IMPLICIT REAL*8 (A-H,O-Z,$) 15235000
+ COMMON/FACTRL/FAC(101),NFAC(101) 15236000
+C 15237000
+ CLEB=0.0 15238000
+ N1=I1+I2-I3+1 15239000
+ IF(N1.LE.0) GO TO 99 15240000
+ N2=I1-I2+I3+1 15241000
+ IF(N2.LE.0) GO TO 99 15242000
+ N3=-I1+I2+I3+1 15243000
+ IF(N3.LE.0) GO TO 99 15244000
+ IT=I1+I2+I3 15245000
+ IF(MOD(IT,2).NE.0) GO TO 99 15246000
+ N4=IT+2 15247000
+ NEPT=NFAC(N1)+NFAC(N2)+NFAC(N3)-NFAC(N4) 15248000
+ ARG=FAC(N1)*FAC(N2)*FAC(N3)/FAC(N4) 15249000
+ Z1=ARG*10.0**NEPT 15250000
+ D123=DSQRT(Z1) 15251000
+ IS=IT/2 15252000
+ SIGNX=1 15253000
+ IF(MOD(IS+I3,2).EQ.1) SIGNX=-1 15254000
+ IA=IS+1 15255000
+ IB=IS-I1+1 15256000
+ IC=IS-I2+1 15257000
+ ID=IS-I3+1 15258000
+ NEPT=NFAC(IA)-NFAC(IB)-NFAC(IC)-NFAC(ID) 15259000
+ ARG=FAC(IA)/(FAC(IB)*FAC(IC)*FAC(ID)) 15260000
+ Z1=2*I3+1 15261000
+ CLEB=SIGNX*DSQRT(Z1)*D123*ARG*10.0**NEPT 15262000
+ 99 RETURN 15263000
+ END 15264000
+ SUBROUTINE MODPAR(AM,FACK) 15265000
+C *********************************************************** 15266000
+C 15267000
+C SUBROUTINE MODPAR CALCULATES THE MASS DEPENDENT CONSTANTS 15268000
+C USED IN THE CALCULATION OF CONTINUOUS SLOWING DOWN MODERATING 15269000
+C PARAMETERS. 15270000
+C 15271000
+C AM RATIO OF THE NUCLEAR MASS OF THE MATERIAL 15272000
+C TO THAT OF THE NEUTRON. 15273000
+C FACK MASS DEPENDENT CONSTANTS. 15274000
+C 15275000
+C SUBROUTINES CALLED BY SUBROUTINE MODPAR 15276000
+C 15277000
+C IBCOM# FORTRAN I/O ROUTINE 15278000
+C 15279000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15280000
+C TO PRESERVE ACCURACY. 15281000
+C 15282000
+ IMPLICIT REAL*8 (A-H,O-Z,$) 15283000
+ REAL*4 AM 15284000
+ COMMON/FILES/NT(4,99) 15285000
+ COMMON /OPZIO/OPZ(4,8,10) 15286000
+ EQUIVALENCE(NT(1,6),LTPO),(STMP,OPZ(3,8,1)) 15287000
+C 15288000
+ DIMENSION FACK(6,6) 15289000
+ A=AM 15290000
+ ALPHA=((A-1.)/(A+1.))**2 15291000
+ GAM=2./(1.-ALPHA) 15292000
+ BET=(1.+ALPHA)/(1.-ALPHA) 15293000
+ DO 20 J=1,6 15294000
+ DO 10 I=1,6 15295000
+ FACK(I,J)=0.0 15296000
+ 10 CONTINUE 15297000
+ 20 CONTINUE 15298000
+ FACK(1,1)=GAM 15299000
+ FACK(2,1)=-1.*GAM*BET 15300000
+ FACK(2,2)=GAM*GAM 15301000
+ FACK(3,1)=(1.5*BET*BET-.5)*GAM 15302000
+ FACK(3,2)=-3.*BET*GAM*GAM 15303000
+ FACK(3,3)=1.5*GAM*GAM*GAM 15304000
+ FACK(4,1)=(3.*BET-5.*(BET**3))*GAM*.5 15305000
+ FACK(4,2)=(7.5*(BET**2)-1.5)*(GAM**2) 15306000
+ FACK(4,3)=-7.5*BET*(GAM**3) 15307000
+ FACK(4,4)=2.5*(GAM**4) 15308000
+ FACK(5,1)=(4.375*(BET**4)-3.75*(BET**2)+.375)*GAM 15309000
+ FACK(5,2)=-1.*(17.5*(BET**3)-7.5*BET)*(GAM**2) 15310000
+ FACK(5,3)=(26.25*(BET**2)-3.75)*(GAM**3) 15311000
+ FACK(5,4)=-17.5*BET*(GAM**4) 15312000
+ FACK(5,5)=4.375*(GAM**5) 15313000
+ FACK(6,1)=-1.*(7.875*(BET**5)-8.75*(BET**3)+1.875*BET)*GAM 15314000
+ FACK(6,2)=(39.375*(BET**4)-26.25*(BET**2)+1.875)*(GAM**2) 15315000
+ FACK(6,3)=-1.*(78.75*(BET**3)-26.25*BET)*(GAM**3) 15316000
+ FACK(6,4)=(78.75*(BET**2)-8.75)*(GAM**4) 15317000
+ FACK(6,5)=-39.375*BET*(GAM**5) 15318000
+ FACK(6,6)=7.875*(GAM**6) 15319000
+ IF(STMP.LT.50) RETURN 15320000
+ WRITE(LTPO,1320) 15321000
+ WRITE(LTPO,1350) 15322000
+ DO 100 J=1,6 15323000
+ N=J-1 15324000
+ WRITE(LTPO,1300)N,(FACK(J,K),K=1,6) 15325000
+ 100 CONTINUE 15326000
+ 1300 FORMAT(2X,I2,4X,1P6E15.7) 15327000
+ 1320 FORMAT( 80H0 MASS DEPENDENT CONSTANTS FOR CONTINOUS SLOWING DOWN P15328000
+ 1ARAMETERS. FACK(L,L') /) 15329000
+ 1350 FORMAT(6H0 L/L',8X,1H1,14X,1H2,14X,1H3,14X,1H4,14X,1H5,14X,1H6 /) 15330000
+ RETURN 15331000
+ END 15332000
+ SUBROUTINE LEGPOL(PN,Z,MIPT1) 15333000
+C *******************************************************8 15334000
+C 15335000
+C SUBROUTINE LEGPOL CALCULATES LEGENDRE POLYNOMIALS BY A 15336000
+C RECURSIVE METHOD. 15337000
+C 15338000
+C PN LEGENDRE POLYNOMIALS. 15339000
+C Z VALUE AT WHICH LEGENDRE POLYNOMIALS ARE TO 15340000
+C BE CALCULATED. 15341000
+C MIPT1 HIGHEST ORDER POLYNOMIALS TO BE CALCULATED. 15342000
+C 15343000
+C SUBROUTINES CALLED BY SUBROUTINE LEGPOL. 15344000
+C 15345000
+C DFLOAT FORTRAN FUNCTION. CHANGES FIXED POINT NUMBER 15346000
+C INTO FLOATING POINT NUMBER (DOUBLE PRECISION). 15347000
+C 15348000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15349000
+C TO PRESERVE ACCURACY. 15350000
+C 15351000
+ IMPLICIT REAL*8 (A-H,O-Z) 15352000
+ DIMENSION PN(MIPT1,1),Z(1) 15353000
+ NMAX1=MIPT1-1 15354000
+ DO 10 J=1,128 15355000
+ PN(1,J)=1.D0 15356000
+ PN(2,J)=Z(J) 15357000
+ IF (MIPT1.LT.3) GO TO 10 15358000
+ DO 20 I=2,NMAX1 15359000
+ G=Z(J)*PN(I,J) 15360000
+ PN(I+1,J)=G-PN(I-1,J)+G-(G-PN(I-1,J))/DFLOAT(I) 15361000
+ 20 CONTINUE 15362000
+ 10 CONTINUE 15363000
+ RETURN 15364000
+ END 15365000
+ SUBROUTINE MATRIX(GG,T,M,MM,LAB) 15366000
+C ******************************************************** 15367000
+C 15368000
+C WRITTEN BY R.F.BERLAND ATOMICS INTERNATIONAL 7/66 15369000
+C MATRIX COMPUTES THE TRANSFORMATION MATRICES T OR 15370000
+C T INVERSE FOR LEGENDRE COEFFICIENTS WITH F0(E)=1 15371000
+C NORMALIZATION. 15372000
+C A RECURSIVE METHOD IS USED. 15373000
+C REFERENCE - R.F.BERLAND,CHAD - CODE TO HANDLE ANGULAR 15374000
+C DATA,NAA-SR-11231,DEC.1965 15375000
+C 15376000
+C GG RATIO OF THE NUCLEAR MASS OF THE MATERIAL 15377000
+C TO THAT OF THE NEUTRON. 15378000
+C T TRANSFORMATION MATRIX. 15379000
+C M NUMBER OF ROWS IN T MATRIX. 15380000
+C MM NUMBER OF COLUMNS IN T MATRIX (SHOULD INITIALLY 15381000
+C BE SET TO MIN(1.5*M,30) TO PRESERVE THE 15382000
+C ACCURACY IN THE GENERATION OF THE ELEMENTS UP 15383000
+C TO T(M,M)). THE PRESENT SIZE OF BLOCK DATA 15384000
+C LIMITS THE NUMBER OF COLUMNS TO SLIGHTLY 15385000
+C ABOVE 30. 15386000
+C LAB =0,T MATRIX IS GENERATED (CM TO LAB). 15387000
+C =1,T INVERSE IS GENERATED (LAB TO CM). 15388000
+C 15389000
+C SUBROUTINES CALLED BY SUBROUTINE MATRIX. 15390000
+C DABS FORTRAN ABSOLUTE VALUE FUNCTION (DOUBLE 15391000
+C PRECISION). 15392000
+C DSQRT FORTRAN SQUARE ROOT FUNCTION (DOUBLE 15393000
+C PRECISION). 15394000
+C MIN0 FORTRAN MINIMUM VALUE FUNCTION-INTEGER 15395000
+C CLEB CALCULATE CLEBSCH-GORDAN COEFFICIENTS 15396000
+C 15397000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15398000
+C TO PRESERVE ACCURACY. 15399000
+C 15400000
+ IMPLICIT REAL*8 (A-H,O-Z,$) 15401000
+ COMMON/FACTRL/FAC(101),NFAC(101) 15402000
+ REAL*4 GG 15403000
+C 15404000
+ DIMENSION T(M,MM) 15405000
+C 15406000
+ AWR=GG 15407000
+ G=1./AWR 15408000
+ IF(MM.LE.0)GOTO 21 15409000
+ DO 20 I=1,MM 15410000
+ IF(M.LE.0)GOTO 20 15411000
+ DO 19 L=1,M 15412000
+ T(L,I)=0.0 15413000
+ 19 CONTINUE 15414000
+ 20 CONTINUE 15415000
+ 21 CONTINUE 15416000
+ T(1,1)=1.0 15417000
+ IF(LAB.EQ.0) GO TO 100 15418000
+ T(2,1)=-2.0*G/3.0 15419000
+ T(2,3)=2.0*G/3.0 15420000
+ M2=MIN0(M,MM/2,15) 15421000
+ MUP=0 15422000
+ R=G*G/(1.0-G*G) 15423000
+ IF(M2.LE.0)GOTO51 15424000
+ DO 50 I=1,M2 15425000
+ I1=I-1 15426000
+ RM=(-R)**I1/DSQRT(1.0+R) 15427000
+ SUM=0.0 15428000
+ DO 30 K=1,20 15429000
+ K1=K-1 15430000
+ SN=K1+I1 15431000
+ DIV=(1.0-4.0*SN*SN)*4.0**K1 15432000
+ IA=K1+2*I1+2 15433000
+ IB=IA+K1 15434000
+ IC=K+I1 15435000
+ ID=2*K1+4*I 15436000
+ ARG=FAC(IA)*FAC(IB)**2/(FAC(K)*FAC(ID)*FAC(IC)**2) 15437000
+ NEPT=NFAC(IA)+2*NFAC(IB)-NFAC(K)-NFAC(ID)-2*NFAC(IC) 15438000
+ TERM=(-R)**K1*(ARG*10.0**NEPT)/DIV 15439000
+ SUM=SUM+TERM 15440000
+ IF(DABS(TERM).LT.1.0E-32) GO TO 40 15441000
+ IF(DABS(RM*SUM).LT.1.0E-32) GO TO 40 15442000
+ 30 CONTINUE 15443000
+ 40 CONTINUE 15444000
+ Z1=4*I1+3 15445000
+ IT=2*I 15446000
+ X1=2.0*Z1*RM*SUM 15447000
+ T(2,IT)=X1 15448000
+ IF(MUP.NE.0) GO TO 48 15449000
+ IF(DABS(X1).GE.1.0E-16) GO TO 50 15450000
+ MUP=IT-2 15451000
+ 48 CONTINUE 15452000
+ IF(DABS(X1).LT.1.0E-32) GO TO 120 15453000
+ 50 CONTINUE 15454000
+ 51 CONTINUE 15455000
+ IF(MUP.EQ.0) MUP=M 15456000
+ GO TO 120 15457000
+ 100 CONTINUE 15458000
+ T(2,1)=2.0*G/3.0 15459000
+ T(2,2)=1.0-.6*G**2 15460000
+ MUP=0 15461000
+ IF(MM.LE.2)GOTO 111 15462000
+ DO 110 I=3,MM 15463000
+ I1=I-1 15464000
+ Z1=I1 15465000
+ Z2=I1+2 15466000
+ Z3=2*I1-1 15467000
+ Z4=2*I1+3 15468000
+ I2=I1-1 15469000
+ X1=(Z1/Z3-Z2*G**2/Z4)*(-G)**I2 15470000
+ T(2,I)=X1 15471000
+ IF(MUP.NE.0) GO TO 105 15472000
+ IF(DABS(X1).GE.1.0E-16) GO TO 110 15473000
+ MUP=I1 15474000
+ 105 CONTINUE 15475000
+ IF(DABS(X1).LT.1.0E-32) GO TO 120 15476000
+ 110 CONTINUE 15477000
+ 111 CONTINUE 15478000
+ IF(MUP.EQ.0) MUP=M 15479000
+ 120 CONTINUE 15480000
+ MUP=MM 15481000
+ ILO=1 15482000
+ IF(M.LE.2)GOTO 161 15483000
+ DO 160 L=3,M 15484000
+ L1=L-2 15485000
+ Z1=2*L1+1 15486000
+ Z2=L1+1 15487000
+ Z3=L1 15488000
+ ILOW=ILO 15489000
+ DO 150 I=ILOW,MM 15490000
+ I1=I-1 15491000
+ SUM=-Z3*T(L1,I)/Z2 15492000
+ IF(MUP.LE.0)GOTO 145 15493000
+ DO 140 N1=1,MUP 15494000
+ X2=T(2,N1) 15495000
+ IF(DABS(X2).EQ.0.0) GO TO 140 15496000
+ N2=N1-1 15497000
+ MAX=N2+I1+1 15498000
+ IF(MAX.GT.MM) MAX=MM 15499000
+ MIN=IABS(N2-I1)+1 15500000
+ SUM1=0.0 15501000
+ IF(MAX.LT.MIN)GOTO 131 15502000
+ DO 130 M1=MIN,MAX,2 15503000
+ X1=T(L1+1,M1) 15504000
+C IF(DABS(X1).LT.1.0E-16) GO TO 130 15505000
+ M2=M1-1 15506000
+ SUM1=SUM1+CLEB(N2,M2,I1)**2*X1 15507000
+ 130 CONTINUE 15508000
+ 131 CONTINUE 15509000
+ SUM=SUM+Z1*X2*SUM1/Z2 15510000
+ 140 CONTINUE 15511000
+ 145 CONTINUE 15512000
+C IF(I.GE.L) GO TO 147 15513000
+C IF(G.GT.0.3) GO TO 147 15514000
+C IF(DABS(SUM).GE.DABS(T(L-1,I))) GO TO 148 15515000
+C 147 CONTINUE 15516000
+ T(L,I)=SUM 15517000
+C GO TO 150 15518000
+C 148 CONTINUE 15519000
+C ILO=I+1 15520000
+ 150 CONTINUE 15521000
+ 160 CONTINUE 15522000
+ 161 RETURN 15523000
+ END 15524000
+ SUBROUTINE TMATRI(AM,FAC,PN,TLJ,TLJ2,NPL,MIPT1,NMAX,DU) 15525000
+C ******************************************************* 15526000
+C 15527000
+C SUBROUTINE TMATRI CALCULATES 'INCOMPLETE' T MATRIX ELEMENTS AND 15528000
+C ALSO CALCULATES SECOND ORDER T MATRIX ELEMENTS. 15529000
+C 15530000
+C AM RATIO OF THE NUCLEAR MASS OF THE MATERIAL 15531000
+C TO THAT OF THE NEUTRON. 15532000
+C FAC 'INCOMPLETE' T MATRIX ELEMENTS. 15533000
+C PN LEGENDRE POLYNOMIALS. 15534000
+C TLJ ZERO ORDER T MATRIX ELEMENTS. 15535000
+C TLJ2 SECOND ORDER T MATRIX ELEMENTS. 15536000
+C NPL HIGHEST ORDER PERMITTED FOR EXTENDED TRANSPORT 15537000
+C APPROXIMATION +1. 15538000
+C MIPT1 MAXIMUM NUMBER OF LEGENDRE COEFFICIENTS 15539000
+C NMAX =MIPT1 15540000
+C DU ULTRAFINE GROUP LETHARGY WIDTH. 15541000
+C 15542000
+C SUBROUTINES CALLED BY SUBROUTINE TMATRI. 15543000
+C 15544000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION).15545000
+C DLOG FORTRAN NATURAL LOGRITHM (DOUBLE PRECISION). 15546000
+C LEGPOL CALCULATES LEGENDRE POLYNOMIALS. 15547000
+C 15548000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15549000
+C TO PRESERVE ACCURACY. 15550000
+C 15551000
+ IMPLICIT REAL*8 (A-H,O-Z) 15552000
+ REAL*4 AM,DU 15553000
+ DIMENSION W(64),W1(22),W2(42),X(64),Z(128),PN(MIPT1,1),FAC(6,1), 15554000
+ 1TLJ(NPL,1),TLJ2(2,1) 15555000
+ EQUIVALENCE (W(1),W1(1)),(W(23),W2(1)) 15556000
+ DATA W1/4.4938096029D-04,1.0458126793D-03,1.6425030187D-03, 15557000
+ 12.2382884310D-03,2.8327514714D-03,3.4255260409D-03, 15558000
+ 24.0162549837D-03,4.6045842567D-03,5.1901618327D-03, 15559000
+ 35.7726375429D-03,6.3516631617D-03,6.9268925669D-03, 15560000
+ 47.4979819256D-03,8.0645898905D-03,8.6263777986D-03, 15561000
+ 59.1830098717D-03,9.7341534150D-03,1.0279479016D-02, 15562000
+ 61.0818660740D-02,1.1351376324D-02,1.1877307373D-02, 15563000
+ 71.2396139544D-02/ 15564000
+ DATA W2/1.2907562739D-02,1.3411271289D-02,1.3906964133D-02, 15565000
+ 11.4394345004D-02,1.4873122602D-02,1.5343010769D-02, 15566000
+ 21.5803728659D-02,1.6255000910D-02,1.6696557801D-02, 15567000
+ 31.7128135423D-02,1.7549475827D-02,1.7960327185D-02, 15568000
+ 41.8360443937D-02,1.8749586940D-02,1.912752361D-02, 15569000
+ 51.9494028059D-02,1.9848881233D-02,2.0191871042D-02, 15570000
+ 62.0522792487D-02,2.0841447781D-02,2.1147646468D-02, 15571000
+ 72.1441205539D-02,2.1721949538D-02,2.1989710668D-02, 15572000
+ 82.2244328894D-02,2.2485652033D-02,2.2713535850D-02, 15573000
+ 92.2927844144D-02,2.3128448824D-02,2.3315229994D-02, 15574000
+ A2.3488076016D-02,2.3646883584D-02,2.3791557781D-02, 15575000
+ B2.3922012137D-02,2.4038168681D-02,2.4139957989D-02, 15576000
+ C2.4227319223D-02,2.4300200168D-02,2.4358557265D-02, 15577000
+ D2.4402355634D-02,2.4431569100D-02,2.4446180197D-02/ 15578000
+ DATA X/.99982488795,.99907745998,.99773324863,.99579275853, 15579000
+ 1.99325711290,.99012781849,.98640674272,.98209610844,.97719849146, 15580000
+ 2.97171681875,.96565436643,.95901475785,.95180196134,.94402028783, 15581000
+ 3.93567438828,.92676925088,.91731019808,.90730288340,.89675328805, 15582000
+ 4.88566771734,.87405279696,.86191546894,.84926298758,.83610291506, 15583000
+ 5.82244311696,.80829175751,.79365729476,.77854847551,.76297433004, 15584000
+ 6.74694416680,.73046756674,.71355437768,.69621470837,.67845892245, 15585000
+ 7.66029763227,.64174169256,.62280219391,.60349045616,.58381802163, 15586000
+ 8.56379664823,.54343830241,.52275515205,.50175955914,.48046407240, 15587000
+ 9.45888141983,.43702450104,.41490637955,.39254027503,.36993955535, 15588000
+ A.34711772860,.32408843502,.30086543888,.27746262018,.25389396642, 15589000
+ B.23017356423,.20631559090,.18233430598,.15824404271,.13405919946, 15590000
+ C.10979423113,.85463640504D-01,.61081969604D-01, 15591000
+ D.36663790969D-01,.12223698961D-01/ 15592000
+ A=AM 15593000
+ ALPHA=((A-1.)/(A+1.))**2 15594000
+ Q=1./ALPHA 15595000
+ Q=DLOG(Q) 15596000
+ MARK=0 15597000
+ V=1.D0 15598000
+ DELT=DU 15599000
+ 25 CONTINUE 15600000
+ AINT=(2.*DEXP(-DELT)-(1.+ALPHA))/(1.-ALPHA) 15601000
+ A1=(V-AINT)*0.5 15602000
+ B1=(V+AINT)*0.5 15603000
+ DO 30 I=1,64 15604000
+ J=I+64 15605000
+ Z(I)=A1*X(I)+B1 15606000
+ Z(J)=-A1*X(I)+B1 15607000
+ 30 CONTINUE 15608000
+ CALL LEGPOL(PN,Z,MIPT1) 15609000
+ DO 60 N=1,NMAX 15610000
+ SUM=0. 15611000
+ SUM1=0. 15612000
+ SUM2=0. 15613000
+ SUM3=0. 15614000
+ SUM4=0. 15615000
+ SUM5=0. 15616000
+ DO 40 I=1,64 15617000
+ J=I+64 15618000
+ F=PN(N,I) 15619000
+ G=PN(N,J) 15620000
+ SUM=SUM+W(I)*(F+G) 15621000
+ ARF=0.5D0*(1.+ALPHA+(1.-ALPHA)*Z(I)) 15622000
+ ARG=0.5D0*(1.+ALPHA+(1.-ALPHA)*Z(J)) 15623000
+ ARF=1.D0/ARF 15624000
+ ARG=1.D0/ARG 15625000
+ U1=DLOG(ARF) 15626000
+ U2=DLOG(ARG) 15627000
+ U3=0.5*U1 15628000
+ U4=0.5*U2 15629000
+ U3=((A+1.)*DEXP(-U3)-(A-1.)*DEXP(U3))*0.5 15630000
+ U4=((A+1.)*DEXP(-U4)-(A-1.)*DEXP(U4))*0.5 15631000
+ SUM1=SUM1+W(I)*(F*U1+G*U2) 15632000
+ SUM2=SUM2+W(I)*(F*U3+G*U4) 15633000
+ SUM3=SUM3+W(I)*(F*U1*U3+G*U2*U4) 15634000
+ IF(MARK.NE.2) GO TO 40 15635000
+ IF(N.GT.6) GO TO 40 15636000
+ SUM4=SUM4+W(I)*(F*U1*U1+G*U2*U2) 15637000
+ SUM5=SUM5+W(I)*(F*U1*U1*U3+G*U2*U2*U4) 15638000
+ 40 CONTINUE 15639000
+ M=N-1 15640000
+ AX=0.5D0*A1*(2*M+1) 15641000
+ Y1=AX*SUM 15642000
+ Y2=-AX*SUM1 15643000
+ Y3=AX*SUM2 15644000
+ Y4=-AX*SUM3 15645000
+ IF (MARK.GT.0) GO TO 45 15646000
+ FAC(1,N)=DELT*Y1+Y2 15647000
+ FAC(3,N)=DELT*Y3+Y4 15648000
+ GO TO 60 15649000
+ 45 CONTINUE 15650000
+ IF (MARK.EQ.2) GO TO 50 15651000
+ FAC(2,N)=DELT*Y1+Y2 15652000
+ FAC(4,N)=DELT*Y3+Y4 15653000
+ GO TO 60 15654000
+ 50 CONTINUE 15655000
+ IF(N.GT.6) GO TO 60 15656000
+ AX2=(2.*M+1.)/4 15657000
+ TLJ2(1,N)=AX2*SUM4 15658000
+ TLJ2(2,N)=AX2*SUM5 15659000
+ 60 CONTINUE 15660000
+ MARK=MARK+1 15661000
+ IF (MARK.EQ.1) DELT=DELT+DELT 15662000
+ IF (MARK.EQ.2) DELT=Q 15663000
+ IF (MARK.LT.3) GO TO 25 15664000
+ RETURN 15665000
+ END 15666000
+ SUBROUTINE TMATRX(AM,FAC1,PN,TLJ,TLJ2,VV,NPL1,MIPT1,DU,MAXPT1,Q3) 15667000
+C **************************************************************** 15668000
+C 15669000
+C SUBROUTINE TMATRX CONTROLS THE CALCULATION AND PRINT OUT OF 15670000
+C THE T MATRIX ELEMENTS. 15671000
+C 15672000
+C AM RATIO OF THE NUCLEAR MASS OF THE MATERIAL 15673000
+C TO THAT OF THE NEUTRON. 15674000
+C FAC1 'INCOMPLETE' T MATRIX ELEMENTS AND FIRST ORDER 15675000
+C T MATRIX ELEMENTS. 15676000
+C PN LEGENDRE POLYNOMIALS. 15677000
+C TLJ ZERO ORDER T MATRIX ELEMENTS. 15678000
+C TLJ2 SECOND ORDER T MATRIX ELEMENTS. 15679000
+C VV ZERO ORDER T MATRIX ELEMENTS. OBTAINED FROM 15680000
+C SUBROUTINE MATRIX. 15681000
+C NPL1 HIGHEST ORDER PERMITTED FOR EXTENDED TRANSPORT 15682000
+C APPROXIMATION +1. 15683000
+C MIPT1 MAXIMUM NUMBER OF LEGENDRE COEFFICIENTS 15684000
+C FOR THIS PROBLEM +1. 15685000
+C DU ULTRAFINE GROUP LETHARGY WIDTH. 15686000
+C MAXPT1 MAXIMUM NUMBER OF LEGENDRE COEFFICIENTS 15687000
+C FOR THIS MATERIAL +1. 15688000
+C Q3 EQUAL TO ALOG(((AWR(M)+1.)/(AWR(M)-1.)))**2/3. 15689000
+C WHERE AWR(M) IS THE RATIO OF THE NUCLEAR MASS 15690000
+C OF THE MATERIAL TO THAT OF THE NEUTRON. 15691000
+C 15692000
+C SUBROUTINES CALLED BY SUBROUTINE TMATRX. 15693000
+C 15694000
+C MATRIX CALCULATES ZERO ORDER T MATRIX ELEMENTS. 15695000
+C TMATRI CALCULATES 'INCOMPLETE' T MATRIX ELEMENTS. 15696000
+C TMATRY CALCULATES FIRST ORDER T MATRIX ELEMENTS. 15697000
+C IBCOM# FORTRAN I/O ROUTINE 15698000
+C 15699000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15700000
+C TO PRESERVE ACCURACY. 15701000
+C 15702000
+ DOUBLE PRECISION PN,VV,FAC1,TLJ,TLJ2 15703000
+ DIMENSION FAC1(6,1),PN(MIPT1,1),TLJ(NPL1,1),TLJ2(2,1),VV(1),M(6) 15704000
+ COMMON/FILES/NT(4,99) 15705000
+ COMMON/OPZIO/OPZ(4,8,10) 15706000
+ EQUIVALENCE (NT(1,6),LTPO),(OPZ(3,8,1),STMP) 15707000
+C 15708000
+C CALCULATE 0 MOMENT OF T L J WHERE BOTH L AND J RANGE 15709000
+C FROM 0 TO MIPT. 15710000
+C 15711000
+ LAB=0 15712000
+ MIPT1M=3*MIPT1/2 15713000
+ CALL MATRIX(AM,VV,MIPT1,MIPT1M,LAB) 15714000
+ DO 80 L=2,NPL1 15715000
+ K=L 15716000
+ DO 70 J=1,MIPT1 15717000
+ TLJ(L,J)=VV(K) 15718000
+ K=K+MIPT1 15719000
+ 70 CONTINUE 15720000
+ 80 CONTINUE 15721000
+C 15722000
+C CALCULATE 'INCOMPLETE' T MATRIX ELEMENTS AND 15723000
+C 2 MOMENT OF T 0 J AND 2 MOMENT OF T 1 J FOR J RANGING 15724000
+C FROM 0 TO MIPT. 15725000
+C 15726000
+ CALL TMATRI(AM,FAC1,PN,TLJ,TLJ2,NPL1,MIPT1,MIPT1,DU) 15727000
+C 15728000
+C CALCULATE 1 MOMENT OF T 0 J AND 1 MOMENT OF T 1 J FOR 15729000
+C J RANGING FEOM 0 TO MIPT. 15730000
+C 15731000
+ CALL TMATRY(AM,FAC1,TLJ,MIPT1,NPL1) 15732000
+C 15733000
+C PRINT OUT THE ABOVE CALCULATIONS. 15734000
+C IF REQUESTED 15735000
+ IF(STMP.LT.50) RETURN 15736000
+C 15737000
+C 15738000
+ WRITE(LTPO,1410) 15739000
+ IF(DU.LT.Q3) GO TO 91 15740000
+ DO 90 I=1,MAXPT1 15741000
+ N=I-1 15742000
+ WRITE(LTPO,1200)(N,FAC1(J,I),J=1,6) 15743000
+ 90 CONTINUE 15744000
+ GO TO 94 15745000
+ 91 CONTINUE 15746000
+ DO 93 I=1,MAXPT1 15747000
+ N=I-1 15748000
+ WRITE(LTPO,1201)(N,FAC1(J,I),J=5,6) 15749000
+ 93 CONTINUE 15750000
+ 94 CONTINUE 15751000
+ WRITE(LTPO,1420) 15752000
+ DO 95 I=1,6 15753000
+ N=I-1 15754000
+ WRITE(LTPO,1200)N,TLJ2(1,I),N,TLJ2(2,I) 15755000
+ 95 CONTINUE 15756000
+ DO 98 I=1,6 15757000
+ M(I)=I 15758000
+ 98 CONTINUE 15759000
+ K=2 15760000
+ IF(NPL1.LE.7) GO TO 100 15761000
+ L=7 15762000
+ GO TO 112 15763000
+ 100 CONTINUE 15764000
+ L=NPL1 15765000
+ 112 CONTINUE 15766000
+ WRITE(LTPO,1430)(M(I),I=1,6) 15767000
+ DO 114 I=1,MAXPT1 15768000
+ N=I-1 15769000
+ WRITE(LTPO,1200)(N,TLJ(J,I),J=K,L) 15770000
+ 114 CONTINUE 15771000
+ DO 115 I=1,6 15772000
+ M(I)=M(I)+6 15773000
+ 115 CONTINUE 15774000
+ K=L+1 15775000
+ IF(NPL1.LE.L) GO TO 120 15776000
+ L=NPL1 15777000
+ IF(L.GT.(K+5)) L=K+5 15778000
+ GO TO 112 15779000
+ 120 CONTINUE 15780000
+ 1200 FORMAT(6(2X,I3,1PE15.7)) 15781000
+ 1201 FORMAT(82X,I3,1PE15.7,2X,I3,1E15.7) 15782000
+ 1410 FORMAT(127H0 J FAC 1 J FAC 2 J FAC 315783000
+ 1 J FAC 4 J 1 MOMENT T 0 J J 1 MOMENT T 1 J 15784000
+ 2 /) 15785000
+ 1420 FORMAT(45H0 J 2 MOMENT T 0 J J 2 MOMENT T 1 J /) 15786000
+ 1430 FORMAT(15H0 J 0 MOMENT ,I2,18HJ J 0 MOMENT ,I2,18HJ 15787000
+ 1J 0 MOMENT ,I2,18HJ J 0 MOMENT ,I2,18HJ J 0 MOMENT 15788000
+ 2 ,I2,18HJ J 0 MOMENT ,I2,2HJ /) 15789000
+ RETURN 15790000
+ END 15791000
+ SUBROUTINE TMATRY(GG,FAC1,TLJ,MIPT1,NPL1) 15792000
+C ********************************************************** 15793000
+C 15794000
+C SUBROUTINE TMATRY CALCULATES FIRST ORDER T MATRIX ELEMENTS. 15795000
+C 15796000
+C AM RATIO OF THE NUCLEAR MASS OF THE MATERIAL 15797000
+C TO THAT OF THE NEUTRON. 15798000
+C FAC1 FIRST ORDER T MATRIX ELEMENTS. 15799000
+C TLJ ZERO ORDER T MATRIX ELEMENTS. 15800000
+C MIPT1 MAXIMUM NUMBER OF LEGENDRE COEFFICIENTS 15801000
+C FOR THIS PROBLEM +1. 15802000
+C NPL1 HIGHEST ORDER PERMITTED FOR EXTENDED TRANSPORT 15803000
+C APPROXIMATION +1. 15804000
+C 15805000
+C SUBROUTINES CALLED BY SUBROUTINE TMATRY. 15806000
+C 15807000
+C CLEB CALCULATES CLEBSCH-GORDEN COEFFICIENTS. 15808000
+C DABS FORTRAN ABSOLUTE VALUE ROUTINE (DOUBLE 15809000
+C DLOG FORTRAN LOGARITHM FUNCTION (DOUBLE PRECISION) 15810000
+C PRECISION). 15811000
+C IABS FORTRAN ABSOLUTE VALUE ROUTINE FOR INTEGERS. 15812000
+C 15813000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 15814000
+C TO PRESERVE ACCURACY. 15815000
+C 15816000
+ IMPLICIT REAL*8 (A-H,O-Z) 15817000
+ REAL*4 GG 15818000
+ DIMENSION FAC1(6,2),TLJ(NPL1,1) 15819000
+ COMMON/FACTRL/FAC(101),NFAC(101) 15820000
+ A=GG 15821000
+ MM=MIPT1 15822000
+ ALPHA=((A-1.)/(A+1.))**2 15823000
+ ALP=1.-ALPHA 15824000
+ Q=DLOG(1./ALPHA) 15825000
+C CALCULATE FIRST MOMENT OF T SUB 0,N 15826000
+C 15827000
+ FAC1(5,1)=-(1.-ALPHA*Q/ALP) 15828000
+ FAC1(5,2)=3.*((1.+ALPHA)/(2*ALP)-ALPHA*Q/(ALP*ALP)) 15829000
+ DO 20 L=3,MM 15830000
+ SUM=0.0 15831000
+ ISGN=1 15832000
+ IF (L.NE.2*(L/2)) ISGN=-1 15833000
+ N=L-1 15834000
+ ISGN=ISGN*(N+L) 15835000
+ NN=N 15836000
+ IF (N.EQ.0) NN=N+1 15837000
+ DO 30 K=NN,60 15838000
+ IA=K+1 15839000
+ IB=K-N+1 15840000
+ IC=K+L+1 15841000
+ ARG=FAC(IA)**2/(FAC(IB)*FAC(IC)) 15842000
+ NEPT=2*NFAC(IA)-NFAC(IB)-NFAC(IC) 15843000
+ P1=K 15844000
+ TERM=ALP**K*(ARG*10.0**NEPT)/P1 15845000
+ SUM=SUM+TERM 15846000
+ IF (TERM.LE.SUM*1.E-06) GO TO 25 15847000
+ IF (TERM.LT.1.0E-42) GO TO 25 15848000
+ 30 CONTINUE 15849000
+ 25 SIGN=ISGN 15850000
+ FAC1(5,L)=SIGN*SUM 15851000
+ XX=FAC1(5,L) 15852000
+ IF(DABS(XX).LT.1.D-46) GO TO 21 15853000
+ 20 CONTINUE 15854000
+ 21 CONTINUE 15855000
+C 15856000
+C CALCULATE FIRST MOMENT OF T SUB 1,N 15857000
+C 15858000
+ ILO=1 15859000
+ DO 150 I=ILO,MM 15860000
+ N=I-1 15861000
+ SUM=0.0 15862000
+ DO 140 N1=1,MIPT1 15863000
+ X2=TLJ(2,N1) 15864000
+ IF (X2.EQ.0) GO TO 140 15865000
+ K=N1-1 15866000
+ MAX=K+N+1 15867000
+ IF (MAX.GT.MM) MAX=MM 15868000
+ MIN=IABS(K-N) +1 15869000
+ SUM1=0.0 15870000
+ DO 130 M1=MIN,MAX,2 15871000
+ X1=FAC1(5,M1) 15872000
+ IF (DABS(X1).LT.1.0E-40) GO TO 130 15873000
+ M2=M1-1 15874000
+ SUM1=SUM1+CLEB(K,M2,N)**2*X1 15875000
+ 130 CONTINUE 15876000
+ SUM=SUM+X2*SUM1 15877000
+ 140 CONTINUE 15878000
+ 150 FAC1(6,I)=SUM 15879000
+ RETURN 15880000
+ END 15881000
+C ********************************************************* 15882000
+C THE FOLLOWING ROUTINES COMPUTES THE W FUNCION 15883000
+C FOR THE CALCULATION OF DOPPLER FUNCTIONS 15884000
+C THESE ROUTINES ARE TAKEN FROM MC2-2 AND ETOE CODE 15885000
+C 15886000
+ SUBROUTINE QUICKW(N41,N27,TR,TI,TRS,TIS,AX,Y,REW,AIMW) 15887000
+C ******************************************************** 15888000
+C 15889000
+C SUBROUTINE QUICKW CALCULATES THE REAL AND IMAGINARY PARTS 15890000
+C OF W(X,Y). 15891000
+C 15892000
+C TR REAL PART OF W(X,Y) TABULATED AT INCREMENTS 15893000
+C OF 0.1 FOR -0.1.LE.X.LE.3.9 AND 0.4.LE.Y.LE.3.0 15894000
+C TI IMAGINARY PART OF W(X,Y) TABULATED AT INCREMENTS15895000
+C OF 0.1 FOR -0.1.LE.X.LE.3.9 AND 0.4.LE.Y.LE.3.0 15896000
+C TRS REAL PART OF W(X,Y) TABULATED AT INCREMENTS OF 15897000
+C OF 0.1 FOR -0.1.LE.X.LE.3.9 AND AT INCREMENTS OF15898000
+C 0.02 FOR -0.02.LE.Y.LE.0.5 15899000
+C TIS IMAGINARY PART OF W(X,Y) TABULATED AT INCREMENTS15900000
+C OF 0.1 FOR -0.1.LE.X.LE.3.9 AND AT INCREMENTS OF15901000
+C 0.02 FOR -0.02.LE.Y.LE.0.5 15902000
+C 15903000
+C COMMON/REAIMW/AX,Y,REW,AIMW 15904000
+C COMMON /TABDAT/ TR(41,27),TI(41,27),TRS(41,27),TIS(41,27) 15905000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 15906000
+C 15907000
+C C1=1/ SQRT(PI) 15908000
+C 15909000
+ DATA C1/0.5641895835/,C2/0.2752551/, 15910000
+ 1 C3/2.724745/,C4/0.5124242/, 15911000
+ 2 C5/0.05176536/,HALF/0.5/,TEN/10.0/, 15912000
+ 4 D1/0.4613135/,D2/0.1901635/,D3/0.09999216/, 15913000
+ 5 D4/1.7844927/,D5/0.002883894/,D6/5.5253437/,FIFTY/50.0/ 15914000
+C 15915000
+C 15916000
+C 15917000
+ X=AX 15918000
+ XABS=ABS(X) 15919000
+ IF(XABS.LE.3.9.AND.Y.LE.3.0) GO TO 100 15920000
+ A1=(X+Y)*(X-Y) 15921000
+ A2=2.0*X*Y 15922000
+ A3=A2*A2 15923000
+ TEMP1=A2*X 15924000
+ TEMP2=A2*Y 15925000
+ IF(XABS.GT.6.0.OR.Y.GT.6.0) GO TO 110 15926000
+ GO TO 150 15927000
+ 110 CONTINUE 15928000
+ IF(XABS.GT.100.0.OR.Y.GT.100.0) GO TO 400 15929000
+ GO TO 200 15930000
+ 100 CONTINUE 15931000
+C 15932000
+C SIX POINT TABLE INTERPOLATION FOR 0.LE.ABS(X).LE.3.9 15933000
+C 15934000
+ AKI= SIGN(1. ,AX) 15935000
+ X=XABS 15936000
+ TEMPOR=TEN*X 15937000
+ II=TEMPOR 15938000
+ I=II+2 15939000
+ P=TEMPOR-II 15940000
+ P2=P*P 15941000
+ HP=HALF*P 15942000
+ HP2=HALF*P2 15943000
+ A2=HP2-HP 15944000
+ IF(Y.LT.0.5) GO TO 210 15945000
+C 15946000
+C Y.GE.0.5 15947000
+C 15948000
+ TEMPOR=TEN*Y 15949000
+ JJ=TEMPOR 15950000
+ J=JJ-3 15951000
+ N=J-1 15952000
+ Q=TEMPOR-JJ 15953000
+ Q2=Q*Q 15954000
+ PQ=P*Q 15955000
+ HQ=HALF*Q 15956000
+ HQ2=HALF*Q2 15957000
+ A1=HQ2-HQ 15958000
+ A3=1. +PQ-P2-Q2 15959000
+ A4=HP2-PQ+HP 15960000
+ A5=HQ2-PQ+HQ 15961000
+ REW=A1*TR(I,N )+A2*TR(I-1,J)+A3*TR(I,J)+A4*TR(I+1,J)+A5*TR(I,J+1)15962000
+ 1+PQ*TR(I+1,J+1) 15963000
+ IF(AX.EQ.0.0) GO TO 120 15964000
+ AIMW=A1*TI(I,N )+A2*TI(I-1,J)+A3*TI(I,J)+A4*TI(I+1,J)+A5*TI(I,J+115965000
+ 1)+PQ*TI(I+1,J+1) 15966000
+ AIMW=AIMW*AKI 15967000
+ RETURN 15968000
+ 210 CONTINUE 15969000
+C 15970000
+C Y.LT.0.5 15971000
+C 15972000
+ TEMPOR=FIFTY*Y 15973000
+ JJ=TEMPOR 15974000
+ J=JJ+2 15975000
+ N=J-1 15976000
+ Q=TEMPOR-JJ 15977000
+ Q2=Q*Q 15978000
+ PQ=P*Q 15979000
+ HQ=HALF*Q 15980000
+ HQ2=HALF*Q2 15981000
+ A1=HQ2-HQ 15982000
+ A3=1. +PQ-P2-Q2 15983000
+ A4=HP2-PQ+HP 15984000
+ A5=HQ2-PQ+HQ 15985000
+ REW=A1*TRS(I,N )+A2*TRS(I-1,J)+A3*TRS(I,J)+A4*TRS(I+1,J)+ 15986000
+ 1A5*TRS(I,J+1)+PQ*TRS(I+1,J+1) 15987000
+ IF(AX.EQ.0) GO TO 120 15988000
+ AIMW=A1*TIS(I,N )+A2*TIS(I-1,J)+A3*TIS(I,J)+A4*TIS(I+1,J)+ 15989000
+ 1A5*TIS(I,J+1)+PQ*TIS(I+1,J+1) 15990000
+ AIMW=AIMW*AKI 15991000
+ RETURN 15992000
+C 15993000
+C RATIONAL APPROXIMATION FOR X.GT.3.9 OR Y.GT.3.0 BUT X AND Y .LE.6 15994000
+C 15995000
+ 150 CONTINUE 15996000
+ A4=A1-D2 15997000
+ A5=A1-D4 15998000
+ A6=A1-D6 15999000
+ E1=D1/(A4*A4+A3) 16000000
+ E2=D3/(A5*A5+A3) 16001000
+ E3=D5/(A6*A6+A3) 16002000
+ REW=E1*(TEMP1-A4*Y)+E2*(TEMP1-A5*Y)+E3*(TEMP1-A6*Y) 16003000
+ IF(AX.EQ.0.0) GO TO 120 16004000
+ AIMW=E1*(A4*X+TEMP2)+E2*(A5*X+TEMP2)+E3*(A6*X+TEMP2) 16005000
+ RETURN 16006000
+C 16007000
+C RATIONAL APPROXIMATION FOR X.GT.6 OR Y.GT.6 BUT X AND Y .LE.100 16008000
+C 16009000
+ 200 CONTINUE 16010000
+ A4=A1-C2 16011000
+ A5=A1-C3 16012000
+ F1=C4/(A4*A4+A3) 16013000
+ F2=C5/(A5*A5+A3) 16014000
+ REW=F1*(TEMP1-A4*Y)+F2*(TEMP1-A5*Y) 16015000
+ IF(AX.EQ.0.0) GO TO 120 16016000
+ AIMW=F1*(A4*X+TEMP2)+F2*(A5*X+TEMP2) 16017000
+ RETURN 16018000
+C 16019000
+C ASYMPTOTIC TERM FOR X.GT.100 OR Y.GT.100 16020000
+C 16021000
+ 400 CONTINUE 16022000
+ TEST=X*X+Y*Y 16023000
+ A1=C1/TEST 16024000
+ REW=Y*A1 16025000
+ AIMW=X*A1 16026000
+ RETURN 16027000
+C 16028000
+C AIMW=0. FOR X=0. 16029000
+C 16030000
+ 120 CONTINUE 16031000
+ AIMW=0.0 16032000
+ RETURN 16033000
+ END 16034000
+ SUBROUTINE WZERO(ARG,PSIEZ) 16035000
+C ********************************************************** 16036000
+C 16037000
+C SUBROUTINE WZERO CALCULATES THE REAL PART OF W(0,ARG) USING A 16038000
+C RATIONAL APPROXIMATION FOR EXP(ARG*ARG)*ERFC(ARG) 16039000
+C OR VARIOUS RATIONAL APPROXIMATIONS FOR ARG .GE. 2.0 16040000
+C 16041000
+C COMMON/RATION/ ARG,PSIEZ 16042000
+C 16043000
+C SET CONSTANTS FOR RATIONAL APPROXIMATIONS IN DATA STATEMENT 16044000
+C 16045000
+ DATA W21/0.5124242/,W22/0.05176536/,Y21/0.2752551/, 16046000
+ 1 Y22/2.724745/,W31/0.4613135/,W32/0.09999216/, 16047000
+ 2 W33/0.002883894/,Y31/0.1901635/,Y32/1.7844927/, 16048000
+ 3 Y33/5.5253437/ 16049000
+ IF(ARG.GE.2.0) GO TO 100 16050000
+C 16051000
+C RATIONAL APPROXIMATION 7.1.26 ON PAGE 299 IN HANDBOOK OF 16052000
+C MATHEMATICAL FUNCTIONS WITH FORMULAS, GRAPHS, AND MATHEMATICAL 16053000
+C TABLES, EDITED BY MILTON ABRAMOWITZ AND IRENE A. STEGUN, 16054000
+C NBS APPLED MATHEMATICS SERIES 55, JUNE 1964 16055000
+C 16056000
+ T=1.0/(1.0+0.3275911*ARG) 16057000
+ PSIEZ=T*(0.254829592+T*(-0.284496736+T*(1.421413741+T* 16058000
+ 1 (-1.453152027+T*(1.061405429))))) 16059000
+ RETURN 16060000
+ 100 CONTINUE 16061000
+C 16062000
+C RATIONAL APPROXIMATIONS BASED ON FORMULAS ON PAGE 328 OF ABOVE 16063000
+C REFERENCED HANDBOOK 16064000
+C 16065000
+ IF(ARG.GT.6.0) GO TO 120 16066000
+ X=ARG*ARG 16067000
+ PSIEZ=ARG*(W31/(X+Y31)+W32/(X+Y32)+W33/(X+Y33)) 16068000
+ RETURN 16069000
+ 120 CONTINUE 16070000
+ IF(ARG.GT.100.0) GO TO 130 16071000
+ X=ARG*ARG 16072000
+ PSIEZ=ARG*(W21/(X+Y21)+W22/(X+Y22)) 16073000
+ RETURN 16074000
+ 130 CONTINUE 16075000
+C 16076000
+C 0.5641895835 IS 1/SQRT(PI) 16077000
+C 16078000
+ PSIEZ=0.5641895835/ARG 16079000
+ RETURN 16080000
+ END 16081000
+ SUBROUTINE WTABL(N41,N27,AX,AY,TR,TI,TRS,TIS) 16082000
+C ********************************************************** 16083000
+C !!! ATTENZIONE A AX ED AY CHE SONO IN DOUDLE PREC !!! 16084000
+C 16085000
+C SUBROUTINE WTABLE CONTROLS THE CALCULATION AND WRITING OF THE 16086000
+C COURSE AND FINE, REAL AND IMAGINARY PARTS OF THE W TABLE 16087000
+C 16088000
+C SUBROUTINES CALLED BY SUBROUTINE WTABLE 16089000
+C 16090000
+C W CALCULATES REAL AND IMAGINARY COMPLEX 16091000
+C PROBABILITY INTEGRALS 16092000
+C IBCOM# FORTRAN I/O ROUTINE 16093000
+C 16094000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 16095000
+C TO PRESERVE ACCURACY. 16096000
+C 16097000
+ DOUBLE PRECISION X,Y,REW,AIMW,DELX,DELY,AX,AY 16098000
+C COMMON /UNRDAT/ AX(41),AY(27) 16099000
+C COMMON /TABDAT/ TR(41,27),TI(41,27),TRS(41,27),TIS(41,27) 16100000
+ DIMENSION AX(N41),AY(N27) 16101000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 16102000
+ AX(1)=-0.1D0 16103000
+ AX(2)=0.0D0 16104000
+ DELX=0.1D0 16105000
+ DO 130 I=3,41 16106000
+ AX(I)=AX(I-1)+DELX 16107000
+ 130 CONTINUE 16108000
+ AY(1)=0.4D0 16109000
+ AY(2)=0.5D0 16110000
+ DELY=0.1D0 16111000
+ DO 140 J=3,27 16112000
+ AY(J)=AY(J-1)+DELY 16113000
+ 140 CONTINUE 16114000
+ 160 CONTINUE 16115000
+ DO 170 I=2,41 16116000
+ X=AX(I) 16117000
+ DO 170 J=1,27 16118000
+ Y=AY(J) 16119000
+ CALL W(X,Y,REW,AIMW) 16120000
+ TR (I,J)=REW 16121000
+ TI (I,J)=AIMW 16122000
+ 170 CONTINUE 16123000
+ DO 180 J=1,27 16124000
+ TR (1,J)=TR (3,J) 16125000
+ TI (1,J)=-TI (3,J) 16126000
+ TI (2,J)=0. 16127000
+ 180 CONTINUE 16128000
+ AY(1)=-0.02D0 16129000
+ AY(2)=0.0D0 16130000
+ DELY=0.02D0 16131000
+ DO 190 J=3,27 16132000
+ AY(J)=AY(J-1)+DELY 16133000
+ 190 CONTINUE 16134000
+ DO 270 I=2,41 16135000
+ X=AX(I) 16136000
+ DO 270 J=1,27 16137000
+ Y=AY(J) 16138000
+ CALL W(X,Y,REW,AIMW) 16139000
+ TRS(I,J)=REW 16140000
+ TIS(I,J)=AIMW 16141000
+ 270 CONTINUE 16142000
+ DO 280 J=1,27 16143000
+ TRS(1,J)=TRS(3,J) 16144000
+ TIS(1,J)=-TIS(3,J) 16145000
+ TIS(2,J)=0. 16146000
+ 280 CONTINUE 16147000
+ RETURN 16148000
+ END 16149000
+ SUBROUTINE W(REZ,AIM1,REW,AIMW) 16150000
+C *********************************************************** 16151000
+C 16152000
+C SUBROUTINE W CALCULATES REW(REZ,AIM1) AND AIMW(REZ,AIM1) THE 16153000
+C REAL AND IMAGINARY COMPLEX PROBABILITY INTEGRALS 16154000
+C 16155000
+C REZ ARGUMENT REZ AT WHICH REW AND AIMW ARE TO BE 16156000
+C CALCULATED 16157000
+C AIM1 ARGUMENT AIM1 AT WHICH REW AND AIMW ARE TO BE 16158000
+C CALCULATED 16159000
+C REW REAL COMPLEX PROBABILITY INTEGRAL W 16160000
+C AIMW IMAGINARY COMPLEX PROBABILITY INTEGRAL W 16161000
+C 16162000
+C SUBROUTINES CALLED BY SUBROUTINE W 16163000
+C 16164000
+C DABS FORTRAN ABSOLUTE VALUE FUNCTION (DOUBLE 16165000
+C PRECISION) 16166000
+C DEXP FORTRAN EXPONENTIAL FUNCTION (DOUBLE PRECISION) 16167000
+C DCOS FORTRAN COSINE FUNCTION (DOUBLE PRECISION) 16168000
+C DSIN FORTRAN SINE FUNCTION (DOUBLE PRECISION) 16169000
+C 16170000
+C DECLARE DOUBLE PRECISION ALL VARIABLES WHICH ARE NEEDED IN ORDER 16171000
+C TO PRESERVE ACCURACY. 16172000
+C 16173000
+ IMPLICIT REAL*8 (A-H,O-Z) 16174000
+ REW=0. 16175000
+ AIMW=0. 16176000
+ AIMZ=DABS(AIM1) 16177000
+ ABREZ=DABS(REZ) 16178000
+ IF ((ABREZ+AIMZ).NE.0) GO TO 10 16179000
+ REW=1. 16180000
+ AIMW=0. 16181000
+ RETURN 16182000
+ 10 CONTINUE 16183000
+ R2=REZ*REZ 16184000
+ AI2=AIMZ*AIMZ 16185000
+ IF (ABREZ+1.25D0*AIMZ.LE.5.) GO TO 40 16186000
+ 20 CONTINUE 16187000
+ IF (ABREZ+1.1D0*AIMZ-6.6D0) 190,190,180 16188000
+ 30 CONTINUE 16189000
+ IF (ABREZ+1.43333D0*AIMZ-4.3D0) 210,210,200 16190000
+ 40 CONTINUE 16191000
+ IF (ABREZ+1.863636D0*AIMZ-4.1D0) 130,130,60 16192000
+ 50 CONTINUE 16193000
+ IF (AIMZ-1.5) 120,220,220 16194000
+ 60 CONTINUE 16195000
+ IF (AIMZ-1.4D0) 170,170,30 16196000
+ 70 CONTINUE 16197000
+ IF (ABREZ+1.07317D0*AIMZ-4.4D0) 210,210,200 16198000
+ 80 CONTINUE 16199000
+ IF (ABREZ-2.7D0) 290,300,300 16200000
+ 90 CONTINUE 16201000
+ IF (ABREZ.LT.3.1D0) GO TO 80 16202000
+ 100 CONTINUE 16203000
+ IF (ABREZ-3.4D0) 310,320,320 16204000
+ 110 CONTINUE 16205000
+ IF (R2+1.18D0*AI2-5.76D0) 50,90,90 16206000
+ 120 CONTINUE 16207000
+ IF (R2+1.7227D0*AI2-4.41D0) 270,280,280 16208000
+ 130 CONTINUE 16209000
+ IF (R2+1.71D0*AI2-2.89D0) 150,110,110 16210000
+ 140 CONTINUE 16211000
+ IF (R2+1.69D0*AI2-1.69D0) 250,260,260 16212000
+ 150 CONTINUE 16213000
+ IF (R2+2.0408D0*AI2-1.0) 160,140,140 16214000
+ 160 CONTINUE 16215000
+ IF (R2+1.5625D0*AI2-0.25D0) 230,240,240 16216000
+ 170 CONTINUE 16217000
+ IF (ABREZ+1.43333D0*AIMZ-4.3D0) 220,220,70 16218000
+ 180 CONTINUE 16219000
+ NMAX=1 16220000
+ GO TO 340 16221000
+ 190 CONTINUE 16222000
+ NMAX=2 16223000
+ GO TO 340 16224000
+ 200 CONTINUE 16225000
+ NMAX=3 16226000
+ GO TO 340 16227000
+ 210 CONTINUE 16228000
+ NMAX=4 16229000
+ GO TO 340 16230000
+ 220 CONTINUE 16231000
+ NMAX=6 16232000
+ GO TO 340 16233000
+ 230 CONTINUE 16234000
+ NMAX=2 16235000
+ GO TO 330 16236000
+ 240 CONTINUE 16237000
+ NMAX=3 16238000
+ GO TO 330 16239000
+ 250 CONTINUE 16240000
+ NMAX=4 16241000
+ GO TO 330 16242000
+ 260 CONTINUE 16243000
+ NMAX=5 16244000
+ GO TO 330 16245000
+ 270 CONTINUE 16246000
+ NMAX=6 16247000
+ GO TO 330 16248000
+ 280 CONTINUE 16249000
+ NMAX=7 16250000
+ GO TO 330 16251000
+ 290 CONTINUE 16252000
+ NMAX=8 16253000
+ GO TO 330 16254000
+ 300 CONTINUE 16255000
+ NMAX=9 16256000
+ GO TO 330 16257000
+ 310 CONTINUE 16258000
+ NMAX=10 16259000
+ GO TO 330 16260000
+ 320 CONTINUE 16261000
+ NMAX=11 16262000
+ 330 CONTINUE 16263000
+ KW=2 16264000
+ AIMZ=AIM1 16265000
+ GO TO 400 16266000
+ 340 CONTINUE 16267000
+ KW=1 16268000
+ IF (AIM1.GE.0) GO TO 350 16269000
+ KW=2 16270000
+ AIMZ=AIM1 16271000
+ GO TO 400 16272000
+C 16273000
+C W IS OBTAINED FROM ASYMPTOTIC SERIES 16274000
+C 16275000
+ 350 CONTINUE 16276000
+ RV=R2+R2 -AI2-AI2 16277000
+ AK=4.*REZ*AIMZ 16278000
+ EL=AK 16279000
+ H=0. 16280000
+ B=0. 16281000
+ A=0. 16282000
+ TEMPM=0. 16283000
+ TEMEL=0. 16284000
+ G=1. 16285000
+ C=-1.1283792*AIMZ 16286000
+ D=1.1283792*REZ 16287000
+ AM=RV-1. 16288000
+ AAK=1. 16289000
+ K=0 16290000
+ 360 CONTINUE 16291000
+ AJTEMP=AAK+AAK 16292000
+ TEMP4=(1.-AJTEMP)*AJTEMP 16293000
+ AJP=RV-(4.*AAK+1.) 16294000
+ GO TO 460 16295000
+ 370 CONTINUE 16296000
+ AAK=AAK+1. 16297000
+ K=K+1 16298000
+ PR=REW 16299000
+ PI=AIMW 16300000
+ AMAGN=TEMPM*TEMPM + TEMEL*TEMEL 16301000
+ REW=(TEMPC*TEMPM+TEMPD*TEMEL)/AMAGN 16302000
+ AIMW=(TEMPM*TEMPD-TEMEL*TEMPC)/AMAGN 16303000
+ IF (DABS(REW-PR)-1.D-6) 380,360,360 16304000
+ 380 CONTINUE 16305000
+ IF (REZ.EQ.0.) GO TO 500 16306000
+ IF (DABS(AIMW-PI)-1.D-6) 390,360,360 16307000
+ 390 CONTINUE 16308000
+ RETURN 16309000
+C 16310000
+C WT IS OBTAINED FROM TAYLOR SERIES 16311000
+C 16312000
+ 400 CONTINUE 16313000
+ TEMP1=R2+AI2 16314000
+ TEMP2=2.*TEMP1*TEMP1 16315000
+ AJ=-(R2-AI2)/TEMP2 16316000
+ AK=2.*REZ*AIMZ/TEMP2 16317000
+ C=0. 16318000
+ B=0. 16319000
+ AJSIG=0. 16320000
+ D=0. 16321000
+ JSIG=0 16322000
+ G=0. 16323000
+ H=0. 16324000
+ EL=0. 16325000
+ A=1. 16326000
+ AM=1. 16327000
+ SIGP=1.5 16328000
+ EXPON=DEXP(TEMP2*AJ) 16329000
+ EXPC=EXPON*DCOS(TEMP2*AK) 16330000
+ EXPS=-EXPON*DSIN(TEMP2*AK) 16331000
+ SIG2P=SIGP+SIGP 16332000
+ 410 CONTINUE 16333000
+ AJ4SIG=4.*AJSIG 16334000
+ AJ4SM1=AJ4SIG-1. 16335000
+ TEMP3=1./(AJ4SM1*(AJ4SIG+3.)) 16336000
+ TT4=SIG2P*(AJSIG+AJSIG-1.) 16337000
+ TEMP4=TT4/(AJ4SM1*(AJ4SIG+1.)*(AJ4SIG-3.)*AJ4SM1) 16338000
+ AJP=AJ+TEMP3 16339000
+ GO TO 460 16340000
+ 420 CONTINUE 16341000
+ AJSIG=AJSIG+1. 16342000
+ JSIG=JSIG+1 16343000
+ TEMP7=(AM*AM+EL*EL)*1.7724539 16344000
+ REF=(AIMZ*(C*AM+D*EL)-REZ*(AM*D-C*EL))/TEMP7/TEMP1 16345000
+ AIMF=(AIMZ*(AM*D-C*EL)+REZ*(C*AM+D*EL))/TEMP7/TEMP1 16346000
+ PR=REW 16347000
+ PI=AIMW 16348000
+ REW=EXPC-REF 16349000
+ AIMW=EXPS-AIMF 16350000
+ IF (DABS(REW-PR)-1.D-6) 430,450,450 16351000
+ 430 CONTINUE 16352000
+ IF (REZ.EQ.0.) GO TO 500 16353000
+ IF (DABS(AIMW-PI)-1.D-6) 440,450,450 16354000
+ 440 CONTINUE 16355000
+ RETURN 16356000
+ 450 CONTINUE 16357000
+ SIG2P=AJSIG+AJSIG 16358000
+ GO TO 410 16359000
+ 460 CONTINUE 16360000
+ TEMPC=AJP*C+TEMP4*A-AK*D 16361000
+ TEMPD=AJP*D+TEMP4*B+AK*C 16362000
+ TEMEL=AJP*EL+TEMP4*H+AK*AM 16363000
+ TEMPM=AJP*AM+TEMP4*G-AK*EL 16364000
+ A=C 16365000
+ B=D 16366000
+ G=AM 16367000
+ H=EL 16368000
+ C=TEMPC 16369000
+ D=TEMPD 16370000
+ AM=TEMPM 16371000
+ EL=TEMEL 16372000
+ IF (DABS(TEMPM)+DABS(TEMEL)-1.D15) 480,470,470 16373000
+ 470 CONTINUE 16374000
+ C=1.D-15*C 16375000
+ D=1.D-15*D 16376000
+ AM=1.D-15*AM 16377000
+ EL=1.D-15*EL 16378000
+ TEMPC=1.D-15*TEMPC 16379000
+ TEMPD=1.D-15*TEMPD 16380000
+ TEMPM=1.D-15*TEMPM 16381000
+ TEMEL=1.D-15*TEMEL 16382000
+ GO TO 490 16383000
+ 480 CONTINUE 16384000
+ IF (DABS(TEMPM)+DABS(TEMEL).GT.1.D-15) GO TO 490 16385000
+ C=1.D15*C 16386000
+ D=1.D15*D 16387000
+ AM=1.D15*AM 16388000
+ EL=1.D15*EL 16389000
+ TEMPC=1.D15*TEMPC 16390000
+ TEMPD=1.D15*TEMPD 16391000
+ TEMPM=1.D15*TEMPM 16392000
+ TEMEL=1.D15*TEMEL 16393000
+ 490 CONTINUE 16394000
+ GO TO (370,420,510),KW 16395000
+ 500 CONTINUE 16396000
+ AIMW=0.0 16397000
+ 510 CONTINUE 16398000
+ RETURN 16399000
+ END 16400000
+ SUBROUTINE UNRINT ( 16401000
+ 2N41,N27,TR,TI,TRS,TIS, 16402000
+ 3N150,SIGCAP,SIGFIS,SIGTOT,ZETA,PSIZRO,BETPSI,BBETA, 16403000
+ 4BVCTR,PVCTR,RVCTR,GAMTOT,GAMFIS,PSHFT0,PSHFT1,PSHFT2,V1,V2, 16404000
+ 5ES,GF,D,GA,GNO,DELTA,GAMCMP,SIGCMP,GX,SIGPOT ) 16405000
+C *************************************************************** 16406000
+C 16407000
+C SUBROUTINE UNRINT IS TAKEN FROM UNRES PROGRAM,WRITTEN BY TOPPEL 16408000
+C (ANL) 16409000
+C 16410000
+C 16411000
+C SUBROUTINE UNRINT CALCULATES THE SINGLE LEVEL UNRESOLVED 16412000
+C RESONANCE INTEGRAL INCLUDING INTERFERENCE SCATTERING. SELF 16413000
+C OVERLAP IS ACCOUNTED FOR TO SECOND ORDER. THE OVERLAP INTEGRAL 16414000
+C CAN BE WRITTEN AS A FIRST ORDER TERM, SAY K1, MINUS A SECOND 16415000
+C ORDER TERM, SAY K2. K1 AND K2 EACH CONSIST OF TWO TERMS, A 16416000
+C LEAD TERM AND A SECOND TERM. THE SECOND TERMS OF K1 AND K2, 16417000
+C SAY L1 AND L2, REQUIRE EVALUATING FOURIER TRANSFORMS OF 16418000
+C VARIOUS EXPRESSIONS. 16419000
+C 16420000
+C SIGCAP UNRESOLVED RESONANT CAPTURE CROSS SECTIONS 16421000
+C SIGFIS UNRESOLVED RESONANT FISSION CROSS SECTIONS 16422000
+C SIGTOT UNRESOLVED RESONANCE TOTAL CROSS SECTIONS 16423000
+C SIGCMP UNRESOLVED RESONANCE COMPETITIVE CROSS SECTIONS 16424000
+C ETA ABSOLUTE VALUE OF THE RATIO OF THE GAUSS- 16425000
+C HERMITE QUADRATURE POINTS TO THE NORMALIZATION 16426000
+C FACTOR ALPHA 16427000
+C GAMTOT AVERAGE TOTAL WIDTHS WORKING ARRAY 16428000
+C GAMFIS AVERAGE FISSION WIDTHS WORKING ARRAY 16429000
+C GAMCMP AVERAGE COMPETITIVE WIDTHS WORKING ARRAY 16430000
+C ZETA RATIO OF TOTAL WIDTHS TO DOPPLER WIDTHS 16431000
+C WORKING ARRAY 16432000
+C PSIZRO PSI(THETA,0) WORKING ARRAY 16433000
+C BETPSI BETA+PSIZRO WORKING ARRAY 16434000
+C BBETA WORKING ARRAY FOR BETA AND WEIGHT. BETA IS THE 16435000
+C RATIO OF SIGMA POTENTIAL TO SIGMA ZERO. 16436000
+C WEIGHT IS THE PRODUCT OF TWO OF THE W VALUES 16437000
+C WHERE W ARE THE PORTER-THOMAS INTEGRATION 16438000
+C WEIGHTS. THE WEIGHTS ARE STORED OFFSET BY 16439000
+C 2*NPORTR*NPORTR BEYOND THE BETAS 16440000
+C E1 WORKING ARRAY 16441000
+C E2 WORKING ARRAY 16442000
+C AMATRX WORKING ARRAY USED DURING MATRIX INVERSION 16443000
+C BVCTR VECTOR B IN A*P=B 16444000
+C AVGGM WORKING ARRAY FOR SECOND TERM OF FIRST 16445000
+C ORDER OVERLAP TERM 16446000
+C AVGFS WORKING ARRAY FOR SECOND TERM OF FIRST 16447000
+C ORDER OVERLAP TERM 16448000
+C AVGTO WORKING ARRAY FOR SECOND TERM FO FIRST 16449000
+C ORDER OVERLAP TERM 16450000
+C AVGCS WORKING ARRAY FOR SECOND TERM OF FIRST 16451000
+C ORDER OVERLAP TERM 16452000
+C NDIM ONE HALF OF THE ORDER OF THE GAUSS-HERMITE 16453000
+C INTEGRATION, NHERM/2 16454000
+C D11 WORKING ARRAY FOR THE LEFT PARTITION OF 16455000
+C THE INVERSE OF MATRIX A IN A*P=B 16456000
+C D12 WORKING ARRAY FOR THE RIGHT PARTITION OF 16457000
+C THE INVERSE OF MATRIX A IN A*P=B 16458000
+C A11 WORKING ARRAY FOR THE LEFT PARTITION OF 16459000
+C THE MATRIX A IN A*P=B 16460000
+C A12 WORKING ARRAY FOR THE RIGHT PARTITION OF 16461000
+C THE MATRIX A IN A*P=B 16462000
+C PVCTR VECTOR P IN A*P=B 16463000
+C RVCTR R VECTOR IN A*R=V 16464000
+C AVGGM2 WORKING ARRAY FOR THE SECOND TERM OF THE SECOND 16465000
+C ORDER OVERLAP TERM 16466000
+C AVGFS2 WORKING ARRAY FOR THE SECOND TERM OF THE SECOND 16467000
+C ORDER OVERLAP TERM 16468000
+C AVGTO2 WORKING ARRAY FOR THE SECOND TERM OF THE SECOND 16469000
+C ORDER OVERLAP TERM 16470000
+C AVGCS2 WORKING ARRAY FOR THE SECOND TERM OF THE SECOND 16471000
+C ORDER OVERLAP TERM 16472000
+C AVGR2 WORKING ARRAY FOR THE SECOND TERM OF THE SECOND 16473000
+C ORDER OVERLAP TERM 16474000
+C ANORM WORKING ARRAY FOR THE DIAGONAL ELEMENTS OF 16475000
+C VECTOR WORKING ARRAY 16476000
+C NPTI NUMBER OF ENERGY POINTS E STAR AT WHICH 16477000
+C UNRESOLVED RESONANCE INTEGRALS WILL BE 16478000
+C CALCULATED FOR THE CURRENT ISOTOPE 16479000
+C ES ENERGY POINTS E STAR AT WHICH RESONANCE 16480000
+C INTEGRALS WILL BE EVALUATED FOR CURRENT ISOTOPE 16481000
+C DELTA DOPPLER LINE WIDTHS 16482000
+C JST NUMBER OF CHANNEL SPIN STATES ASSOCIATED WITH 16483000
+C A PARTICULAR ANGULAR MOMENTUM STATE L 16484000
+C GA AVERAGE RADIATION WIDTHS, EV 16485000
+C D AVERAGE LEVEL SPACINGS, EV 16486000
+C GF AVERAGE FISSION WIDTHS, EV 16487000
+C GNO AVERAGE REDUCED NEUTRON WIDTHS, EV 16488000
+C GX AVERAGE COMPETITIVE WIDTHS, EV 16489000
+C G STATISTICAL FACTOR (2J+1)/(2*(2I+1)) WHERE 16490000
+C J IS THE CHANNEL SPIN AND I IS THE SPIN OF THE 16491000
+C TARGET NUCLEUS 16492000
+C NDFF NUMBER OF DEGREES OF FREEDOM IN THE FISSION 16493000
+C WIDTH DISTRIBUTION (1,2,3, OR 4) 16494000
+C NDFN NUMBER OF DEGREES OF FREEDOM IN THE NEUTRON 16495000
+C WIDTH DISTRIBUTION (1 OR 2) 16496000
+C NDFX NUMBER OF DEGREES OF FREEDOM IN THE COMPETITIVE 16497000
+C WIDTH DISTRIBUTION (0,1,2,3, OR 4) 16498000
+C PSHFT0 L=0 PHASE SHIFTS 16499000
+C PSHFT1 L=1 PHASE SHIFTS 16500000
+C PSHFT2 L=2 PHASE SHIFTS 16501000
+C V1 L=1 PENETRATION FACTORS 16502000
+C V2 L=2 PENETRATION FACTORS 16503000
+C 16504000
+C SIGPOT SCATT POTENZIALE DI RISONANZA (INSERTED BY GALLI) 16505000
+C 16506000
+C SUBPROGRAMS CALLED BY SUBROUTINE UNRINT 16507000
+C 16508000
+C QUICKW PROGRAM SUBROUTINE TO OBTAIN THE REAL AND 16509000
+C IMAGINARY PARTS OF THE W FUNCTION. QUICKW IS 16510000
+C AN ENTRY POINT OF SUBROUTINE QUICK1 16511000
+C SQRT FORTRAN SQUARE ROOT FUNCTION (SINGLE PRECISION) 16512000
+C QUICKJ CALCULATES THE RESONANCE INTEGRALS INCLUDING 16513000
+C INTERFERENCE SCATTERING 16514000
+C ABS FORTRAN ABSOLUTE VALUE FUNCTION 16515000
+C (SINGLE PRECISION) 16516000
+C EXP FORTRAN EXPONENTIAL FUNCTION (SINGLE 16517000
+C PRECISION) 16518000
+C WZERO CALCULATES THE REAL PART OF W(0,ARG) 16519000
+C ALOG FORTRAN LOGARITM FUNCTION (SINGLE PRECISION) 16520000
+C COS FORTRAN COSINE FUNCTION (SINGLE PRECISION) 16521000
+C TAN FORTRAN TANGENT FUNCTION (SINGLE PRECISION) 16522000
+C MATRI1 INVERTS A SQUARE MATRIX 16523000
+C 16524000
+C 16525000
+ DIMENSION X(40),XGH(10),WGH(10),E3(5),W(40) 16526000
+C 16527000
+ COMMON /DRCUNR/ TEMPM,ABUNDI,AM,CMCOR,LSTI,JSTI,IFIS, 16528000
+ 1 NPORTR,NHERM,NHERM2,NOVRLP,MAT,NPTI,RPENTR, 16529000
+ 2 RPSHFT,NGUS13,NGUS9,WATE13,WATE9,SIGP11 16530000
+ COMMON/INTEGL/ BETA,THETA,A,FJ,PSIZ,H,TEST1,FJN,FJ2N,TERM2,FJT 16531000
+C COMMON/RATION/ARG,PSIEZ 16532000
+C COMMON /UNRDAT/ SIGCAP(150),SIGFIS(150),SIGTOT(150),ETA(5), 16533000
+C 1 AVGGM(5),AVGGM2(5),AVGTO(5),AVGTO2(5),AVGR2(5), 16534000
+C 2 VECTOR(5),AVGFS(5),AVGFS2(5),E1(10),E2(10), 16535000
+C 3 ANORM(10),A11(5,5),A12(5,5),D11(5,5),D12(5,5), 16536000
+C 4 AMATRX(5,5),ZETA(1000),PSIZRO(1000),BETPSI(1000), 16537000
+C 5 BBETA(4000),BVCTR(5,1000),PVCTR(5,1000), 16538000
+C 6 RVCTR(5,1000),GAMTOT(2000),GAMFIS(2000), 16539000
+C 7 PSHFT0(150),PSHFT1(150), 16540000
+C 7 PSHFT2(150),V1(150),V2(150),ES(150), 16541000
+C 8 JST(3),G(12),NDFN(12),NDFF(12),GF(150,12), 16542000
+C 9 D(150,12),GA(150,12),GNO(150,12),DELTA(150), 16543000
+C A GAMCMP(2000),SIGCMP(150),AVGCS(5),AVGCS2(5), 16544000
+C B NDFX(12),GX(150,12) 16545000
+ COMMON /UNRDAT/ ETA(5), 16546000
+ 1 AVGGM(5),AVGGM2(5),AVGTO(5),AVGTO2(5),AVGR2(5), 16547000
+ 2 VECTOR(5),AVGFS(5),AVGFS2(5),E1(10),E2(10), 16548000
+ 3 ANORM(10),A11(5,5),A12(5,5),D11(5,5),D12(5,5), 16549000
+ 4 AMATRX(5,5), 16550000
+ 8 JST(3),G(12),NDFN(12),NDFF(12), 16551000
+ A AVGCS(5),AVGCS2(5), 16552000
+ B NDFX(12) 16553000
+ DIMENSION SIGCAP(N150),SIGFIS(N150),SIGTOT(N150),ZETA(1000), 16554000
+ 1 PSIZRO(1000),BETPSI(1000),BBETA(4000),BVCTR(5,1000), 16555000
+ 2 PVCTR(5,1000),RVCTR(5,1000),GAMTOT(2000),GAMFIS(2000), 16556000
+ 3 PSHFT0(N150),PSHFT1(N150),PSHFT2(N150),V1(N150), 16557000
+ 4 V2(N150),ES(N150),GF(N150,12),D(N150,12),GA(N150,12), 16558000
+ 5 GNO(N150,12),DELTA(N150),GAMCMP(2000),SIGCMP(N150), 16559000
+ 6 GX(N150,12) 16560000
+C 16561000
+ DIMENSION SIGPOT(N150) 16562000
+ DIMENSION TI(N41,N27),TR(N41,N27),TRS(N41,N27),TIS(N41,N27) 16563000
+C 16564000
+C CONSTANTS FOR PORTER-THOMAS INTEGRATION. X(1)-X(10) ARE FOR 1 16565000
+C DEGREE OF FREEDOM, X(11)-X(20) ARE FOR 2 DEGREES OF FREEDOM, ETC. 16566000
+ DATA X/ 3.0013465E-03,7.8592886E-02,4.3282415E-01,1.3345267E+00, 16567000
+ 1 3.0481846E+00,5.8263198E+00,9.9452656E+00,1.5782128E+01, 16568000
+ 2 2.3996824E+01,3.6216208E+01, 16569000
+ 3 1.3219203E-02,7.2349624E-02,1.9089473E-01,3.9528842E-01, 16570000
+ 4 7.4083443E-01,1.3498293E+00,2.5297983E+00,5.2384894E+00, 16571000
+ 5 1.3821772E+01,7.5647525E+01, 16572000
+ 6 1.0004488E-03,2.6197629E-02,1.4427472E-01,4.4484223E-01, 16573000
+ 7 1.0160615E+00,1.9421066E+00,3.3150885E+00,5.2607092E+00, 16574000
+ 8 7.9989414E+00,1.2072069E+01, 16575000
+ 9 1.3219203E-02,7.2349624E-02,1.9089473E-01,3.9528842E-01, 16576000
+ A 7.4083443E-01,1.3498293E+00,2.5297983E+00,5.2384894E+00, 16577000
+ B 1.3821772E+01,7.5647525E+01/ 16578000
+C 16579000
+C CORRESPONDING WEIGHTS FOR THE PORTER-THOMAS INTEGRATION 16580000
+C 16581000
+ DATA W/ 1.1120413E-01,2.3546798E-01,2.8440987E-01,2.2419127E-01, 16582000
+ 1 1.0967668E-01,3.0493789E-02,4.2930874E-03,2.5827047E-04, 16583000
+ 2 4.9031965E-06,1.4079206E-08, 16584000
+ 3 3.3773418E-02,7.9932171E-02,1.2835937E-01,1.7652616E-01, 16585000
+ 4 2.1347043E-01,2.1154965E-01,1.3365186E-01,2.2630659E-02, 16586000
+ 5 1.6313638E-05,0.0, 16587000
+ 6 3.3376214E-04,1.8506108E-02,1.2309946E-01,2.9918923E-01, 16588000
+ 7 3.3431475E-01,1.7766657E-01,4.2695894E-02,4.0760575E-03, 16589000
+ 8 1.1766115E-04,5.0989546E-07, 16590000
+ 9 1.7623788E-03,2.1517749E-02,8.0979849E-02,1.8797998E-01, 16591000
+ A 3.0156335E-01,2.9616091E-01,1.0775649E-01,2.5171914E-03, 16592000
+ B 8.9630388E-10,0.0/ 16593000
+C 16594000
+C ABSCISSA FOR 10 POINT GAUSS-HERMITE INTEGRATION 16595000
+C 16596000
+ DATA XGH/3.436159119,2.532731674,1.756683649,1.036610830, 16597000
+ 1 0.3429013272,-3.436159119,-2.532731674,-1.756683649, 16598000
+ 2 -1.036610830,-0.3429013272/ 16599000
+C 16600000
+C WEIGHTS FOR 10 POINT GAUSS-HERMITE INTEGRATION 16601000
+C 16602000
+ DATA WGH/0.7640432855E-5,0.1343645747E-2,0.3387439446E-1, 16603000
+ 1 0.2401386111,0.6108626337,0.7640432855E-5, 16604000
+ 2 0.1343645747E-2,0.3387439446E-1,0.2401386111, 16605000
+ 3 0.6108626337/ 16606000
+C 16607000
+C E3=EXP(XGH*XGH) 16608000
+C 16609000
+ DATA E3/0.1342138216E06,0.6107756657E03,0.2188797595E02, 16610000
+ 1 0.2928709882E01,0.1124773093E01/ 16611000
+C 16612000
+C 16613000
+C 0.636619772 IS 2/PI 16614000
+C 1.591549431 IS 1/(2*PI) 16615000
+C 0.101321184 IS 1/(PI*PI) 16616000
+C 1.253314137 IS SQRT OF (PI/2) 16617000
+C 0.353553391 IS 1/(2*SQRT(2)) 16618000
+C 0.707106781 IS 1/(SQRT(2)) 16619000
+C 0.626657069 IS SQRT(PI)/(2*SQRT(2)) 16620000
+C 0.797884561 IS SQRT(2/PI) 16621000
+C 0.318309886 IS 1/PI 16622000
+C 0.392699082 IS PI/8 16623000
+C 1.570796327 IS PI/2 16624000
+C 0.7853981633 IS PI/4 16625000
+C 0.8862269254 IS SQRT(PI)/2 16626000
+C 16627000
+C 16628000
+C ELIMINATE ANY 0 FROM THE NDFF AND NDFN ARRAYS 16629000
+C ALLOW A MAXIMUM OF 4 DEGREES OF FREEDOM FOR COMPETITIVE WIDTH 16630000
+C 16631000
+ DO 350 I=1,JSTI 16632000
+ IF(NDFF(I).EQ.0) NDFF(I)=1 16633000
+ IF(NDFN(I).EQ.0) NDFN(I)=1 16634000
+ IF (NDFX(I).GT.4) NDFX(I)=4 16635000
+ 350 CONTINUE 16636000
+C 16637000
+C INTFIS IS SET EQUAL TO 1 FOR NON-FISSILE MATERIALS AND 16638000
+C SET TO NPORTR FOR FISSILE MATERIALS. INTFIS IS A LOOP INDEX 16639000
+C LIMIT FOR THE PORTER THOMAS INTEGRATION OF THE FISSION WIDTHS 16640000
+C 16641000
+ INTFIS=1 16642000
+ IF (IFIS.NE.0) INTFIS=NPORTR 16643000
+C 16644000
+C OFFSET IN ARRAYS GAMTOT, GAMFIS, AND BBETA FOR USE IN THE 16645000
+C ASYMPTOTIC TERMS OF THE GAUSS-HERMITE INTEGRATION 16646000
+C 16647000
+ JOG1=NPORTR*NPORTR 16648000
+ IF(IFIS.EQ.1) JOG1=JOG1*NPORTR 16649000
+C 16650000
+C OFFSET IN ARRAY BBETA FOR THE WEIGHTS WHICH ARE THE PRODUCT OF 16651000
+C TWO OF THE W VALUES 16652000
+C 16653000
+ JOG2=2*JOG1 16654000
+ SQTTEM=SQRT(TEMPM) 16655000
+C 16656000
+C INITIALIZE SIGCAP, SIGFIS, SIGTOT, SIGCMP 16657000
+C 16658000
+ DO 140 N=1,NPTI 16659000
+C 16660000
+ SIGCMP(N)=0. 16661000
+ SIGCAP(N)=0. 16662000
+ SIGTOT(N)=0. 16663000
+ SIGFIS(N)=0. 16664000
+ 140 CONTINUE 16665000
+C 16666000
+C 16667000
+C LOOP OVER ENERGY POINTS E STAR 16668000
+C 16669000
+ DO 100 NN=1,NPTI 16670000
+ DEL=DELTA(NN)*SQTTEM 16671000
+C 16672000
+C RECIPROCAL OF DELTA, THE DOPPLER LINE WIDTH 16673000
+C 16674000
+ DELTIN=1.0/DEL 16675000
+ SRE=SQRT(ES(NN)) 16676000
+ JOG=0 16677000
+C 16678000
+ SIGP = SIGP11+SIGPOT(NN) 16679000
+C 16680000
+C LOOP OVER L STATES 16681000
+C 16682000
+ DO 130 LL=1,LSTI 16683000
+C 16684000
+C SET PENETRATION FACTORS AND PHASE ANGLES 16685000
+C 16686000
+ IF(LL.NE.1) GO TO 192 16687000
+ V=1.0 16688000
+ ANGLE=PSHFT0(NN) 16689000
+ GO TO 190 16690000
+ 192 CONTINUE 16691000
+ IF(LL.NE.2) GO TO 194 16692000
+ V=V1(NN) 16693000
+ ANGLE=PSHFT1(NN) 16694000
+ GO TO 190 16695000
+ 194 CONTINUE 16696000
+ V=V2(NN) 16697000
+ ANGLE=PSHFT2(NN) 16698000
+ 190 CONTINUE 16699000
+C 16700000
+C INTERFERENCE FACTOR A 16701000
+C 16702000
+ ANGLE2=2.0*ANGLE 16703000
+ A=0.5*TAN(ANGLE2) 16704000
+ FACTOR=COS(ANGLE2) 16705000
+ JS=JST(LL) 16706000
+ IF(LL.GT.1) JOG=JOG+JST(LL-1) 16707000
+C 16708000
+C LOOP OVER J STATES 16709000
+C 16710000
+ DO 130 JJ=1,JS 16711000
+ BARJ=0. 16712000
+ TBARJ=0. 16713000
+ FBARJ=0. 16714000
+ BARJN=0. 16715000
+ TBARJN=0. 16716000
+ FBARJN=0. 16717000
+ CBARJ=0. 16718000
+ CBARJN=0. 16719000
+ FC=0. 16720000
+ FC2=0. 16721000
+ FG=0. 16722000
+ FG2=0. 16723000
+ FF=0. 16724000
+ FF2=0. 16725000
+ FT=0. 16726000
+ FT2=0. 16727000
+ OVG=0. 16728000
+ OVF=0. 16729000
+ OVT=0. 16730000
+ OVC=0. 16731000
+ OVERLC=0. 16732000
+ OVERLG=0. 16733000
+ OVERLF=0. 16734000
+ OVERLT=0. 16735000
+ INS=0 16736000
+ IAS=0 16737000
+ AVGAM=0. 16738000
+ AVIND=0. 16739000
+ AVINDF=0. 16740000
+ AVINDT=0. 16741000
+ AVINDC=0. 16742000
+ SEC=0. 16743000
+ TBARJ2=0. 16744000
+ SEG=0. 16745000
+ SEF=0. 16746000
+ SET=0. 16747000
+ JL=JJ+JOG 16748000
+ NDNOFF=NPORTR*(NDFN(JL)-1) 16749000
+ NDFOFF=NPORTR*(NDFF(JL)-1) 16750000
+ NDXOFF=NPORTR*(NDFX(JL)-1) 16751000
+C 16752000
+C CHECK TO DETERMINE WHETHER THERE IS A COMPETITIVE WIDTH 16753000
+C 16754000
+ INTCMP=1 16755000
+ GXX=GX(NN,JL) 16756000
+ IF (GXX.GT.0.0.AND.NDXOFF.GE.0) INTCMP=NPORTR 16757000
+ AMU=NDFN(JL) 16758000
+ AVD=D(NN,JL) 16759000
+ AVD1=1.0/AVD 16760000
+ GAMCAP=GA(NN,JL) 16761000
+C 16762000
+C PORTER-THOMAS AVERAGING FOR THE LEAD TERM OF THE RESONANCE 16763000
+C INTEGRALS AND THE LEAD TERMS OF THE FIRST AND SECOND ORDER PARTS 16764000
+C OF THE OVERLAP INTEGRALS 16765000
+C 16766000
+C PORTER-THOMAS INTEGRATION FOR THE COMPETITIVE WIDTH 16767000
+C 16768000
+ DO 200 L=1,INTCMP 16769000
+ WGTX=1.0 16770000
+ IF (INTCMP.EQ.1) GO TO 500 16771000
+ INDEXC=L+NDXOFF 16772000
+ WGTX=W(INDEXC) 16773000
+ GXX=GX(NN,JL)*X(INDEXC) 16774000
+ 500 CONTINUE 16775000
+C 16776000
+C PORTER-THOMAS INTEGRATION FOR THE NEUTRON WIDTH 16777000
+C 16778000
+ DO 200 J=1,NPORTR 16779000
+ INDEXN=J+NDNOFF 16780000
+ GN=GNO(NN,JL)*SRE*V*AMU*X(INDEXN) 16781000
+ WEIGHT=WGTX*W(INDEXN) 16782000
+C 16783000
+C PORTER-THOMAS INTEGRATION FOR FISSION WIDTH 16784000
+C 16785000
+ DO 200 K=1,INTFIS 16786000
+ IF(IFIS.EQ.0) GO TO 210 16787000
+ INDEXF=K+NDFOFF 16788000
+ WEIGHT=WGTX*W(INDEXN)*W(INDEXF) 16789000
+ GFF=GF(NN,JL)*X(INDEXF) 16790000
+ GAM=GN+GFF+GAMCAP+GXX 16791000
+ THETA=GAM*DELTIN 16792000
+ WHY=0.5*THETA 16793000
+ SIG0=ABUNDI*2.6039953E06*G(JL)*GN*CMCOR/(ES(NN)*GAM) 16794000
+ BETA=SIGP/(SIG0*FACTOR) 16795000
+ BETA1=1.0/BETA 16796000
+ BETA1P=BETA1*1.570796327 16797000
+C*****CALL QUICKJ*******************************************************16798000
+ CALL QUICKJ(N41,N27,TR,TI,TRS,TIS) 16799000
+C 16800000
+C THE RESONANCE INTEGRAL IS RETURNED IN FJ IN COMMON/INTEGL/ 16801000
+C THE RESONANCE INTEGRAL WITHOUT INTERFERENCE SCATTERING IS 16802000
+C RETURNED IN FJN IN COMMON/INTEGL/ 16803000
+C 16804000
+C 16805000
+ GO TO 220 16806000
+C 16807000
+C THE MATERIAL IS NOT FISSILE 16808000
+C 16809000
+ 210 CONTINUE 16810000
+ GAM=GN+GAMCAP+GXX 16811000
+ THETA=GAM*DELTIN 16812000
+ WHY=0.5*THETA 16813000
+ SIG0=ABUNDI*2.6039953E06*G(JL)*GN*CMCOR/(ES(NN)*GAM) 16814000
+ BETA=SIGP/(SIG0*FACTOR) 16815000
+ BETA1=1.0/BETA 16816000
+ BETA1P=BETA1*1.570796327 16817000
+C*****CALL QUICKJ*******************************************************16818000
+ CALL QUICKJ(N41,N27,TR,TI,TRS,TIS) 16819000
+C 16820000
+C THE RESONANCE INTEGRAL IS RETURNED IN FJ IN COMMON/INTEGL/ 16821000
+C THE RESONANCE INTEGRAL WITHOUT INTERFERENCE SCATTERING IS 16822000
+C RETURNED IN FJN IN COMMON/INTEGL/. THE INTEGRAL OF 16823000
+C BETA*PSI/(BETA+PSI)**2 WITHOUT INTERFERENCE SCATTERING IS 16824000
+C RETURNED IN FJ2N IN COMMON/INTEGL/. THE TOTAL RESONANCE INTEGRAL 16825000
+C IS RETURNED IN FJT IN COMMON/INTEGL/ 16826000
+C 16827000
+ 220 CONTINUE 16828000
+ BARJ=BARJ+FJ*WEIGHT 16829000
+ BARJN=BARJN+FJN*WEIGHT 16830000
+ GW=GAM*WEIGHT 16831000
+ TBARJ=TBARJ+FJT*GW 16832000
+ TBARJN=TBARJN+FJN*GW 16833000
+ IF(IFIS.EQ.0) GO TO 225 16834000
+ GFW=GFF*WEIGHT 16835000
+ FBARJ=FBARJ+FJ*GFW 16836000
+ FBARJN=FBARJN+FJN*GFW 16837000
+ 225 CONTINUE 16838000
+ GXW=GXX*WEIGHT 16839000
+ CBARJ=CBARJ+FJ*GXW 16840000
+ CBARJN=CBARJN+FJN*GXW 16841000
+C EVALUATE 1/BETA TIMES THE INTEGRAL OF PSI**2/(BETA+PSI) 16842000
+C ****** LE PRIME DUE RIGHE DENTRO IF ERANO FUORI. H NON E DEFINITO 16843004
+C *** PER IF VERIFICATO, DAVA OVERFLOW ** GALLI - 16 - 7 - 87 ***** 16844004
+ IF(TEST1.LT.4.5) GO TO 235 16845000
+ TEMPID=BETA1P*PSIZ/H-TERM2 16846004
+ AVIND=AVIND+TEMPID*WEIGHT 16847004
+ AVINDT=AVINDT+GW *TEMPID 16848000
+ IF(IFIS.EQ.1) AVINDF=AVINDF+GFW*TEMPID 16849000
+ AVINDC=AVINDC+GXW*TEMPID 16850000
+ GO TO 255 16851000
+ 235 CONTINUE 16852000
+ BETAFJ=BETA1P-FJN 16853000
+ AVIND=AVIND+BETAFJ*WEIGHT 16854000
+ AVINDT=AVINDT+GW *BETAFJ 16855000
+ IF(IFIS.EQ.1) AVINDF=AVINDF+GFW*BETAFJ 16856000
+ AVINDC=AVINDC+GXW*BETAFJ 16857000
+ 255 CONTINUE 16858000
+C 16859000
+C EVALUATE GAMMA TOTAL*BETA*PSI/(BETA+PSI)**2 16860000
+C 16861000
+ TBARJ2=TBARJ2+FJ2N*GW 16862000
+C 16863000
+C EVALUATE GAMMA TOTAL*SQRT((BETA+1)/BETA) 16864000
+C 16865000
+ AVGAM=AVGAM+GW *SQRT((BETA+1.0)*BETA1) 16866000
+C 16867000
+C TEST1 IS USED TO CHECK FOR APPLICABILITY OF THE ASYMPTOTIC 16868000
+C EXPRESSIONS FOR THE FOURIER TRANSFORM OF PSI/(PSI+BETA) 16869000
+C 16870000
+ IF(TEST1.GE.2.5) GO TO 230 16871000
+C 16872000
+C SET UP FOR NON-ASYMPTOTIC TERMS OF THE GAUSS-HERMITE 16873000
+C INTEGRATION. INS IS THE NUMBER OF PORTER THOMAS POINTS GOING 16874000
+C TO THE NON-ASYMPTOTIC PART OF THE OVERLAP INTEGRAL 16875000
+C 16876000
+ INS=INS+1 16877000
+ IF(INS.GT.2000) CALL ERR(8HUNRINT ,230) 16878000
+ BBETA(INS)=BETA 16879000
+ GAMTOT(INS)=GAM 16880000
+ INSOFF=INS+JOG2 16881000
+ IF(INSOFF.GT.4000) CALL ERR(8HUNRINT ,231) 16882000
+ BBETA(INSOFF)=WEIGHT 16883000
+ IF(IFIS.EQ.1) GAMFIS(INS)=GFF 16884000
+ GAMCMP(INS)=GXX 16885000
+ GO TO 200 16886000
+C 16887000
+C SET UP FOR ASYMPTOTIC TERMS OF THE GAUSS-HERMITE 16888000
+C INTEGRATION. IAS IS THE NUMBER OF PORTER THOMAS POINTS GOING 16889000
+C TO THE ASYMPTOTIC PART OF THE OVERLAP INTEGRALS 16890000
+C 16891000
+ 230 CONTINUE 16892000
+ IAS=IAS+1 16893000
+ IF(IAS.GT.1000) CALL ERR(8HUNRINT ,232) 16894000
+ ZETA(IAS)=THETA 16895000
+C 16896000
+C ASYMPTOTIC TERMS FOR GAM, GFF, AND BETA STORED OFFSET IN GAMTOT, 16897000
+C GAMFIS, AND BBETA ARRAYS. JOG1 WAS SET AT THE BEGINNING OF THE 16898000
+C SUBROUTINE 16899000
+C 16900000
+ JJJ=IAS+JOG1 16901000
+ IF(JJJ.GT.2000) CALL ERR(8HUNRINT ,233) 16902000
+ GAMTOT(JJJ)=GAM 16903000
+ IF(IFIS.EQ.1) GAMFIS(JJJ)=GFF 16904000
+ GAMCMP(JJJ)=GXX 16905000
+ BBETA(JJJ)=BETA 16906000
+ KKK=JJJ+JOG2 16907000
+ IF(KKK.GT.4000) CALL ERR(8HUNRINT ,235) 16908000
+ BBETA(KKK)=WEIGHT 16909000
+C 16910000
+C PSIZ AND H ARE CALCULATED IN SUBROUTINE QUICKJ AND PASSED IN 16911000
+C COMMON/INTEGL/ BUT ONLY FOR TEST1.GE.4.5 16912000
+C 16913000
+ IF(TEST1.GE.4.5) GO TO 215 16914000
+ ARG=1.41421356237*WHY 16915000
+C*****CALL WZERO********************************************************16916000
+ CALL WZERO(ARG,PSIEZ) 16917000
+ PSIZ=0.8862269254*ARG*PSIEZ 16918000
+ H=PSIZ+BETA 16919000
+ 215 CONTINUE 16920000
+ PSIZRO(IAS)=PSIZ 16921000
+ BETPSI(IAS)=H 16922000
+ 200 CONTINUE 16923000
+C 16924000
+C AVERAGE OF GAMMAX*J/AVERAGE D FOR X EQUAL CAPTURE AND FISSION, 16925000
+C GAMMA TOTAL*J/AVERAGE D, GAMMAX/(BETA*AVERAGE D), 16926000
+C GAMMA TOTAL/(BETA*AVERAGE D), AND (BETA/AVERAGE D)* 16927000
+C PSI/(BETA+PSI)**2 16928000
+C 16929000
+ BARJ= BARJ*GAMCAP*AVD1 16930000
+ TBARJ= TBARJ*AVD1 16931000
+ IF(IFIS.EQ.1) FBARJ= FBARJ*AVD1 16932000
+ CBARJ=CBARJ*AVD1 16933000
+C 16934000
+C TEST TO SEE IF THE OVERLAP INTEGRAL IS TO BE IGNORED. THIS IS 16935000
+C USER DETERMINED. THE OVERLAP INTEGRAL CAN BE WRITTEN AS K1-K2 16936000
+C WHERE K1= A LEAD TERM-L1 AND K2= A LEAD TERM-L2. L1 AND L2 REQUIRE16937000
+C INTEGRATION OVER THE CORRELATION FUNCTION WHICH GIVES THE 16938000
+C PROBABILITY OF A RESONANCE K BEING FOUND AT A SEPARATION EK-EJ 16939000
+C FROM A RESONANCE J 16940000
+C 16941000
+C 16942000
+C GO TO 240 IF THERE IS NO OVERLAP INTEGRAL. THIS IS USER SPECIFIED 16943000
+C 16944000
+ IF(NOVRLP.LE.0) GO TO 240 16945000
+C 16946000
+C TEST WHETHER OVERLAP CAN BE IGNORED OWING TO AN EXCESSIVELY 16947000
+C LARGE VALUE FOR BETA. THIS WILL BE REFLECTED IN A SMALL VALUE 16948000
+C FOR TBARJ2 WHICH IS INVERSELY PROPORTIONAL TO BETA 16949000
+C 16950000
+ IF(TBARJ2.LT.1.0E-10) GO TO 240 16951000
+ BARJN= BARJN*GAMCAP*AVD1 16952000
+ TBARJN= TBARJN*AVD1 16953000
+ AVIND= AVIND*GAMCAP*AVD1 16954000
+ AVINDT= AVINDT*AVD1 16955000
+ IF(IFIS.EQ.0) GO TO 245 16956000
+ FBARJN= FBARJN*AVD1 16957000
+ AVINDF= AVINDF*AVD1 16958000
+ 245 CONTINUE 16959000
+ CBARJN=CBARJN*AVD1 16960000
+ AVINDC=AVINDC*AVD1 16961000
+ TBARJ2= TBARJ2*AVD1 16962000
+C 16963000
+C COMBINE TERMS TO OBTAIN THE LEAD TERM OF K2, THE SECOND ORDER 16964000
+C TERM OF THE OVERLAP INTEGRAL. THE LEAD TERM OF K1, THE FIRST 16965000
+C ORDER TERM ONLY INVOLVES BARJN AND TBARJN 16966000
+C 16967000
+ SEG=AVIND*TBARJ2 16968000
+ SET=AVINDT*TBARJ2 16969000
+ IF(IFIS.EQ.1) SEF=AVINDF*TBARJ2 16970000
+ SEC=AVINDC*TBARJ2 16971000
+C 16972000
+C ALPHA IS THE FACTOR TO CONVERT THE OVERLAP INTEGRAL TO THE 16973000
+C GAUSS-HERMITE FORM 16974000
+C 16975000
+ ALPHA=SQRT(0.5*DEL*DEL+.1013212*AVD*AVD+AVGAM*AVGAM) 16976000
+ ALPHA1=1.0/ALPHA 16977000
+ ALPHA2=ALPHA1*ALPHA1 16978000
+ DO 250 N=1,NHERM2 16979000
+C 16980000
+C INITIALIZE WORKING ARRAYS FOR USE IN CALCULATING L1 AND L2 THE 16981000
+C SECOND TERMS OF THE FIRST AND SECOND ORDER TERMS OF THE OVERLAP 16982000
+C INTEGRALS AND SET ETA, E1, AND E2 16983000
+C 16984000
+ AVGGM(N)=0. 16985000
+ AVGGM2(N)=0. 16986000
+ AVGCS(N)=0. 16987000
+ AVGCS2(N)=0. 16988000
+ AVGFS(N)=0. 16989000
+ AVGFS2(N)=0. 16990000
+ AVGTO(N)=0. 16991000
+ AVGTO2(N)=0. 16992000
+ AVGR2(N)=0. 16993000
+ ETA(N)=XGH(N)*ALPHA1 16994000
+ ARG1=ETA(N)*ETA(N) 16995000
+ E1(N)=EXP((AVGAM*AVGAM+.1013212*AVD*AVD)*ARG1) 16996000
+ N5=N+NHERM2 16997000
+C 16998000
+C INVOKE THE SYMMETRY PROPERTY OF E1 16999000
+C 17000000
+ E1(N5)=E1(N) 17001000
+ E2(N)=EXP(0.25*DEL*DEL*ARG1) 17002000
+C 17003000
+C INVOKE THE SYMMETRY PROPERTY OF E2 17004000
+C 17005000
+ E2(N5)=E2(N) 17006000
+ 250 CONTINUE 17007000
+C 17008000
+C GO TO 260 IF THERE ARE NO NON-ASYMPTOTIC CONTRIBUTIONS 17009000
+C 17010000
+ IF(INS.EQ.0) GO TO 260 17011000
+C 17012000
+C OBTAIN THE FOURIER TRANSFORM OF THE J INTEGRAL AND RELATED 17013000
+C QUANTITES FOR THE NON-ASYMPTOTIC CASES FOR USE IN THE EVALUATION 17014000
+C OF THE TERMS L1 AND L2. THIS REQUIRES SOLUTION OF AN INTEGRAL 17015000
+C EQUATION USING MATRIX INVERSION 17016000
+C 17017000
+ DO 270 NINS=1,INS 17018000
+ BBB=BBETA(NINS) 17019000
+ GMM=GAMTOT(NINS) 17020000
+C 17021000
+C SET UP THE ELEMENTS FOR MATRICES A11, A12, AND AMATRX AND THE 17022000
+C ELEMENTS OF THE B VECTOR, AND NORMALIZE THE DIAGONAL ELEMENTS 17023000
+C OF MATRIX A11 (AND AMATRX) TO UNITY 17024000
+C 17025000
+ DO 280 I=1,NHERM2 17026000
+ YY=XGH(I) 17027000
+ ARG1=ETA(I) 17028000
+ BVCTR(I,NINS)=1.253314137*EXP(-0.5*GMM*ARG1) 17029000
+C 17030000
+C DIAGONAL ELEMENT OF MATRIX A IN A*P=B 17031000
+C 17032000
+ ANORM(I)=E2(I)*(BBB+0.25*GMM*WGH(I)*E3(I)*ALPHA1) 17033000
+ VECTOR(I)=BVCTR(I,NINS)/ANORM(I) 17034000
+ DO 280 J=1,NHERM 17035000
+ XX=XGH(J) 17036000
+ FCTR=0.25*GMM*ALPHA1*WGH(J)*E1(J)*E2(J)*EXP(0.5*DEL*DEL* 17037000
+ 1 XX*YY*ALPHA2-0.5*GMM*ABS(YY-XX)*ALPHA1)/ANORM(I) 17038000
+ IF(I.EQ.J) GO TO 290 17039000
+ IF(J.LE.NHERM2) GO TO 285 17040000
+ J5=J-NHERM2 17041000
+ A12(I,J5)=FCTR 17042000
+ GO TO 280 17043000
+ 285 CONTINUE 17044000
+ A11(I,J)=FCTR 17045000
+ GO TO 280 17046000
+ 290 CONTINUE 17047000
+ A11(I,J)=1.0 17048000
+ 280 CONTINUE 17049000
+C 17050000
+C THE CODING THROUGH STATEMENT 340 ACCOMPLISHES THE INVERSION OF 17051000
+C THE MATRIX A IN A*P=B 17052000
+C 17053000
+ DO 300 J=1,NHERM2 17054000
+ DO 300 I=1,NHERM2 17055000
+ AMATRX(I,J)=A11(I,J) 17056000
+ 300 CONTINUE 17057000
+C 17058000
+C A11 AND AMATRX ARE NOW EACH THE UPPER LEFT PARTITION OF MATRIX A 17059000
+C AND A12 IS THE UPPER RIGHT PARTITION OF MATRIX A IN A*P=B 17060000
+C 17061000
+C*****CALL MATRIX***(MATRI1 IN THIS VERSION OF THE ROUTINE )************17062000
+ CALL MATRI1(A11,NHERM2) 17063000
+C 17064000
+C A11 IS NOW THE INVERSE OF THE UPPER LEFT PARTITION OF A11, 1/A11 17065000
+C 17066000
+ DO 310 J=1,NHERM2 17067000
+ DO 310 K=1,NHERM2 17068000
+C 17069000
+C D11 WILL BE THE UPPER LEFT PARTITION OF THE INVERSE OF MATRIX A IN17070000
+C A*P=B 17071000
+C 17072000
+ D11(J,K)=0. 17073000
+ DO 320 M1=1,NHERM2 17074000
+ IF(J.GT.1) GO TO 335 17075000
+C 17076000
+C USE D12 AS A TEMPORARY WORKING ARRAY 17077000
+C 17078000
+ D12(M1,K)=0. 17079000
+ DO 330 N=1,NHERM2 17080000
+ D12(M1,K)=D12(M1,K)+A11(M1,N)*A12(N,K) 17081000
+ 330 CONTINUE 17082000
+C 17083000
+C D12 IS NOW (1/A11)*A12 17084000
+C 17085000
+ 335 CONTINUE 17086000
+ D11(J,K)=D11(J,K)+A12(J,M1)*D12(M1,K) 17087000
+ 320 CONTINUE 17088000
+C 17089000
+C D11 IS NOW A12*(1/A11)*A12 17090000
+C 17091000
+ D11(J,K)=AMATRX(J,K)-D11(J,K) 17092000
+C 17093000
+C D11 IS NOW A11-A12*(1/A11)*A12 17094000
+C 17095000
+ 310 CONTINUE 17096000
+C*****CALL MATRIX*******************************************************17097000
+ CALL MATRI1(D11,NHERM2) 17098000
+C 17099000
+C D11 IS NOW THE LEFT PARTITION OF THE INVERSE OF MATRIX A IN A*P=B 17100000
+C 17101000
+ DO 360 K=1,NHERM2 17102000
+ DO 360 J=1,NHERM2 17103000
+ AMATRX(J,K)=-D12(J,K) 17104000
+ 360 CONTINUE 17105000
+C 17106000
+C AMATRX IS NOW -(1/A11)*A12 17107000
+C 17108000
+ DO 340 K=1,NHERM2 17109000
+ DO 340 J=1,NHERM2 17110000
+C 17111000
+C D12 WILL BE THE UPPER RIGHT PARTITION OF THE INVERSE OF MATRIX A 17112000
+C IN A*P=B 17113000
+C 17114000
+ D12(J,K)=0. 17115000
+ DO 340 I=1,NHERM2 17116000
+ D12(J,K)=D12(J,K)+AMATRX(J,I)*D11(I,K) 17117000
+ 340 CONTINUE 17118000
+C 17119000
+C D12 IS NOW THE UPPER RIGHT PARTITION OF THE INVERSE OF MATRIX A IN17120000
+C A*P=B 17121000
+C 17122000
+C 17123000
+C THE INVERSION OF MATRIX A IN A*P=B IS NOW COMPLETE 17124000
+C 17125000
+C 17126000
+C COMPUTE THE P VECTOR IN A*P=B USING P=D*B WHERE P IS THE 17127000
+C FOURIER TRANSFORM OF THE J INTEGRAL FOR THE NON-ASYMPTOTIC CASES 17128000
+C 17129000
+ DO 370 I=1,NHERM2 17130000
+ PVCTR(I,NINS)=0. 17131000
+ DO 370 J=1,NHERM2 17132000
+ PVCTR(I,NINS)=PVCTR(I,NINS)+VECTOR(J)*(D11(I,J)+D12(I,J)) 17133000
+ 370 CONTINUE 17134000
+C 17135000
+C COMPUTE THE R VECTOR IN A*R=V USING R=D*V WHERE R IS MINUS 17136000
+C BETA TIMES THE BETA DERIVATIVE OF THE FOURIER TRANSFORM 17137000
+C OF THE J INTEGRAL FOR THE NON-ASYMPTOTIC CASES. 17138000
+C 17139000
+ DO 380 I=1,NHERM2 17140000
+ RVCTR(I,NINS)=0. 17141000
+ DO 380 J=1,NHERM2 17142000
+ ANORM1=1.0/ANORM(J) 17143000
+ RVCTR(I,NINS)=RVCTR(I,NINS)+PVCTR(J,NINS)*E2(J)*ANORM1* 17144000
+ 1 (D11(I,J)+D12(I,J)) 17145000
+ 380 CONTINUE 17146000
+ DO 385 I=1,NHERM2 17147000
+ RVCTR(I,NINS)=RVCTR(I,NINS)*BBB 17148000
+ 385 CONTINUE 17149000
+ 270 CONTINUE 17150000
+C 17151000
+C PERFORM THE PORTER-THOMAS STATISTICAL AVERAGING FOR GAMMAX*P, 17152000
+C GAMMAX*(FOURIER TRANSFORM OF PSI)/BETA, AND GAMMA TOTAL*R 17153000
+C TO BE USED IN THE GAUSS-HERMITE INTEGRATION FOR THE EVALUATION 17154000
+C OF L1 AND L2 17155000
+C 17156000
+ DO 400 I=1,NHERM2 17157000
+C 17158000
+C AVGGM, AVGFS, AVGTO, AVGGM2, AVGFS2, AVGTO2, AND AVGR2 HAVE BEEN 17159000
+C INITIALIZED EARLIER 17160000
+C 17161000
+ DO 400 NINS=1,INS 17162000
+ INSOFF=NINS+JOG2 17163000
+ WEIGHT=BBETA(INSOFF) 17164000
+ GW=WEIGHT*GAMTOT(NINS) 17165000
+ IF(IFIS.EQ.1) GFW=WEIGHT*GAMFIS(NINS) 17166000
+ GXW=WEIGHT*GAMCMP(NINS) 17167000
+ AVGGM(I)=AVGGM(I)+PVCTR(I,NINS)*WEIGHT 17168000
+ IF(IFIS.EQ.1) AVGFS(I)=AVGFS(I)+PVCTR(I,NINS)*GFW 17169000
+ AVGCS(I)=AVGCS(I)+PVCTR(I,NINS)*GXW 17170000
+ AVGTO(I)=AVGTO(I)+PVCTR(I,NINS)*GW 17171000
+ AVGGM2(I)=AVGGM2(I)+(BVCTR(I,NINS)/BBETA(NINS))*WEIGHT 17172000
+ AVGTO2(I)=AVGTO2(I)+BVCTR(I,NINS)*GW /BBETA(NINS) 17173000
+ IF(IFIS.EQ.1) AVGFS2(I)=AVGFS2(I)+BVCTR(I,NINS)*GFW / 17174000
+ 1 BBETA(NINS) 17175000
+ AVGCS2(I)=AVGCS2(I)+BVCTR(I,NINS)*GXW/BBETA(NINS) 17176000
+ AVGR2(I)=AVGR2(I)+RVCTR(I,NINS)*GW 17177000
+ 400 CONTINUE 17178000
+ 260 CONTINUE 17179000
+C 17180000
+C COMPUTE THE FOURIER TRANSFORMS OF THE J INTEGRALS AND RELATED 17181000
+C QUATITIES FOR THE ASYMPTOTIC CASES (IF ANY) FOR USE IN THE 17182000
+C EVALUATION OF THE TERMS L1 AND L2 17183000
+C 17184000
+ DO 410 I=1,NHERM2 17185000
+ AVGG=0. 17186000
+ AVGG2=0. 17187000
+ AVGF=0. 17188000
+ AVGF2=0. 17189000
+ AVGT=0. 17190000
+ AVGT2=0. 17191000
+ AVR=0. 17192000
+ AVGC=0. 17193000
+ AVGC2=0. 17194000
+C 17195000
+C GO TO 420 IF THERE ARE NO ASYMPTOTIC CONTRIBUTIONS 17196000
+C 17197000
+ IF(IAS.EQ.0) GO TO 420 17198000
+ ARG1=ETA(I) 17199000
+ TEM=0.353553391*ARG1*DEL 17200000
+ ARG=TEM 17201000
+C*****CALL WZERO********************************************************17202000
+ CALL WZERO(ARG,PSIEZ) 17203000
+ B1=EXP(ARG*ARG)-PSIEZ 17204000
+ Q=1.0 17205000
+C 17206000
+C PORTER-THOMAS STATISTICAL AVERAGING FOR GAMMAX*P, 17207000
+C GAMMAX*(FOURIER TRANSFORM OF PSI**2/(BETA*(BETA+PSI)), AND GAMMA 17208000
+C TOTAL*R TO BE USED IN THE GAUSS-HERMITE INTEGRATION 17209000
+C 17210000
+ DO 430 NIAS=1,IAS 17211000
+ TEST6=BETPSI(NIAS)/PSIZRO(NIAS) 17212000
+C 17213000
+C OFFSET FOR GAMTOT, GAMFIS, AND BBETA ARRAYS 17214000
+C 17215000
+ NNN=NIAS+JOG1 17216000
+ NNNOFF=NNN+JOG2 17217000
+ WEIGHT=BBETA(NNNOFF) 17218000
+ GW=WEIGHT*GAMTOT(NNN) 17219000
+ IF(IFIS.EQ.1) GFW=WEIGHT*GAMFIS(NNN) 17220000
+ GXW=WEIGHT*GAMCMP(NNN) 17221000
+ IF(TEST6.GE.25.0) GO TO 460 17222000
+ ARG=TEM+0.707106781*ZETA(NIAS) 17223000
+C*****CALL WZERO********************************************************17224000
+ CALL WZERO(ARG,PSIEZ) 17225000
+ B2=PSIEZ 17226000
+C 17227000
+C Q3=(1+2*(RHO-U)/(BETA+RHO))*BETA/(BETA+RHO)...SEE FRA-TM-16, EQ.4617228000
+C 17229000
+ Q=1.0+(PSIZRO(NIAS)-0.626657069*ZETA(NIAS)*(B1+B2))/BETPSI(NIAS) 17230000
+ 460 CONTINUE 17231000
+ Q2=BETPSI(NIAS)/BBETA(NNN)-Q 17232000
+C 17233000
+C Q=1+(RHO-U)/(BETA+RHO)...SEE FRA-TM-16, EQ.33 17234000
+C 17235000
+ Q3=(Q-0.5)*2.0*BBETA(NNN)/BETPSI(NIAS) 17236000
+ EE1=EXP(-0.5*GAMTOT(NNN)*ARG1)/BETPSI(NIAS) 17237000
+ AVGG=AVGG+EE1*Q*WEIGHT 17238000
+ IF(IFIS.EQ.1) AVGF=AVGF+EE1*Q*GFW 17239000
+ AVGC=AVGC+EE1*Q*GXW 17240000
+ AVGT=AVGT+EE1*Q*GW 17241000
+ AVGG2=AVGG2+EE1*Q2*WEIGHT 17242000
+ IF(IFIS.EQ.1) AVGF2=AVGF2+EE1*Q2*GFW 17243000
+ AVGC2=AVGC2+EE1*Q2*GXW 17244000
+ AVGT2=AVGT2+EE1*Q2*GW 17245000
+ AVR=AVR+EE1*Q3*GW 17246000
+ 430 CONTINUE 17247000
+ 420 CONTINUE 17248000
+C 17249000
+C COMBINE THE FOURIER TRANSFORMS OF THE J INTEGRALS, OF 17250000
+C PSI**2/(BETA+PSI), AND OF R FOR THE ASYMPTOTIC AND NON-ASYMPTOTIC 17251000
+C CASES 17252000
+C 17253000
+ OVLG=(AVGG+0.797884561*AVGGM(I)*E2(I))*GAMCAP 17254000
+ OVLF=0. 17255000
+ IF(IFIS.EQ.1) OVLF=(AVGF+0.797884561*AVGFS(I)*E2(I)) 17256000
+ OVLC=(AVGC+0.797884561*AVGCS(I)*E2(I)) 17257000
+ OVLT=(AVGT+0.797884561*AVGTO(I)*E2(I)) 17258000
+ OVLG2=(AVGG2+0.797884561*(AVGGM2(I)-AVGGM(I)*E2(I)))*GAMCAP 17259000
+ OVLF2=0. 17260000
+ IF(IFIS.EQ.1) OVLF2=(AVGF2+0.797884561*(AVGFS2(I)-AVGFS(I)*E2(I)))17261000
+ OVLC2=(AVGC2+0.797884561*(AVGCS2(I)-AVGCS(I)*E2(I))) 17262000
+ OVLT2=(AVGT2+0.797884561*(AVGTO2(I)-AVGTO(I)*E2(I))) 17263000
+ OVLR=(AVR+0.797884561*AVGR2(I)*E2(I)) 17264000
+C 17265000
+C ARGUMENT FOR THE DYSON FUNCTION 17266000
+C 17267000
+ QQ=0.318309886*AVD*ARG1 17268000
+ QQ2=0.5*QQ 17269000
+ QQ1=1.0+QQ 17270000
+ QQM1=QQ-1.0 17271000
+ IF(QQ.GT.2.0) GO TO 440 17272000
+ DYSON=QQ2*ALOG(QQ1)-QQM1 17273000
+ GO TO 450 17274000
+ 440 CONTINUE 17275000
+ DYSON=QQ2*ALOG(QQ1/QQM1)-1.0 17276000
+C 17277000
+C GAUSS-HERMITE INTEGRATION OF THE SECOND TERM L1 OF THE FIRST ORDER17278000
+C OVERLAP TERM 17279000
+C 17280000
+ 450 CONTINUE 17281000
+ TEMP2=2.0*WGH(I)*OVLT*DYSON*E1(I)*AVD1 17282000
+ FG=FG+OVLG*TEMP2 17283000
+ IF(IFIS.EQ.1) FF=FF+OVLF*TEMP2 17284000
+ FC=FC+OVLC*TEMP2 17285000
+ FT=FT+OVLT*TEMP2 17286000
+C 17287000
+C GAUSS-HERMITE INTEGRATION OF THE SECOND TERM L2 OF THE SECOND 17288000
+C ORDER OVERLAP TERM 17289000
+C 17290000
+ TEMP22=2.0*WGH(I)*OVLR*DYSON*E1(I)*AVD1 17291000
+ FG2=FG2+OVLG2*TEMP22 17292000
+ IF(IFIS.EQ.1) FF2=FF2+OVLF2*TEMP22 17293000
+ FC2=FC2+OVLC2*TEMP22 17294000
+ FT2=FT2+OVLT2*TEMP22 17295000
+ 410 CONTINUE 17296000
+C 17297000
+C COMBINE L1 AND L2 17298000
+C 17299000
+ OVERLG=0.392699082*(FG-FG2)*ALPHA1 17300000
+ IF(IFIS.EQ.1) OVERLF=0.392699082*(FF-FF2)*ALPHA1 17301000
+ OVERLC=0.392699082*(FC-FC2)*ALPHA1 17302000
+ OVERLT=0.392699082*(FT-FT2)*ALPHA1 17303000
+C 17304000
+C COMBINE THE FIRST AND SECOND TERMS OF THE FIRST AND SECOND 17305000
+C ORDER TERMS TO OBTAIN THE COMPLETE OVERLAP INTEGRALS 17306000
+C 17307000
+ OVG=(BARJN*TBARJN-SEG-OVERLG) 17308000
+ IF(OVG.LT.0.) GO TO 470 17309000
+ IF(IFIS.EQ.1) OVF=(FBARJN*TBARJN-SEF-OVERLF) 17310000
+ OVC=(CBARJN*TBARJN-SEC-OVERLC) 17311000
+ OVT=(TBARJN*TBARJN-SET-OVERLT) 17312000
+ GO TO 240 17313000
+ 470 CONTINUE 17314000
+ OVG=0. 17315000
+C 17316000
+C TRANSFER TO STATEMENT 240 IF NOVRLP.NE.0. IN THIS CASE 17317000
+C OVG, OVF, AND OVT ARE ALL ZERO 17318000
+C 17319000
+ 240 CONTINUE 17320000
+C 17321000
+C FLUX CORRECTION FACTOR. THIS IS THE DENOMINATOR FOR THE 17322000
+C CAPTURE AND FISSION CROSS SECTIONS 17323000
+C 17324000
+ FLXCF=1.0-TBARJ+OVT 17325000
+ FLXCF1=1.0/FLXCF 17326000
+ CNUM=(BARJ-OVG)/FACTOR 17327000
+ TNUM=(TBARJ-OVT) 17328000
+ IF(IFIS.EQ.1) FNUM=(FBARJ-OVF)/FACTOR 17329000
+ XNUM=(CBARJ-OVC)/FACTOR 17330000
+ SIGCAP(NN)=SIGCAP(NN)+CNUM*FLXCF1 17331000
+ SIGTOT(NN)=SIGTOT(NN)+TNUM*FLXCF1 17332000
+ IF(IFIS.EQ.1) SIGFIS(NN)=SIGFIS(NN)+FNUM*FLXCF1 17333000
+ SIGCMP(NN)=SIGCMP(NN)+XNUM*FLXCF1 17334000
+ 130 CONTINUE 17335000
+ SIGCAP(NN)=SIGCAP(NN)*SIGP*ABUNDI 17336000
+ SIGTOT(NN)=SIGTOT(NN)*SIGP*ABUNDI 17337000
+ IF(IFIS.EQ.1) SIGFIS(NN)=SIGFIS(NN)*SIGP*ABUNDI 17338000
+ SIGCMP(NN)=SIGCMP(NN)*SIGP*ABUNDI 17339000
+ 100 CONTINUE 17340000
+ RETURN 17341000
+ END 17342000
+ SUBROUTINE MATRI1(A,N) 17343000
+C 17344000
+C SUBROUTINE MATRIX INVERTS THE SQUARE MATRIX A OF DIMENSION N. 17345000
+C N IS LIMITED TO 99 BY THE DIMENSION OF VARIABLE INDEX. 17346000
+C MATRIX IS BASED ON THE ANL LIBRARY ROUTINE MATINV ANL F402S. 17347000
+C MODIFIED BY A. HINDS 3 JULY 1975. 17348000
+C 17349000
+C A ARRAY CONTAINING THE MATRIX TO BE INVERTED 17350000
+C AT INPUT, AND THE INVERSE MATRIX ON OUTPUT 17351000
+C N DIMENSION OF MATRIX A 17352000
+C 17353000
+C 17354000
+C SUBPROGRAMS CALLED BY SUBROUTINE MATRIX 17355000
+C 17356000
+C ABS FORTRAN ABSOLUTE VALUE FUNCTION 17357000
+C 17358000
+ DIMENSION A(1),INDEX(99) 17359000
+C 17360000
+C INITIALIZE ARRAY OF POINTERS TO COLUMNS NOT YET PIVOTED. 17361000
+C 17362000
+ NMAT = N*N 17363000
+ DO 20 I=1,N 17364000
+ INDEX (I) = I 17365000
+ 20 CONTINUE 17366000
+C 17367000
+C PERFORM SUCCESSIVE PIVOT OPERATIONS (GRAND LOOP) 17368000
+C 17369000
+ M = N 17370000
+ DO 550 I=1,N 17371000
+C 17372000
+C 17373000
+ JI = 0 17374000
+ JISAVE = 0 17375000
+ AMAX = 0.0 17376000
+ DO 105 KK = 1,M 17377000
+ KX = (INDEX (KK) - 1) * N 17378000
+ JK = KX + INDEX (1) 17379000
+ DO 100 JJ = 1,M 17380000
+ IF ( ABS (A (JK) ) .LE. AMAX) GO TO 100 17381000
+ AMAX = ABS (A (JK)) 17382000
+ JI = JK 17383000
+ 100 JK = KX + INDEX (JJ+1) 17384000
+ IF (JI .NE. JISAVE) II = KK 17385000
+ JISAVE = JI 17386000
+ 105 CONTINUE 17387000
+C 17388000
+ ICOLUM = INDEX (II) 17389000
+ IROW = JI - (ICOLUM - 1) * N 17390000
+C 17391000
+ INDEX (II) = INDEX (M) 17392000
+C PACK PIVOT ROW AND COLUMN INDICES FOR FINAL COLUMN EXCHANGE. 17393000
+ INDEX (M) = 4096 * IROW + ICOLUM 17394000
+ M = M - 1 17395000
+C 17396000
+ AMAX = A (JI) 17397000
+C 17398000
+C RETURN IF MATRIX IS SINGULAR (ZERO PIVOT) AFTER COLUMN INTERCHANGE17399000
+C 17400000
+ IF ( AMAX .NE. 0.0) GO TO 110 17401000
+10100 CONTINUE 17402000
+C***********************************************************************17403000
+C 17404000
+C FATAL ERROR -10100. DETERMINANT IS SINGULAR. 17405000
+C 17406000
+C***********************************************************************17407000
+ 110 CONTINUE 17408000
+C 17409000
+C INTERCHANGE ROWS TO PUT PIVOT ELEMENT ON DIAGONAL 17410000
+C 17411000
+ IF (IROW.EQ.ICOLUM) GO TO 260 17412000
+ JK = IROW 17413000
+ DO 200 IK = ICOLUM,NMAT,N 17414000
+ SWAP = A (JK) 17415000
+ A (JK) = A (IK) 17416000
+ A (IK) = SWAP 17417000
+ JK = JK + N 17418000
+ 200 CONTINUE 17419000
+C 17420000
+C DIVIDE PIVOT ROW BY PIVOT ELEMENT 17421000
+C 17422000
+ 260 CONTINUE 17423000
+ II = (ICOLUM - 1) * N + ICOLUM 17424000
+ A (II) = 1.0 17425000
+ DO 350 IK = ICOLUM,NMAT,N 17426000
+ A (IK) = A (IK) / AMAX 17427000
+ 350 CONTINUE 17428000
+C 17429000
+C REDUCE NON-PIVOT ROWS TWO AT A TIME. 17430000
+C 17431000
+ JI = (ICOLUM - 1) * N + 1 17432000
+ NMAX = N - MOD (N,2) 17433000
+ DO 500 J = 1,NMAX,2 17434000
+ T = 0.0 17435000
+ IF (J .EQ. ICOLUM) GO TO 430 17436000
+ T = - A (JI) 17437000
+ A (JI) = 0.0 17438000
+ 430 CONTINUE 17439000
+ T1 = 0.0 17440000
+ IF ( (J+1) .EQ. ICOLUM) GO TO 440 17441000
+ T1 = - A (JI+1) 17442000
+ A (JI+1) = 0.0 17443000
+ 440 CONTINUE 17444000
+ JK = J 17445000
+ DO 450 IK = ICOLUM,NMAT,N 17446000
+ A (JK) = A (JK) + A (IK) * T 17447000
+ A (JK + 1) = A (JK + 1) + A (IK) * T1 17448000
+ JK = JK + N 17449000
+ 450 CONTINUE 17450000
+ JI = JI + 2 17451000
+ 500 CONTINUE 17452000
+C IF AN ODD NUMBER OF ROWS REDUCE THE LAST ONE HERE. 17453000
+ IF ( MOD(N,2) .EQ. 0 .OR. N .EQ. ICOLUM) GO TO 530 17454000
+ NI = N * ICOLUM 17455000
+ T = - A (NI) 17456000
+ A (NI) = 0.0 17457000
+ JK = N 17458000
+ DO 510 IK = ICOLUM,NMAT,N 17459000
+ A (JK) = A (JK) + A (IK) * T 17460000
+ JK = JK + N 17461000
+ 510 CONTINUE 17462000
+ 530 CONTINUE 17463000
+ 550 CONTINUE 17464000
+C 17465000
+C INTERCHANGE COLUMNS AFTER ALL PIVOT OPERATIONS HAVE BEEN PERFORMED17466000
+C 17467000
+ DO 710 I=1,N 17468000
+ K = INDEX (I) / 4096 17469000
+ ICOLUM = INDEX (I) - 4096 * K 17470000
+ IF(K.EQ.ICOLUM) GO TO 720 17471000
+ JK = (K - 1) * N + 1 17472000
+ JI = (ICOLUM - 1) * N + 1 17473000
+ DO 705 J=1,N 17474000
+ SWAP = A (JK) 17475000
+ A (JK) = A (JI) 17476000
+ A (JI) = SWAP 17477000
+ JI = JI + 1 17478000
+ JK = JK + 1 17479000
+ 705 CONTINUE 17480000
+ 720 CONTINUE 17481000
+ 710 CONTINUE 17482000
+C 17483000
+ RETURN 17484000
+ END 17485000
+ SUBROUTINE QUICKJ(N41,N27,TR,TI,TRS,TIS) 17486000
+C ************************************************************ 17487000
+C 17488000
+C SUBROUTINE QUICKJ CALCULATES THE ISOLATED J INTEGRAL INCLUDING 17489000
+C INTERFERENCE SCATTERING FOR THE SINGLE LEVEL REPRESENTATION. 17490000
+C QUICKJ ALSO CALCULATES THE J INTEGRAL EXCLUDING INTERFERENCE 17491000
+C SCATTERING AND THE INTEGRAL OF BETA*PSI/(BETA+PSI)**2 17492000
+C 17493000
+C SUBPROGRAMS CALLED BY SUBROUTINE QUICKJ 17494000
+C 17495000
+C QUICKW PROGRAM SUBROUTINE TO OBTAIN THE REAL AND 17496000
+C IMAGINARY PARTS OF THE W FUNCTION. QUICKW IS 17497000
+C AN ENTRY POINT OF SUBROUTINE QUICK1 17498000
+C ALOG FORTRAN LOGARITHM FUNCTION (SINGLE PRECISION) 17499000
+C SQRT FORTRAN SQUARE ROOT FUNCTION (SINGLE PRECISION) 17500000
+C WZERO CALCULATES THE REAL PART OF W(0,ARG) 17501000
+C EXP FORTRAN EXPONENTIAL FUNCTION (SINGLE PRECISION) 17502000
+C 17503000
+ DIMENSION TR(N41,N27),TI(N41,N27),TRS(N41,N27),TIS(N41,N27) 17504000
+ DIMENSION ZLP(6),ALP(4),AN(6),BM(6),ZLP1(6),ALP1(4) 17505000
+ COMMON/INTEGL/ BETA,THETA,A,FJ,RHO,HH,TEST1,FJN,FJ2N,TERM2,FJT 17506000
+C COMMON/REAIMW/AX,WHY,REW,AIMW 17507000
+C COMMON/RATION/ ARG,PSIEZ 17508000
+ COMMON /DRCUNR/ TEMPM,ABUNDI,AM,CMCOR,LSTI,JSTI,IFIS, 17509000
+ 1 NPORTR,NHERM,NHERM2,NOVRLP,MAT,NPT1,RPENTR, 17510000
+ 2 RPSHFT,NGUS13,NGUS9,WATE13,WATE9 17511000
+C 17512000
+C ZLP=U/SQRT(1.0-U*U) WHERE U ARE THE 13 POINT GAUSS-JACOBI 17513000
+C QUADRATURE ABSCISSAE 17514000
+C 17515000
+ DATA ZLP/8.235740955,2.636783295,1.448750112,0.8859226935, 17516000
+ 1 0.5248404873,0.2464778630/ 17517000
+C 17518000
+C ALP=V/SQRT(1.0-V*V) WHERE V ARE THE 9 POINT GAUSS-JACOBI 17519000
+C QUADRATURE ABSCISSAE 17520000
+C 17521000
+ DATA ALP/5.671281817,1.732050807,0.8390996312,0.3639702342/ 17522000
+C 17523000
+C 17524000
+C ZLP1=1.0/(1.0-U*U) WHERE U ARE THE 13 POINT GAUSS-JACOBI 17525000
+C QUADRATURE ABSCISSAE 17526000
+C 17527000
+ DATA ZLP1/68.82742908,7.952626149,3.098876889,1.784859018, 17528000
+ 1 1.275457537,1.060751336/ 17529000
+C 17530000
+C ALP1=1.0/(1.0-V*V) WHERE V ARE THE 9 POINT GAUSS-JACOBI 17531000
+C QUADRATURE ABSCISSAE 17532000
+C 17533000
+ DATA ALP1/33.16343745,4.0,1.704088191,1.132474331/ 17534000
+C 17535000
+C CONSTANTS FOR SUM IN LARGE BETA APPROXIMATION TO THE RESONANCE 17536000
+C INTEGRALS 17537000
+C 17538000
+ DATA AN/ 0.1666666667,0.3333333333E-1,0.7142857142E-2, 17539000
+ 1 0.1587301587E-2,0.3607503607E-3,0.832500832E-4/ 17540000
+C 17541000
+ DATA BM/ 0.1666666667,0.5555555555E-1,0.1234567901E-1, 17542000
+ 1 0.2057613168E-2,0.2743484224E-3,0.3048315805E-4/ 17543000
+C 17544000
+C 17545000
+ TOTJ=0. 17546000
+ TOTI=0. 17547000
+ TOTM=0. 17548000
+ TOTJ2=0. 17549000
+ ZETA=THETA 17550000
+ ASQ=A*A 17551000
+ WHY=0.5*ZETA 17552000
+C 17553000
+C OBTAIN PSI(THETA,0) 17554000
+C 17555000
+ ARG=WHY 17556000
+C*****CALL WZERO********************************************************17557000
+ CALL WZERO(ARG,PSIEZ) 17558000
+C 17559000
+C 1.77245380509 IS SQRT(PI) 17560000
+C 17561000
+ PSIZ=1.7724538509*WHY*PSIEZ 17562000
+ H=BETA+PSIZ 17563000
+ TEST1=H/PSIZ 17564000
+C 17565000
+C LARGE BETA APPROXIMATION AT STATEMENT 100 17566000
+C 17567000
+ IF(TEST1.GE.4.5)GO TO 100 17568000
+C 17569000
+C ZERO POINT FOR GAUSS-JACOBI QUADRATURE 17570000
+C 17571000
+ AINTZ=0.5/TEST1 17572000
+C 17573000
+C DETERMINE APPROPRIATE FACTOR C FOR GAUSS-JACOBI INTEGRATION 17574000
+C 17575000
+ IF(ZETA.GT.2.5) GO TO 110 17576000
+ IF(BETA.GE.0.018)GO TO 120 17577000
+ IF(ZETA.GE.0.5) GO TO 110 17578000
+ IF(TEST1.GE.1.2) GO TO 120 17579000
+ BB=4.*(1.8971+ALOG(1.+.7532929*ZETA/BETA))/(ZETA*ZETA) 17580000
+ TEST2=BB*BETA 17581000
+ IF(TEST2.GT.0.03)GO TO 130 17582000
+ 110 CONTINUE 17583000
+ C=0.7071*SQRT((1.0+BETA)/BETA) 17584000
+ NGAUSS=NGUS9 17585000
+ NGAUS2=(NGAUSS-1)/2 17586000
+ WEIGHT=WATE9 17587000
+C 17588000
+C GAUSS-JACOBI 9 POINT INTEGRATION FOR J AND I INTEGRALS 17589000
+C 17590000
+ DO 330 I=1,NGAUS2 17591000
+ ALPI=ALP1(I) 17592000
+ AX=WHY*ALP(I)*C 17593000
+C*****CALL QUICKW*******************************************************17594000
+ CALL QUICKW(N41,N27,TR,TI,TRS,TIS,AX,WHY,REW,AIMW) 17595000
+C 17596000
+C 1.7724538509 IS SQRT(PI) 17597000
+C 17598000
+ PSI=1.7724538509*WHY*REW 17599000
+ AKI=1.7724538509*ZETA*AIMW 17600000
+ DEN=BETA+PSI 17601000
+ RAT=PSI*ALPI/DEN 17602000
+ RAT2=BETA*RAT/DEN 17603000
+ AKISQ=AKI*AKI*ASQ 17604000
+ TEMP=DEN*DEN-AKISQ 17605000
+ TOTJ=TOTJ+RAT 17606000
+ TOTJ2=TOTJ2+RAT2 17607000
+ IF(ASQ.EQ.0.) GO TO 330 17608000
+ TOTM=TOTM+ALPI*AKISQ/(A*TEMP) 17609000
+ TOTI=TOTI+(AKISQ/TEMP)*RAT 17610000
+ 330 CONTINUE 17611000
+ GO TO 200 17612000
+ 120 CONTINUE 17613000
+ C=2.5/WHY 17614000
+ GO TO 140 17615000
+ 130 CONTINUE 17616000
+ IF(TEST2.LT.1.0)GO TO 150 17617000
+ FAC=1.+.018*(BETA-.00128)/(BETA+.00128)+.08*(TEST1-1.0) 17618000
+ C=.8292* SQRT( BB)*FAC 17619000
+ GO TO 140 17620000
+ 150 CONTINUE 17621000
+ C=0.7071*SQRT(BB+(1.0+BETA)/BETA) 17622000
+ 140 CONTINUE 17623000
+ NGAUSS=NGUS13 17624000
+ NGAUSS=(NGAUSS-1)/2 17625000
+ WEIGHT=WATE13 17626000
+C 17627000
+C GAUSS-JACOBI 13 POINT INTEGRATION FOR J AND I INTEGRALS 17628000
+C 17629000
+ DO 180 I=1,NGAUSS 17630000
+ ZLPI=ZLP1(I) 17631000
+ AX=WHY*ZLP(I)*C 17632000
+C*****CALL QUICKW*******************************************************17633000
+ CALL QUICKW(N41,N27,TR,TI,TRS,TIS,AX,WHY,REW,AIMW) 17634000
+ PSI=1.7724538509 *WHY*REW 17635000
+ AKI=1.7724538509 *ZETA*AIMW 17636000
+ DEN=BETA+PSI 17637000
+ RAT=PSI*ZLPI/DEN 17638000
+ RAT2=BETA*RAT/DEN 17639000
+ AKISQ=AKI*AKI*ASQ 17640000
+ TEMP=DEN*DEN-AKISQ 17641000
+ TOTJ=TOTJ+RAT 17642000
+ TOTJ2=TOTJ2+RAT2 17643000
+ IF(ASQ.EQ.0.) GO TO 180 17644000
+ TOTM=TOTM+ZLPI*AKISQ/(A*TEMP) 17645000
+ TOTI=TOTI+(AKISQ/TEMP)*RAT 17646000
+ 180 CONTINUE 17647000
+ 200 CONTINUE 17648000
+C 17649000
+C ADD IN ZERO POINT FOR THE J INTEGRAL. THE I AND M INTEGRALS HAVE 17650000
+C NO ZERO POINT CONTRIBUTION. 17651000
+C 17652000
+ TOTJ=TOTJ+AINTZ 17653000
+C 17654000
+C MULTIPLY BY C AND THE WEIGHTING FACTOR, EITHER PI/13 OR PI/9 17655000
+C 17656000
+ TOTJ=TOTJ*C*WEIGHT 17657000
+ TOTM=TOTM*C*WEIGHT 17658000
+ TOTJ2=TOTJ2*C*WEIGHT 17659000
+ TOTI=TOTI*C*WEIGHT 17660000
+ GO TO 190 17661000
+C 17662000
+C LARGE BETA APPROXIMATION 17663000
+C 17664000
+ 100 CONTINUE 17665000
+C 17666000
+C 1.41421356237 IS SQRT(2) 17667000
+C 17668000
+ ARG=1.41421356237*WHY 17669000
+C*****CALL WZERO********************************************************17670000
+ CALL WZERO(ARG,PSIEZ) 17671000
+C 17672000
+C 0.8862269254 IS 0.5*SQRT(PI) 17673000
+C 17674000
+ RHO=0.8862269254*ARG*PSIEZ 17675000
+ RHO2=RHO*RHO 17676000
+ HH=BETA+RHO 17677000
+ HH1=1.0/HH 17678000
+C 17679000
+C FOR BETA .GE. 1.0E10, USE THE INFINITELY DILUTE LIMIT 17680000
+C 17681000
+ IF(BETA.LT.1.0E10) GO TO 160 17682000
+ TOTJ=1.57079632680*HH1 17683000
+ TOTJ2=TOTJ*HH1 17684000
+ TERM2=0. 17685000
+ GO TO 190 17686000
+ 160 CONTINUE 17687000
+ HH3=HH1*HH1*HH1 17688000
+ HH4=HH3*HH1 17689000
+C 17690000
+C FIRST TERM OF THE ASYMPTOTIC FORM OF J 17691000
+C 17692000
+C 17693000
+C 1.57079632680 IS PI/2 17694000
+C 17695000
+ TOTJ=1.57079632680*HH1 17696000
+ TOTJ2=TOTJ*BETA*HH1 17697000
+ ZETA2=ZETA*ZETA 17698000
+ IF(ZETA.GT.2.5) GO TO 360 17699000
+C 17700000
+C 0.8164965809 IS SQRT(2/3) 17701000
+C 17702000
+ ARG=0.8164965809*WHY 17703000
+C*****CALL WZERO********************************************************17704000
+ CALL WZERO(ARG,PSIEZ) 17705000
+C 17706000
+C 1.772453851 IS SQRT(PI) 17707000
+C 17708000
+ PS3=1.772453851*ARG*PSIEZ 17709000
+C 17710000
+C 2.170803764 IS SQRT(3*PI/2) 17711000
+C 17712000
+ ZEX=2.170803764*ZETA*EXP(ZETA2/6.0) 17713000
+ S=0. 17714000
+ SUM=0. 17715000
+ PROD=1.0 17716000
+C 17717000
+C USE 6 TERMS IN THE SERIES USED FOR THE EVALUATION OF THE INTEGRAL 17718000
+C OF PSI**3. THIS DETERMINES THE DIMENSIONS OF AN AND BM AND 17719000
+C THE INITIALIZATION OF AN AND BM 17720000
+C 17721000
+ DO 350 I=1,6 17722000
+ PROD=PROD*ZETA2 17723000
+ SUM=SUM+BM(I)*PROD 17724000
+ S=S+AN(I)*(SUM +0.25) 17725000
+ 350 CONTINUE 17726000
+ S=S+0.25 17727000
+C 17728000
+C INTEGRAL OF PSI**3 17729000
+C 17730000
+ PSIZ3=1.570796327*(RHO*(3.0*PS3-ZEX)+1.5*ZETA2*S) 17731000
+ GO TO 370 17732000
+ 360 CONTINUE 17733000
+ X=0.666666667*ZETA2 17734000
+ X1=1.0/X 17735000
+ X12=X1*X1 17736000
+C 17737000
+C E1 IS A RATIONAL EXPRESSION FOR X*EXP(X)*E1(X) 17738000
+C 17739000
+ IF(X.GE.10.0) GO TO 300 17740000
+ E1=(X*(X+2.334733)+0.250621)/(X*(X+3.330657)+1.681534) 17741000
+ GO TO 310 17742000
+ 300 CONTINUE 17743000
+ E1=(X*(X+4.03640)+1.15198)/(X*(X+5.03637)+4.19160) 17744000
+ 310 CONTINUE 17745000
+ H1=1.0-E1 17746000
+ H2=X1-H1 17747000
+ H3=2.22222222*X12-1.11111111*H2 17748000
+ H4=7.77777778*X1*X12-1.16666667*H3 17749000
+C 17750000
+C 0.589048622 IS 3PI/16 17751000
+C 0.392699082 IS PI/8 17752000
+C 17753000
+ PSIZ3=0.589048622*E1-0.392699082*(H1-H2+H3-H4) 17754000
+ 370 CONTINUE 17755000
+C 17756000
+C ADD IN THE SECOND TERM TO THE ASYMPTOTIC FORM FOR J 17757000
+C 17758000
+C 17759000
+C 4.71238898 IS 3*PI/2 17760000
+C 17761000
+ TERM2=(PSIZ3-1.570796327*RHO2)*HH3 17762000
+ TOTJ=TOTJ+TERM2 17763000
+ TOTJ2=TOTJ2+(3.0*PSIZ3-4.71238898*RHO2)*HH4*BETA 17764000
+ TOTI=1.33333333*ASQ*PSIZ3*HH3 17765000
+C 17766000
+C 6.283185307 IS 2*PI AND 2.666666667 IS 8/3 17767000
+C 17768000
+ TOTM=(6.283185307*(BETA*RHO+3.0*RHO2)-2.666666667*PSIZ3)*A*HH3 17769000
+ 190 CONTINUE 17770000
+C 17771000
+C COMBINE J AND I INTEGRALS 17772000
+C 17773000
+ FJ=TOTJ+TOTI 17774000
+C 17775000
+C FJT IS THE TOTAL RESONANCE INTEGRAL 17776000
+C 17777000
+ FJT=FJ-A*TOTM 17778000
+C 17779000
+C FJN IS THE J INTEGRAL WITHOUT INTERFERENCE SCATTERING 17780000
+C 17781000
+ FJN=TOTJ 17782000
+C 17783000
+C FJ2N IS THE INTEGRAL OF BETA*PSI/(BETA+PSI)**2 WITHOUT 17784000
+C INTERFERENCE SCATTERING 17785000
+C 17786000
+ FJ2N=TOTJ2 17787000
+ RETURN 17788000
+ END 17789000
+C 17790000
+ SUBROUTINE WREC(JT,NT,MODE) 17791000
+C ******************************************************* 17792000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 17793000
+ * N1X,N2X,NS,LX,LY,LB 17794000
+ COMMON MAXA,A(1) 17795000
+C----- 17796000
+ CALL DYWREC(JT,NT,MODE,A(LX),A(LY),A(LB)) 17797000
+ RETURN 17798000
+ END 17799000
+ SUBROUTINE DYWREC(JT,NT,MODE,X,Y,B) 17800000
+C ************************************************** 17801000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 17802000
+C ************************************************** 17803000
+ DIMENSION X(1),Y(1),B(1) 17804000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 17805000
+ * N1X,N2X,NS,LX,LY,LB 17806000
+C=====WRITE ONE RECORD ON ENDF/B TAPE===================================17807000
+C JT = RECORD TYPE, 1-CONT, 2-LIST, 3-TAB1, 4-TAB2, 5-HOL LIST 17808000
+C 6-TPID 17809000
+C NT = OUTPUT TAPE NUMBER. IF NT.LE.0, WRITE IS IGNORED. 17810000
+C MODE=1 BINARY TAPE, STANDARD ARRANGEMENT. 17811000
+C =2 BINARY TAPE, ALTERNATE ARRANGEMENT. 17812000
+C =3 BCD CARD IMAGE TAPE FOR PUNCHING. 17813000
+C =4 EXPANDED AND INTERPRETED PRINT TAPE. 17814000
+C-----ERROR STOP 108, JT OUT OF RANGE 1-6 17815000
+C ERROR STOP 109, MODE OUT OF RANGE 1-4 17816000
+C-----PRELIMINARY TESTS 17817000
+ IF(NT.LE.0)GOTO 330 17818000
+ IF(JT.LT.1)GOTO 10 17819000
+ IF(JT.LE.6)GOTO 20 17820000
+ 10 CALL ERRORE(8HSLAVE3 ,108) 17821000
+ 20 IF(MODE.LT.1)GOTO 30 17822000
+ IF(MODE.LE.4)GOTO 40 17823000
+ 30 CALL ERRORE(8HSLAVE3 ,109) 17824000
+ 40 GOTO( 50 , 120 , 190 , 260 ),MODE 17825000
+C-----BINARY TAPE, STANDARD ARRANGEMENT 17826000
+ 50 GOTO( 60 , 70 , 80 , 90 , 70 , 100 ), JT 17827000
+ 60 WRITE(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2 17828000
+ GOTO 110 17829000
+ 70 WRITE(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(B(N),N=1,N1) 17830000
+ GOTO 110 17831000
+ 80 WRITE(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1), 17832000
+ *(X(N),Y(N),N=1,N2) 17833000
+ GOTO 110 17834000
+ 90 WRITE(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1) 17835000
+ GO TO 110 17836000
+ 100 WRITE (NT) MAT,MF,MT,(B(N),N=1,17) 17837000
+ 110 GOTO 330 17838000
+C-----BINARY TAPE, ALTERNATE ARRANGEMENT 17839000
+ 120 GOTO( 130 , 140 , 150 , 160 , 140 , 170 ), JT 17840000
+ 130 WRITE(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2 17841000
+ GOTO 180 17842000
+ 140 WRITE(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(B(N),N=1,N1) 17843000
+ GOTO 180 17844000
+ 150 WRITE(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1), 17845000
+ *(X(N),Y(N),N=1,N2) 17846000
+ GOTO 180 17847000
+ 160 WRITE(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1) 17848000
+ GO TO 180 17849000
+ 170 WRITE (NT) MF,MAT,MT,(B(N),N=1,17) 17850000
+ 180 GOTO 330 17851000
+C-----BCD CARD IMAGE TAPE 17852000
+ 190 GOTO( 200 , 210 , 220 , 230 , 240 , 250 ), JT 17853000
+ 200 CALL PUCONT(NT,X,Y,B) 17854000
+ GOTO 330 17855000
+ 210 CALL PULIST(NT,X,Y,B) 17856000
+ GOTO 330 17857000
+ 220 CALL PUTAB1(NT,X,Y,B) 17858000
+ GOTO 330 17859000
+ 230 CALL PUTAB2(NT,X,Y,B) 17860000
+ GOTO 330 17861000
+ 240 CALL PUHOL(NT,X,Y,B) 17862000
+ GOTO 330 17863000
+ 250 CALL PUTPID(NT,X,Y,B) 17864000
+ GO TO 330 17865000
+C-----EXPANDED AND INTERPRETED PRINT 17866000
+ 260 GOTO( 270 , 280 , 290 , 300 , 310 , 320 ), JT 17867000
+ 270 CALL PRCONT(NT,X,Y,B) 17868000
+ GOTO 330 17869000
+ 280 CALL PRLIST(NT,X,Y,B) 17870000
+ GOTO 330 17871000
+ 290 CALL PRTAB1(NT,X,Y,B) 17872000
+ GOTO 330 17873000
+ 300 CALL PRTAB2(NT,X,Y,B) 17874000
+ GOTO 330 17875000
+ 310 CALL PRHOL(NT,X,Y,B) 17876000
+ GO TO 330 17877000
+ 320 CALL PRTPID(NT,X,Y,B) 17878000
+C-----FINISHED 17879000
+ 330 RETURN 17880000
+ END 17881000
+ SUBROUTINE DELETE(MA) 17882000
+C ******************************************** 17883000
+C=====DELETE RECORD MA FROM DENSE STORAGE===============================17884000
+C IF MA=0, CLEAR DENSE STORAGE 17885000
+C-----NO ERROR STOPS 17886000
+ COMMON MAXA,A(1) 17887000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LARRAY,JNS,MNS,JX,MX 17888000
+ CALL DYDELE(A(LJMT),A(LJAT),A(LJTT),A(LJLT),A(LARRAY), 17889000
+ 1 MA) 17890000
+ RETURN 17891000
+ END 17892000
+ SUBROUTINE DYDELE(JMT,JAT,JTT,JLT,A, MA) 17893000
+C ******************************************** 17894000
+ DIMENSION JMT(1),JAT(1),JTT(1),JLT(1),A(1) 17895000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LARRAY,JNS,MNS,JX,MX 17896000
+C=====TEST MA 17897000
+ 100 IF(MA)200,102,200 17898000
+C=====CLEAR DENSE STORAGE 17899000
+ 102 MNS=1 17900000
+ JNS=1 17901000
+ DO110M=1,MX 17902000
+ JMT(M)=0 17903000
+ JAT(M)=0 17904000
+ JLT(M)=0 17905000
+ 110 JTT(M)=0 17906000
+ DO120J=1,JX 17907000
+ 120 A(J)=0.0 17908000
+ GOTO300 17909000
+C=====DELETE RECORD MA, SEARCH FOR LOCATION 17910000
+ 200 IF(MNS.LE.1)GOTO300 17911000
+ MNSP=MNS-1 17912000
+ DO210M=1,MNSP 17913000
+ MP=M 17914000
+ IF(JMT(M).EQ.MA)GOTO220 17915000
+ 210 CONTINUE 17916000
+ GOTO300 17917000
+ 220 JA=JAT(MP) 17918000
+ JL=JLT(MP) 17919000
+C-----CLOSE UP ARRAY A(J) 17920000
+ JP=JNS-JA-JL 17921000
+ IF(JP)240,240,222 17922000
+ 222 DO230N=1,JP 17923000
+ J1=JA+N-1 17924000
+ J2=J1+JL 17925000
+ 230 A(J1)=A(J2) 17926000
+ 240 JNS=JNS-JL 17927000
+ DO250N=1,JL 17928000
+ J=JNS+N-1 17929000
+ 250 A(J)=0.0 17930000
+C-----CLOSE UP J TABLES 17931000
+ MXP=MNS-MP-1 17932000
+ IF(MXP)270,270,252 17933000
+ 252 DO260M=1,MXP 17934000
+ M1=MP+M-1 17935000
+ JMT(M1)=JMT(M1+1) 17936000
+ JTT(M1)=JTT(M1+1) 17937000
+ 260 JLT(M1)=JLT(M1+1) 17938000
+ 270 MNS=MNS-1 17939000
+ JMT(MNS)=0 17940000
+ JAT(MNS)=0 17941000
+ JTT(MNS)=0 17942000
+ JLT(MNS)=0 17943000
+ MXP=MXP-1 17944000
+ IF(MXP)300,300,272 17945000
+ 272 DO 280 M=1,MXP 17946000
+ M1=MP+M 17947000
+ 280 JAT(M1)=JAT(M1-1)+JLT(M1-1) 17948000
+C=====FINISHED 17949000
+ 300 RETURN 17950000
+ END 17951000
+ SUBROUTINE IPDS(JA,NP,XP,YP,IP) 17952000
+C ************************************************ 17953000
+C DYNAMIC ALLOCATION VERSION OF IPDS 17954000
+C ********************************************** 17955000
+ COMMON MAXA,AD( 3000) 17956000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 17957000
+ CALL IPDSDY(JA,NP,XP,YP,IP,AD(JMT),AD(JAT),AD(JTT), 17958000
+ 1 AD(JLT),AD(LA),AD(LA)) 17959000
+ RETURN 17960000
+ END 17961000
+ SUBROUTINE IPDSDY(JA,NP,XP,YP,IP,JMT,JAT,JTT,JLT,A,LA) 17962000
+C ******************************************************** 17963000
+C 17964000
+C=====INTERPOLATE POINT IN /DENS/ STORAGE===============================17965000
+C JA - STARTING INDEX IN /DENS/ ARRAY A OF THE TAB1 RECORD 17966000
+C XP - GIVEN VALUE OF X 17967000
+C YP - CORRESPONDING(DESIRED) VALUE OF Y 17968000
+C IP - INTERPOLATION CODE USED TO COMPUTE YP 17969000
+C NP - INDEX OF X AND Y ARRAYS SUCH THAT XP LIES 17970000
+C BETWEEN X(NP) AND X(NP+1). IF NP.GT.0 ON INPUT, IT 17971000
+C IS USED TO START SEARCH. 17972000
+C JA, XP, AND NP(GUESSED VALUE OR 0) ARE GIVEN AS INPUT 17973000
+C YP, IP, AND NP(CORRECT VALUE) ARE OUTPUT FROM S.R. 17974000
+C IF XP.LT.X(1), YP=0.0, NP=0, IP=1 17975000
+C IF XP.GT.X(N2), YP=0.0, NP=N2+1, IP=1, WHERE N2 IS THE 17976000
+C NUMBER OF X,Y VALUES GIVEN IN THE TAB1 RECORD. 17977000
+C-----ERROR STOP 314, IMPROPER INTERPOLATION TABLE 17978000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LLA,JNS,MNS,JX,MX 17979000
+C COMMON/DENS/JMT(100),JAT(100),JTT(100),JLT(100),A(11000), 17980000
+C * JNS,MNS,JX,MX 17981000
+ DIMENSION JMT(100),JAT(100),JTT(100),JLT(100),A(1100) 17982000
+ DIMENSION LA(1) 17983000
+C EQUIVALENCE (A(1),LA(1)) 17984000
+C-----INITIALIZE 17985000
+ N1=LA(JA+7) 17986000
+ N2=LA(JA+8) 17987000
+ J1=JA+9 17988000
+ J2=J1+2*N1 17989000
+C-----TEST FOR XP OUT OF RANGE 17990000
+ IF(XP.GE.A(J2))GOTO 10 17991000
+ YP=0.0 17992000
+ NP=0 17993000
+ IP=1 17994000
+ GOTO 70 17995000
+ 10 K=J2+2*(N2-1) 17996000
+ IF(XP.LE.A(K))GOTO 20 17997000
+ YP=0.0 17998000
+ NP=N2+1 17999000
+ IP=1 18000000
+ GOTO 70 18001000
+C-----SEARCH TABLE FOR PROPER PANEL 18002000
+ 20 IF(NP.LE.0)NP=1 18003000
+ IF(NP.GE.N2)NP=N2-1 18004000
+ K=J2+2*(NP-1) 18005000
+ IF(XP.LT.A(K))NP=1 18006000
+ N2P=N2-1 18007000
+ DO 30 N=NP,N2P 18008000
+ NPP=N+1 18009000
+ K=J2+2*N 18010000
+ IF(XP.LT.A(K))GOTO 40 18011000
+ 30 CONTINUE 18012000
+ YP=A(K+1) 18013000
+ IP=2 18014000
+ NP=N2+1 18015000
+ GOTO 70 18016000
+C-----FIND INTERPOLATION CODE 18017000
+ 40 DO 50 M=1,N1 18018000
+ MP=M 18019000
+ K=J1+2*(M-1) 18020000
+ IF(NPP.LE.LA(K))GOTO 60 18021000
+ 50 CONTINUE 18022000
+ CALL ERRORE(8HSLAVE3 ,314) 18023000
+ 60 IP=LA(K+1) 18024000
+C-----INTERPOLATE 18025000
+ K=J2+2*(NPP-2) 18026000
+ CALL TERP1(A(K),A(K+1),A(K+2),A(K+3),XP,YP,IP) 18027000
+ NP=NPP-1 18028000
+C-----FINISHED 18029000
+ 70 RETURN 18030000
+ END 18031000
+ SUBROUTINE LRIDS(MA,JA,LNT) 18032000
+C ************************************** 18033000
+C DYNAMIC ALLOCATION VERSION 18034000
+C ******************************** 18035000
+ COMMON MAXA,AD( 3000) 18036000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 18037000
+ CALL LRIDDY(MA,JA,LNT,AD(JMT),AD(JAT),AD(JTT), 18038000
+ 1 AD(JLT),AD(LA),AD(LA)) 18039000
+ RETURN 18040000
+ END 18041000
+ SUBROUTINE LRIDDY(MA,JA,LNT,JMT,JAT,JTT,JLT,A,LA) 18042000
+C ******************************************************** 18043000
+C 18044000
+C=====LOCATE RECORD IN DENSE STORAGE====================================18045000
+C MA - RECORD INDENT 18046000
+C JA - STARTING INDEX IN ARRAY A FOR RECORD MA 18047000
+C LNT =0, NORMAL RETURN 18048000
+C =1, RECORD MA NOT IN DENSE STORAGE 18049000
+C-----NO ERROR STOPS 18050000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LLA,JNS,MNS,JX,MX 18051000
+C COMMON/DENS/JMT(100),JAT(100),JTT(100),JLT(100),A(11000), 18052000
+C * JNS,MNS,JX,MX 18053000
+ DIMENSION JMT(100),JAT(100),JTT(100),JLT(100),A(1100) 18054000
+ DIMENSION LA(1) 18055000
+C EQUIVALENCE (A(1),LA(1)) 18056000
+ LNT=0 18057000
+ MXP=MNS-1 18058000
+ IF(MXP.LE.0)GOTO 20 18059000
+ IF(MA.EQ.0)GOTO 20 18060000
+ DO 10 M=1,MXP 18061000
+ JA=JAT(M) 18062000
+ IF(JMT(M).EQ.MA)GOTO 30 18063000
+ 10 CONTINUE 18064000
+ 20 LNT=1 18065000
+ 30 RETURN 18066000
+ END 18067000
+ SUBROUTINE FETCH(MA,LNT) 18068000
+C ************************************** 18069000
+C DYNAMIC ALLOCATION VERSION 18070000
+C ******************************** 18071000
+ COMMON MAXA,AD( 3000) 18072000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 18073000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 18074000
+ COMMON/DENS/JMT,JAT,JTT,JLT,LA,JNS,MNS,JX,MX 18075000
+ CALL FETCHD(MA,LNT,AD(JMT),AD(JAT),AD(JTT), 18076000
+ 1 AD(JLT),AD(LA),AD(LA),AD(LX),AD(LY),AD(LB) ) 18077000
+ RETURN 18078000
+ END 18079000
+ SUBROUTINE FETCHD(MA,LNT,JMT,JAT,JTT,JLT,A,LA,X,Y,B) 18080000
+C ******************************************************** 18081000
+C 18082000
+C=====FETCH RECORD FROM DENSE STORAGE===================================18083000
+C MA - RECORD IDENT TO BE FETCHED 18084000
+C LNT=0, RECORD FOUND AND MOVED TO COMMON/RECS/ 18085000
+C =1, RECORD NOT IN DENSE STORAGE 18086000
+C-----NO ERROR STOPS 18087000
+C COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18088000
+C * X(5000),Y(5000),B(5000),N1X,N2X,NS 18089000
+C COMMON/DENS/JMT(100),JAT(100),JTT(100),JLT(100),A(11000), 18090000
+C * JNS,MNS,JX,MX 18091000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200), 18092000
+ 1 JNT(200),N1X,N2X,NS,LX,LY,LB 18093000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LLA,JNS,MNS,JX,MX 18094000
+ DIMENSION JMT(100),JAT(100),JTT(100),JLT(100),A(1100) 18095000
+ DIMENSION X(5000),Y(5000),B(5000) 18096000
+ DIMENSION LA(1) 18097000
+C EQUIVALENCE (A(1),LA(1)) 18098000
+C-----SEARCH FOR RECORD 18099000
+ LNT=0 18100000
+ IF(MNS.LE.1)GOTO 20 18101000
+ MNSP=MNS-1 18102000
+ DO 10 M=1,MNSP 18103000
+ MP=M 18104000
+ IF(JMT(M).EQ.MA)GOTO 30 18105000
+ 10 CONTINUE 18106000
+ 20 LNT=1 18107000
+ GOTO 130 18108000
+ 30 JA=JAT(MP) 18109000
+ JT=JTT(MP) 18110000
+ IF(JT.EQ.6)GOTO 110 18111000
+C-----MOVE FIRST 9 WORDS 18112000
+ MAT=LA(JA) 18113000
+ MF=LA(JA+1) 18114000
+ MT=LA(JA+2) 18115000
+ C1=A(JA+3) 18116000
+ C2=A(JA+4) 18117000
+ L1=LA(JA+5) 18118000
+ L2=LA(JA+6) 18119000
+ N1=LA(JA+7) 18120000
+ N2=LA(JA+8) 18121000
+ JA=JA+9 18122000
+C-----MOVE REMAINDER OF RECORD 18123000
+ GOTO( 130 , 40 , 60 , 90 , 40 ),JT 18124000
+ 40 DO 50 N=1,N1 18125000
+ J=JA+N-1 18126000
+ 50 B(N)=A(J) 18127000
+ GOTO 130 18128000
+ 60 DO 70 N=1,N1 18129000
+ J=JA+2*(N-1) 18130000
+ NBT(N)=LA(J) 18131000
+ 70 JNT(N)=LA(J+1) 18132000
+ JA=JA+2*N1 18133000
+ DO 80 N=1,N2 18134000
+ J=JA+2*(N-1) 18135000
+ X(N)=A(J) 18136000
+ 80 Y(N)=A(J+1) 18137000
+ GOTO 130 18138000
+ 90 DO 100 N=1,N1 18139000
+ J=JA+2*(N-1) 18140000
+ NBT(N)=LA(J) 18141000
+ 100 JNT(N)=LA(J+1) 18142000
+ GOTO 130 18143000
+C-----TPID RECORD 18144000
+ 110 MAT=LA(JA) 18145000
+ MF=LA(JA+1) 18146000
+ MT=LA(JA+2) 18147000
+ DO 120 N=1,17 18148000
+ J=JA+2+N 18149000
+ 120 B(N)=A(J) 18150000
+C-----FINISHED 18151000
+ 130 RETURN 18152000
+ END 18153000
+ SUBROUTINE TERP1(X1,Y1,X2,Y2,X,Y,I) 18154000
+C ************************************************ 18155000
+C=====INTERPOLATE ONE POINT=============================================18156000
+C (X,Y) IS THE INTERPOLATED POINT 18157000
+C I IS THE INTERPOLATION CODE 18158000
+C NOTE- IF A NEGATIVE OR ZERO ARGUMENT OF A LOG IS 18159000
+C DETECTED, THE INTERPOLATION CODE IS AUTOMATICALLY 18160000
+C CHANGED FROM LOG TO LINEAR 18161000
+C-----ERROR STOP 133, INTERPOLATION CODE OUT OF RANGE 18162000
+C ERROR STOP 134, ZERO OR NEG VALUE CANNOT BE 18163000
+C INTERPOLATED BY LOGS 18164000
+C-----ERROR STOP 135, X1=X2 (DISCONTINUITY) 18165000
+ XA=X1 18166000
+ YA=Y1 18167000
+ XB=X2 18168000
+ YB=Y2 18169000
+ XP=X 18170000
+ II=I 18171000
+ IF(XA.EQ.XB) CALL ERRORE(8HSLAVE3 ,135) 18172000
+ IF(II) 10 , 10 , 20 18173000
+ 10 CALL ERRORE(8HSLAVE3 ,133) 18174000
+ 20 IF(II-5) 30 , 30 , 10 18175000
+ 30 GO TO ( 40 , 50 , 60 , 110 , 140 ),II 18176000
+ 40 YP=YA 18177000
+ GO TO 200 18178000
+ 50 YP=YA+(XP-XA)*(YB-YA)/(XB-XA) 18179000
+ GO TO 200 18180000
+ 60 IF(XA) 50 , 50 , 70 18181000
+ 70 IF(XB) 50 , 50 , 80 18182000
+ 80 IF(XP) 90 , 90 , 100 18183000
+ 90 CALL ERRORE(8HSLAVE3 ,134) 18184000
+ 100 YP=YA+ALOG(XP/XA)*(YB-YA)/ALOG(XB/XA) 18185000
+ GO TO 200 18186000
+ 110 IF(YA) 50 , 50 , 120 18187000
+ 120 IF(YB) 50 , 50 , 130 18188000
+ 130 YP=YA*EXP((XP-XA)*ALOG(YB/YA)/(XB-XA)) 18189000
+ GO TO 200 18190000
+ 140 IF(YA) 60 , 60 , 150 18191000
+ 150 IF(YB) 60 , 60 , 160 18192000
+ 160 IF(XA) 130 , 130 , 170 18193000
+ 170 IF(XB) 130 , 130 , 180 18194000
+ 180 IF(XP) 90 , 90 , 190 18195000
+ 190 YP=YA*EXP(ALOG(XP/XA)*ALOG(YB/YA)/ALOG(XB/XA)) 18196000
+ 200 Y=YP 18197000
+ RETURN 18198000
+ END 18199000
+ SUBROUTINE RREC(JT,NT,MODE,T) 18200000
+C ********************************************************* 18201000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18202000
+ * N1X,N2X,NS,LX,LY,LB 18203000
+ COMMON MAXA,A(1) 18204000
+C----- 18205000
+ CALL DYRREC(JT,NT,MODE,T,A(LX),A(LY),A(LB)) 18206000
+ RETURN 18207000
+ END 18208000
+ SUBROUTINE DYRREC(JT,NT,MODE,T,X,Y,B) 18209000
+C ************************************************** 18210000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18211000
+C ************************************************** 18212000
+ DIMENSION X(1),Y(1),B(1) 18213000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18214000
+ * N1X,N2X,NS,LX,LY,LB 18215000
+C=====READ ONE RECORD FROM ENDF/B TAPE==================================18216000
+C JT = RECORD TYPE, 1-CONT, 2-LIST, 3-TAB1, 4-TAB2, 5-HOL LIST 18217000
+C 6-TPID 18218000
+C NT = INPUT TAPE NUMBER. 18219000
+C MODE=1 BINARY TAPE, STANDARD ARRANGEMENT 18220000
+C =2 BINARY TAPE, ALTERNATE ARRANGEMENT 18221000
+C =3 BCD CARD IMAGE TAPE 18222000
+C T = TEMPERATURE(KELVIN). IF T.GE.0 AND RECORD HAS A TEMPERATURE 18223000
+C DEPENDENCE, DATA WILL BE EVALUATED AT T. IF T.LT.0, ONLY 18224000
+C FIRST RECORD WILL BE READ. 18225000
+C-----ERROR STOP 99, NT NOT DEFINED 18226000
+C ERROR STOP 100, JT OUT OF RANGE 1-6 18227000
+C ERROR STOP 101, MODE OUT OF RANGE 1-3 18228000
+C ERROR STOP 102, T NOT IN RANGE GIVEN IN DATA 18229000
+C ERROR STOP 103, INTERPOLATION TABLE TOO LONG OR 0 18230000
+C ERROR STOP 104, LIST TOO LONG OR 0 18231000
+C ERROR STOP 105, TABULATION TOO LONG OR .LT.2 18232000
+C ERROR STOP 106, IMPROPER TEMPERATURE DEPENDENCE 18233000
+C-----ERROR STOP 107, MAT, MF, MT INCORRECT FOR JT=2, 3, 4, 5 18234000
+C-----PRELIMINARY TESTS 18235000
+ IF(NT.LE.0)CALL ERRORE(8HSLAVE3 ,99) 18236000
+ IF(JT.LT.1)GOTO 10 18237000
+ IF(JT.LE.6)GOTO 20 18238000
+ 10 CALL ERRORE(8HSLAVE3 ,100) 18239000
+ 20 IF(MODE.LT.1)GOTO 30 18240000
+ IF(MODE.LE.3)GOTO 40 18241000
+ 30 CALL ERRORE(8HSLAVE3 ,101) 18242000
+ 40 GOTO( 50 , 110 , 200 , 310 , 390 , 430 ),JT 18243000
+C-----JT=1, CONT RECORD 18244000
+ 50 GOTO( 60 , 70 , 80 ),MODE 18245000
+ 60 READ(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2 18246000
+ GOTO 100 18247000
+ 70 READ(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2 18248000
+ GOTO 100 18249000
+ 80 READ(NT, 90 )C1,C2,L1,L2,N1,N2,MAT,MF,MT 18250000
+ 90 FORMAT(2E11.0,4I11,I4,I2,I3) 18251000
+ 100 GOTO 710 18252000
+C-----JT=2, LIST RECORD 18253000
+ 110 GOTO( 120 , 130 , 140 ),MODE 18254000
+ 120 READ(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(B(N),N=1,N1) 18255000
+ GOTO 160 18256000
+ 130 READ(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(B(N),N=1,N1) 18257000
+ GOTO 160 18258000
+ 140 READ(NT, 150 )C1,C2,L1,L2,N1,N2,MAT,MF,MT,(B(N),N=1,N1) 18259000
+ 150 FORMAT(2E11.0,4I11,I4,I2,I3/(6E11.0)) 18260000
+ 160 IF(N1.GT.N2X)GOTO 170 18261000
+ IF(N1.GE.1)GOTO 180 18262000
+ 170 CALL ERRORE(8HSLAVE3 ,104) 18263000
+ 180 IF(L1.LE.0)GOTO 690 18264000
+ IF(T.LT.0.0)GOTO 690 18265000
+ IF (MF.EQ.2) GO TO 690 18266000
+ NP=N1 18267000
+ DO 190 N=1,NP 18268000
+ 190 Y(N)=B(N) 18269000
+ GOTO 490 18270000
+C-----JT=3, TAB1 RECORD 18271000
+ 200 GOTO( 210 , 220 , 230 ),MODE 18272000
+ 210 READ(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1),(X(N),Y18273000
+ *(N),N=1,N2) 18274000
+ GOTO 260 18275000
+ 220 READ(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1),(X(N),Y18276000
+ *(N),N=1,N2) 18277000
+ GOTO 260 18278000
+ 230 READ(NT, 240 )C1,C2,L1,L2,N1,N2,MAT,MF,MT,(NBT(N),JNT(N),N=1,N1) 18279000
+ 240 FORMAT(2E11.0,4I11,I4,I2,I3/(6I11)) 18280000
+ READ(NT, 250 )(X(N),Y(N),N=1,N2) 18281000
+ 250 FORMAT(6E11.0) 18282000
+ 260 IF(N1.GT.N1X)GOTO 270 18283000
+ IF(N1.GE.1)GOTO 280 18284000
+ 270 CALL ERRORE(8HSLAVE3 ,103) 18285000
+ 280 IF(N2.GT.N2X)GOTO 290 18286000
+ IF(N2.GE.2)GOTO 300 18287000
+ 290 CALL ERRORE(8HSLAVE3 ,105) 18288000
+ 300 IF(L1.EQ.0)GOTO 690 18289000
+ IF(T.LT.0.0)GOTO 690 18290000
+ IF (MF.EQ.2) GO TO 690 18291000
+ NP=N2 18292000
+ GOTO 490 18293000
+C-----JT=4, TAB2 RECORD 18294000
+ 310 GOTO( 320 , 330 , 340 ),MODE 18295000
+ 320 READ(NT)MAT,MF,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1) 18296000
+ GOTO 360 18297000
+ 330 READ(NT)MF,MAT,MT,C1,C2,L1,L2,N1,N2,(NBT(N),JNT(N),N=1,N1) 18298000
+ GOTO 360 18299000
+ 340 READ(NT, 350 )C1,C2,L1,L2,N1,N2,MAT,MF,MT,(NBT(N),JNT(N),N=1,N1) 18300000
+ 350 FORMAT(2E11.0,4I11,I4,I2,I3/(6I11)) 18301000
+ 360 IF(N1.GT.N1X)GOTO 370 18302000
+ IF(N1.GE.1)GOTO 380 18303000
+ 370 CALL ERRORE(8HSLAVE3 ,103) 18304000
+ 380 IF(N2.GT.N2X) GO TO 290 18305000
+ IF(N2.LT.2) GO TO 290 18306000
+ GO TO 690 18307000
+C-----JT=5, HOL LIST 18308000
+ 390 GOTO( 110 , 110 , 400 ),MODE 18309000
+ 400 READ(NT, 410 )C1,C2,L1,L2,NCD,N2,MAT,MF,MT 18310000
+ 410 FORMAT(2E11.0,4I11,I4,I2,I3) 18311000
+ N1=17*NCD 18312000
+ IF(N1.LE.0)GOTO 170 18313000
+ READ(NT, 420 )(B(N),N=1,N1) 18314000
+ 420 FORMAT(16A4,A2) 18315000
+ IF(N1.GT.N2X)GOTO 170 18316000
+ GOTO 690 18317000
+C-----JT=6, TPID RECORD 18318000
+ 430 GO TO ( 440 , 450 , 460 ), MODE 18319000
+ 440 READ (NT) MAT,MF,MT,(B(N),N=1,17) 18320000
+ GO TO 480 18321000
+ 450 READ (NT) MF,MAT,MT, (B(N),N=1,17) 18322000
+ GO TO 480 18323000
+ 460 READ (NT, 470 ) (B(N),N=1,17), MAT,MF,MT 18324000
+ 470 FORMAT(16A4,A2,I4,I2,I3) 18325000
+ 480 GO TO 710 18326000
+C-----TEMPERATURE DEPENDENCE 18327000
+ 490 IF(L1.GE.1)GOTO 510 18328000
+ 500 CALL ERRORE(8HSLAVE3 ,106) 18329000
+ 510 LT=L1 18330000
+ TA=C1 18331000
+ IF(T.GE.TA)GOTO 520 18332000
+ CALL ERRORE(8HSLAVE3 ,102) 18333000
+ 520 IF(T.EQ.TA)GOTO 610 18334000
+ 530 GOTO( 540 , 540 , 550 ),MODE 18335000
+ 540 READ(NT)Z,Z,Z,TB,Z,IC,Z,NP1,Z,(B(N),N=1,NP1) 18336000
+ GOTO 570 18337000
+ 550 READ(NT, 560 )TB,IC,NP1,(B(N),N=1,NP1) 18338000
+ 560 FORMAT(E11.0,11X,I11,11X,I11/(6E11.0)) 18339000
+ 570 LT=LT-1 18340000
+ IF(NP1.NE.NP)GOTO 500 18341000
+ IF(TB.LT.TA)GOTO 500 18342000
+ IF(IC.LT.1)GOTO 500 18343000
+ IF(IC.GT.5)GOTO 500 18344000
+ IF(T.LE.TB)GOTO 590 18345000
+ TA=TB 18346000
+ DO 580 N=1,NP 18347000
+ 580 Y(N)=B(N) 18348000
+ IF(LT.LE.0)GOTO 500 18349000
+ GOTO 530 18350000
+ 590 DO 600 N=1,NP 18351000
+ CALL TERP1(TA,Y(N),TB,B(N),T,Z,IC) 18352000
+ 600 Y(N)=Z 18353000
+ 610 GOTO( 640 , 620 , 640 , 640 ),JT 18354000
+ 620 DO 630 N=1,NP 18355000
+ 630 B(N)=Y(N) 18356000
+ 640 IF(LT.LE.0)GOTO 680 18357000
+ DO 670 L=1,LT 18358000
+ GOTO( 650 , 650 , 660 ),MODE 18359000
+ 650 READ(NT)Z,Z,Z,TB,Z,IC,Z,NP1,Z,(B(N),N=1,NP1) 18360000
+ GOTO 670 18361000
+ 660 READ(NT, 560 )TB,IC,NP1,(B(N),N=1,NP1) 18362000
+ 670 CONTINUE 18363000
+ 680 GOTO 690 18364000
+C-----CHECK MAT, MF, AND MT FOR JT=2, 3, 4, 5 18365000
+ 690 IF(MAT.LE.0)GOTO 700 18366000
+ IF(MF.LE.0)GOTO 700 18367000
+ IF(MT.LE.0)GOTO 700 18368000
+ GOTO 710 18369000
+ 700 CALL ERRORE(8HSLAVE3 ,107) 18370000
+C-----FINISHED 18371000
+ 710 RETURN 18372000
+ END 18373000
+ SUBROUTINE CXFP(X,F,S,N) 18374000
+C ************************************************************* 18375000
+C=====CONVERT X FOR PUNCHING ===========================================18376000
+C X - FLOATING POINT NUMBER = F*10.0**N 18377000
+C F - 0.999995 LE F LT 9.999995 18378000
+C S - SIGN (HOLLERITH + OR -) OF EXPONENT 18379000
+C N - EXPONENT 18380000
+ DATA SP/1H+/,SM/1H-/ 18381000
+ IF(X.NE.0.0) GO TO 10 18382000
+ F=0.0 18383000
+ S=SP 18384000
+ N=0 18385000
+ RETURN 18386000
+ 10 N=ALOG10(ABS(X)) 18387000
+ IF(ABS(X)-1.0) 40 , 20 , 20 18388000
+ 20 F=X/10.0**N 18389000
+ S=SP 18390000
+ IF(ABS(F)-9.999995) 70 , 30 , 30 18391000
+ 30 F=F/10.0 18392000
+ N=N+1 18393000
+ GO TO 70 18394000
+ 40 N=1-N 18395000
+ F=X*10.0**N 18396000
+ S=SM 18397000
+ IF(ABS(F)-9.999995) 70 , 50 , 50 18398000
+ 50 F=F/10.0 18399000
+ N=N-1 18400000
+ IF(N) 60 , 60 , 70 18401000
+ 60 S=SP 18402000
+ 70 CONTINUE 18403000
+ RETURN 18404000
+ END 18405000
+ SUBROUTINE PRCONT(NT,X,Y,B) 18406000
+C=====PRINT CONT TYPE RECORD ===========================================18407000
+C ************************************************** 18408000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18409000
+C ************************************************** 18410000
+ DIMENSION X(1),Y(1),B(1) 18411000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18412000
+ * N1X,N2X,NS,LX,LY,LB 18413000
+ IF(MAT.LT.0) GO TO 20 18414000
+ IF(MAT.EQ.0) GO TO 80 18415000
+ IF(MF.EQ.0) GO TO 60 18416000
+ IF(MT.EQ.0) GO TO 40 18417000
+ WRITE(NT, 10 )C1,C2,L1,L2,N1,N2,MAT,MF,MT,NS 18418000
+ 10 FORMAT(5H0CONT,9X,2HC1,11X,2HC2, 18419000
+ *11X,2HL1,11X,2HL2,11X,2HN1,11X,2HN2,8X, 18420000
+ *3HMAT,16H MF MT SEQ/E20.4,E13.4,I9,3I13,I11,I4,I5,I7) 18421000
+ GO TO 100 18422000
+ 20 WRITE(NT, 30 ) MAT,MF,MT,NS 18423000
+ 30 FORMAT(5H0TEND,19X,11HEND OF TAPE,53X,I4,I4,I5,I7) 18424000
+ GO TO 100 18425000
+ 40 WRITE(NT, 50 ) MAT,MF,MT,NS 18426000
+ 50 FORMAT(5H0SEND,4X,14HEND OF SECTION,65X,I4,I4,I5,I7) 18427000
+ GO TO 100 18428000
+ 60 WRITE(NT, 70 ) MAT,MF,MT,NS 18429000
+ 70 FORMAT(5H0FEND,9X,11HEND OF FILE,63X,I4,I4,I5,I7) 18430000
+ GO TO 100 18431000
+ 80 WRITE(NT, 90 ) MAT,MF,MT,NS 18432000
+ 90 FORMAT(5H0MEND,14X,15HEND OF MATERIAL,54X,I4,I4,I5,I7) 18433000
+ 100 NS=NS+1 18434000
+ RETURN 18435000
+ END 18436000
+ SUBROUTINE PRHOL(NT,X,Y,B) 18437000
+C=====PRINT HOLLERITH LIST RECORD=======================================18438000
+C ************************************************** 18439000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18440000
+C ************************************************** 18441000
+ DIMENSION X(1),Y(1),B(1) 18442000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18443000
+ * N1X,N2X,NS,LX,LY,LB 18444000
+ NCD=N1/17 18445000
+ WRITE(NT, 10 ) C1,C2,L1,L2,NCD,N2,MAT,MF,MT,NS 18446000
+ 10 FORMAT(5H0COMM,9X,2HC1,11X,2HC2,11X,2HL1, 18447000
+ *11X,2HL2,10X,3HNCD,11X,2HN2,8X, 18448000
+ *3HMAT,16H MF MT SEQ/E20.4,E13.4,I9,3I13,I11,I4,I5,I7) 18449000
+ NS=NS+1 18450000
+ NI=1 18451000
+ DO 30 NC=1,NCD 18452000
+ NF=NI+16 18453000
+ WRITE(NT, 20 ) (B(N),N=NI,NF),MAT,MF,MT,NS 18454000
+ 20 FORMAT(1H /(10X,16A4,A2,9X,I7,I4,I5,I7)) 18455000
+ NS=NS+1 18456000
+ 30 NI=NI+17 18457000
+ RETURN 18458000
+ END 18459000
+ SUBROUTINE PRLIST(NT,X,Y,B) 18460000
+C=====PRINT LIST TYPE RECORD============================================18461000
+C ************************************************** 18462000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18463000
+C ************************************************** 18464000
+ DIMENSION X(1),Y(1),B(1) 18465000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18466000
+ * N1X,N2X,NS,LX,LY,LB 18467000
+ WRITE(NT, 10 ) C1,C2,L1,L2,N1,N2,MAT,MF,MT,NS 18468000
+ 10 FORMAT(5H0LIST,9X,2HC1,11X,2HC2, 18469000
+ *11X,2HL1,11X,2HL2,11X,2HN1,11X,2HN2,8X, 18470000
+ *3HMAT,16H MF MT SEQ/E20.4,E13.4,I9,3I13,I11,I4,I5,I7) 18471000
+ NS=NS+1 18472000
+ WRITE(NT, 20 ) 18473000
+ 20 FORMAT(5H (N),7X,4HB(N),9X,6HB(N+1),7X, 18474000
+ *6HB(N+2),7X,6HB(N+3),7X,6HB(N+4), 18475000
+ *7X,6HB(N+5)) 18476000
+ NI=1 18477000
+ NF=6 18478000
+ 30 IF(NF-N1) 40 , 40 , 70 18479000
+ 40 WRITE(NT, 50 )NI,(B(N),N=NI,NF),MAT,MF,MT,NS 18480000
+ 50 FORMAT(2H (,I3,2H) ,6E13.4,I7,I4,I5,I7) 18481000
+ NS=NS+1 18482000
+ IF(NF-N1) 60 , 190 , 190 18483000
+ 60 NI=NI+6 18484000
+ NF=NI+5 18485000
+ GO TO 30 18486000
+ 70 NE=N1-NI+1 18487000
+ GO TO( 80 , 100 , 120 , 140 , 160 ),NE 18488000
+ 80 WRITE(NT, 90 )NI,(B(N),N=NI,N1),MAT,MF,MT,NS 18489000
+ 90 FORMAT(2H (,I3,2H) , E13.4,65X,I7,I4,I5,I7) 18490000
+ GO TO 180 18491000
+ 100 WRITE(NT, 110 )NI,(B(N),N=NI,N1),MAT,MF,MT,NS 18492000
+ 110 FORMAT(2H (,I3,2H) ,2E13.4,52X,I7,I4,I5,I7) 18493000
+ GO TO 180 18494000
+ 120 WRITE(NT, 130 )NI,(B(N),N=NI,N1),MAT,MF,MT,NS 18495000
+ 130 FORMAT(2H (,I3,2H) ,3E13.4,39X,I7,I4,I5,I7) 18496000
+ GO TO 180 18497000
+ 140 WRITE(NT, 150 )NI,(B(N),N=NI,N1),MAT,MF,MT,NS 18498000
+ 150 FORMAT(2H (,I3,2H) ,4E13.4,26X,I7,I4,I5,I7) 18499000
+ GO TO 180 18500000
+ 160 WRITE(NT, 170 )NI,(B(N),N=NI,N1),MAT,MF,MT,NS 18501000
+ 170 FORMAT(2H (,I3,2H) ,5E13.4,13X,I7,I4,I5,I7) 18502000
+ 180 NS=NS+1 18503000
+ 190 RETURN 18504000
+ END 18505000
+ SUBROUTINE PRTAB1(NT,X,Y,B) 18506000
+C=====PRINT TAB1 TYPE RECORD============================================18507000
+C ************************************************** 18508000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18509000
+C ************************************************** 18510000
+ DIMENSION X(1),Y(1),B(1) 18511000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18512000
+ * N1X,N2X,NS,LX,LY,LB 18513000
+ NR=N1 18514000
+ NP=N2 18515000
+ WRITE(NT, 10 )C1,C2,L1,L2,NR,NP,MAT,MF,MT,NS 18516000
+ 10 FORMAT(5H0TAB1,9X,2HC1,11X,2HC2, 18517000
+ *11X,2HL1,11X,2HL2,11X,2HNR,11X,2HNP,8X, 18518000
+ *3HMAT,16H MF MT SEQ/E20.4,E13.4,I9,3I13,I11,I4,I5,I7) 18519000
+ NS=NS+1 18520000
+ WRITE(NT, 20 ) 18521000
+ 20 FORMAT(5H (N),7X,6HNBT(N),7X,6HINT(N), 18522000
+ *7X,8HNBT(N+1),5X,8HINT(N+1),5X, 18523000
+ *8HNBT(N+2),5X,8HINT(N+2)) 18524000
+ NI=1 18525000
+ NF=3 18526000
+ 30 IF(NF-NR) 40 , 40 , 70 18527000
+ 40 WRITE(NT, 50 )NI,(NBT(N),JNT(N),N=NI,NF),MAT,MF,MT,NS 18528000
+ 50 FORMAT(3H ( ,I2,1H),I10,5I13,I11,I4,I5,I7) 18529000
+ NS=NS+1 18530000
+ IF(NF-NR) 60 , 130 , 130 18531000
+ 60 NI=NI+3 18532000
+ NF=NI+2 18533000
+ GO TO 30 18534000
+ 70 IF(NF-NR-1) 130 , 100 , 80 18535000
+ 80 WRITE(NT, 90 )NI,(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18536000
+ 90 FORMAT(3H ( ,I2,1H),I10,I13,52X,I11,I4,I5,I7) 18537000
+ GO TO 120 18538000
+ 100 WRITE(NT, 110 )NI,(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18539000
+ 110 FORMAT(3H ( ,I2,1H),I10,3I13,26X,I11,I4,I5,I7) 18540000
+ 120 NS=NS+1 18541000
+ 130 WRITE(NT, 140 ) 18542000
+ 140 FORMAT(5H (N),7X,4HX(N),9X,4HY(N), 18543000
+ *9X,6HX(N+1),7X,6HY(N+1),7X,6HX(N+2), 18544000
+ *7X,6HY(N+2)) 18545000
+ NI=1 18546000
+ NF=3 18547000
+ 150 IF(NF-NP) 160 , 160 , 190 18548000
+ 160 WRITE(NT, 170 )NI,(X(N),Y(N),N=NI,NF),MAT,MF,MT,NS 18549000
+ 170 FORMAT(2H (,I3,2H) ,6E13.4,I7,I4,I5,I7) 18550000
+ NS=NS+1 18551000
+ IF(NF-NP) 180 , 250 , 250 18552000
+ 180 NI=NI+3 18553000
+ NF=NI+2 18554000
+ GO TO 150 18555000
+ 190 IF(NF-NP-1) 250 , 220 , 200 18556000
+ 200 WRITE(NT, 210 )NI,(X(N),Y(N),N=NI,NP),MAT,MF,MT,NS 18557000
+ 210 FORMAT(2H (,I3,2H) ,2E13.4,52X,I7,I4,I5,I7) 18558000
+ GO TO 240 18559000
+ 220 WRITE(NT, 230 )NI,(X(N),Y(N),N=NI,NP),MAT,MF,MT,NS 18560000
+ 230 FORMAT(2H (,I3,2H) ,4E13.4,26X,I7,I4,I5,I7) 18561000
+ 240 NS=NS+1 18562000
+ 250 RETURN 18563000
+ END 18564000
+ SUBROUTINE PRTAB2(NT,X,Y,B) 18565000
+C=====PRINT TAB2 TYPE RECORD============================================18566000
+C ************************************************** 18567000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18568000
+C ************************************************** 18569000
+ DIMENSION X(1),Y(1),B(1) 18570000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18571000
+ * N1X,N2X,NS,LX,LY,LB 18572000
+ NR=N1 18573000
+ NP=N2 18574000
+ WRITE(NT, 10 )C1,C2,L1,L2,NR,NP,MAT,MF,MT,NS 18575000
+ 10 FORMAT(5H0TAB2,9X,2HC1,11X,2HC2,11X, 18576000
+ *2HL1,11X,2HL2,11X,2HNR,11X,2HNP,8X, 18577000
+ *3HMAT,16H MF MT SEQ/E20.4,E13.4,I9,3I13,I11,I4,I5,I7) 18578000
+ NS=NS+1 18579000
+ WRITE(NT, 20 ) 18580000
+ 20 FORMAT(5H (N),7X,6HNBT(N),7X, 18581000
+ *6HINT(N),7X,8HNBT(N+1),5X,8HINT(N+1),5X, 18582000
+ *8HNBT(N+2),5X,8HINT(N+2)) 18583000
+ NI=1 18584000
+ NF=3 18585000
+ 30 IF(NF-NR) 40 , 40 , 70 18586000
+ 40 WRITE(NT, 50 )NI,(NBT(N),JNT(N),N=NI,NF),MAT,MF,MT,NS 18587000
+ 50 FORMAT(3H ( ,I2,1H),I10,5I13,I11,I4,I5,I7) 18588000
+ NS=NS+1 18589000
+ IF(NF-NR) 60 , 130 , 130 18590000
+ 60 NI=NI+3 18591000
+ NF=NI+2 18592000
+ GOTO 30 18593000
+ 70 IF(NF-NR-1) 130 , 100 , 80 18594000
+ 80 WRITE(NT, 90 )NI,(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18595000
+ 90 FORMAT(3H ( ,I2,1H),I10,I13,52X,I11,I4,I5,I7) 18596000
+ GOTO 120 18597000
+ 100 WRITE(NT, 110 )NI,(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18598000
+ 110 FORMAT(3H ( ,I2,1H),I10,3I13,26X,I11,I4,I5,I7) 18599000
+ 120 NS=NS+1 18600000
+ 130 RETURN 18601000
+ END 18602000
+ SUBROUTINE PRTPID(NT,X,Y,B) 18603000
+C=====PRINT TPID RECORD ================================================18604000
+C ************************************************** 18605000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18606000
+C ************************************************** 18607000
+ DIMENSION X(1),Y(1),B(1) 18608000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18609000
+ * N1X,N2X,NS,LX,LY,LB 18610000
+ WRITE (NT, 10 ) (B(N),N=1,17), MAT 18611000
+ 10 FORMAT(5H0TPID,82X,5HLABEL/10X,16A4,A2,9X,I7) 18612000
+ NS=NS+1 18613000
+ RETURN 18614000
+ END 18615000
+ SUBROUTINE PUCONT(NT,X,Y,B) 18616000
+C=====PUNCH CONT TYPE RECORD ===========================================18617000
+C ************************************************** 18618000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18619000
+C ************************************************** 18620000
+ DIMENSION X(1),Y(1),B(1) 18621000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18622000
+ * N1X,N2X,NS,LX,LY,LB 18623000
+ IF(MT.LE.0) GO TO 20 18624000
+ CALL CXFP(C1,F1,S1,J1) 18625000
+ CALL CXFP(C2,F2,S2,J2) 18626000
+ WRITE(NT, 10 )F1,S1,J1,F2,S2,J2,L1,L2,N1,N2,MAT,MF,MT,NS 18627000
+ 10 FORMAT(2(F8.5,A1,I2),4I11,I4,I2,I3,I5) 18628000
+ GO TO 40 18629000
+ 20 WRITE(NT, 30 )MAT,MF,MT,NS 18630000
+ 30 FORMAT(66X,I4,I2,I3,I5) 18631000
+ 40 NS=NS+1 18632000
+ RETURN 18633000
+ END 18634000
+ SUBROUTINE PUHOL(NT,X,Y,B) 18635000
+C=====PUNCH HOLLERITH LIST RECORD=======================================18636000
+C ************************************************** 18637000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18638000
+C ************************************************** 18639000
+ DIMENSION X(1),Y(1),B(1) 18640000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18641000
+ * N1X,N2X,NS,LX,LY,LB 18642000
+ DIMENSION F(6),S(6),J(6) 18643000
+ NCD=N1/17 18644000
+ CALL CXFP(C1,F(1),S(1),J(1)) 18645000
+ CALL CXFP(C2,F(2),S(2),J(2)) 18646000
+ WRITE(NT, 10 ) F(1),S(1),J(1),F(2),S(2),J(2),L1,L2,NCD,N2,MAT,MF,M18647000
+ *T,NS 18648000
+ 10 FORMAT(2(F8.5,A1,I2),4I11,I4,I2,I3,I5) 18649000
+ NS=NS+1 18650000
+ NI=1 18651000
+ DO 30 NC=1,NCD 18652000
+ NF=NI+16 18653000
+ WRITE(NT, 20 ) (B(N),N=NI,NF),MAT,MF,MT,NS 18654000
+ 20 FORMAT(16A4,A2,I4,I2,I3,I5) 18655000
+ NS=NS+1 18656000
+ 30 NI=NI+17 18657000
+ RETURN 18658000
+ END 18659000
+ SUBROUTINE PULIST(NT,X,Y,B) 18660000
+C=====PUNCH LIST TYPE RECORD============================================18661000
+C ************************************************** 18662000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18663000
+C ************************************************** 18664000
+ DIMENSION X(1),Y(1),B(1) 18665000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18666000
+ * N1X,N2X,NS,LX,LY,LB 18667000
+ DIMENSION F(6),S(6),J(6) 18668000
+ CALL CXFP(C1,F(1),S(1),J(1)) 18669000
+ CALL CXFP(C2,F(2),S(2),J(2)) 18670000
+ WRITE(NT, 10 )F(1),S(1),J(1),F(2),S(2),J(2),L1,L2,N1,N2,MAT,MF,MT,18671000
+ *NS 18672000
+ 10 FORMAT(2(F8.5,A1,I2),4I11,I4,I2,I3,I5) 18673000
+ NS=NS+1 18674000
+ NI=1 18675000
+ 20 NE=N1-NI+1 18676000
+ KX=6 18677000
+ IF(NE-6) 30 , 40 , 40 18678000
+ 30 KX=NE 18679000
+ 40 DO 50 K=1,KX 18680000
+ N=NI+K-1 18681000
+ 50 CALL CXFP(B(N),F(K),S(K),J(K)) 18682000
+ IF(NE-6) 90 , 60 , 60 18683000
+ 60 WRITE(NT, 70 )(F(K),S(K),J(K),K=1,6),MAT,MF,MT,NS 18684000
+ 70 FORMAT(6(F8.5,A1,I2),I4,I2,I3,I5) 18685000
+ NS=NS+1 18686000
+ IF(NE-6) 210 , 210 , 80 18687000
+ 80 NI=NI+6 18688000
+ GO TO 20 18689000
+ 90 GO TO ( 100 , 120 , 140 , 160 , 180 ),NE 18690000
+ 100 WRITE(NT, 110 )(F(K),S(K),J(K),K=1,1),MAT,MF,MT,NS 18691000
+ 110 FORMAT(1(F8.5,A1,I2),55X,I4,I2,I3,I5) 18692000
+ GO TO 200 18693000
+ 120 WRITE(NT, 130 )(F(K),S(K),J(K),K=1,2),MAT,MF,MT,NS 18694000
+ 130 FORMAT(2(F8.5,A1,I2),44X,I4,I2,I3,I5) 18695000
+ GO TO 200 18696000
+ 140 WRITE(NT, 150 )(F(K),S(K),J(K),K=1,3),MAT,MF,MT,NS 18697000
+ 150 FORMAT(3(F8.5,A1,I2),33X,I4,I2,I3,I5) 18698000
+ GO TO 200 18699000
+ 160 WRITE(NT, 170 )(F(K),S(K),J(K),K=1,4),MAT,MF,MT,NS 18700000
+ 170 FORMAT(4(F8.5,A1,I2),22X,I4,I2,I3,I5) 18701000
+ GO TO 200 18702000
+ 180 WRITE(NT, 190 )(F(K),S(K),J(K),K=1,5),MAT,MF,MT,NS 18703000
+ 190 FORMAT(5(F8.5,A1,I2),11X,I4,I2,I3,I5) 18704000
+ 200 NS=NS+1 18705000
+ 210 RETURN 18706000
+ END 18707000
+ SUBROUTINE PUTAB1(NT,X,Y,B) 18708000
+C=====PUNCH TAB1 TYPE RECORD ===========================================18709000
+C ************************************************** 18710000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18711000
+C ************************************************** 18712000
+ DIMENSION X(1),Y(1),B(1) 18713000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18714000
+ * N1X,N2X,NS,LX,LY,LB 18715000
+ DIMENSION F(6),S(6),J(6) 18716000
+ NR=N1 18717000
+ NP=N2 18718000
+ CALL CXFP(C1,F(1),S(1),J(1)) 18719000
+ CALL CXFP(C2,F(2),S(2),J(2)) 18720000
+ WRITE(NT, 10 )F(1),S(1),J(1),F(2),S(2),J(2),L1,L2,NR,NP,MAT,MF,MT,18721000
+ *NS 18722000
+ 10 FORMAT(F8.5,A1,I2,F8.5,A1,I2,4I11,I4,I2,I3,I5) 18723000
+ NS=NS+1 18724000
+ NI=1 18725000
+ NF=3 18726000
+ 20 IF(NF-NR) 30 , 30 , 60 18727000
+ 30 WRITE(NT, 40 )(NBT(N),JNT(N),N=NI,NF),MAT,MF,MT,NS 18728000
+ 40 FORMAT(6I11,I4,I2,I3,I5) 18729000
+ NS=NS+1 18730000
+ IF(NF-NR) 50 , 120 , 120 18731000
+ 50 NI=NI+3 18732000
+ NF=NI+2 18733000
+ GO TO 20 18734000
+ 60 IF(NF-NR-1) 120 , 90 , 70 18735000
+ 70 WRITE(NT, 80 )(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18736000
+ 80 FORMAT(2I11,44X,I4,I2,I3,I5) 18737000
+ GO TO 110 18738000
+ 90 WRITE(NT, 100 ) (NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18739000
+ 100 FORMAT(4I11,22X,I4,I2,I3,I5) 18740000
+ 110 NS=NS+1 18741000
+ 120 NI=1 18742000
+ NF=3 18743000
+ 130 IF(NF-NP) 140 , 140 , 180 18744000
+ 140 DO 150 K=1,6,2 18745000
+ N=NI+K/2 18746000
+ CALL CXFP(X(N),F(K),S(K),J(K)) 18747000
+ 150 CALL CXFP(Y(N),F(K+1),S(K+1),J(K+1)) 18748000
+ WRITE(NT, 160 )(F(K),S(K),J(K),K=1,6),MAT,MF,MT,NS 18749000
+ 160 FORMAT(6(F8.5,A1,I2),I4,I2,I3,I5) 18750000
+ NS=NS+1 18751000
+ IF(NF-NP) 170 , 250 , 250 18752000
+ 170 NI=NI+3 18753000
+ NF=NI+2 18754000
+ GO TO 130 18755000
+ 180 IF(NF-NP-1) 250 , 210 , 190 18756000
+ 190 CALL CXFP(X(NI),F(1),S(1),J(1)) 18757000
+ CALL CXFP(Y(NI),F(2),S(2),J(2)) 18758000
+ WRITE(NT, 200 )(F(K),S(K),J(K),K=1,2),MAT,MF,MT,NS 18759000
+ 200 FORMAT(2(F8.5,A1,I2),44X,I4,I2,I3,I5) 18760000
+ GO TO 240 18761000
+ 210 DO 220 K=1,4,2 18762000
+ N=NI+K/2 18763000
+ CALL CXFP(X(N),F(K),S(K),J(K)) 18764000
+ 220 CALL CXFP(Y(N),F(K+1),S(K+1),J(K+1)) 18765000
+ WRITE(NT, 230 )(F(K),S(K),J(K),K=1,4),MAT,MF,MT,NS 18766000
+ 230 FORMAT(4(F8.5,A1,I2),22X,I4,I2,I3,I5) 18767000
+ 240 NS=NS+1 18768000
+ 250 CONTINUE 18769000
+ RETURN 18770000
+ END 18771000
+ SUBROUTINE PUTAB2(NT,X,Y,B) 18772000
+C=====PUNCH TAB2 TYPE RECORD ===========================================18773000
+C ************************************************** 18774000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18775000
+C ************************************************** 18776000
+ DIMENSION X(1),Y(1),B(1) 18777000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18778000
+ * N1X,N2X,NS,LX,LY,LB 18779000
+ DIMENSION F(6),S(6),J(6) 18780000
+ NR=N1 18781000
+ NP=N2 18782000
+ CALL CXFP(C1,F(1),S(1),J(1)) 18783000
+ CALL CXFP(C2,F(2),S(2),J(2)) 18784000
+ WRITE(NT, 10 )F(1),S(1),J(1),F(2),S(2),J(2),L1,L2,NR,NP,MAT,MF,MT,18785000
+ *NS 18786000
+ 10 FORMAT(F8.5,A1,I2,F8.5,A1,I2,4I11,I4,I2,I3,I5) 18787000
+ NS=NS+1 18788000
+ NI=1 18789000
+ NF=3 18790000
+ 20 IF(NF-NR) 30 , 30 , 60 18791000
+ 30 WRITE(NT, 40 )(NBT(N),JNT(N),N=NI,NF),MAT,MF,MT,NS 18792000
+ 40 FORMAT(6I11,I4,I2,I3,I5) 18793000
+ NS=NS+1 18794000
+ IF(NF-NR) 50 , 120 , 120 18795000
+ 50 NI=NI+3 18796000
+ NF=NI+2 18797000
+ GO TO 20 18798000
+ 60 IF(NF-NR-1) 120 , 90 , 70 18799000
+ 70 WRITE(NT, 80 )(NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18800000
+ 80 FORMAT(2I11,44X,I4,I2,I3,I5) 18801000
+ GO TO 110 18802000
+ 90 WRITE(NT, 100 ) (NBT(N),JNT(N),N=NI,NR),MAT,MF,MT,NS 18803000
+ 100 FORMAT(4I11,22X,I4,I2,I3,I5) 18804000
+ 110 NS=NS+1 18805000
+ 120 RETURN 18806000
+ END 18807000
+ SUBROUTINE PUTPID(NT,X,Y,B) 18808000
+C=====PUNCH TPID RECORD ================================================18809000
+C ************************************************** 18810000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 18811000
+C ************************************************** 18812000
+ DIMENSION X(1),Y(1),B(1) 18813000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18814000
+ * N1X,N2X,NS,LX,LY,LB 18815000
+ NZ=0 18816000
+ WRITE (NT, 10 ) (B(N),N=1,17), MAT,NZ,NZ,NZ 18817000
+ 10 FORMAT(16A4,A2,I4,I2,I3,I5) 18818000
+ NS=NS+1 18819000
+ RETURN 18820000
+ END 18821000
+ SUBROUTINE STORE(JT,MA,LOF) 18822000
+C **************************************************************** 18823000
+C=====STORE RECORD IN DENSE STORAGE=====================================18824000
+C JT = RECORD TYPE, 1-CONT, 2-LIST, 3-TAB1, 4-TAB2, 5-HOL, 6-TPID 18825000
+C MA = IDENT OF RECORD TO BE STORED. IF A RECORD WITH 18826000
+C THE SAME IDENT IS ALREADY STORED, IT IS DELETED. 18827000
+C LOF= OVERFLOW INDICATOR NORMALLY ZERO. IF LOF=1, RECORD 18828000
+C WILL NOT FIT. 18829000
+C-----ERROR STOP 300, JT NOT IN RANGE 1-6 18830000
+C ERROR STOP 301, MA=0 NOT ALLOWED 18831000
+ COMMON MAXA,A(1) 18832000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LARRAY,JNS,MNS,JX,MX 18833000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18834000
+ 1 N1X,N2X,NS,LX,LY,LB 18835000
+ CALL DYSTOR(A(LJMT),A(LJAT),A(LJTT),A(LJLT),A(LARRAY),A(LARRAY), 18836000
+ 1 A(LX),A(LY),A(LB), 18837000
+ 2 JT,MA,LOF) 18838000
+ RETURN 18839000
+ END 18840000
+ SUBROUTINE DYSTOR(JMT,JAT,JTT,JLT,A,LA,X,Y,B,JT,MA,LOF) 18841000
+C ****************************************************** 18842000
+ DIMENSION JMT(1),JAT(1),JTT(1),JLT(1),A(1),LA(1) 18843000
+ COMMON/DENS/LJMT,LJAT,LJTT,LJLT,LARRAY,JNS,MNS,JX,MX 18844000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18845000
+ 1 N1X,N2X,NS,LX,LY,LB 18846000
+ DIMENSION X(1),Y(1),B(1) 18847000
+C-----INITIALIZE ANT TEST JT AND MA 18848000
+ 100 LOF=0 18849000
+ IF(MA)114,112,114 18850000
+ 112 CALL ERRORE(6HDENSST,301) 18851000
+ 114 IF((JT.LT.1).OR.(JT.GT.6))CALL ERRORE(6HDENSST,300) 18852000
+C-----TEST FOR RECORD WITH SAME IDENT 18853000
+ 110 IF(MNS.LE.1)GOTO130 18854000
+ MNSP=MNS-1 18855000
+ DO120M=1,MNSP 18856000
+ IF(JMT(M).EQ.MA)CALL DELETE(MA) 18857000
+ 120 CONTINUE 18858000
+ IF(MNS.GT.MX)GOTO320 18859000
+C-----TEST FOR TOO MANY VALUES 18860000
+ 130 GOTO(140,150,160,170,150,180),JT 18861000
+ 140 JL=9 18862000
+ GOTO190 18863000
+ 150 JL=9+N1 18864000
+ GOTO190 18865000
+ 160 JL=9+2*(N1+N2) 18866000
+ GOTO190 18867000
+ 170 JL=9+2*N1 18868000
+ GOTO190 18869000
+ 180 JL=20 18870000
+ 190 IF((JNS+JL-1).GT.JX)GOTO320 18871000
+C-----MOVE FIRST 9 WORDS 18872000
+ 200 LA(JNS)=MAT 18873000
+ LA(JNS+1)=MF 18874000
+ LA(JNS+2)=MT 18875000
+ A(JNS+3)=C1 18876000
+ A(JNS+4)=C2 18877000
+ LA(JNS+5)=L1 18878000
+ LA(JNS+6)=L2 18879000
+ LA(JNS+7)=N1 18880000
+ LA(JNS+8)=N2 18881000
+C-----MOVE REST OF RECORD 18882000
+ 210 GOTO(310,220,240,270,220,290),JT 18883000
+ 220 DO230N=1,N1 18884000
+ J=JNS+8+N 18885000
+ 230 A(J)=B(N) 18886000
+ GOTO310 18887000
+ 240 DO250N=1,N1 18888000
+ J=JNS+7+2*N 18889000
+ LA(J)=NBT(N) 18890000
+ 250 LA(J+1)=JNT(N) 18891000
+ JP=JNS+7+2*N1 18892000
+ DO260N=1,N2 18893000
+ J=JP+2*N 18894000
+ A(J)=X(N) 18895000
+ 260 A(J+1)=Y(N) 18896000
+ GOTO310 18897000
+ 270 DO280N=1,N1 18898000
+ J=JNS+7+2*N 18899000
+ LA(J)=NBT(N) 18900000
+ 280 LA(J+1)=JNT(N) 18901000
+ GOTO310 18902000
+ 290 DO300N=1,17 18903000
+ J=JNS+2+N 18904000
+ 300 A(J)=B(N) 18905000
+C-----UPDATE TABLES AND COUNTERS 18906000
+ 310 JMT(MNS)=MA 18907000
+ JTT(MNS)=JT 18908000
+ JAT(MNS)=JNS 18909000
+ JLT(MNS)=JL 18910000
+ MNS=MNS+1 18911000
+ JNS=JNS+JL 18912000
+ GOTO400 18913000
+C-----OVERFLOW 18914000
+ 320 LOF=1 18915000
+C-----FINISHED 18916000
+ 400 RETURN 18917000
+ END 18918000
+ SUBROUTINE TERP2(XP,YP,NX) 18919000
+C ************************************** 18920000
+C 18921000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18922000
+ * N1X,N2X,NS,LX,LY,LB 18923000
+ DIMENSION XP(NX),YP(NX) 18924000
+ COMMON MAXA,A(1) 18925000
+C----- 18926000
+ CALL DTERP2(XP,YP,NX,A(LX),A(LY),A(LB)) 18927000
+ RETURN 18928000
+ END 18929000
+ SUBROUTINE DTERP2(XP,YP,NX,X,Y,B) 18930000
+C ************************************* 18931000
+C DYNAMIC ALLOCATION VERSION OF TERP2 FROM SLAVE3 18932000
+C ************************************************** 18933000
+C 18934000
+C=====FORM A NEW TABLE BY INTERPOLATION=================================18935000
+C XP(N),N=1,NX IS THE TABLE OF X AT WHICH Y IS WANTED 18936000
+C YP(N),N=1,NX IS THE TABLE OF Y TO BE COMPUTED BY 18937000
+C INTERPOLATION IN THE TAB1 RECORD IN /RECS/ 18938000
+C DISCONTINUITIES ARE TREATED PROPERLY 18939000
+C-----ERROR STOP 130, X NOT IN INCREASING ORDER 18940000
+C ERROR STOP 131, XP NOT IN INCREASING ORDER 18941000
+C-----ERROR STOP 132, INTERPOLATION TABLE INCORRECT 18942000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18943000
+ * N1X,N2X,NS,LX,LY,LB 18944000
+ DIMENSION XP(1),YP(1),X(1),Y(1),B(1) 18945000
+ NST=1 18946000
+ NSTP=1 18947000
+ DO 210 M=1,NX 18948000
+ XA=XP(M) 18949000
+ IF(XA-X(1)) 10 , 20 , 20 18950000
+ 10 YP(M)=0.0 18951000
+ GOTO 210 18952000
+ 20 DO 30 N=NST,N2 18953000
+ NSTP=N 18954000
+ NA=N 18955000
+ IF(XA-X(N)) 160 , 40 , 30 18956000
+ 30 CONTINUE 18957000
+ GOTO 10 18958000
+ 40 IF(NA-N2) 50 , 150 , 150 18959000
+ 50 IF(X(NA)-X(NA+1)) 150 , 70 , 60 18960000
+ 60 CALL ERRORE(8H TERP2 ,130) 18961000
+ 70 IF(M-1) 140 , 140 , 80 18962000
+ 80 IF(XP(M-1)-XP(M)) 110 , 100 , 90 18963000
+ 90 CALL ERRORE(8H TERP2 ,131) 18964000
+ 100 NA=NA+1 18965000
+ GOTO 150 18966000
+ 110 IF(M-NX) 120 , 150 , 150 18967000
+ 120 IF(XP(M)-XP(M+1)) 130 , 150 , 90 18968000
+ 130 YP(M)=0.5*(Y(NA)+Y(NA+1)) 18969000
+ GOTO 210 18970000
+ 140 IF(XP(M)-XP(M+1)) 100 , 150 , 90 18971000
+ 150 YP(M)=Y(NA) 18972000
+ GOTO 210 18973000
+ 160 K=1 18974000
+ 170 IF(NA-NBT(K)) 200 , 200 , 180 18975000
+ 180 K=K+1 18976000
+ IF(K-N1) 170 , 170 , 190 18977000
+ 190 CALL ERRORE(8H TERP2 ,132) 18978000
+ 200 I=JNT(K) 18979000
+ CALL TERP1(X(NA-1),Y(NA-1),X(NA),Y(NA),XA,YP(M),I) 18980000
+ 210 NST=NSTP 18981000
+ RETURN 18982000
+ END 18983000
+ SUBROUTINE GRATE(XLP,XHP,ANS) 18984000
+C ********************************************************8 18985000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 18986000
+ * N1X,N2X,NS,LX,LY,LB 18987000
+ COMMON MAXA,A(1) 18988000
+C----- 18989000
+ CALL DGRATE(XLP,XHP,ANS,A(LX),A(LY),A(LB)) 18990000
+ RETURN 18991000
+ END 18992000
+ SUBROUTINE DGRATE(XLP,XHP,ANS,X,Y,B) 18993000
+C ********************************************************8 18994000
+C=====INTEGRATE TAB1 FUNCTION===========================================18995000
+C THE TAB1 FUNCTION IS IN COMMON/RECS/ 18996000
+C XLP AND XHP ARE THE INTEGRATION LIMITS 18997000
+C ANS IS THE ANSWER 18998000
+C-----ERROR STOP 315, INTERPOLATION TABLE INCORRECT 18999000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 19000000
+ * N1X,N5X,NS,LX,LY,LB 19001000
+ DIMENSION X(1),Y(1),B(1) 19002000
+C-----SWITCH LIMITS IF NECESSARY AND INITIALIZE 19003000
+ ANS=0.0 19004000
+ XL=XLP 19005000
+ XH=XHP 19006000
+ IF(XL-XH) 20 , 250 , 10 19007000
+ 10 XL=XHP 19008000
+ XH=XLP 19009000
+C-----LOCATE XL IN TABLE, XL GTHN OR EQUAL TO X(NL) 19010000
+ 20 IF(XL-X(1)) 30 , 40 , 40 19011000
+ 30 XL=X(1) 19012000
+ IF(XH-XL) 250 , 250 , 40 19013000
+ 40 DO 50 N=1,N2 19014000
+ NL=N-1 19015000
+ IF(XL-X(N)) 60 , 50 , 50 19016000
+ 50 CONTINUE 19017000
+ GO TO 250 19018000
+C-----LOCATE XH IN TABLE, XH GTHN X(NH) 19019000
+ 60 IF(XH-X(N2)) 80 , 80 , 70 19020000
+ 70 XH=X(N2) 19021000
+ NH=N2-1 19022000
+ GO TO 100 19023000
+ 80 DO 90 N=NL,N2 19024000
+ NH=N-1 19025000
+ IF(XH-X(N)) 100 , 100 , 90 19026000
+ 90 CONTINUE 19027000
+C-----FIND STARTING INTERPOLATION CODE 19028000
+ 100 M=1 19029000
+ 110 IF(NL+1-NBT(M)) 140 , 140 , 120 19030000
+ 120 M=M+1 19031000
+ IF(M-N1) 110 , 110 , 130 19032000
+ 130 CALL ERRORE(8H GRATE ,315) 19033000
+ 140 I=JNT(M) 19034000
+C=====SUM OVER PANELS 19035000
+ IF(NH-NL) 150 , 150 , 160 19036000
+C-----ONLY ONE PANEL 19037000
+ 150 CALL ECSI(X(NL),Y(NL),X(NL+1),Y(NL+1),XL,XH,I,ANS) 19038000
+ GO TO 230 19039000
+C-----DO FIRST PANEL 19040000
+ 160 CALL ECSI(X(NL),Y(NL),X(NL+1),Y(NL+1),XL,X(NL+1),I,ANS) 19041000
+ N=NL 19042000
+C-----DO INTERMEDIATE PANELS 19043000
+ 170 N=N+1 19044000
+ 180 IF(N+1-NBT(M)) 200 , 200 , 190 19045000
+ 190 M=M+1 19046000
+ IF(M-N1) 180 , 180 , 130 19047000
+ 200 I=JNT(M) 19048000
+ IF(N-NH) 210 , 220 , 220 19049000
+ 210 CALL ECSI(X(N),Y(N),X(N+1),Y(N+1),X(N),X(N+1),I,AN) 19050000
+ ANS=ANS+AN 19051000
+ GO TO 170 19052000
+C-----DO LAST PANEL 19053000
+ 220 CALL ECSI(X(N),Y(N),X(N+1),Y(N+1),X(N),XH,I,AN) 19054000
+ ANS=ANS+AN 19055000
+C=====FINISHED 19056000
+ 230 IF(XLP-XHP) 250 , 250 , 240 19057000
+ 240 ANS=-ANS 19058000
+ 250 RETURN 19059000
+ END 19060000
+ SUBROUTINE ECSI(X3,Y3,X4,Y4,X1,X2,I,ANS) 19061000
+C ****************************************** 19062000
+C=====COMPUT INTEGRAL OF Y(X)===========================================19063000
+C Y(X) DEFINED BY THE END POINTS (X3,Y3), (X4,Y4), AND THE 19064000
+C INTERPOLATION CODE I. X1 AND X2 ARE THE INTEGRATION LIMITS. 19065000
+C-----ERROR STOP 19066000
+C 110 INTERPOLATION CODE OUT OF RANGE 19067000
+C X1 AND X2 MAY LIE OUTSIDE X3 AND X4 19068000
+ ANS=0.0 19069000
+ IF(X4-X3) 160 , 160 , 10 19070000
+ 10 IP=I 19071000
+ IF(IP) 20 , 20 , 30 19072000
+ 20 CALL ERRORE(8H ECSI ,110) 19073000
+ 30 IF(IP-5) 40 , 40 , 20 19074000
+ 40 GOTO( 50 , 60 , 70 , 100 , 130 ),IP 19075000
+C-----Y CONSTANT 19076000
+ 50 ANS=(X2-X1)*Y3 19077000
+ GO TO 160 19078000
+C-----Y LINEAR IN X 19079000
+ 60 B=(Y4-Y3)/(X4-X3) 19080000
+ A=Y3-B*X3 19081000
+ ANS=(X2-X1)*(A+0.5*B*(X2+X1)) 19082000
+ GO TO 160 19083000
+C-----Y LINEAR IN LN(X) 19084000
+ 70 IF((X3.LE.0.0).OR.(X4.LE.0.0)) GO TO 60 19085000
+ B=(Y4-Y3)/ALOG(X4/X3) 19086000
+ Z=(X2-X1)/X1 19087000
+ IF(ABS(Z)-0.15) 80 , 80 , 90 19088000
+ 80 ANS=(X2-X1)*(Y3+B*ALOG(X1/X3))+(0.5*B*X1*Z*Z)* 19089000
+ *(1.0+Z*(-0.3333333+Z*(0.16666667-0.1*Z))) 19090000
+ GO TO 160 19091000
+ 90 ANS=(X2-X1)*(Y3+B*ALOG(X1/X3))+B*X1* 19092000
+ *(1.0+(X2/X1)*(ALOG(X2/X1)-1.0)) 19093000
+ GO TO 160 19094000
+C-----LN(Y) LINEAR IN X 19095000
+ 100 IF((Y3.LE.0.0).OR.(Y4.LE.0.0))GO TO 60 19096000
+ B=ALOG(Y4/Y3)/(X4-X3) 19097000
+ A=ALOG(Y3)-B*X3 19098000
+ Z=(X2-X1)*B 19099000
+ IF(ABS(Z)-0.1) 110 , 110 , 120 19100000
+ 110 ANS=EXP(A+B*X1)*(X2-X1)*(1.0+Z*(0.5+0.16666667*Z)) 19101000
+ GO TO 160 19102000
+ 120 ANS=EXP(A+B*X1)*(EXP(Z)-1.0)/B 19103000
+ GO TO 160 19104000
+C-----LN(Y) LINEAR IN LN(X) 19105000
+ 130 IF((X3.LE.0.0).OR.(X4.LE.0.0)) GO TO 100 19106000
+ IF((Y3.LE.0.0).OR.(Y4.LE.0.0))GO TO 70 19107000
+ B=ALOG(Y4/Y3)/ALOG(X4/X3) 19108000
+ Z=(B+1.0)*ALOG(X2/X1) 19109000
+ IF(ABS(Z)-0.1) 140 , 140 , 150 19110000
+ 140 ANS=Y3*X1*((X1/X3)**B)*ALOG(X2/X1)*(1.+Z*(0.5+0.16666667*Z)) 19111000
+ GO TO 160 19112000
+ 150 ANS=Y3*X1*((X1/X3)**B)*(((X2/X1)**(B+1.0))-1.0)/(B+1.0) 19113000
+ GO TO 160 19114000
+C-----FINISHED 19115000
+ 160 RETURN 19116000
+ END 19117000
+ SUBROUTINE CROP(XL,XH,EPS,LOF) 19118000
+C ************************************************** 19119000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 19120000
+ * N1X,N2X,NS,LX,LY,LB 19121000
+ COMMON MAXA,A(1) 19122000
+C----- 19123000
+ CALL DYCROP(XL,XH,EPS,LOF,A(LX),A(LY),A(LB)) 19124000
+ RETURN 19125000
+ END 19126000
+ SUBROUTINE DYCROP(XL,XH,EPS,LOF,X,Y,B) 19127000
+C ************************************************** 19128000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 19129000
+C ************************************************** 19130000
+ DIMENSION X(5),Y(5),B(5) 19131000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 19132000
+ * N1X,N2X,NS,LX,LY,LB 19133000
+C=====CROP A TAB1 RECORD================================================19134000
+C A TAB1 RECORD IN /RECS/ IS CROPPED AND ONLY THE PORTION 19135000
+C BETWEEN X=XL AND X=XH IS RETAINED. PORTIONS OF THE RANGE 19136000
+C NOT DEFINED BY THE ORIGINAL TAB1 RECORD ARE SET TO ZERO. 19137000
+C UNNECESSARY POINTS ARE ELIMINATED IF THEY CAN BE 19138000
+C PREDICTED BY INTERPOLATION BETWEEN ADJACENT POINTS TO 19139000
+C RELATIVE ACCURACY OF EPS. 19140000
+C LOF=0, NORMAL RETURN 19141000
+C =1, RECORD TOO LARGE, REPEAT WITH LARGER EPS. 19142000
+C-----ERROR STOP 312, TAB1 RECORD INCORRECT 19143000
+C ERROR STOP 313, NBT, JNT TABLES TOO LARGE 19144000
+C COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(100),JNT(100), 19145000
+C * X(5000),Y(5000),B(5000),N1X,N2X,NS 19146000
+ LOF=0 19147000
+C-----CROP UPPER END 19148000
+ IF(X(N2).LE.XH)GOTO 50 19149000
+ DO 10 N=1,N2 19150000
+ NP=N 19151000
+ IF(X(N).GE.XH)GOTO 20 19152000
+ 10 CONTINUE 19153000
+ 20 IF(NP.LE.1)GOTO 140 19154000
+ DO 30 M=1,N1 19155000
+ MP=M 19156000
+ IF(NP.LE.NBT(M))GOTO 40 19157000
+ 30 CONTINUE 19158000
+ CALL ERRORE(8HSLAVE3 ,312) 19159000
+ 40 I=JNT(MP) 19160000
+ CALL TERP1(X(NP-1),Y(NP-1),X(NP),Y(NP),XH,YP,I) 19161000
+ X(NP)=XH 19162000
+ Y(NP)=YP 19163000
+ N2=NP 19164000
+ N1=MP 19165000
+C-----CROP LOWER END 19166000
+ 50 IF(X(1).GE.XL)GOTO 150 19167000
+ DO 60 N=1,N2 19168000
+ NP=N 19169000
+ IF(X(N).GT.XL)GOTO 70 19170000
+ 60 CONTINUE 19171000
+ GOTO 140 19172000
+ 70 DO 80 M=1,N1 19173000
+ MP=M 19174000
+ IF(NP.LE.NBT(M))GOTO 90 19175000
+ 80 CONTINUE 19176000
+ CALL ERRORE(8HSLAVE3 ,312) 19177000
+ 90 I=JNT(MP) 19178000
+ CALL TERP1(X(NP-1),Y(NP-1),X(NP),Y(NP),XL,YP,I) 19179000
+ X(NP-1)=XL 19180000
+ Y(NP-1)=YP 19181000
+ ND=NP-2 19182000
+ IF(ND.LE.0)GOTO 150 19183000
+ N2=N2-ND 19184000
+ DO 100 N=1,N2 19185000
+ K=N+ND 19186000
+ X(N)=X(K) 19187000
+ 100 Y(N)=Y(K) 19188000
+ DO 110 M=1,N1 19189000
+ 110 NBT(M)=NBT(M)-ND 19190000
+ ND=MP-1 19191000
+ IF(ND.LE.0)GOTO 130 19192000
+ N1=N1-ND 19193000
+ DO 120 M=1,N1 19194000
+ K=M+ND 19195000
+ NBT(M)=NBT(K) 19196000
+ 120 JNT(M)=JNT(K) 19197000
+ 130 GOTO 150 19198000
+C-----ENTIRE RANGE ZERO 19199000
+ 140 X(1)=XL 19200000
+ Y(1)=0.0 19201000
+ X(2)=XH 19202000
+ Y(2)=0.0 19203000
+ N2=2 19204000
+ NBT(1)=2 19205000
+ JNT(1)=2 19206000
+ N1=1 19207000
+ GOTO 300 19208000
+C-----ELIMINATE UNNECESSARY POINTS 19209000
+ 150 IF(EPS.LE.0.0)GOTO 210 19210000
+ IF(N2.LE.2)GOTO 210 19211000
+ M=1 19212000
+ N=2 19213000
+ 160 IF(N.LE.NBT(M))GOTO 170 19214000
+ M=M+1 19215000
+ IF(M.LE.N1)GOTO 160 19216000
+ CALL ERRORE(8HSLAVE3 ,312) 19217000
+ 170 I=JNT(M) 19218000
+ IF(N+1.GT.NBT(M))GOTO 200 19219000
+ IF(ABS(Y(N)).LE.1.0E-10)GOTO 200 19220000
+ CALL TERP1(X(N-1),Y(N-1),X(N+1),Y(N+1),X(N),YP,I) 19221000
+ IF(ABS((Y(N)-YP)/Y(N)).GT.EPS)GOTO 200 19222000
+ NP=N+1 19223000
+ DO 180 K=NP,N2 19224000
+ X(K-1)=X(K) 19225000
+ 180 Y(K-1)=Y(K) 19226000
+ N2=N2-1 19227000
+ DO 190 K=M,N1 19228000
+ 190 NBT(K)=NBT(K)-1 19229000
+ IF(N.GE.N2) GO TO 210 19230000
+ GOTO 160 19231000
+ 200 N=N+1 19232000
+ IF(N.LT.N2)GOTO 160 19233000
+C-----ADD ZEROS TO UPPER END 19234000
+ 210 IF(X(N2).GE.XH)GOTO 240 19235000
+ IF(N2+2.GT.N2X)GOTO 290 19236000
+ X(N2+1)=X(N2) 19237000
+ Y(N2+1)=0.0 19238000
+ X(N2+2)=XH 19239000
+ Y(N2+2)=0.0 19240000
+ N2=N2+2 19241000
+ IF(JNT(N1).NE.2)GOTO 220 19242000
+ NBT(N1)=N2 19243000
+ GOTO 230 19244000
+ 220 IF(N1+1.GT.N1X)CALL ERRORE(8HSLAVE3 ,313) 19245000
+ N1=N1+1 19246000
+ NBT(N1)=N2 19247000
+ JNT(N1)=2 19248000
+ 230 CONTINUE 19249000
+C-----ADD ZEROS TO LOWER END 19250000
+ 240 IF(X(1).LE.XL)GOTO 300 19251000
+ IF(N2+2.GT.N2X)GOTO 290 19252000
+ DO 250 N=1,N2 19253000
+ K=N2-N+1 19254000
+ X(K+2)=X(K) 19255000
+ 250 Y(K+2)=Y(K) 19256000
+ X(1)=XL 19257000
+ Y(1)=0.0 19258000
+ X(2)=X(3) 19259000
+ Y(2)=0.0 19260000
+ N2=N2+2 19261000
+ DO 260 M=1,N1 19262000
+ 260 NBT(M)=NBT(M)+2 19263000
+ IF(JNT(1).EQ.2)GOTO 280 19264000
+ IF(N1+1.GT.N1X)CALL ERRORE(8HSLAVE3 ,313) 19265000
+ DO 270 M=1,N1 19266000
+ K=N1-M+1 19267000
+ NBT(K+1)=NBT(K) 19268000
+ 270 JNT(K+1)=JNT(K) 19269000
+ NBT(1)=3 19270000
+ JNT(1)=2 19271000
+ N1=N1+1 19272000
+ 280 GOTO 300 19273000
+C-----OVERFLOW 19274000
+ 290 LOF=1 19275000
+C-----FINISHED 19276000
+ 300 RETURN 19277000
+ END 19278000
+ SUBROUTINE GENT1(FUNC,CON,XL,XH,EPS,LOF) 19279000
+C ************************************************** 19280000
+ EXTERNAL FUNC 19281000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 19282000
+ * N1X,N2X,NS,LX,LY,LB 19283000
+ COMMON MAXA,A(1) 19284000
+ DIMENSION CON(2) 19285000
+C----- 19286000
+ CALL DYGNT1(FUNC,CON,XL,XH,EPS,LOF,A(LX),A(LY),A(LB)) 19287000
+ RETURN 19288000
+ END 19289000
+ SUBROUTINE DYGNT1(FUNC,CON,XL,XH,EPS,LOF,X,Y,B) 19290000
+C ************************************************** 19291000
+C DYNAMIC ALLOCATION VERSION OF SLAVE3 (PANINI) 19292000
+C ************************************************** 19293000
+ DIMENSION X(1),Y(1),B(1) 19294000
+ COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(200),JNT(200), 19295000
+ * N1X,N2X,NS,LX,LY,LB 19296000
+C=====GENERATE TAB1 FOR AN ANALYTIC FUNCTION============================19297000
+C FUNC IS THE NAME OF A FUNCTION SUBPROGRAM CALLED BY 19298000
+C Y=FUNC(X,CON), WHERE CON(N) IS A LIST OF 19299000
+C AUXILLIARY CONSTANTS NEEDED TO EVALUATE THE FUNCTION. 19300000
+C XL AND XH ARE THE LOWER AND UPPER LIMITS OF X TO BE USED. 19301000
+C EPS IS A RELATIVE ERROR CRITERION. 19302000
+C LOF=0, NORMAL RETURN 19303000
+C =1, TAB1 RECORD IS TOO LARGE 19304000
+C-----THE RESULTING TAB1 RECORD APPEARS IN COMMON/RECS/ 19305000
+C COMMON/RECS/MAT,MF,MT,C1,C2,L1,L2,N1,N2,NBT(100),JNT(100), 19306000
+C * X(5000),Y(5000),B(5000),N1X,N2X,NS 19307000
+ DIMENSION TX(9),TY(9),ICTA(5),ERTA(5),ICTB(5),ERTB(5),CON(2) 19308000
+ EXTERNAL FUNC 19309000
+C=====INITIALIZE 19310000
+ LOF=0 19311000
+ NR=0 19312000
+ NP=1 19313000
+ X(1)=XL 19314000
+ Y(1)=FUNC(XL,CON) 19315000
+ TX(1)=X(1) 19316000
+ TY(1)=Y(1) 19317000
+ DEL=(XH-XL)/100.0 19318000
+C-----SET UP STRING OF 4 MORE POINTS 19319000
+ 10 DO 20 N=2,5 19320000
+ TX(N)=TX(N-1)+DEL 19321000
+ 20 TY(N)=FUNC(TX(N),CON) 19322000
+ 30 DO 40 IC=2,5 19323000
+ 40 ICTA(IC)=1 19324000
+ K=5 19325000
+C=====CONSIDER POINT K, TEST INTERMEDIATE VALUES 19326000
+ 50 DO 60 IC=2,5 19327000
+ ICTB(IC)=ICTA(IC) 19328000
+ 60 ERTB(IC)=ERTA(IC) 19329000
+ DO 80 N=1,K 19330000
+ IF(TX(N).GT.0.0)GOTO 70 19331000
+ ICTA(3)=0 19332000
+ ICTA(5)=0 19333000
+ 70 IF(TY(N).GT.0.0)GOTO 80 19334000
+ ICTA(4)=0 19335000
+ ICTA(5)=0 19336000
+ 80 CONTINUE 19337000
+ IPC=0 19338000
+ KMO=K-1 19339000
+ DO 110 IC=2,5 19340000
+ IF(ICTA(IC).EQ.0)GOTO 110 19341000
+ ERX=0.0 19342000
+ DO 100 N=2,KMO 19343000
+ CALL TERP1(TX(1),TY(1),TX(K),TY(K),TX(N),TYP,IC) 19344000
+ IF(TY(N).NE.0.0) GOTO 81 19345000
+ ERR=ABS(TYP-TY(N)) 19346000
+ GOTO 82 19347000
+ 81 ERR=ABS((TYP-TY(N))/TY(N)) 19348000
+ 82 IF(ERR.LE.EPS)GOTO 90 19349000
+ ICTA(IC)=0 19350000
+ GOTO 110 19351000
+ 90 IF(ERR.GT.ERX)ERX=ERR 19352000
+ 100 CONTINUE 19353000
+ ERTA(IC)=ERX 19354000
+ IPC=1 19355000
+ 110 CONTINUE 19356000
+ IF(IPC.EQ.0)GOTO 170 19357000
+ IF(TX(K).LT.XH) GO TO 130 19358000
+ K=K+1 19359000
+ DO 120 IC=2,5 19360000
+ ICTB(IC)=ICTA(IC) 19361000
+ 120 ERTB(IC)=ERTA(IC) 19362000
+ GO TO 180 19363000
+C-----AT LEAST ONE CODE WORKS 19364000
+ 130 IF(K.GE.9)GOTO 150 19365000
+C -K.LT.9, ADD ANOTHER POINT AND TRY AGAIN 19366000
+ 140 K=K+1 19367000
+ TX(K)=TX(K-1)+DEL 19368000
+ TY(K)=FUNC(TX(K),CON) 19369000
+ GOTO 50 19370000
+C -K.EQ.9, DOUBLE SPACING, ADD ANOTHER POINT AND TRY AGAIN 19371000
+ 150 DO 160 N=2,5 19372000
+ M=2*N-1 19373000
+ TX(N)=TX(M) 19374000
+ 160 TY(N)=TY(M) 19375000
+ DEL=2.0*DEL 19376000
+ K=5 19377000
+ GOTO 140 19378000
+C-----ALL CODES FAILED 19379000
+ 170 IF(K.GT.5)GOTO 180 19380000
+C -HALVE SPACING AND TRY AGAIN 19381000
+ DEL=DEL/2.0 19382000
+ TX(5)=TX(3) 19383000
+ TY(5)=TY(3) 19384000
+ TX(3)=TX(2) 19385000
+ TY(3)=TY(2) 19386000
+ TX(2)=TX(1)+DEL 19387000
+ TY(2)=FUNC(TX(2),CON) 19388000
+ TX(4)=TX(3)+DEL 19389000
+ TY(4)=FUNC(TX(4),CON) 19390000
+ GOTO 30 19391000
+C=====OK, ACCEPT LAST GOOD POINT 19392000
+ 180 K=K-1 19393000
+ IF(TX(K).LE.XH)GOTO 190 19394000
+ TX(K)=XH 19395000
+ TY(K)=FUNC(XH,CON) 19396000
+ 190 IF(NR.LE.0)GOTO 200 19397000
+ ICL=JNT(NR) 19398000
+ IF(ICTB(ICL).EQ.0)GOTO 200 19399000
+ NBT(NR)=NP+1 19400000
+ GOTO 220 19401000
+ 200 ERM=1.0E+10 19402000
+ DO 210 IC=2,5 19403000
+ IF(ICTB(IC).EQ.0)GOTO 210 19404000
+ IF(ERTB(IC).GT.ERM)GOTO 210 19405000
+ ERM=ERTB(IC) 19406000
+ ICP=IC 19407000
+ 210 CONTINUE 19408000
+ NR=NR+1 19409000
+ IF(NR.GT.N1X)GOTO 230 19410000
+ NBT(NR)=NP+1 19411000
+ JNT(NR)=ICP 19412000
+ 220 NP=NP+1 19413000
+ IF(NP.GT.N2X)GOTO 230 19414000
+ X(NP)=TX(K) 19415000
+ Y(NP)=TY(K) 19416000
+ IF(TX(K).GE.XH)GOTO 240 19417000
+ DEL=(TX(K)-TX(1))/4.0 19418000
+ TX(1)=TX(K) 19419000
+ TY(1)=TY(K) 19420000
+ GOTO 10 19421000
+C-----OVERFLOW ERROR 19422000
+ 230 LOF=1 19423000
+C=====FINISHED 19424000
+ 240 N1=NR 19425000
+ N2=NP 19426000
+ RETURN 19427000
+ END 19428000
+ FUNCTION FISS(X,X0) 19429000
+C *************************************** 19430000
+C=====EVALUATE SIMPLE FISSION SPECTRUM==================================19431000
+ FISS=SQRT((4.0*X)/(3.1415927*X0**3))*EXP(-X/X0) 19432000
+ RETURN 19433000
+ END 19434000
+C ***************************************************************819435000
+C ================================================================19436000
+C INDEX OF ROUTINES OF TESEO CODE 19437000
+C ================================================================19438000
+C NAME FUNCTION STATEMENT19439000
+C ----------------------------------------------------------------19440000
+C MAIN FIX DIMENSIONS OF THE BLANK COMMON 1 19441000
+C GELIB READS USER COMMAND, CALL SUBROUTINES 1000 19442000
+C TABNIZ DEFINES COMPUTATION PARAMETERS 6450 19443000
+C FORCRW FORCES ROUTINES TO REWIND FILES 7950 19444000
+C P1 DRIVER FOR PART 1 OF THE CODE 8100 19445000
+C P1F1 READS ENDFB FILE 1 9960 19446000
+C P1F2 READS ENDFB FILE 2 11300 19447000
+C POLLA # CONVERTS REICH-MOORE TO ADLER-ADLER FORMAT 16430 19448000
+C POLL0 # ENTRY OF POLLA ROUTINE 19449000
+C POLL1 # ENTRY OF POLLA ROUTINE 19450000
+C SR # PART OF POLLA CODE 18190 19451000
+C P1F3 READS ENDFB FILE 3 18940 19452000
+C P1F4 READS ENDFB FILE 4 20420 19453000
+C P1F5 READS ENDFB FILE 5 21770 19454000
+C FISS1 * FISSION SPECTRUM FORMULA 23930 19455000
+C RIEMP FILLS A MATRIX WITH A NUMBER 24060 19456000
+C BIANC FILLS A MATRIX WITH BLANKS 24180 19457000
+C AREAL * USES AN INTEGER NUMBER AS A REAL ONE 24300 19458000
+C NAREAL* USES A REAL NUMBER AS AN INTEGER ONE 24370 19459000
+C NREST * TEST OF DIVISIBILITY 24440 19460000
+C REW REWIND A FILE 24530 19461000
+C POSL POSITION A FILE AT THE FIRST AVAILABLE RECORD 24790 19462000
+C SKIPE SKIPS ENDFB SECTIONS 24980 19463000
+C SKIPS SKIPS ENDFB RECORDS 25120 19464000
+C RECTPI READ TPID ENDFB RECORD (FIRST RECORD) 25470 19465000
+C NCONT * READ CONT RECORD AND CONTROLS MAT,MF,MT 25670 19466000
+C ERRORE PRINT ERROR MESSAGE FOR SLAVE3 ROUTINES 25920 19467000
+C ERR PRINT ERROR MESSAGE 26090 19468000
+C ERRP PRINT ERROR PARAMETERS 26230 19469000
+C EMPIN FILLS LINE OF INDEX MATRIX 26480 19470000
+C RDMIX READS INPUT TABLE 27040 19471000
+C MIXSHO PRINTS INPUT TABLE 28880 19472000
+C COMMR READS A COMMAND IN FREE FORMAT 29190 19473000
+C MIXIND EDITOR FOR INDEX OF INTERMEDIATE FILES 30860 19474000
+C LOADIN READS INDEX 31920 19475000
+C LOADI1 READS INDEX 32410 19476000
+C COMPIN REMOVES DATA FROM INDEX MATRIX 32650 19477000
+C SAVI WRITES INDEX MATRIX INTO A FILE 32870 19478000
+C SCARIN WRITES INDEX MATRIX INTO A FILE 33040 19479000
+C ORDINA ORDERING ROUTINE 33210 19480000
+C ORDIN1 ORDERING ROUTINE 33450 19481000
+C ORDM ORDERING ROUTINE 33690 19482000
+C ORDMD ORDERING ROUTINE 34280 19483000
+C SELR2 REMOVES DATA FROM A MATRIX 34880 19484000
+C P2 DRIVER FOR PART 2 OF TESEO CODE 35090 19485000
+C P2MCF1 COMPUTATIONS FOR FILE MCC2F1 OF MC2-II 37650 19486000
+C P2MCF3 COMPUTATION FOR FILE MCC2F3 39230 19487000
+C CALCR3 UNRESOLVED RESONANCE DATA 40630 19488000
+C PRESS COMPRESS A MATRIX ( UNRESOLVED RESONANCE DATA) 43290 19489000
+C P2MCF4 COMPUTATIONS FOR FILE MCC2F4 43560 19490000
+C BW BREIT-WIGNER RESONANCE PARAMETERS 45440 19491000
+C AA ADLER-ADLER RESONANCE PARAMETERS 47790 19492000
+C P2MCF5 COMPUTATIONS FOR FILE MCC2F5 49050 19493000
+C SMOOT SMOOTH CROSS SECTION COMPUTATION 52540 19494000
+C UNRES UNRESOLVED RESONANCE CROSS SECTIONS 54540 19495000
+C INPUT READS DATA (UNRESOLVED RESONANCE CROOS SECTIONS)56360 19496000
+C INTUN UNRESOLVED RESONANCE CALCULATION 59140 19497000
+C RES RESOLVED RESONANCE CALCULATION 60610 19498000
+C SIGRR RESOLVED RESONANCE CROSS SECTION FORMULAE 65280 19499000
+C GEDEP ENERGY DEPENDENCE OF RESONANCE PARAMETERS 67140 19500000
+C FIL PHASE ANGLE 67540 19501000
+C SCATP POTENTIAL SCATTERING 67680 19502000
+C LINSIG LINEAR TABULATION FROM RESONANCE PARAMETERS 67860 19503000
+C LINSI1 LINEARIZE ENDFB TABULATION 69840 19504000
+C BROAD @ DOPPLER BROADENING OF TABULATED CROSS SECTIONS 70930 19505000
+C NII NU CALCULATION 72660 19506000
+C TERPET $ INTERPOLATION 74080 19507000
+C TERP1T $ INTERPOLATION PARAMETERS 75360 19508000
+C GNUFT $ POLINOMIAL FIT 75680 19509000
+C SMEQ $ POLINOMIAL COEFFICIENTS 76430 19510000
+C P2MCF6 COMPUTATION FOR FILE MCC2F6 76760 19511000
+C P2F6RB REORDERS ENERGY DISTRIBUTION DATA 79960 19512000
+C P2F6SG ANELASTIC AND N,2N MULTIGROUP CROSS SECTIONS 85640 19513000
+C P2F6LV DISCRETE LEVELS FOR ANELASTIC AND N,2N 85900 19514000
+C P2F6EV EVAPORATION SPECTRUM FOR ANEL. AND N,2N 87840 19515000
+C P2F6TB TABULATED DATA FOR ANEL. AND N,2N DATA 88380 19516000
+C P2MCF7 CALCULATIONS FOR FILE MCC2F7 91210 19517000
+C P2MCF8 CALCULATIONS FOR FILE MCC2F8 93650 19518000
+C P2F8LG CONTINUATION OF P2MCF8 ROUTINE 94940 19519000
+C TABPL ELASTIC SCATTERING TABULATED DATA INTO LEG. POL.98650 19520000
+C COEGEN LEGENDRE POLINOMIAL COEFFICIENTS 100020 19521000
+C FATT * FACTORIAL 100280 19522000
+C PPLX * INTEGRAL OF LEGENDRE POLINOMIAL*X 100380 19523000
+C PL * LEGENDRE POLINOMIAL 100690 19524000
+C PPL * INTEGRAL OF LEGENDRE POLINOMIAL 100940 19525000
+C PPL4 * INTEGRAL OF LEGENDRE POLINOMIAL*EXP(.. 101210 19526000
+C PXEA * INTEGRAL OF FUNCTION OF LEGENDRE POLINOMIAL 101420 19527000
+C POST SET POSITION OF A FILE 101720 19528000
+C NCERC1 * LOOK FOR MATERILAL IN INPUT TABLE 101940 19529000
+C CONTR1 CONTROL OF MAT,MF,MT FLAGS 102350 19530000
+C SELR1 SELECTS RESONANCES 102630 19531000
+C ENERG ULTRAFINE GROUP ENERGY BOUNDARIES 102840 19532000
+C NORM NORMALIZES 103570 19533000
+C NSUMG1 * TESTS A VECTOR 103140 19534000
+C INFER * LOOKS FOR MINIMUM VALUE IN A VECTOR 103270 19535000
+C MAXX * LOOKS FOR MAXIMUM VALUE IN A VECTOR 103400 19536000
+C FILTB2 EXPANDS INTERPOLATION PARAMETERS 103510 19537000
+C SOGLM FIND ENERGY THRESHOLD FOR MULTIGROUP DATA 103660 19538000
+C SOGLM1 FIND THE RANGE OF MULTIGROUP DATA 103830 19539000
+C SOGL FIND THRESHOLD 103990 19540000
+C RIBA TURNS OVER A VECTOR 104160 19541000
+C TRASF FILLS A VECTOR WITH ANOTHER VECTOR 104300 19542000
+C TRASF1 FILLS A VECTOR 104420 19543000
+C FNDMX * FIND MAXIMUM FOR A ROW IN A MATRIX 104540 19544000
+C EXAM ANALYZE A VECTOR 104680 19545000
+C LIMIT THRESHOLD FOR A VECTOR 104990 19546000
+C CERCM FINDS A VALUE IN A VECTOR 105240 19547000
+C ORDMIC ORDERING ROUTINE 105390 19548000
+C ORDPU1 ORDERING ROUTINE 105460 19549000
+C ORDPU3 ORDERING ROUTINE 105820 19550000
+C ORD ORDERING ROUTINE 105990 19551000
+C ORDIND ORDERING ROUTINE 106160 19552000
+C ORDSOG ORDERING ROUTINE 106470 19553000
+C GRATTE INTEGRATION ROUTINE 106740 19554000
+C INTEGG INTEGRATION ROUTINE 107230 19555000
+C GRATP INTEGRATION ROUTINE 107700 19556000
+C INTS1 INTEGRATION ROUTINE 108210 19557000
+C INTS2 INTEGRATION ROUTINE 109750 19558000
+C FTABLE $ CALCULATIONS FOR FILE MCC2F2 111490 19559000
+C FXPTBL $ CALCULATIONS FOR FILE MCC2F2 112910 19560000
+C EI $ CALCULATIONS FOR FILE MCC2F2 113450 19561000
+C ESCAPE $ CALCULATIONS FOR FILE MCC2F2 114080 19562000
+C ETABLE $ CALCULATIONS FOR FILE MCC2F2 115630 19563000
+C EXPFCT $ CALCULATIONS FOR FILE MCC2F2 116550 19564000
+C E3 $ CALCULATIONS FOR FILE MCC2F2 116940 19565000
+C KI3 $ CALCULATIONS FOR FILE MCC2F2 117360 19566000
+C P3 DRIVER FOR PART 3 OF TESEO CODE 117730 19567000
+C ORDTAB ORDERS MUCLIDE TO BE PRODUCED 121740 19568000
+C P3MCF3 PRODUCES FILE MCC2F3 122290 19569000
+C P3MCF4 PRODUCES FILE MCC2F4 124890 19570000
+C P3MCF5 PRODUCES FILE MCC2F5 127320 19571000
+C P3F51 CONTINUATION OF P3MCF5 ROUTINE 127800 19572000
+C P3MCF6 PRODUCES FILE MCC2F6 129740 19573000
+C READ6 READS DATA FOR P3MCF6 ROUTINE 131680 19574000
+C COMPAT ASSEMBLING OF DATA FOR FILE MCC2F6 132150 19575000
+C P3MCF7 PRODUCES FILE MCC2F7 132320 19576000
+C P3MC7N PRODUCES FILE MCC2F7 ( NU DATA ) 133330 19577000
+C P3MCF8 PRODUCES FILE MCC2F8 133810 19578000
+C P3MF81 CONTINUATION OF P3MCF8 ROUTINE 135760 19579000
+C P3MCF1 PRODUCES FILE MCC2F1 137040 19580000
+C P4 DRIVER FOR PART 4 OF TESEO CODE 138330 19581000
+C P4MCF1 READS MCC2F1 FILE 141450 19582000
+C P4MCF3 READS MCC2F3 FILE 141800 19583000
+C P4MCF4 READS MCC2F4 FILE 142730 19584000
+C P4MCF5 READS MCC2F5 FILE 143660 19585000
+C P4MCF6 READS MCC2F6 FILE 144600 19586000
+C SUMJ COMPUTES POSITIONS OF MCC2F6 DATA 146720 19587000
+C P4MCF7 READS MCC2F7 FILE 148920 19588000
+C P4MCF8 READS MCC2F8 FILE 149700 19589000
+C NEXDI1 * FIND A VALUE IN A MATRIX 150700 19590000
+C CNTRI TESTS ON INDEX MATRIX 150900 19591000
+C POST1 POSITIONS A FILE 151240 19592000
+C IDENT8 * POSITION OF A DATA IN A VECTOR 151450 19593000
+C BLOCK DATA $ FOR MCC2F8 DATA 151700 19594000
+C CLEB $ COMPUTES TABULATED DATA FOR MCC2F8 152170 19595000
+C MODPAR $ COMPUTES TABULATED DATA FOR MCC2F8 152650 19596000
+C LEGPOL $ COMPUTES TABULATED DATA FOR MCC2F8 153330 19597000
+C MATRIX $ COMPUTES TABULATED DATA FOR MCC2F8 153660 19598000
+C TMATRI $ COMPUTES TABULATED DATA FOR MCC2F8 155250 19599000
+C TMATRX $ COMPUTES TABULATED DATA FOR MCC2F8 156670 19600000
+C TMATRY $ COMPUTES TABULATED DATA FOR MCC2F8 157920 19601000
+C QUICKW $ CALCULATION OF DOPPLER FUNCTIONS 158870 19602000
+C WZERO $ CALCULATION OF DOPPLER FUNCTIONS 160350 19603000
+C WTABL $ CALCULATION OF DOPPLER FUNCTIONS 160820 19604000
+C W $ CALCULATION OF DOPPLER FUNCTIONS 161500 19605000
+C UNRINT + UNRESOLVED RESONANCE CROSS SECTIONS 164010 19606000
+C MATRIX1+ UNRESOLVED RESONANCE CROSS SECTIONS 173430 19607000
+C QUICKJ + UNRESOLVED RESONANCE CROSS SECTIONS 174860 19608000
+C WREC - WRITE ENDFB RECORD 177910 19609000
+C DYWREC - WRITE ENDFB RECORD 178000 19610000
+C DELETE - CLEAR STORAGE 178820 19611000
+C DYDELE - CLEAR STORAGE 178930 19612000
+C IPDS - INTERPOLATION ROUTINE 179520 19613000
+C IPDSDY - INTERPOLATION ROUTINE 179620 19614000
+C LRIDS - LOCATES RECORD IN STORAGE 180320 19615000
+C LRIDDY - LOCATES RECORD IN STORAGE 180420 19616000
+C FETCH - FETCH A RECORD FROM STORAGE 180680 19617000
+C FETCHD - FETCH A RECORD FROM STORAGE 180800 19618000
+C TERP1 - INTERPOLATION ROUTINE 181540 19619000
+C RREC - READS ENDFB RECORD 182000 19620000
+C DYRREC - READS ENDFB RECORD 182090 19621000
+C CXFP - FORMATS RECORD FOR OUTPUT 183740 19622000
+C PRCONT - PRINT CONT ENDFB RECORD 184060 19623000
+C PRHOL - PRINT HOLL ENDFB RECORD 184370 19624000
+C PRLIST - PRINT LIST ENDFB RECORD 184600 19625000
+C PRTAB1 - PRINT TAB1 ENDFB RECORD 185060 19626000
+C PRTAB2 - PRINT TAB2 ENDFB RECORD 185650 19627000
+C PRTPID - PRINT TPID ENDFB RECORD 186030 19628000
+C PUCONT - PRINT CONT ENDFB RECORD (IN CARD FORM) 186160 19629000
+C PUHOL - PRINT HOLL ENDFB RECORD ( IN CARD FORM) 186350 19630000
+C PULIST - PRINT LIST ENDFB RECORD ( IN CARD FORM ) 186600 19631000
+C PUTAB1 - PRINT TAB1 ENDFB RECORD ( IN CARD FORM) 187080 19632000
+C PUTAB2 - PRINT TAB2 ENDFB RECORD (IN CARD FORM) 187720 19633000
+C PUTPID - PRINT TPID ENDFB RECORD ( IN CARD FORM) 188080 19634000
+C STORE - STORE RECORD IN STORAGE 188220 19635000
+C DYSTOR - STORE RECORD IN STORAGE 188410 19636000
+C TERP2 - INTERPOLATION ROUTINE 189190 19637000
+C DTERP2 - INTERPOLATION ROUTINE 189300 19638000
+C GRATE - INTEGRATION ROUTINE 189840 19639000
+C DGRATE - INTEGRATION ROUTINE 189930 19640000
+C ECSI - INTEGRATION ROUTINE 190610 19641000
+C CROP - COMPRESS A RECORD 191180 19642000
+C DYCROP - COMPRESS A RECORD 191270 19643000
+C GENT1 - GENERATE TAB1 DATA FROM A FUNCTION 192790 19644000
+C DYGNT1 - GENERATES TAB1 DATA FROM A FUNCTION 192900 19645000
+C FISS - FISSION SPECTRUM FORMULA 194290 19646000
+C --------------------------------------------------------------- 19647000
+C * MEANS THAT THE ROUTINE IS A FUNCTION 19648000
+C # ROUTINE FROM POLLA CODE ( ORNL-TM-2599 BY G.DE SAUSSURE 19649000
+C AND R.B. PEREZ (1969) ) 19650000
+C @ ROUTINE WRITTEN BY G. FIONI 19651000
+C $ ROUTINE FROM ETOE CODE (APDA-219 , ENDF-120 (1968) , 19652000
+C BY D,M,GREEN AND T.A. PITTERLE) 19653000
+C + ROUTINE FROM MC2-II CODE ( ANL-8144 ,ENDF 239 (1976) 19654000
+C BY H.HENRYSON II,B.J. TOPPEL AND 19655000
+C C.G. STENBERG ) 19656000
+C - ROUTINE FROM SLAVE3 PROGRAM BY HONEK (ENDF-110 , 19657000
+C BNL 50300 (1971) ) 19658000
+C SLAVE# ROUTINES HAVE BEEN MODIFYED BY G. PANINI 19659000
+C TO ALLOW DYNAMIC ALLOCATION OF STORAGE 19660000
+C ______________________________________________________________ 19661000
+ STOP 19662000
+ END 19663000