C.. WPLOG.FTN BOHDEN K. CMAYLO DEC 81 C.. C.. PROGRAM TO CREATE WP ACCOUNTS, MUST USE EDT ON OUTPUT TO RID SPACES C.. C.. IGROUP=GROUP NUMBER C.. IMEMB=INITIAL MEMBER NUMBER (O3) C.. NMEMB=NUMBER OF MEMBERS IN SECTION (OCTAL) C.. NCOM=NUMBER OF COMMON SECTIONS (OCTAL) C.. NUID=STARTING UID (1-9999) (DECIMAL) C.. DIMENSION ARRAY(80) DIMENSION FORM1(5),FORM2(9),FORM3(9),FORM4(9),FORM5(5),FORM6(5) DIMENSION FORM0(10),FORM7(10),NFORM2(2),NFORM3(2),NFORM4(2) INTEGER TYPEO,TYPEI DATA TYPEO,TYPEI /'O','I'/ DATA NFORM1/4/ DATA FORM1/'(''''',',','I4',')'/ DATA 1 FORM2/'(''WP:','['',','O3',','',''',',','O3',','']''',')'/ DATA NFORM2/4,7/ DATA 1 FORM3/'(''UF','D WP',':['',','O3',',''',','',','O3',','']',''')'/ DATA NFORM3/4,7/ DATA FORM4 1 /'(',''',[''',',','O3',',',''','',','O3',','']''',')'/ DATA NFORM4/4,7/ DATA FORM5/'(''US','ER'',','I2',')'/ DATA NFORM5/4/ DATA FORM6/'(''CO','M'',','I2',')'/ DATA NFORM6/4/ C.. READ IN INFO C.. IN=1 IOUT=2 IOUT2=3 OPEN(UNIT=IOUT,NAME='WP.DAT',TYPE='NEW',CARRIAGECONTROL='LIST') OPEN(UNIT=IOUT2,NAME='WP.CMD',TYPE='NEW',CARRIAGECONTROL='LIST') READ(IN,*,ERR=99)IGROUP,IMEMB,NMEMB,NCOM,NUID IF(IGROUP.LE.0.OR.IMEMB.LE.0.OR.NMEMB.LE.0. 1 .OR.NCOM.LT.0.OR.NUID.LE.0) GO TO 99 IF(IGROUP.GT.377.OR.IMEMB.GT.377.OR.NMEMB.GT.255. 1 .OR.NCOM.GT.255.OR.NUID.GT.9999) GO TO 99 CALL VFORM(TYPEO,IGROUP,FORM2,NFORM2(1)) CALL VFORM(TYPEO,IGROUP,FORM3,NFORM3(1)) CALL VFORM(TYPEO,IGROUP,FORM4,NFORM4(1)) ENCODE(12,1,ARRAY)IGROUP,IMEMB,NMEMB,NCOM 1 FORMAT(4I3) DECODE(12,2,ARRAY,ERR=99)IGROUP,IMEMB,NMEMB,NCOM 2 FORMAT(4O3) C.. C.. READ NAME OF MEMBER GROUPS C.. 13 READ(IN,3,END=16)IQ,(ARRAY(I),I=1,IQ) 3 FORMAT(Q,80A1) C.. C.. SET UP INITIAL CONDITIONS C.. C.. IIMEM=START OF USERS IN A COMMON SECTION C.. JIMEM=END OF USERS IN A COMMON SECTION C.. ICMEM=START OF COMMON SECTION C.. JCMEM=END OF COMMON SECTION C. IIMEM=IMEMB JIMEM=IMEMB+NMEMB-1 ICMEM=NMEMB+IMEMB JCMEM=ICMEM+NCOM-1 C.. C.. LOOP FOR GENERATING LOGON PROCEDURE C.. DO 4 J=1,NMEMB C..WRITE OUT NAME IF(J.LE.9) ENCODE(26,5,FORM0)IQ 5 FORMAT('('''',',I2,'A1,''-USER'',I1,1X)') IF(J.GT.9) ENCODE(26,50,FORM0)IQ 50 FORMAT('('''',',I2,'A1,''-USER'',I2,1X)') WRITE(IOUT,FORM0)(ARRAY(I),I=1,IQ),J C..WRITE OUT UNIQUE ID CALL VFORM(TYPEI,NUID,FORM1,NFORM1) WRITE(IOUT,FORM1)NUID NUID=NUID+1 C..WRITE OUT GROUP NUMBERS CALL VFORM(TYPEO,IMEMB,FORM2,NFORM2(2)) WRITE(IOUT,FORM2)IGROUP,IMEMB C..WRITE OUT UFD COMMANDS ON OUT2 CALL VFORM(TYPEO,IMEMB,FORM3,NFORM3(2)) WRITE(IOUT2,FORM3)IGROUP,IMEMB C..WRITE OUT REST OF COMMON ACCOUNTS IMEMB=IMEMB+1 IF(NCOM.LE.0) GO TO 8 DO 44 KMEM=ICMEM,JCMEM CALL VFORM(TYPEO,KMEM,FORM4,NFORM4(2)) WRITE(IOUT,FORM4)IGROUP,KMEM 44 CONTINUE C..WRITE OUT TRAINING AREA 8 WRITE(IOUT,9) 9 FORMAT('WP:[203,1]') C..PASSWORD SECTION C** CALL VFORM(TYPEI,J,FORM5,NFORM5) C** WRITE(IOUT,FORM5)J C.. C.. END OF SECTION C.. WRITE(IOUT,12) 12 FORMAT('<>') 4 CONTINUE C.. C.. SET UP COMMON AREAS C.. IF(NCOM.LE.0) GO TO 13 IJ=0 DO 14 J=ICMEM,JCMEM IMEMB=IMEMB+1 IJ=IJ+1 C..NAME IF(IJ.LE.9) ENCODE(25,51,FORM7)IQ 51 FORMAT('('''',',I2,'A1,'' COM'',I1,1X)') IF(IJ.GT.9) ENCODE(25,52,FORM7)IQ 52 FORMAT('('''',',I2,'A1,'' COM'',I2,1X)') WRITE(IOUT,FORM7)(ARRAY(I),I=1,IQ),IJ C..UID CALL VFORM(TYPEI,NUID,FORM1,NFORM1) WRITE(IOUT,FORM1)NUID NUID=NUID+1 C..COMMON UIC CALL VFORM(TYPEO,J,FORM2,NFORM2(2)) WRITE(IOUT,FORM2)IGROUP,J C..WRITE OUT UFD COMMANDS ON OUT2 CALL VFORM(TYPEO,J,FORM3,NFORM3(2)) WRITE(IOUT2,FORM3)IGROUP,J C..SHAIRED UIC DO 55 KMEM=IIMEM,JIMEM CALL VFORM(TYPEO,KMEM,FORM4,NFORM4(2)) WRITE(IOUT,FORM4)IGROUP,KMEM 55 CONTINUE C..ALT AREA 0 8 WRITE(IOUT,9) C..PASSWORDS C** CALL VFORM(TYPEI,IJ,FORM6,NFORM6) C** WRITE(IOUT,FORM6)IJ C..END OF INFO WRITE(IOUT,12) 14 CONTINUE GO TO 13 C.. C.. END OF ALL DATA C.. 16 ENDFILE IOUT ENDFILE IOUT2 TYPE 17 17 FORMAT('0 *** FILE WP.DAT CONTAINS LOGON DATA FOR DXF' 1 /' (USE EDT ON NEW FILE AND ''INC 10 /FI:WP.DAT'')' 1 //' *** FILE WP.CMD CONTAINS UFD FOR @ PROCESSOR.') CALL EXIT 99 TYPE 999,IGROUP,IMEMB 999 FORMAT(' *** ERROR *** GROUP ',I6,' MEMBERS',I6) CALL EXIT END