CTITLEUSRPD -- DETERMINE RETENTION GROUP FOR DATASET 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR T. CUPP 00020000 CA DESIGNER T. CUPP 00030000 CA LANGUAGE FORTRAN 00040000 CA SYSTEM IBM AND CRAY 00050000 CA WRITTEN 07-10-85(USRPD) 00060000 C REVISED 02-10-86 REM. ADD INTERACTIVE DATASETS AS RETGRP=09. 00070004 C REVISED 04-18-86 CMP. .VARN AND .COLR DATASETS AS RETGRP=03. 00080004 C REVISED 03-02-87 WAB. .PUT OFFAP DATASETS IN 40 OR 41 OR 42 00090004 C REVISED 05-13-87 WAB. CHANGED MSSGRP 2 TEST TO 398092560; 00100004 C ADD TEST FOR "META" FILES 00110004 C REVISED 07-09-87 PKC. CHANGED BLKSIZ OF COLR DATASETS TO 23400. 00121004 CA 00130000 CA CALL USRPD (DSNAME,CARD,BLKCNT,BLKSIZE,RETGRP) 00140000 CA 00150000 CA 00160000 CA IN/OUT ARGUMENT TYPE DESCRIPTION 00170000 CA 00180000 CA IN DSNAME C44 NAME OF SEQUENTIAL DATASET. 00190000 CA 00200000 CA IN CARD I20 OUTPUT PROCESS CARD. 00210000 CA 00220000 CA IN BLKCNT I4 NUMBER OF BLOCKS WRITTEN ON THE DATASET. 00230000 CA 00240000 CA IN/OUT BLKSIZE I4 SIZE OF BLOCKS WRITTEN ON THE DATASET. 00250000 CA 00260000 CA OUT RETGRP I4 THE RETENTION GROUP CALCULATED BY THE 00270000 CA DATASET TYPE AND SIZE. 00280000 CA 00290000 CA 00300000 CA 00310000 CA THIS ROUTINE IS USED TO SCAN THE DATASET NAME FOR CERTAIN 00320000 CA INFORMATION AND DETERMINES WHICH RETENTION GROUP THE DATASET 00330000 CA SHOULD BE PLACED IN. 00340000 CA 00350000 CA 00360000 C EJECT 00370000 C 00380000 SUBROUTINE USRPD(DSNAME,CARD,BLKCNT,BLKSIZ,RETGRP) 00390000 C 00400000 IMPLICIT INTEGER (A-Z) 00410000 C 00420000 C 00430000 LOGICAL DISK 00440000 LOGICAL TAPE 00450000 LOGICAL FIRST 00460000 C 00470000 C INTEGER ARRAYS--LOCAL (INTERNAL TO SUBROUTINE). 00480000 DIMENSION CARD (1) 00490000 DIMENSION DSNAME (1) 00500000 C 00510000 C EJECT 00520000 C 00530000 DISK = .FALSE. 00540000 TAPE = .FALSE. 00550000 SAVCOL = 0 00560000 RETGRP = 99 00570000 FIRST = .TRUE. 00580000 C 00590000 C CHECK DATASET NAME FOR TAPE OR DISK DATASET TYPE 00600000 C 00610000 10 CALL USNOCC(DSNAME,11,SAVCOL+1,'.',1,COL,*50) 00620000 SAVCOL = COL 00630000 IF (FIRST) THEN 00640000 FIRST = .FALSE. 00650000 IF (S1CPCH (DSNAME,SAVCOL+1, 'T',1, 1) .EQ. 0) THEN 00660000 TAPE = .TRUE. 00670000 ELSEIF (S1CPCH (DSNAME,SAVCOL+1, 'D',1, 1) .EQ. 0) THEN 00680000 DISK = .TRUE. 00690000 ENDIF 00700000 ENDIF 00710000 GO TO 10 00720000 C 00730000 C CHECK FOR PLOT DATASET AND UPDATE BLOCKSIZE 00740000 C 00750000 50 IF (S1CPCH (DSNAME,SAVCOL+1,'VARN',1,4) .EQ. 0) THEN 00760000 BLKSIZ = 8192 00770000 RETGRP = 03 00780000 GO TO 100 00790000 ELSEIF (S1CPCH (DSNAME,SAVCOL+1,'COLR',1,4) .EQ. 0) THEN 00800000 RETGRP = 03 00810000 BLKSIZ = 23400 00830000 GO TO 100 00870000 ENDIF 00880000 C 00890000 C DETERMINE RETENTION GROUP FOR DATASET 00900000 C 00910000 C 00920000 C RETENTION GROUP 0 FOR TAPE DATASETS 00930000 C 00940000 IF (TAPE) THEN 00950000 RETGRP = 00 00960000 IF (S1CPCH (CARD,76,'OFFAP',1,5) .EQ. 0) RETGRP=40 00970000 ENDIF 00980000 C 00990000 C 01000000 IF (DISK) THEN 01010000 C 01020000 C RETENTION GROUP 9 FOR INTERACTIVE (SHORT TERM) DATA SETS 01030000 C 01040000 IF ((S1CPCH(CARD,40,'I',1,1) .EQ. 0) .OR. 01050000 + (S1CPCH (CARD,76,'META',1,4) .EQ. 0)) THEN 01060000 RETGRP=09 01070000 C 01080000 C RETENTION GROUP 4 FOR EXTRA LARGE MASS STORAGE 01090000 C 01100000 ELSEIF (S1CPCH (DSNAME,SAVCOL+1,'XLM',1,3) .EQ. 0) THEN 01110000 RETGRP = 04 01120000 C 01130000 C RETENTION GROUP 3 FOR PLOT DATASETS ON MASS STORAGE 01140000 C 01150000 ELSEIF (S1CPCH (CARD,76,'ONESP',1,5) .EQ. 0) THEN 01160000 RETGRP = 03 01170000 ELSEIF (S1CPCH (CARD,76,'OFESP',1,5) .EQ. 0) THEN 01180000 RETGRP = 03 01190000 C 01200000 C RETENTION GROUP 0 FOR MASS STORAGE USING 1 T0 48 CYLINDERS 01210000 C 01220000 ELSE 01230000 BYTCNT = BLKCNT * BLKSIZ 01240000 IF (BYTCNT .GT. 0 .AND. BYTCNT .LE. 11883360) THEN 01250000 RETGRP = 00 01260000 IF (S1CPCH (CARD,76,'OFFAP',1,5) .EQ. 0) RETGRP=40 01270000 C 01280000 C RETENTION GROUP 1 FOR MASS STORAGE USING 49 T0 200 CYLINDERS 01290000 C 01300000 ELSEIF (BYTCNT .GT. 11883360 .AND. 01310000 * BYTCNT .LE. 49514000) THEN 01320000 RETGRP = 01 01330000 IF (S1CPCH (CARD,76,'OFFAP',1,5) .EQ. 0) RETGRP=41 01340000 C 01350000 C RETENTION GROUP 2 FOR MASS STORAGE USING 201 T0 806 CYLINDERS 01360000 C 01370000 ELSEIF (BYTCNT .GT. 49514000 .AND. 01380000 * BYTCNT .LE. 398092560) THEN 01390000 RETGRP = 02 01400000 IF (S1CPCH (CARD,76,'OFFAP',1,5) .EQ. 0) RETGRP=42 01410000 ENDIF 01420000 ENDIF 01430000 ENDIF 01440000 C 01450000 100 RETURN 01460000 END 01470000