SUBROUTINE CRELOG(IER) C C***************************************************************************** C C PURPOSE: TO CREATE A LOG FILE NAMED "LOGLOGLOG.LOG" C C***************************************************************************** C REAL MCR C INCLUDE 'LOGHDR.ADM' INCLUDE 'LOGVBL.ADM' INCLUDE 'LOGPR1.ADM' INCLUDE 'LOGPR2.ADM' C DATA MCR/6RMCR.../ C C***************************************************************************** C C INIT SOME VARIABLES C C***************************************************************************** C IER=-1 IUIC=1 NVBL=6 IVBN=2 DO 10 I=1,256 IBFVBL(I)=0 10 IBFHDR(I)=0 C C***************************************************************************** C C CLEAR FIRST 5 BLOCKS IN FILE C C***************************************************************************** C DO 20 I=1,5 20 WRITE(1'I,ERR=1000) IBFHDR C C***************************************************************************** C C ASK FOR UIC AND NUMBER OF PROJECTS INVOLVED. C IF READY, JUMP. IF ERROR, TRY AGAIN. C C***************************************************************************** C 23 IUIC=IUIC-1 25 WRITE(6,30) 30 FORMAT(/'$ENTER GROUP, MEMBER, NUMBER OF PROJECTS (<CR>=READY): ') READ(5,40,ERR=25,END=1000) IGR,MEM,NPROJ 40 FORMAT(2O6,I5) IF(IGR.LE.0) GO TO 500 IF(NPROJ.LE.0.OR.NPROJ.GT.32) GO TO 25 C C***************************************************************************** C C ENCODE THE UIC INTO THE FIRST BLOCK OF THE FILE. C REPLACE ALL SPACES WITH ASCII "0". C C***************************************************************************** C IUIC=IUIC+1 LRCHDR(1,IUIC)='[' ENCODE(3,50,LRCHDR(2,IUIC),ERR=23) IGR 50 FORMAT(O3) LRCHDR(5,IUIC)=',' ENCODE(3,50,LRCHDR(6,IUIC),ERR=23) MEM LRCHDR(9,IUIC)=']' DO 51 I=2,8 51 IF(LRCHDR(I,IUIC).EQ.32) LRCHDR(I,IUIC)=48 C C***************************************************************************** C C SEE IF UIC ALREADY EXISTS. IF SO, TRY AGAIN. C SKIP THIS CHECK THE FIRST TIME. C C***************************************************************************** C IF(IUIC.LE.1) GO TO 57 DO 55 I=1,IUIC-1 DO 53 J=1,8 53 IF(LRCHDR(J,I).NE.LRCHDR(J,IUIC)) GO TO 55 WRITE(6,54) (LRCHDR(J,IUIC),J=1,9) 54 FORMAT(/' *** WARNING *** -- ',9A1,' ALREADY EXISTS'/) IRCHDR(1,IUIC)=0 GO TO 23 55 CONTINUE C C***************************************************************************** C C EVERY "VIRTUAL BLOCK NUMBER"-BLOCK CONTAINS VBN'S FOR 8 UIC'S, SO C WE NEED 4 OF THOSE BLOCKS FOR MAX 32 UIC'S. C MUIC POINTS TO A RECORD INTO SUCH A BLOCK (1-8) C C IF FULL, WRITE IT TO DISK (FOR MUIC=1, EXCEPT FOR THE FIRST TIME) C AND UPDATE BLOCK NUMBER (2-5) C C IUIC=1,2,3,...8,9,10....16,17,....32 C MUIC=1,2,3....8,1,2,....8, 1.......8 C C***************************************************************************** C 57 IRCHDR(8,IUIC)=NPROJ MUIC=MOD(IUIC-1,8)+1 IF(MUIC.GT.1.OR.IUIC.LE.1) GO TO 70 WRITE(1'IVBN,ERR=1000) IBFVBL IVBN=IVBN+1 DO 60 I=1,256 60 IBFVBL(I)=0 C C***************************************************************************** C C MAIN DO LOOP FOR FILLING PROJECT DATA INTO FILE C THESE ARE: C C BLOCK 2....5 : 30 RECORDS OF MAX 32 VIRT. BLOCK NUMBERS EACH, C 1 FOR EVERY ACCOUNT (LAST 64 WORDS IN BLOCK 5 C NOT USED). C SUCH A VBN IS THE FIRST OF 2 BLOCKS IN WHICH C PROJECT DATA ARE KEPT. C C PROJ. BLOCK 1: PROJECT NAME C UIC C GRAND TOTAL, CURRENT TOTAL C STARTING TIME/DATES OF THOSE TOTALS C PROJ. BLOCK 2: MAX 32 COPIES OF OLD TOTALS (COPIED BY "RESET") C C***************************************************************************** C 70 DO 200 I=1,NPROJ IRCVBL(I,MUIC)=NVBL DO 80 J=1,256 IBFPR1(J)=0 80 IBFPR2(J)=0 ICURPN=1 WRITE(6,90) I,(LRCHDR(J,IUIC),J=1,9) 90 FORMAT('$ENTER PROJECT NAME ',I2,' FOR ',9A1,' [32A1]: ') READ(5,100,END=1000) NP,(PRONAM(J),J=1,NP) 100 FORMAT(Q,32A1) DO 110 J=1,10 110 UIC(J)=LRCHDR(J,IUIC) CALL GETTIM(TOTSNC(1)) DO 120 J=1,8 120 GRANTS(J)=TOTSNC(J) WRITE(1'NVBL,ERR=1000) IBFPR1 WRITE(1'NVBL+1,ERR=1000) IBFPR2 NVBL=NVBL+2 200 CONTINUE C C C***************************************************************************** C C IF MAX NUMBER OF ACCOUNTS REACHED (30), SAY SO AND EXIT C OTHERWISE ASK FOR NEXT ACCOUNT. C C***************************************************************************** C IF(IUIC.LT.30) GO TO 25 C C 400 WRITE(6,410) 410 FORMAT(/' *** WARNING *** REACHED MAX NUMBER OF ACCOUNTS (30)'/) C C C***************************************************************************** C C HERE IF READY. WRITE 1ST AND CURRENT "VBN" BLOCK TO DISK AND CHANGE C PROTECTION OF LOG-FILE TO [RWED,RWED,RWED,RWED]. C C***************************************************************************** C C 500 WRITE(1'IVBN,ERR=1000) IBFVBL WRITE(1'1,ERR=1000) IBFHDR CALL SPAWN(MCR,,,,,,,'PIP [7,237]LOGLOGLOG.LOG/PR:0',29) IER=1 C C 1000 RETURN END