%SYSTEMINTEGERMAPSPEC COMREG (%INTEGER I) %SYSTEMROUTINESPEC SETPAR (%STRING (255) PARM) %SYSTEMROUTINESPEC PSYSMES (%INTEGER X, Y) %SYSTEMSTRINGFNSPEC SPAR (%INTEGER N) %CONSTINTEGER MAXPARMS = 31 %CONSTINTEGER DEFAULTF77PARM = X'80000000' ! %CONSTSTRING (10) %ARRAY F77PARMS (0:MAXPARMS) = %C "NOCHAR", "NOARG", "NOUNASS", "MINBOUND", %C { COMREG(55)} "NOBOUND", "NOCOMMENTS", "NOWARNINGS", "STRICT", %C "UNIX", "VAX", "F66", "ONETRIP", %C "WARN66", "WARNLEN", "", "", %C "MONERRS", "CE", "TRANSMTM", "SEPARATE", %C "NOSHARE", "ITS", "PA", "", %C "MAPS", "TRIADS", "OPTRIADS", "", %C "", "", "", "" ! %STRINGFN PRINTPARMS (%INTEGER P) %STRING (255) T %INTEGER I T = "" %CYCLE I = 0, 1, MAXPARMS %IF P & 1 = 1 %AND F77PARMS(I) # "" %THEN %START; ! IGNORE BLANK PARMS %IF T # "" %THEN T = T."," T = T.F77PARMS(I) %FINISH P = P >> 1 %REPEAT %IF T = "" %THEN T = "DEFAULTS" %RESULT = T %END; !OF PRINTPARMS ! %EXTERNALROUTINE F77PARM (%STRING (255) S) %INTEGER J, FLAG, PAT FLAG = 0 %IF S = "?" %THEN %START %IF COMREG(55) >> 31 = 0 %THEN %RETURN PRINTSTRING("F77parms set: ") PRINTSTRING(PRINTPARMS(COMREG(55))) NEWLINE %FINISH %ELSE %START PAT = DEFAULTF77PARM %IF "" # S %THEN %START FLAG = 202 SETPAR(S) %CYCLE S = SPAR(0); !GET NEXT PARAM %IF S = "" %THEN %EXIT ; ! End of list. J = 0 %WHILE J <= MAXPARMS %AND S # F77PARMS(J) %CYCLE J = J + 1 %REPEAT %IF J <= MAXPARMS %THEN %START PAT = PAT ! (1 << J) FLAG = 0 %FINISH %ELSE %START PRINTSTRING("Invalid F77parm ".s." ") %FINISH %REPEAT %FINISH %IF FLAG = 0 %THEN COMREG(55) = PAT %FINISH %END; !OF F77PARM ! %ENDOFFILE