Trailing-Edge
-
PDP-10 Archives
-
decuslib20-07
-
decus/20-0174/rsmadm.for
There is 1 other file named rsmadm.for in the archive. Click here to see a list.
C RENBR(RSMADM/RESUME ADMINISTRATIVE FUNCTIONS)
C
C DONALD BARTH, YALE SCHOOL OF MANAGEMENT
C
C ADMINISTRATOR PROGRAM FOR STUDENT RESUME SYSTEM
C
DIMENSION LTRTXT(10000),LNGLIN(300),LNGSEC(100),
1MARKER(300),LTRUSR(40),LTRLPT(22),LNGLPT(3),NYEAR(10),
2LTRTTL(2000),KNTTTL(100),JSTATE(10),LTRNPT(21),LNGNPT(3),
3LTRBFR(80),LTRWHO(40),LWRWHO(40),LTRPSW(20),LWRPSW(20),
4LTRWID(2500),NSTATE(16),LTRSTT(72),LTRRES(4),LWRRES(4)
C
C RESERVED NAMES OF SECTIONS
DATA LTRRES/1HN,1HA,1HM,1HE/
DATA LWRRES/1Hn,1Ha,1Hm,1He/
C
C MENU OF TYPES OF PROOFS
C CONTINUOUS, PAGED, TYPESET
DATA LTRLPT/
11HC,1HO,1HN,1HT,1HI,1HN,1HU,1HO,1HU,1HS,
21HP,1HA,1HG,1HE,1HD,
31HT,1HY,1HP,1HE,1HS,1HE,1HT/
DATA LNGLPT/10,5,7/
C NONE, TYPEWRITER, PRINTER
DATA LTRNPT/
11HN,1HO,1HN,1HE,
21HP,1HR,1HI,1HN,1HT,1HE,1HR,
31HT,1HY,1HP,1HE,1HW,1HR,1HI,1HT,1HE,1HR/
DATA LNGNPT/4,7,10/
C
C DESCRIPTIONS OF STATES
DATA LTRSTT/
1 1HR,1HE,1HP,1HL,1HA,1HC,1HE,1HD,
2 1H ,1H ,1H ,1HD,1HR,1HA,1HF,1HT,
3 1H ,1H ,1HS,1HU,1HB,1HM,1HI,1HT,
4 1HS,1HB,1HM,1HT,1H+,1HP,1HR,1HF,
5 1H ,1H ,1HE,1HD,1HI,1HT,1HE,1HD,
6 1HE,1HD,1HI,1HT,1H+,1HP,1HR,1HF,
7 1HT,1HR,1HA,1HN,1HS,1HM,1HI,1HT,
8 1H ,1HB,1HL,1HO,1HC,1HK,1HE,1HD,
9 1H ,1H ,1H ,1H ,1HS,1HA,1HM,1HE/
C
C LNGSTT = LENGTH OF SINGLE STATE NAME
DATA LNGSTT/8/
C
C DIMENSIONS OF ARRAYS
DATA LMTLTT,LMTSEC,LMTWHO/2000,100,40/
DATA LMTBFR,LMTTXT,LMTLIN,LMTWID,LMTCLS,LMTPSW,LMTSTT/
1 80,10000,300,2500,10,20,10/
DATA IDISK,JDISK,KDISK,ITTY/1,20,21,5/
DATA LTRSPA/1H /
C
C LMTTYP = MAXIMUM NUMBER OF LINES ON A TYPED PAGE
C LMTPRI = MAXIMUM NUMBER OF LINES ON A TYPESET PAGE
DATA LMTTYP,LMTPRI/60,66/
C
C LNGCRT = 2 LESS THAN NUMBER OF LINES ON A VIDEO SCREEN
DATA LNGCRT/22/
C
C INITIALIZE COUNTS
KNTSHO=0
IVIDEO=0
DO 1 I=1,16
NSTATE(I)=0
1 CONTINUE
C
C TELL USER WHAT PROGRAM THIS IS
WRITE(ITTY,2)
2 FORMAT(' RSMADM (09/83)'/
1' RESUME ADMINISTRATIVE FUNCTIONS'/1X)
C
C IDENTIFY CURRENT USER
CALL RSMWHO(LTRWHO,IPRJCT,IPRGRM,NUMWHO)
C
C DETERMINE IF CURRENT USER IS ENABLED AS ADMINISTRATOR
CALL RSMCHK(LTRWHO,LWRWHO,LMTWHO,IPRJCT,IPRGRM, IDISK,
1 IYEAR,ICHECK,IPRINT,JVIDEO,LTRBFR,LMTBFR,ITTY,NUMWHO)
MINCLS=ICHECK
MAXCLS=IPRINT
IXYZZY=IYEAR
IF(IXYZZY.GE.0)GO TO 3
IF(MINCLS.GT.MAXCLS)GO TO 5
IF(IXYZZY.EQ.-3)GO TO 9
IF(IXYZZY.EQ.-2)GO TO 7
3 WRITE(ITTY,4)
4 FORMAT(1X/' You are not validated as the administrator'/1X)
GO TO 334
5 WRITE(ITTY,6)
6 FORMAT(' Class range excludes all resumes'/1X)
GO TO 334
7 WRITE(ITTY,8)MINCLS,MAXCLS
8 FORMAT(' Proofs submitted resumes for classes',
1 1I4,' to',1I4,' and unsubmits them')
GO TO 128
C
C *********************************
C * *
C * ASK USER WHAT IS TO BE DONE *
C * *
C *********************************
C
C BASIC FUNCTION
9 WRITE(ITTY,10)
10 FORMAT(
1' Specify 1 number to select among following functions'/
2' 1=List student names, status and numbers in output file'/
3' 2=Unsubmit'/
4' 3=Submit'/
5' 4=Proof'/
6' 5=Transmit'/
7' 6=Proof and unsubmit'/
8' 7=Change number or password or class of resume file'/
9' 8=Block file from any further use')
11 WRITE(ITTY,12)
12 FORMAT(' Which function? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 9
IF(MAXBFR.EQ.0)GO TO 13
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(13,13,15),KIND
13 WRITE(ITTY,14)
14 FORMAT(' You must select 1 function')
GO TO 11
15 MASTER=IVALUE
IF(MASTER.LE.0)GO TO 16
IF(MASTER.GT.8)GO TO 16
GO TO 18
16 WRITE(ITTY,17)
17 FORMAT(' Value must be in range 1 through 7')
GO TO 11
18 CONTINUE
C
C TELL USER WHAT NAME OF OUTPUT FILE WILL BE
IF(MASTER.EQ.1)WRITE(ITTY,19)
19 FORMAT(' List will be in file RESUME.LST')
IF(MASTER.EQ.4)WRITE(ITTY,20)
IF(MASTER.EQ.6)WRITE(ITTY,20)
20 FORMAT(' Proofs will be in file RESUME.PRF')
C
C ASK TYPE OF PROOF FILE
IF(MASTER.EQ.4)GO TO 21
IF(MASTER.EQ.6)GO TO 21
GO TO 43
21 WRITE(ITTY,22)
22 FORMAT(' CONTINUOUS, PAGED or TYPESET format? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 23
LOWBFR=1
CALL DAVERB(1,22,LTRLPT,1,3,
1LNGLPT,LTRBFR,MAXBFR,LOWBFR,KIND,MATCH,LCNWRD,
2LCNKNT,LCNBFR)
GO TO(25,25,27,27,25),KIND
23 WRITE(ITTY,24)
24 FORMAT(
1' Type 1 of the following words to select type of resume'/
2' CONTINUOUS For typed resume book having 1 page per student.'/
3' Lines divided same as when typed on typewriter.'/
4' Long resumes are not divided into multiple pages.'/
5' PAGED For individual resumes requested by students.'/
6' Lines divided same as when typed on typewriter.'/
7' Long resumes are divided into several pages.'/
8' TYPESET For checking resumes before these are transmitted.'/
9' Lines will be divided same as when typeset.')
GO TO 21
25 WRITE(ITTY,26)
26 FORMAT(' Type ? for instructions')
GO TO 21
27 IF(LOWBFR.GT.MAXBFR)GO TO 28
IF(LTRBFR(LOWBFR).NE.LTRSPA)GO TO 25
28 GO TO(29,30,31),MATCH
C CONTINUOUS
29 IVARY=0
JVARY=3
KVARY=2
LVARY=1
MVARY=1
NVARY=1
GO TO 32
C PAGED
30 IVARY=LMTTYP
JVARY=3
KVARY=2
LVARY=1
MVARY=1
NVARY=2
GO TO 32
C TYPESET
31 IVARY=0
JVARY=2
KVARY=3
LVARY=2
MVARY=1
NVARY=3
GO TO 32
C
C ASK HOW BOLDING AND UNDERLINING ARE TO BE PERFORMED
32 WRITE(ITTY,33)
33 FORMAT(' Type of bolding (NONE, PRINTER, TYPEWRITER)? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 34
LOWBFR=1
CALL DAVERB(1,21,LTRNPT,1,3,
1LNGNPT,LTRBFR,MAXBFR,LOWBFR,KIND,MATCH,LCNWRD,
2LCNKNT,LCNBFR)
GO TO(36,36,38,38,36),KIND
34 WRITE(ITTY,35)
35 FORMAT(
1' Type 1 of the following words to select type of bolding used'/
2' NONE if resume are not to show bolding and underlining.'/
3' PRINTER if bolding and underlining are to be included and'/
4' resumes will be printed on the fast printer.'/
5' TYPEWRITER if bolding and underlining are to be included and'/
6' resumes will be typed on letter quality typewriter.')
GO TO 32
36 WRITE(ITTY,37)
37 FORMAT(' Type ? for instructions')
GO TO 32
38 IF(LOWBFR.GT.MAXBFR)GO TO 39
IF(LTRBFR(LOWBFR).NE.LTRSPA)GO TO 36
39 GO TO(40,41,42),MATCH
C NONE
40 JVARY=1
GO TO 43
C PRINTER
41 JVARY=2
GO TO 43
C TYPEWRITER
42 JVARY=3
GO TO 43
43 CONTINUE
C
C IF RENAMING FILE, ASK FOR NEW SCHEME
IF(MASTER.NE.7)GO TO 51
44 WRITE(ITTY,45)
45 FORMAT(
1' Type 1 number to select type of account students will use'/
2' 1=Students run from own accounts without passwords'/
3' 2=Students use passwords assigned by administrator'/
4' 3=Students select their own passwords')
46 WRITE(ITTY,47)
47 FORMAT(' Convert to which type of account? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 44
IF(MAXBFR.EQ.0)GO TO 46
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(46,46,48),KIND
48 KNDPSW=IVALUE
IF(KNDPSW.LE.0)GO TO 49
IF(KNDPSW.GT.3)GO TO 49
GO TO 51
49 WRITE(ITTY,50)
50 FORMAT(' Number must be in range 1 through 3')
GO TO 46
51 CONTINUE
C
C ASK IF RESUMES WILL BE SELECTED INDIVIDUALLY
52 WRITE(ITTY,53)
53 FORMAT(' Will resumes be selected individually (Y or N)? ',$)
CALL YESNO(1,KNDYES,ITTY)
GO TO(52,52,56,57,54),KNDYES
54 WRITE(ITTY,55)
55 FORMAT(
1' Type one of the following'/
2' YES to select individual resumes by class and student'/
3' number or password.'/
4' NO to select a group of resumes according to some'/
5' combination of class, state and modification date.')
GO TO 52
C YES, INDIVIDUALLY SELECTED RESUMES
56 IFLOOP=0
GO TO 58
C NO, GROUP OF RESUMES
57 IFLOOP=1
58 CONTINUE
C
C ASK IF RESUMES ARE TO BE PROCESSED IN ALPHABETICAL ORDER
IF(IFLOOP.EQ.0)GO TO 129
59 WRITE(ITTY,60)
60 FORMAT(' Process resumes in preselected order (Y or N)? ',$)
CALL YESNO(1,KNDYES,ITTY)
GO TO(59,59,63,64,61),KNDYES
61 WRITE(ITTY,62)
62 FORMAT(
1' Type one of the following'/
2' YES to process resumes in order indicated in the RESUME.SRT'/
3' file. You must have run this program to produce a list'/
4' file, then have run RSMSRT program to sort list file.'/
5' NO to process resumes in numerical order.')
GO TO 59
C YES, PRESELECTED ORDER
63 IFLOOP=2
GO TO 65
C NO, ORDER OF APPEARANCE IN ACCOUNT
64 IFLOOP=1
65 CONTINUE
C
C ASK USER WHICH YEAR CLASS IS TO BE PROCESSED
66 IF(MASTER.EQ.1)WRITE(ITTY,67)
IF(MASTER.EQ.2)WRITE(ITTY,68)
IF(MASTER.EQ.3)WRITE(ITTY,69)
IF(MASTER.EQ.4)WRITE(ITTY,70)
IF(MASTER.EQ.5)WRITE(ITTY,71)
IF(MASTER.EQ.6)WRITE(ITTY,72)
IF(MASTER.EQ.7)WRITE(ITTY,73)
IF(MASTER.EQ.8)WRITE(ITTY,74)
67 FORMAT(' List information for which classes (-1=all)? ',$)
68 FORMAT(' Unsubmit which classes (-1=all)? ',$)
69 FORMAT(' Submit which classes (-1=all)? ',$)
70 FORMAT(' Proof which classes (-1=all)? ',$)
71 FORMAT(' Transmit which classes (-1=all)? ',$)
72 FORMAT(' Proof and unsubmit which classes (-1=all)? ',$)
73 FORMAT(' New number/password/class for which origin',
1'al classes (-1=all)? ',$)
74 FORMAT(' Block which classes (-1=all)? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 78
IF(MAXBFR.EQ.0)GO TO 83
KNTCLS=0
LOWBFR=0
75 CALL GETNUM(0,LTRBFR,MAXBFR,LOWBFR,KIND ,
1 IVALUE,VALUE )
GO TO(82,87,75,76),KIND
76 IF(KNTCLS.GE.LMTCLS)GO TO 80
IF(IVALUE.LT.0)GO TO 77
IF(IVALUE.LT.MINCLS)GO TO 85
IF(IVALUE.GT.MAXCLS)GO TO 85
77 KNTCLS=KNTCLS+1
NYEAR(KNTCLS)=IVALUE
GO TO 75
78 WRITE(ITTY,79)LMTCLS,MINCLS,MAXCLS
79 FORMAT(
1' Type 1 to',1I4,' numbers in range',1I4,' to',1I4,
2' to select resumes in these classes.'/
3' Type -1 to select all classes.')
GO TO 66
80 WRITE(ITTY,81)LMTCLS
81 FORMAT(' You cannot specify over',1I4,' class numbers'/
1' Please retype the entire list of classes')
GO TO 66
82 IF(KNTCLS.GT.0)GO TO 89
83 WRITE(ITTY,84)
84 FORMAT(' You must specify at least 1 class')
GO TO 66
85 WRITE(ITTY,86)MINCLS,MAXCLS
86 FORMAT(' Classes must be in range',1I5,' to',1I5/
1' Please retype the entire list of classes')
GO TO 66
87 WRITE(ITTY,88)
88 FORMAT(' Please retype the entire list of classes')
GO TO 66
89 IF(KNTCLS.GT.1)WRITE(ITTY,90)(NYEAR(I),I=1,KNTCLS)
90 FORMAT(' Classes:',10I6)
LYEAR=NYEAR(1)
C
C ASK WHAT COLLECTION IS DESIRED
91 WRITE(ITTY,92)
92 FORMAT(' Type 1 or more of the following numbers'/
1' 0=REPLACED'/
2' 1=DRAFT'/
3' 2=SUBMITTED'/
4' 3=SUBMIT+PROOF'/
5' 4=EDITED'/
6' 5=EDIT+PROOF'/
7' 6=TRANSMITTED'/
8' 7=BLOCKED'/
9' Type -1 for all states DRAFT through TRANSMITTED.')
93 WRITE(ITTY,94)
94 FORMAT(' Process which states (-1=all)? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 91
IF(MAXBFR.EQ.0)GO TO 100
KNTSTT=0
LOWBFR=0
95 CALL GETNUM(0,LTRBFR,MAXBFR,LOWBFR,KIND ,
1 IVALUE,VALUE )
GO TO(99,104,95,96),KIND
96 IF(KNTSTT.GE.LMTSTT)GO TO 97
IF(IVALUE.GT.7)GO TO 102
KNTSTT=KNTSTT+1
JSTATE(KNTSTT)=IVALUE
GO TO 95
97 WRITE(ITTY,98)LMTSTT
98 FORMAT(' You cannot specify over',1I4,' states.'/
1' Please retype the entire list of states.')
GO TO 93
99 IF(KNTSTT.GT.0)GO TO 106
100 WRITE(ITTY,101)
101 FORMAT(' You must specify at least 1 state')
GO TO 93
102 WRITE(ITTY,103)
103 FORMAT(' Numbers must be -1 or in range 0 through 7'/
1' Please retype the entire list of states.')
GO TO 93
104 WRITE(ITTY,105)
105 FORMAT(' Please retype the entire list of states')
GO TO 93
106 IF(KNTSTT.GT.1)WRITE(ITTY,107)(JSTATE(I),I=1,KNTSTT)
107 FORMAT(' States:',10I6)
C
C ASK FOR EARLIEST MODIFICATION DATE
108 WRITE(ITTY,109)
109 FORMAT(' Reject resumes created before what date? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 111
IF(MAXBFR.EQ.0)GO TO 113
LOWBFR=1
CALL DADATE(1,LTRBFR,MAXBFR,LOWBFR,KIND ,
1 KDAY ,KMONTH,KYEAR ,LCNBFR)
IF(KDAY.LE.0)GO TO 115
IF(KMONTH.LE.0)GO TO 115
IF(KYEAR.LT.0)GO TO 115
IF(KYEAR.LT.100)KYEAR=KYEAR+1900
IF(KYEAR.LE.1980)KYEAR=KYEAR+100
CALL DAWEEK(0,ISMITH,KDAY,KMONTH,KYEAR,IWEEK)
WRITE(ITTY,110)KMONTH,KDAY,KYEAR
110 FORMAT(' Month:',1I3,', Day:',1I3,', Year:',1I5)
GO TO 117
111 WRITE(ITTY,112)
112 FORMAT(' Type the date using any conventional notation.'/
1' Suggested forms are 13-Jan-83 or January 13, 1983')
GO TO 108
113 WRITE(ITTY,114)
114 FORMAT(' Date must be supplied')
GO TO 108
115 WRITE(ITTY,116)
116 FORMAT(' Illegal form for date.'/
1' Suggested forms are 13-Jan-83 or January 13, 1983')
GO TO 108
117 CONTINUE
C
C ASK FOR LATEST MODIFICATION DATE
118 WRITE(ITTY,119)
119 FORMAT(' Reject resumes created after what date? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 121
IF(MAXBFR.EQ.0)GO TO 123
LOWBFR=1
CALL DADATE(1,LTRBFR,MAXBFR,LOWBFR,KIND ,
1 KDAY ,KMONTH,KYEAR ,LCNBFR)
IF(KDAY.LE.0)GO TO 125
IF(KMONTH.LE.0)GO TO 125
IF(KYEAR.LT.0)GO TO 125
IF(KYEAR.LT.100)KYEAR=KYEAR+1900
IF(KYEAR.LE.1980)KYEAR=KYEAR+100
CALL DAWEEK(0,KSMITH,KDAY,KMONTH,KYEAR,IWEEK)
WRITE(ITTY,120)KMONTH,KDAY,KYEAR
120 FORMAT(' Month:',1I3,', Day:',1I3,', Year:',1I5)
GO TO 127
121 WRITE(ITTY,122)
122 FORMAT(' Type the date using any conventional notation.'/
1' Suggested forms are 13-Jan-83 or January 13, 1983')
GO TO 118
123 WRITE(ITTY,124)
124 FORMAT(' Date must be supplied')
GO TO 118
125 WRITE(ITTY,126)
126 FORMAT(' Illegal form for date.'/
1' Suggested forms are 13-Jan-83 or January 13, 1983')
GO TO 118
127 CONTINUE
GO TO 130
C
C WORD PROCESSING HANDLING OF SUBMITTED RESUMES ONLY
C PROOF AND UNSUBMIT
128 MASTER=6
C BY ORDER OF FILES IN DIRECTORY
IFLOOP=1
C TYPE OF PROOF
IVARY=LMTTYP
JVARY=3
KVARY=2
LVARY=1
MVARY=1
NVARY=2
C ANY SUBMITTED OR HIGHER STATE RESUME
KNTSTT=5
JSTATE(1)=2
JSTATE(2)=3
JSTATE(3)=4
JSTATE(4)=5
JSTATE(5)=6
C ANY YEAR
ISMITH=0
KSMITH=0
C ANY CLASS VALIDATED BY THE RESUME.WHO FILE
KNTCLS=1
NYEAR(1)=-1
LYEAR=NYEAR(1)
GO TO 214
C
C INDIVIDUALLY SELECTED RESUMES
129 ISMITH=0
KSMITH=0
KNTSTT=3
JSTATE(1)=0
JSTATE(2)=-1
JSTATE(3)=7
GO TO 130
C
C *******************************************
C * *
C * ASK USER IF SPECIFICATONS ARE CORRECT *
C * *
C *******************************************
C
C LIST OVERALL FUNCTION
130 WRITE(ITTY,131)
131 FORMAT(1X/' *** Summary of Selection Rules ***'/1X)
IF(MASTER.EQ.1)WRITE(ITTY,132)
132 FORMAT(
1' List current state, student and class numbers an',
2'd student name')
IF(MASTER.EQ.2)WRITE(ITTY,133)
133 FORMAT(
1' Place resumes in UNSUBMIT state regardless of original state')
IF(MASTER.EQ.3)WRITE(ITTY,134)
134 FORMAT(
1' Place resumes in SUBMIT state regardless of original state')
IF(MASTER.EQ.4)WRITE(ITTY,135)
135 FORMAT(' Proof resumes'/
1' Place resumes in SUBMIT+PROOF state if in SUBMIT state'/
2' Place resumes in EDIT+PROOF state if in EDIT state'/
3' Retain all other states')
IF(MASTER.EQ.5)WRITE(ITTY,136)
136 FORMAT(' Transmit resumes'/
1' Place resumes in TRANSMIT state regardless of original state')
IF(MASTER.EQ.6)WRITE(ITTY,137)
137 FORMAT(' Proof resumes'/
1' Place resumes in UNSUBMIT state regardless of original state')
IF(MASTER.EQ.7)WRITE(ITTY,138)
138 FORMAT(
1' Change number or password or class for a group of resumes'/
2' Resulting resume will have state of original resume'/
3' Place original resume in REPLACED state')
IF(MASTER.EQ.8)WRITE(ITTY,139)
139 FORMAT(' Block any further use of resumes')
C
C TYPE OF PROOF
IF(MASTER.EQ.4)GO TO 140
IF(MASTER.EQ.6)GO TO 140
GO TO 147
140 IF(NVARY.EQ.1)WRITE(ITTY,141)
IF(NVARY.EQ.2)WRITE(ITTY,142)
IF(NVARY.EQ.3)WRITE(ITTY,143)
141 FORMAT(
1' Resumes will not be split into pages'/
2' Lines will be divided same as when typed on typewriter')
142 FORMAT(
1' Long resumes will be split into pages'/
2' Lines will be divided same as when typed on typewriter')
143 FORMAT(
1' Resumes will not be split into pages'/
2' Line lengths will be same as when resumes are typeset')
IF(JVARY.EQ.1)WRITE(ITTY,144)
IF(JVARY.EQ.2)WRITE(ITTY,145)
IF(JVARY.EQ.3)WRITE(ITTY,146)
144 FORMAT(' Resumes will not include bolding and underlining')
145 FORMAT(' Resumes should be printed on fast printer')
146 FORMAT(' Resumes must be typed on letter quality typewriter')
147 CONTINUE
C
C PASSWORD SCHEME IF RENAME FILE
IF(MASTER.NE.7)GO TO 151
IF(KNDPSW.EQ.1)WRITE(ITTY,148)
148 FORMAT(
1' Students will run from own accounts without passwords')
IF(KNDPSW.EQ.2)WRITE(ITTY,149)
149 FORMAT(
1' Students will use passwords assigned by administrator')
IF(KNDPSW.EQ.3)WRITE(ITTY,150)
150 FORMAT(
1' Students will select their own passwords')
151 CONTINUE
C
C POOL OF RESUMES
IF(IFLOOP.EQ.0)WRITE(ITTY,152)
152 FORMAT(' Resumes will be selected by number and class')
IF(IFLOOP.EQ.1)WRITE(ITTY,153)
153 FORMAT(
1' Resumes will be selected in their order in directory')
IF(IFLOOP.EQ.2)WRITE(ITTY,154)
154 FORMAT(' Resumes will be selected in preselected order')
C
C CLASSES
IF(IFLOOP.EQ.0)GO TO 158
DO 157 I=1,KNTCLS
IF(NYEAR(I).LT.0)WRITE(ITTY,155)
155 FORMAT(' Process any class')
IF(NYEAR(I).GE.0)WRITE(ITTY,156)NYEAR(I)
156 FORMAT(' Process class',1I5)
157 CONTINUE
158 CONTINUE
C
C STATES
IF(IFLOOP.EQ.0)GO TO 169
DO 168 I=1,KNTSTT
IF(JSTATE(I).LT.0)WRITE(ITTY,159)
IF(JSTATE(I).EQ.0)WRITE(ITTY,160)
IF(JSTATE(I).EQ.1)WRITE(ITTY,161)
IF(JSTATE(I).EQ.2)WRITE(ITTY,162)
IF(JSTATE(I).EQ.3)WRITE(ITTY,163)
IF(JSTATE(I).EQ.4)WRITE(ITTY,164)
IF(JSTATE(I).EQ.5)WRITE(ITTY,165)
IF(JSTATE(I).EQ.6)WRITE(ITTY,166)
IF(JSTATE(I).EQ.7)WRITE(ITTY,167)
159 FORMAT(' Process any state except REPLACED and BLOCKED')
160 FORMAT(' Process REPLACED state')
161 FORMAT(' Process DRAFT state')
162 FORMAT(' Process SUBMITTED state')
163 FORMAT(' Process SUBMIT+PROOF state')
164 FORMAT(' Process EDITED state')
165 FORMAT(' Process EDIT+PROOF state')
166 FORMAT(' Process TRANSMITTED state')
167 FORMAT(' Process BLOCKED state')
168 CONTINUE
169 CONTINUE
C
C CUT-OFF DATE
IF(IFLOOP.EQ.0)GO TO 172
CALL DAWEEK(-1,ISMITH,JDAY,JMONTH,JYEAR,IWEEK)
WRITE(ITTY,170)JMONTH,JDAY,JYEAR
170 FORMAT(' Reject resumes written before Month:',
11I3,', Day:',1I3,', Year:',1I5)
CALL DAWEEK(-1,KSMITH,JDAY,JMONTH,JYEAR,IWEEK)
WRITE(ITTY,171)JMONTH,JDAY,JYEAR
171 FORMAT(' Reject resumes written after Month:',
11I3,', Day:',1I3,', Year:',1I5)
172 CONTINUE
C
C ASK IF THESE ARE CORRECT
WRITE(ITTY,173)
173 FORMAT(1X)
174 WRITE(ITTY,175)
175 FORMAT(' Are all of the above specifications correct? ',$)
CALL YESNO(1,KNDYES,ITTY)
GO TO(174,174,178,176,174),KNDYES
176 WRITE(ITTY,177)
177 FORMAT(' Cancelling currently selected criteria')
GO TO 9
178 IF(IFLOOP.NE.0)GO TO 214
GO TO 179
C
C **************************************************
C * *
C * GET YEAR AND STUDENT NUMBER OF SINGLE RESUME *
C * *
C **************************************************
C
C GET CLASS NUMBER OF NEXT SINGLE RESUME
179 IF(MASTER.EQ.1)WRITE(ITTY,180)
IF(MASTER.EQ.2)WRITE(ITTY,181)
IF(MASTER.EQ.3)WRITE(ITTY,182)
IF(MASTER.EQ.4)WRITE(ITTY,183)
IF(MASTER.EQ.5)WRITE(ITTY,184)
IF(MASTER.EQ.6)WRITE(ITTY,185)
IF(MASTER.EQ.7)WRITE(ITTY,186)
IF(MASTER.EQ.8)WRITE(ITTY,187)
180 FORMAT(' List information for which class (-1=exit)? ',$)
181 FORMAT(' Unsubmit which class (-1=exit)? ',$)
182 FORMAT(' Submit which class (-1=exit)? ',$)
183 FORMAT(' Proof which class (-1=exit)? ',$)
184 FORMAT(' Transmit which class (-1=exit)? ',$)
185 FORMAT(' Proof and unsubmit which class (-1=exit)? ',$)
186 FORMAT(' New number/password/class for which origi',
1'nal class (-1=exit)? ',$)
187 FORMAT(' Block which class (-1=exit)? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 190
IF(MAXBFR.EQ.0)GO TO 195
KNTCLS=0
LOWBFR=0
188 CALL GETNUM(0,LTRBFR,MAXBFR,LOWBFR,KIND ,
1 IVALUE,VALUE )
GO TO(194,199,188,189),KIND
189 IF(KNTCLS.GE.1)GO TO 192
IF(IVALUE.LT.0)GO TO 327
IF(IVALUE.LT.MINCLS)GO TO 197
IF(IVALUE.GT.MAXCLS)GO TO 197
KNTCLS=KNTCLS+1
NYEAR(KNTCLS)=IVALUE
GO TO 188
190 WRITE(ITTY,191)MINCLS,MAXCLS
191 FORMAT(
1' Type 1 number in range',1I4,' to',1I4,
2' to select class for next resume.'/
3' Type -1 to exit.')
GO TO 179
192 WRITE(ITTY,193)
193 FORMAT(' You can only specify 1 class')
GO TO 179
194 IF(KNTCLS.GT.0)GO TO 201
195 WRITE(ITTY,196)
196 FORMAT(' You must specify 1 class')
GO TO 179
197 WRITE(ITTY,198)MINCLS,MAXCLS
198 FORMAT(' Class must be in range',1I5,' to',1I5)
GO TO 179
199 WRITE(ITTY,200)
200 FORMAT(' Please retype the class')
GO TO 179
201 LYEAR=NYEAR(1)
C
C GET STUDENT NUMBER FOR NEXT SINGLE RESUME
202 WRITE(ITTY,203)
203 FORMAT(' Number of individual resume (-2 by passwo',
1'rd,-1 to exit)? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 204
IF(MAXBFR.EQ.0)GO TO 179
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(204,204,206),KIND
204 WRITE(ITTY,205)
205 FORMAT(
1' Type the number which identifies the resume to be processed'/
2' This number is based on password or individual account used.'/
3' It identifies the student in the class. It is not the class.'/
4' Type -2 to select resume by student selected password.'/
5' Type -1 to exit.'/
6' Or merely press the RETURN key to select another class.')
GO TO 202
206 IF(IVALUE.GE.0)GO TO 211
IF(IVALUE.EQ.-2)GO TO 207
IF(IVALUE.EQ.-1)GO TO 327
GO TO 204
207 CALL PASWRD(LTRPSW,LMTPSW,ITTY,LNGPSW,NUMWHO,
1LTRBFR,LMTBFR)
IF(NUMWHO.GE.0)GO TO 209
WRITE(ITTY,208)
208 FORMAT(' Type the password which was selected by the student')
GO TO 207
209 IVALUE=NUMWHO
WRITE(ITTY,210)IVALUE
210 FORMAT(' This password translates to number',1I7)
211 IF(IVALUE.LE.999999)GO TO 213
WRITE(ITTY,212)
212 FORMAT(' Number must be in range 0 through 999999')
GO TO 202
213 JOBUSR=IVALUE
GO TO 223
C
C ************************************
C * *
C * IDENTIFY NEXT RESUME IN SERIES *
C * *
C ************************************
C
C GET FIRST STUDENT FILE IN SEQUENCE
214 IF(IFLOOP.EQ.2)GO TO 216
KNTFIL=0
GO TO 222
C
C OPEN NEXT STUDENT FILE IN SEQUENCE
215 IF(IFLOOP.EQ.2)GO TO 217
GO TO 222
C
C PREPARE TO READ NUMBERS AND YEARS FROM SORTED FILE
216 CALL RSMOPN(15,NUMWHO,IYEAR,ITTY,JDISK,IFOPEN)
IF(IFOPEN.EQ.0)GO TO 220
GO TO 217
C
C GET NEXT NUMBER AND YEAR FROM SORTED FILE
217 READ(JDISK,218,END=219)ISEQNC,JOBUSR,LYEAR
218 FORMAT(1I5,8X,1I6,7X,1I3)
IF(ISEQNC.EQ.0)GO TO 217
GO TO 223
219 CALL RSMCLS(15,NUMWHO,IYEAR,ITTY,JDISK,IFCLOS)
GO TO 327
220 WRITE(ITTY,221)
221 FORMAT(' Cannot open sorted file')
GO TO 334
C
C IDENTIFY NEXT RESUME FILE IN STORAGE AREA
222 CALL RSMDIR(JDISK ,KNTFIL,JOBUSR,LYEAR ,IFOPEN)
IF(IFOPEN.EQ.0)GO TO 327
GO TO 223
C
C *****************************
C * *
C * READ CONTENTS OF RESUME *
C * *
C *****************************
C
C CHECK IF NEXT RESUME FILE IS IN PROPER YEAR
223 IF(LYEAR.LT.MINCLS)GO TO 226
IF(LYEAR.GT.MAXCLS)GO TO 226
DO 224 I=1,KNTCLS
IF(NYEAR(I).LT.0)GO TO 225
IF(NYEAR(I).EQ.LYEAR)GO TO 225
224 CONTINUE
GO TO 226
C
C OPEN NEXT RESUME FILE
225 CALL RSMOPN(3,JOBUSR,LYEAR,ITTY,IDISK,IFOPEN)
IF(IFOPEN.NE.0)GO TO 227
226 IF(IFLOOP.EQ.0)GO TO 322
IF(IFLOOP.EQ.2)GO TO 217
GO TO 222
C
C READ HEADER INFORMATION IN RESUME FILE
227 READ(IDISK,228,END=232,ERR=232)ISTATE,IPRINT,IVERSN,MYEAR,
1JDAY,JMONTH,JYEAR,NUMWHO,LTRUSR,LTRPSW
228 FORMAT(2I1,2I3,3I2,1I6,40A1,20A1)
C
C DETERMINE WHETHER THE RESUME IS IN PROPER STATE
IF(IFLOOP.EQ.0)GO TO 233
DO 229 I=1,KNTSTT
IF(ISTATE.EQ.JSTATE(I))GO TO 231
229 CONTINUE
IF(ISTATE.EQ.0)GO TO 232
IF(ISTATE.EQ.7)GO TO 232
DO 230 I=1,KNTSTT
IF(JSTATE(I).LT.0)GO TO 231
230 CONTINUE
GO TO 232
231 KYEAR=JYEAR+1900
IF(KYEAR.LE.1980)KYEAR=KYEAR+100
CALL DAWEEK(0,JSMITH,JDAY,JMONTH,KYEAR,IWEEK)
IF(ISMITH.EQ.0)GO TO 233
IF(JSMITH.LT.ISMITH)GO TO 232
IF(JSMITH.GT.KSMITH)GO TO 232
GO TO 233
232 CALL RSMCLS(3,JOBUSR,LYEAR,ITTY,IDISK,IFCLOS)
GO TO 326
C
C INITIALIZE STORAGE
233 MAXLTT=0
MAXSEC=0
KNTLIN=0
KNTTXT=0
MAXSEC=MAXSEC+1
KNTTTL(MAXSEC)=0
LNGSEC(MAXSEC)=1
KNTLIN=KNTLIN+1
LNGLIN(KNTLIN)=0
MARKER(KNTLIN)=0
C
C GET PREVIOUS CONTENTS OF FILE, IF ANY
CALL RSMOLD(IVERSN,NOWSEC,IDISK,LTRTXT,LNGLIN,LNGSEC,
1LMTTXT,LMTLIN,KNTTXT,KNTLIN,MARKER,
2LMTLTT,MAXLTT,LTRTTL,LMTSEC,MAXSEC,KNTTTL)
CALL RSMCLS(3,JOBUSR,LYEAR,ITTY,IDISK,IFCLOS)
C
C *************************
C * *
C * LOCATE NAME SECTION *
C * *
C *************************
C
MAXPRT=0
MRKSEC=0
NOWLIN=0
IF(MAXSEC.LE.0)GO TO 242
DO 241 NEWSEC=1,MAXSEC
INISEC=MRKSEC+1
MRKSEC=MRKSEC+KNTTTL(NEWSEC)
MAXLIN=LNGSEC(NEWSEC)
C
C CHECK IF THE NAME IS ONE OF THOSE RESERVED
J=0
K=4
IF((MRKSEC-INISEC+1).NE.4)GO TO 235
DO 234 I=INISEC,MRKSEC
J=J+1
IF(LTRTTL(I).EQ.LTRRES(J))GO TO 234
IF(LTRTTL(I).EQ.LWRRES(J))GO TO 234
GO TO 235
234 CONTINUE
GO TO 238
C
C SKIP OVER LINES OF SECTION NOT HAVING RESERVED NAME
235 IF(MAXLIN.EQ.0)GO TO 237
DO 236 I=1,MAXLIN
NOWLIN=NOWLIN+1
MAXPRT=MAXPRT+LNGLIN(NOWLIN)
236 CONTINUE
237 GO TO 241
C
C NAME SECTION FOUND
238 INIPRT=MAXPRT+1
IF(MAXLIN.EQ.0)GO TO 240
DO 239 I=1,MAXLIN
NOWLIN=NOWLIN+1
MAXPRT=MAXPRT+LNGLIN(NOWLIN)
239 CONTINUE
240 GO TO 243
241 CONTINUE
242 INIPRT=MAXPRT+1
243 CONTINUE
C
C ****************************************
C * *
C * IF PROCESSING INDIVIDUAL RESUMES, *
C * ASK USER IF THIS IS THE ONE WANTED *
C * *
C ****************************************
C
IF(MASTER.EQ.7)GO TO 244
IF(IFLOOP.NE.0)GO TO 265
244 CONTINUE
C
C IDENTIFY RESUME TO ADMINISTRATOR
WRITE(ITTY,245)
245 FORMAT(1X/' *** Description of resume ***'/1X)
IF(INIPRT.GT.MAXPRT)WRITE(ITTY,246)
246 FORMAT(' Name: *** NO NAME ***')
IF(INIPRT.LE.MAXPRT)WRITE(ITTY,247)(LTRTXT(I),I=INIPRT,MAXPRT)
247 FORMAT(' Name: ',100A1)
WRITE(ITTY,248)LTRUSR
248 FORMAT(' Account: ',40A1)
WRITE(ITTY,249)JOBUSR,LYEAR,LTRPSW
249 FORMAT(' Number:',1I7,', Class:',1I4,', Password: ',20A1)
WRITE(ITTY,250)JMONTH,JDAY,JYEAR
250 FORMAT(' Month:',1I3,', Day:',1I3,', Year:',1I5)
C
C REPORT STATE OF RESUME
IF(ISTATE.EQ.0)WRITE(ITTY,251)
251 FORMAT(' Status: Replaced')
IF(ISTATE.EQ.1)WRITE(ITTY,252)
252 FORMAT(' Status: Draft only')
IF(ISTATE.EQ.2)WRITE(ITTY,253)
253 FORMAT(' Status: Submitted')
IF(ISTATE.EQ.3)WRITE(ITTY,254)
254 FORMAT(' Status: Submitted+Proofed')
IF(ISTATE.EQ.4)WRITE(ITTY,255)
255 FORMAT(' Status: Edited')
IF(ISTATE.EQ.5)WRITE(ITTY,256)
256 FORMAT(' Status: Edited+Proofed')
IF(ISTATE.EQ.6)WRITE(ITTY,257)
257 FORMAT(' Status: Transmitted')
IF(IFLOOP.NE.0)GO TO 265
IF(MASTER.EQ.1)GO TO 265
C
C CONFIRM THAT THIS IS THE CORRECT RESUME
WRITE(ITTY,258)
258 FORMAT(1X)
259 WRITE(ITTY,260)
260 FORMAT(' Is this the correct resume? ',$)
CALL YESNO(1,KNDYES,ITTY)
GO TO(259,259,263,324,261),KNDYES
261 WRITE(ITTY,262)
262 FORMAT(' Answer'/
1' YES if you want to process this resume'/
2' NO if you do not want to process this resume')
GO TO 259
263 WRITE(ITTY,264)
264 FORMAT(' Processing')
C
C *****************************
C * *
C * CHANGE STATUS OF RESUME *
C * *
C *****************************
C
C TELL IF STUDENT NUMBER OR CLASS INCONSISTENT
265 IF(JOBUSR.NE.NUMWHO)GO TO 266
IF(LYEAR.NE.MYEAR)GO TO 266
GO TO 268
266 WRITE(ITTY,267)JOBUSR,LYEAR,NUMWHO,MYEAR
267 FORMAT(' WARNING: File',1I7,'.',1I3,
1' internally is for',1I7,'.',1I3)
268 CONTINUE
C
C CHANGE STATUS
KSTATE=ISTATE
NUMWHO=JOBUSR
MYEAR=LYEAR
DO 269 I=1,LMTPSW
LWRPSW(I)=LTRPSW(I)
269 CONTINUE
GO TO(300,270,271,272,273,270,275,274),MASTER
270 ISTATE=1
GO TO 296
271 ISTATE=2
GO TO 296
272 IF(ISTATE.EQ.2)ISTATE=3
IF(ISTATE.EQ.4)ISTATE=5
GO TO 296
273 ISTATE=6
GO TO 296
274 ISTATE=7
GO TO 296
C
C IF RENAMING, GET STUDENT PASSWORD IF NEEDED
275 WRITE(ITTY,276)
276 FORMAT(' Specify information needed to access resu',
1'lting resume')
IF(KNDPSW.EQ.1)GO TO 280
277 CALL PASWRD(LTRPSW,LMTPSW,ITTY,LNGPSW,NUMWHO,
1LTRBFR,LMTBFR)
IF(NUMWHO.GE.0)GO TO 279
WRITE(ITTY,278)LMTPSW
278 FORMAT(' Word or phrase of from 1 to',1I3,
1' letters or digits must be supplied')
GO TO 277
279 CONTINUE
C
C IF RENAMING, GET STUDENT NUMBER IF NEEDED
IF(KNDPSW.NE.2)GO TO 286
280 WRITE(ITTY,281)JOBUSR
281 FORMAT(' New Student Number (-1=',1I6,')? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 283
IF(MAXBFR.EQ.0)GO TO 283
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(283,283,282),KIND
282 NUMWHO=IVALUE
IF(NUMWHO.LT.0)GO TO 285
IF(NUMWHO.GT.999999)GO TO 283
GO TO 286
283 WRITE(ITTY,284)
284 FORMAT(' Student number must be in range 0 to 999999')
GO TO 280
285 NUMWHO=JOBUSR
286 CONTINUE
C
C IF RENAMING FILE, GET NEW YEAR NUMBER
287 WRITE(ITTY,288)LYEAR
288 FORMAT(' New class (-1=',1I3,')? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 290
IF(MAXBFR.EQ.0)GO TO 290
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(290,290,289),KIND
289 MYEAR=IVALUE
IF(MYEAR.LT.0)GO TO 292
IF(MYEAR.LT.MINCLS)GO TO 290
IF(MYEAR.GT.MAXCLS)GO TO 290
GO TO 293
290 WRITE(ITTY,291)MINCLS,MAXCLS
291 FORMAT(' Class must be in range',1I5,' to',1I5)
GO TO 287
292 MYEAR=LYEAR
293 CONTINUE
C
C MAKE SURE RENAMED FILE DOES NOT ALREADY EXIST
IF(NUMWHO.NE.JOBUSR)GO TO 294
IF(MYEAR.NE.LYEAR)GO TO 294
GO TO 297
294 CALL RSMOPN(3,NUMWHO,MYEAR,ITTY,IDISK,IFOPEN)
IF(IFOPEN.EQ.0)GO TO 297
READ(IDISK,298)LSTATE
CALL RSMCLS(3,NUMWHO,MYEAR,ITTY,IDISK,IFCLOS)
IF(LSTATE.EQ.0)GO TO 297
WRITE(ITTY,295)NUMWHO,MYEAR
295 FORMAT(' File for student',1I7,' in class',1I4,' already exists'/
1' You must make another selection')
GO TO 275
C
C REWRITE RESUME FILE WITH NEW STATUS
296 IF(ISTATE.EQ.KSTATE)GO TO 300
297 CALL RSMOPN(5,NUMWHO,MYEAR,ITTY,IDISK,IFOPEN)
WRITE(IDISK,298)ISTATE,IPRINT,IVERSN,MYEAR,
1JDAY,JMONTH,JYEAR,NUMWHO,LTRUSR,LTRPSW
298 FORMAT(2I1,2I3,3I2,1I6,40A1,20A1)
CALL RSMSAV(NOWSEC,IDISK,LTRTXT,LNGLIN,LNGSEC,
1LMTTXT,LMTLIN,KNTTXT,KNTLIN,MARKER,
2LMTLTT,MAXLTT,LTRTTL,LMTSEC,MAXSEC,KNTTTL)
CALL RSMCLS(5,NUMWHO,MYEAR,ITTY,IDISK,IFCLOS)
C
C REWRITE OLD RESUME SHOWING IT HAS BEEN REPLACED
IF(NUMWHO.NE.JOBUSR)GO TO 299
IF(MYEAR.NE.LYEAR)GO TO 299
GO TO 300
299 MSTATE=0
CALL RSMOPN(5,JOBUSR,LYEAR,ITTY,IDISK,IFOPEN)
WRITE(IDISK,298)MSTATE,IPRINT,IVERSN,LYEAR,
1JDAY,JMONTH,JYEAR,JOBUSR,LTRUSR,LWRPSW
CALL RSMSAV(NOWSEC,IDISK,LTRTXT,LNGLIN,LNGSEC,
1LMTTXT,LMTLIN,KNTTXT,KNTLIN,MARKER,
2LMTLTT,MAXLTT,LTRTTL,LMTSEC,MAXSEC,KNTTTL)
CALL RSMCLS(5,JOBUSR,LYEAR,ITTY,IDISK,IFCLOS)
GO TO 300
C
C RECORD HOW MANY OF EACH STATE FOUND
300 KNTSHO=KNTSHO+1
I=KSTATE+KSTATE+1
J=ISTATE+ISTATE+2
NSTATE(I)=NSTATE(I)+1
NSTATE(J)=NSTATE(J)+1
C
C **************************************
C * *
C * GENERATE LIST OF CURRENT RESUMES *
C * *
C **************************************
C
C OPEN FILE TO CONTAIN THE LIST
IF(IFLOOP.EQ.0)GO TO 301
IF(KNTSHO.GT.1)GO TO 305
301 IF(MASTER.NE.1)GO TO 303
WRITE(ITTY,302)
302 FORMAT(
1' OLD NEW STDNT YEAR NAME',26X,'PASSWORD'/
2' STATUS STATUS'/1X)
IF(KNTSHO.GT.1)GO TO 305
CALL TTYSIM(KDISK)
CALL RSMOPN(9,JOBUSR,LYEAR,ITTY,KDISK,IFOPEN)
WRITE(KDISK,302)
GO TO 305
303 WRITE(ITTY,304)
304 FORMAT(
1' OLD NEW STDNT YEAR NAME'/
2' STATUS STATUS'/1X)
305 CONTINUE
C
C ADD NAME AND STATUS TO THE LIST
J=INIPRT-1
IF(J.LT.(MAXPRT-30))J=MAXPRT-30
DO 306 I=1,30
J=J+1
LTRBFR(I)=LTRSPA
IF(J.LE.MAXPRT)LTRBFR(I)=LTRTXT(J)
306 CONTINUE
L=LNGSTT*(KSTATE+1)
K=L-LNGSTT+1
N=LNGSTT*(ISTATE+1)
IF(ISTATE.EQ.KSTATE)N=LNGSTT*9
M=N-LNGSTT+1
IF(INIPRT.LE.MAXPRT)GO TO 309
IF(MASTER.NE.1)GO TO 308
WRITE(ITTY,307)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR,LTRPSW
WRITE(KDISK,307)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR,LTRPSW
307 FORMAT(1X,8A1,1X,8A1,1I7,1I4,1X,'*** NO NAME ***',15X,20A1)
GO TO 312
308 WRITE(ITTY,307)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR
GO TO 312
309 IF(MASTER.NE.1)GO TO 311
WRITE(ITTY,310)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR,(LTRBFR(I),I=1,30),LTRPSW
WRITE(KDISK,310)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR,(LTRBFR(I),I=1,30),LTRPSW
310 FORMAT(1X,8A1,1X,8A1,1I7,1I4,1X,100A1)
GO TO 312
311 WRITE(ITTY,310)(LTRSTT(I),I=K,L),(LTRSTT(I),I=M,N),
1 NUMWHO,MYEAR,(LTRBFR(I),I=1,30)
312 CONTINUE
C
C **************************************
C * *
C * BRANCH TO CODE TO PROCESS RESUME *
C * *
C **************************************
C
GO TO(326,326,326,313,315,313,326,326),MASTER
C
C ******************************
C * *
C * GENERATE PROOF OF RESUME *
C * *
C ******************************
C
C OPEN FILE TO CONTAIN THE PROOFS
313 IF(KNTSHO.GT.1)GO TO 314
CALL TTYSIM(KDISK)
CALL RSMOPN(10,JOBUSR,LYEAR,ITTY,KDISK,IFOPEN)
C
C ADD PROOF TO THE FILE
314 ILOCAL=0
NOWSEC=0
CALL RSMPRF(NOWSEC,ILOCAL,ITTY,KDISK,LTRTXT,LNGLIN,LNGSEC,
1LMTTXT,LMTLIN,KNTTXT,KNTLIN,MARKER,
2LMTLTT,MAXLTT,LTRTTL,LMTSEC,MAXSEC,KNTTTL,KNTOUT,IVARY,JVARY,
3KVARY,LVARY,MVARY,LTRWID,LMTWID,MAXBFR,LMTBFR,LTRBFR,IVIDEO,
4LNGCRT,KNTPAG,IONPAG)
GO TO 326
C
C *****************************************
C * *
C * TRANSMIT RESUME TO PRINTING SERVICE *
C * *
C *****************************************
C
C GET NUMBER TO BE USED AS NAME OF TRANSMITTED FILE
315 IF(IFLOOP.EQ.2)GO TO 320
WRITE(ITTY,316)JOBUSR
316 FORMAT(
1' Number to be name of transmitted file (-1=',1I6,')? ',$)
CALL GETLIN(ITTY,LTRBFR,LMTBFR,MAXBFR)
IF(MAXBFR.LT.0)GO TO 318
IF(MAXBFR.EQ.0)GO TO 318
LOWBFR=1
CALL DAHEFT(0,0,0,LTRBFR,LMTBFR,
1LOWBFR,KIND,ISHIFT,JSHIFT,KSHIFT,LSHIFT,IVALUE,
2VALUE)
GO TO(318,318,317),KIND
317 IF(IVALUE.LT.0)GO TO 321
IF(IVALUE.GT.999999)GO TO 318
JOBUSR=IVALUE
GO TO 321
318 WRITE(ITTY,319)
319 FORMAT(' Number must be in range 0 through 999999.'/
1' If you type 1 here, then file named 1. is transmitted.'/
2' Choose -1 if file number is to be same as student number.')
GO TO 315
320 JOBUSR=ISEQNC
321 CONTINUE
C
C TRANSMIT THE RESUME
CALL TTYSIM(KDISK)
CALL RSMOPN(8,JOBUSR,LYEAR,ITTY,KDISK,IFOPEN)
ILOCAL=0
NOWSEC=0
IVARY=0
JVARY=1
KVARY=4
LVARY=2
MVARY=0
CALL RSMPRF(NOWSEC,ILOCAL,ITTY,KDISK,LTRTXT,LNGLIN,LNGSEC,
1LMTTXT,LMTLIN,KNTTXT,KNTLIN,MARKER,
2LMTLTT,MAXLTT,LTRTTL,LMTSEC,MAXSEC,KNTTTL,KNTOUT,IVARY,JVARY,
3KVARY,LVARY,MVARY,LTRWID,LMTWID,MAXBFR,LMTBFR,LTRBFR,IVIDEO,
4LNGCRT,KNTPAG,IONPAG)
CALL RSMCLS(8,JOBUSR,LYEAR,ITTY,KDISK,IFCLOS)
GO TO 326
C
C ******************************
C * *
C * DONE WITH CURRENT RESUME *
C * *
C ******************************
C
C ADMINISTRATOR MESSAGES
322 WRITE(ITTY,323)
323 FORMAT(' Resume does not exist')
GO TO 326
324 WRITE(ITTY,325)
325 FORMAT(' Cancelling request')
GO TO 326
C
C PREPARE FOR NEXT FILE
326 IF(IFLOOP.EQ.0)GO TO 202
GO TO 215
C
C WRITE FINAL SUMMARY
327 WRITE(ITTY,328)(NSTATE(I),I=1,16),KNTSHO,KNTSHO
IF(KNTSHO.LE.0)GO TO 334
IF(MASTER.EQ.1)WRITE(KDISK,328)(NSTATE(I),I=1,16),
1 KNTSHO,KNTSHO
328 FORMAT(1X/' Old New'/
1' Status Status'/
2' Replaced:',2I7/
3' Draft only:',2I7/
4' Submitted:',2I7/
5' Submit+proof:',2I7/
6' Edited:',2I7/
7' Edit+proof:',2I7/
8' Transmitted:',2I7/
9' Blocked:',2I7/
1' ----- -----'/
2' Total:',2I7/1X)
IF(MASTER.EQ.1)GO TO 332
IF(MASTER.EQ.4)GO TO 329
IF(MASTER.EQ.6)GO TO 329
GO TO 334
C
C CLOSE THE PROOF FILE
329 IF(KNTSHO.EQ.0)GO TO 331
WRITE(KDISK,330)
330 FORMAT(1H1,' ')
CALL RSMCLS(10,JOBUSR,LYEAR,ITTY,KDISK,IFCLOS)
331 GO TO 334
C
C CLOSE THE FILE CONTAINING LIST OF NAMES
332 IF(KNTSHO.EQ.0)GO TO 333
CALL RSMCLS(9,JOBUSR,LYEAR,ITTY,KDISK,IFCLOS)
333 GO TO 334
334 STOP
END