SUBROUTINE SPWNFT ( luntrm, fillst, lenlst, node, lennod, ier ) C CHARACTER*80 fillst, node CHARACTER*80 cmdbuf CHARACTER*20 def CHARACTER*8 desnod C INTEGER*2 lenlst, lennod, ier INTEGER*2 endcmd, ipntr INTEGER*2 luntrm INTEGER*2 deflen INTEGER*2 deslen C DATA cmdbuf/'NFT '/ DATA def/'STAR::'/ DATA endcmd/5/ DATA deflen/6/ C C Executable begins here. C IF ( lennod .LE. 0 ) THEN ! No destination node specified. desnod = def(1:deflen) ! Insert default node spec. deslen = deflen ! ELSE desnod = node(1:8) ! Grab 8 characters. The PDP deslen = 8 ! only allows up to 6 character ! node names with an additional ! double colon. test = INDEX ( desnod(1:deslen), '::' ) IF ( test .LE. 0 .AND. + lennod .LE. 6 ) THEN ! No double colon, so tack it. desnod(lennod+1:lennod+2) = '::'! ELSE IF ( test .LE. 0 .AND. ! + lennod .GT. 6 ) THEN ! desnod(7:8) = '::' ! Force it in. END IF END IF D TYPE 10, desnod(1:deslen) D10 FORMAT ( ' NODE in SPWNFT: ',A ) ipntr = endcmd ! Initialize pointer. cmdbuf(ipntr:deslen+ipntr-1) = ! Insert node name. + desnod(1:deslen) ! ipntr = deslen + ipntr ! Update end of string. cmdbuf(ipntr:ipntr) = '=' ! Insert equals sign. ipntr = ipntr + 1 ! Update again. IF ( lenlst+ipntr-1 .GT. 80 ) THEN ! Command too long. ier = -1 ! Error flag. ELSE ! Command is inside limit. cmdbuf(ipntr:lenlst+ipntr+1) = ! Tack on file list. + fillst(1:lenlst) ! ipntr = lenlst + ipntr + 1 ! Point to last character this ! time. WRITE ( luntrm, 125 ) ! 125 FORMAT ( ' %SBT-I, Copying files. ',! + ' Please wait.' ) ! CALL MCRSPW ( luntrm, cmdbuf, ! Spawn command line to NFT. + ipntr, ier ) ! D TYPE 100, cmdbuf(1:ipntr) D100 FORMAT ( ' SPAWNED: ',A ) END IF ! End command length test. RETURN ! Return. END