1 SUB HDXSET(field$(), command$, title$, outfile$, err$) 2 ! 3 ! set up the input parameters and data lines, 4 ! one line at a time. Line data is passed in field$() 5 ! 6 ! TRUTH.B4S 7 .DEFINE .TRUE%=-1% 8 .DEFINE .FALSE%=0% 9 COMMON (FCSERR) err1%, err2% 10 ! 11 ! File channel definitions 12 ! 13 .DEFINE .flows.chan% = 22% 14 .DEFINE .loops.chan% = 23% 15 .DEFINE .tf.out.chan% = 24% 16 .DEFINE .log.chan% = 25% 17 ! 18 ! Constant definitions 19 ! 20 .DEFINE .eof% = -10% 21 .DEFINE .max.iterations% = 10% 22 .DEFINE .num.itn.values% = 32% 23 .DEFINE .flows.buf.siz% = 294% 24 .DEFINE .loops.buf.siz% = 8% 25 .DEFINE .max.args% = 9% 26 .DEFINE .tf.bufsiz% = 128% 27 .DEFINE .cmd.line.siz% = 128% 28 .DEFINE .its.per.page% = 1% 29 ! 30 ! Buffer definitions 31 ! 32 MAP (PIPES) flowbuf$ = .flows.buf.siz% ! map for flow data record 33 MAP (PIPES) loop%, pipe%, other.loop%, diam, q.lit.sec, & length, itrn.val(.num.itn.values%) 34 MAP (PIPES) pipe.c, rest$ = 166% ! map for unpacking heading 35 MAP (LOOPS) loopbuf$ = .loops.buf.siz% 36 MAP (LOOPS) delta.q ! map for loop delta.q 37 MAP (INBUF) inbuf$ = .tf.bufsiz% 38 MAP (CMDBUF) command.buffer$ = .cmd.line.siz% 39 ! 40 COMMON (PASS) flow%, echo%, help%, in.put%, & debug%, more.data%, not.finished%, num.its%, & pipe.coeff 41 ! 42 ! 43 IF (field$(1%) = "START") AND (field$(2%) = "LINES") & THEN in.put%, first%, line.inp% = .true% 44 ! 45 print "field$(1): <";field$(1%);">" 46 IF NOT (in.put%) & THEN do% = fn.outfile% IF field$(1%) = "OUTFILE" & \ do% = fn.iterations% IF field$(1%) = "ITERATIONS" & \ do% = fn.title% IF field$(1%) = "TITLE" & \ pipe.coeff = val(field$(2%)) IF field$(1%) = "COEFFICIENT" & \ debug% = val(field$(2%)) IF field$(1%) = "DEBUG" & \ not.finished% = .false% IF ((field$(1%) = "QUIT") OR (field$(1%) = "EXIT")) & \ help% = .true% IF field$(1%) = "HELP" OR field$(1%) = "?" & \ more.data% = .false% IF field$(1%)="DO" OR field$(1%)="GO" OR field$(1%)="QUIT" OR field$(1%) = "EXIT" & \ IF field$(1%) = "ECHO" & THEN IF field$(2%) = "" OR field$(2%) = "-1" & THEN echo% = .true% & ELSE echo% = .false% 47 ! 48 IF in.put% & THEN IF field$(1%) = "END" AND field$(2%) = "LINES" & THEN in.put% = .false% & \ flow.inp% = .false% 49 ! 50 IF in.put% & THEN IF first% & THEN first% = NOT(first%) & \ CALL OPEN.((outfile$ + ".WK1"), "W", .flows.chan%, .flows.buf.siz%) & \ flow% = 0% ! init 1 before first record & \ flows.file.open% = .true% & ELSE do% = fn.flow.inp% 51 ! 52 SUBEXIT 53 ! 54 ! ***************** FUNCTIONS ************************** 55 ! 56 ! ***************** fn.flow.inp% ************************** 57 ! 58 DEF fn.flow.inp% 59 ! 60 ! 61 flow% = flow% + 1% 62 ! 63 ! print "in fn.flow.inp - flow: "; flow% 64 ! 65 loop% = val(field$(1%)) 66 pipe% = val(field$(2%)) 67 other.loop% = val(field$(3%)) 68 diam = val(field$(4%)) 69 q.lit.sec = val(field$(5%)) 70 length = val(field$(6)) 71 itrn.val(0%) = q.lit.sec / 1000 ! convert to cu.m.sec 72 itrn.val(x%) = 0 FOR x% = 1% to (.num.itn.values% - 1%) ! zero the rest 73 CALL PUT. (.flows.chan%, flowbuf$, flow%) 74 ! 75 FNEND 76 ! 77 ! *************** fn.iterations%() ************************ 78 ! 79 DEF fn.iterations% 80 ! 81 max.its% = .max.iterations% 82 num.its% = val(field$(2%)) 83 num.its% = .max.iterations% IF num.its% > .max.iterations% 84 ! 85 FNEND 86 ! 87 ! ***************** fn.outfile$() ************************** 88 ! 89 DEF fn.outfile% 90 ! 91 outfile$ = field$(2%) 92 ! 93 outfile$ = edit$(outfile$, 40%) 94 psn.dot% = pos(outfile$, ".", 1%) 95 outfile$ = left$(outfile$, psn.dot% - 1%) IF psn.dot% > 0% 96 ! 97 FNEND 98 ! 99 ! ***************** fn.title%() ************************** 100 ! 101 DEF fn.title% 102 ! 103 print "title$: <";title$;">" 104 print "command$: <";command$;">" 105 title$ = edit$(right$(command$, 6%), 8%) + CR + LF + HT + "[HDX: " + time$(0%) + " " + date$(0%) + "]" 106 print "title$: <";title$;">" 107 ! 108 FNEND 109 ! 110 ! {BL:[101,5]FNSAW.B4S} 111 ! FNANSCHK.B4S 112 ! 113 DEF fn.ans$ (text$) = edit$ (left$ (text$, 1%), 32%) 114 DEF fn.upper.case$ (text$) = edit$ (text$, 32%) 115 ! 116 DEF fn.ans% (text$) 117 IF ((edit$ (left$ (text$, 1%), 32%) = "Y") OR (text$ = "1")) & THEN fn.ans% = -1% & ELSE fn.ans% = 0% 118 FNEND 119 ! 120 SUBEND